关于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呀!!
		 
		
		
		
		
		
		
		
	 |