Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-01-29
年龄: 66
帖子: 7
声望力: 0 ![]() |
![]()
各位高手,请分析一下原因,不胜感激,谢谢!
问题:我是在求解一个单目标非线性约束规划的工程应用问题,即求使函数f(x)取最小值,且满足约束条件。 我编写的的“目标函数”M文件 : function f = myfun(x) f = 0.785*x(1)^2*x(2)-8.16*10^5*x(2)+6.85* 10^6; 约束函数M文件: function[c,ceq]= mycon(x) c(1) = -2.25*10^3*x(2)+0.48; c(2) = -4.95*10^2*x(2)^3+12.13*x(2)+1.497*10^3; c(3) =2.72*10^3*x(2)^5-67.32*x(2)^3-15*10^7*x(2)^2+1.61*10^6; c(4) =-2.48*10^2*x(2)^3-1.12* 10^3*x(2)-1.5*10^8+7.49*10^2; c(5) =1.36* 10^3*x(2)^5-33.66*x(2)^3-7.5*10^7*x(2)^2+1.13*10^3*x(2)-1.49*10^8; ceq=[ ]。 调用的程序为: x0=[800;58]; lb=zeros(2,1); options=optimset('display','iter','largescale','off'); [x,fval,exitflang,output]=fmincon(@myfun,x0,[ ] ,[ ],[ ],[ ],lb,[ ],@mycon) 这里fmincon是matlab非线性规划优化工具箱的一个常用函数,但不管我如何运算,结果就是执行出错,并提示: 1、在程序开始执行时提示:“Warning: Large-scale (trust region) method does not currently solve this type of problem,switching to medium-scale (line search).” 2、结束时提示: Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint violation is less than options.TolCon. Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 1 而且输出结果完全不是应该有的。我花了不少时间,就是没有解决,为什么会这样,恳请高手给予指点,不胜感激,谢谢!!!!!! |
![]() |
![]() |