jiang_hx4041
2009-04-10, 10:22
关于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)
恳请高手指教
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)
恳请高手指教