![]() |
关于fmincon的问题,急呀!
哪位高手能帮个忙?目标函数是非线性,约束只有[30 0 0 0 ]<=x, x为一向量。运行总过不去,老有错误信息
??? Error using ==> optimfcnchk NONLCON must be a function. Error in ==> fmincon at 257 [confcn, msg] = optimfcnchk(NONLCON,'fmincon',length(varargin),funValCheck,gradconstflag,false,1); >> 下面是程序: 目标函数: function f = myfun(x) C1= 1 %待加工点z坐标 C2= 2 %待加工点y坐标 C3= 3 %待加工点z坐标 z12=1/5*[sqrt(500^2-(x(1)*cos(x(2))+c1)^2-(x(1)*sin(x(2))+c2)^2)-... sqrt(500^2-(x(1)*cos(x(3))+c1)^2-(x(1)*sin(x(3))+c2)^2)] %p1点与p2点z坐标差 z32=1/5*[sqrt(500^2-(x(1)*cos(x(4))+c1)^2-(x(1)*sin(x(4))+c2)^2)-... sqrt(500^2-(x(1)*cos(x(3))+c1)^2-(x(1)*sin(x(3))+c2)^2)] %p3点与p2点z坐标差 N=[x(0)*((sin(x(4))-sin(x(3)))*z12-(sin(x(4))-sin(x(3)))*z32), x(0)*((sin(x(2))-sin(x(3)))*z32-(sin(x(4))-sin(x(3)))*z12), x(0)*((sin(x(4))-sin(x(3)))*(sin(x(4))-sin(x(3)))-(sin(x(2))-sin(x(3)))*(sin(x(4))-sin(x(3))))] %测量模型的法向量 M=[2*C1/500^2,2*C2/500^2,2*C3/100^2] %理论法向量 f=1-abs(dot(N,M))/(norm(N)*norm(M)) 下面是主程序: x0=[30 0 2*pi/3 4*pi/3] A=[] b=[] Aep=[] Beq=[] lp=[30 0 0 0] up=[] options(3)=1-cos(0.5*pi/180) [x,fval]=fmincon(@myfun,x0,A,b,Aep,Beq,lp,up,options) 运行结果: ??? Error using ==> optimfcnchk NONLCON must be a function. Error in ==> fmincon at 257 [confcn, msg] = optimfcnchk(NONLCON,'fmincon',length(varargin),funValCheck,gradconstflag,false,1); 应该设nonlcon么?但我这里只有变量x的下限,没有nonlcon呀!! |
所有时间均为北京时间。现在的时间是 14:26。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.