xingxlin57
2008-04-06, 11:42
--------------------------------------------------------------------------------
本人是一个新手,对MATALAB还一知半解。最近处理一个优化问题,运用“优化工作箱中的fmincon函数”,始终不能得到满意结果,初看起来,好像是其中一个非线性约束条件不起作用,但自己无法找到问题出在哪里,也没有办法和能力解决,现在把有关运行内容放在下面,请各位高手给予诊断,指教。本人十分感谢。
有问题的程序如下:
function f = myfun(x)
f=7.85*10^(-6)*pi*x(1)*x(2)*(1420+x(1))*(8350*x(3)^(-1)-1)
function[c,ceq]= mycon(x)
c(1)=210.2*x(3)+26.8*x(1)*x(2)-0.08*x(1)^3*x(2)-3994-((7.5+x(1))^2*(0.25*x(1)^3*x(2)^3+1.5*10^8)*(x(1)*x(2)+852)^(-2));
ceq=[ ]
确定变量初始值,在MATLAB命令窗口调用程序
x0=[60;10;2800];
A=[0,0,1; 0,0,-1;-1,0,0;1,0,0;0,-1,0;0,1,0];
b=[2800,0, -70,100,-15,22]
lb=zeros(2,1);
options=optimset('display','iter','largescale','off');
[x,fval,exitflang,output]=fmincon(@myfun,x0,A ,b,[ ],[ ],lb,[ ],@mycon ,options)
如此运行,始终不能得到满意结果。特别可以看出约束c(1)没有起作用。
本人是一个新手,对MATALAB还一知半解。最近处理一个优化问题,运用“优化工作箱中的fmincon函数”,始终不能得到满意结果,初看起来,好像是其中一个非线性约束条件不起作用,但自己无法找到问题出在哪里,也没有办法和能力解决,现在把有关运行内容放在下面,请各位高手给予诊断,指教。本人十分感谢。
有问题的程序如下:
function f = myfun(x)
f=7.85*10^(-6)*pi*x(1)*x(2)*(1420+x(1))*(8350*x(3)^(-1)-1)
function[c,ceq]= mycon(x)
c(1)=210.2*x(3)+26.8*x(1)*x(2)-0.08*x(1)^3*x(2)-3994-((7.5+x(1))^2*(0.25*x(1)^3*x(2)^3+1.5*10^8)*(x(1)*x(2)+852)^(-2));
ceq=[ ]
确定变量初始值,在MATLAB命令窗口调用程序
x0=[60;10;2800];
A=[0,0,1; 0,0,-1;-1,0,0;1,0,0;0,-1,0;0,1,0];
b=[2800,0, -70,100,-15,22]
lb=zeros(2,1);
options=optimset('display','iter','largescale','off');
[x,fval,exitflang,output]=fmincon(@myfun,x0,A ,b,[ ],[ ],lb,[ ],@mycon ,options)
如此运行,始终不能得到满意结果。特别可以看出约束c(1)没有起作用。