|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
function [C,Ceq] = mycon(x,u)
C=[];
ceq(1)=0.5*x(1)*x(1)-0.7*x(2)+x(3)*u(1)+x(2)*x(2)*u(1)*u(2)+2*x(3)*u(3)*u(3)-255.8;
ceq(2)= x(1)-2*x(2)+3*x(1)*x(3)-2*x(2)*u(1)-x(2)*u(2)*u(3)+111.2;
ceq(3)= x(3)*u(1)-x(1)+3*x(2)+x(1)*u(2)-x(3)*(u(3)^0.5)-33.57;
ceq(4)= x(4)-x(1)-x(3)*x(3)+u(2)+3*u(3)
ceq(5)=x(5)-2*x(3)*u(2)*u(3);
ceq(6)=2*x(1)+x(2)*x(3)*u(1)+u(2)-u(3)-126.6;
function f= fun(x)
xc=[4.5360,5.5770,2.0660,1.4653,5.8491]';
Q=diag([0.0902,0.1116,0.0386,0.0292,0.0970]);
f=1/0.0902*(x(1)-xc(1)).^2+1/0.1116*(x(2)-xc(2)).^2+1/0.0386*(x(3)-xc(3)).^2+1/.0292*(x(4)-xc(4)).^2+1/0.0970*(x(5)-xc(5)).^2;
主程序
x0=[0,0,0,0,0]';%初始值
u=[8.0000,0.7000,1.8000]'; %未知量初始值
lb=[0,0,0,0,0]';
[x1,f1,exitflag,output]=fmincon('fun',x0,[],[],[],[],lb,[],'mycon')
目标函数是Σ((x-xc).^2)/Q
非线性约束是如图
[ 本帖最后由 prince00840 于 2010-3-1 15:54 编辑 ] |
|