| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-01-08 
				
				年龄: 38 
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			关于fmincon函数求极小值 
		
		
		
		
		
		
			function f =rod_obj(x) '目标函数 f=-pi*(Dw^2-x(1)^2)*(x(2)*cos((x(3)+x(4))*pi/(2*180))-m*x(5))*n*fi*cos((x(3)+x(4))*pi/(2*180)+bt*pi/180)/(4*cos(bt*pi/180)); function [C,Ceq]=rod_constr(x) '分线性约束 C=[0.3*m-x(2)*cos((x(3)+x(4))*pi/(2*180))]; Ceq=[pi*Dw*tan(x(3)*pi/180)-x(2);pi*x(1)*tan(x(4)*pi/180)-x(2)]; 主程序: Dw=0.4;bt=30;m=1;fi=0.4;n=60; A=[-m -2 0 0 0;2.2*m 1 0 0 0]; b=[-m*Dw 2.2*m*Dw]; Aeq=[];beq=[]; vlb=[0.3*Dw 0 8 25 0.012]; ulb=[0.4*Dw pi*Dw*tan(pi/4-bt*pi/180) 22 40 0.02]; x0=[0.13; 0.44 ;16.3 ;30; 0.016]; options=optimset('largescale','off'); [x,fval]=fmincon('rod_obj',x0,A,b,[],[],vlb,ulb,'rod_constr',options) 我运行出错如下: ??? Error using ==> fmincon at 397 FMINCON cannot continue because user supplied objective function failed with the following error: Undefined function or variable 'Dw'. Error in ==> main at 9 [x,fval]=fmincon('rod_obj',x0,A,b,[],[],vlb,ulb,'rod_constr',options) 恳请高手指教 
				__________________ 
		
		
		
		
	:smile:  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 高级会员 
			
			
			
			注册日期: 2008-05-13 
				
				年龄: 45 
				
					帖子: 232
				 
				
				
				声望力: 22 ![]()  | 
	
	
	
		
		
			
			 
			
			从错误提示看,很明显 
		
		
		
		
		
		
			function f =rod_obj(x) '目标函数 f=-pi*(Dw^2-x(1)^2)*(x(2)*cos((x(3)+x(4))*pi/(2*180))-m*x(5))*n*fi*cos((x(3)+x(4))*pi/(2*180)+bt*pi/180)/(4*cos(bt*pi/180)); function [C,Ceq]=rod_constr(x) '分线性约束 C=[0.3*m-x(2)*cos((x(3)+x(4))*pi/(2*180))]; Ceq=[pi*Dw*tan(x(3)*pi/180)-x(2);pi*x(1)*tan(x(4)*pi/180)-x(2)]; 这两个函数中的DW没有传入,也就是需要你在函数的输入中加入一个新的参数,用来传递DW就可以了 
				__________________ 
		
		
		
		
	工科'985'博士,(图像处理、分析及理解;模式识别;运动估计;数据分析等)定做程序、算法实现--qq:752105755  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |