http://se.mathworks.com/matlabcentral/newsreader/view_thread/300107
作者的问题是,对于下列问题,想找一个feasible
point/solution(可行解)或者是boundary(边界):
3*x1^2 + 2*x2^3 <= 25
x1^3 + sqrt(x2)
<= 27
x1>=0
x2>=0.
问题的回答的还是很到位的,归纳起来:
1.可行解可以用lsqnonlin求解
If you are just in search of a feasible
point,transform the inequalities to equalities
byadding or subtracting the square
of a new unknownper inequality and
use e.g. lsqnonlin to
solve.
2. 可行解可以用fmincon求解
finding a single feasible solution is essentially
nobetter than running a general
constrained optimizer (likefmincon)
on the problem. You would simply minimize
aconstant function over the set of
your nonlinear inequalities.
亲自用Matlab help fmincon中的例子实验了一下,原例子是min(-x1*x2*x3)
将目标函数改为常数函数:f
=1,并将初值改为-10,0,0使不满足约束方程,再运行fmincon,得到:
3.边界可以用fmincon求解:
目标函数----max: x1
约束条件----s.t.3*x1^2
+ 2*x2^3 <= 25,
x1^3 + sqrt(x2)
<= 27,
x1>=0,
x2>=0