Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-01-29
年龄: 66
帖子: 7
声望力: 0 ![]() |
![]()
--------------------------------------------------------------------------------
本人是一个新手,对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)没有起作用。 |
![]() |
![]() |