|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
约束条件 x(1)*x(2)=0.95;
0.925656<=x(1),x(2)<0.99999;
目标函数为:f=exp(0.1*(x(1)-0.925656)/(0.99999-x(1)))+exp(0.3*(x(2)-0.925656)/(0.99999-x(2)));
我编写了一个小程序:
目标M文件为:
function f=myfunt(x)
f=exp(0.1*(x(1)-0.925656)/(0.99999-x(1)))+exp(0.3*(x(2)-0.925656)/(0.99999-x(2)));
非线性等式约束为:
function [c,ceq]= mycon(x)
c=[];
ceq=x(1)*x(2)-0.95;
在窗口输入:
fmincon(@myfunt,[0.95 0.95],[],[],[],[],[0.925656 0.925656],[0.99999 0.99999],@mycon)
结果却不对。
Warning: Large-scale (trust region) method does not currently solve this type of problem,
using medium-scale (line search) instead.
> In fmincon at 317
Maximum number of function evaluations exceeded;
increase OPTIONS.MaxFunEvals.
ans =
0.999990000000000 0.950010000235281
麻烦大家分析下原因。
我又试了下,把上界变为[0.99 0.99]或[0.999859 0.99859]时,结果都是对的,但是变为[0.999 0.999]时,结果就是不对,不知道为什么。
各位,帮下忙嘛,这个问题困惑我好久了。十分感谢啦。
[ 本帖最后由 ChaChing 于 2010-7-22 11:19 编辑 ] |
|