果然,漏了个乘号。ChaChing大虾果然细心。另外这个程序我已经编出来了,给大家看看。可是结果不太满意,因为MATLAB对初值的依赖性太强了,导致结果变化太大,所以我现在在尝试用1stOpt做,希望能得到满意的结果。
先自己编两个M-FILE函数保存在work目录下。然后在命令窗口下这样:
A=[-1,0,0,0,0,0;1,0,0,0,0,0;0,1,0,0,0,0;0,0,-1,0,0,0;0,0,1,0,0,0;0,0,0,-1,0,0;0,0,0,1,0,0;0,0,-1,0.28,0,0;0,0,1,-0.36,0,0;0,0,0,0,-1,0;0,0,0,0,1,0;0,0,0,0,0,-1;0,0,0,0,0,1];
b=[0;0.6;0.39;-0.1;0.16;-0.38;0.45;0;0;-2500;3000;-0.205;0.02];
x0=[0.3;0.2;0.13;0.4;2800;0.01];
[x,fval]=fmincon('myfun',x0,A,b,[],[],[],[],'mycon')
完成。这样就能出结果了,可惜对初值的依赖性太强,结果不好。总之谢谢大家了。
[ 本帖最后由 ChaChing 于 2009-5-22 18:25 编辑 ] |