%定义目标函数; functionf=myfun(x ) f=x(1) ^2x )2) ^2 8; 结束
%非线性约束; function [c,CEQ]=nonLia(x ) c=-x(1)1) ^2x ) 2; %不等式约束; CEQ=-x(1)-x (2) ^2; %等式约束; end%是命令窗口,A=[]; b=[]; Aeq=[]; beq=[]; lb=[0; 0 ); ub=[]; x0=[0; 0 ); [x,fval,exitflag,output,lambda,grad,Hessian]=fmincon ',x0,a,b,Aeq,beq,lb,ub,' nonlia (x=1.0000
%目标函数; 函数f=myfun (x ) f=-x(1)-2*x) 0.5*x(1)1) ^20.5*x) ^2; end%非线性约束function [c,CEQ]=nonLia(x ) c=2*x(1)1)3*x )2) ^2 - 6; %不等式约束; ceq=[]; %等式约束; end%在命令窗口中显示“clc; 清除全部; A=[2 3; 1 ); %线性不等式系数; b=[6; 5 ); Aeq=[]; beq=[]; lb=[0; 0 ); ub=[]; x0=[0; 0 ); [x,fval,exitflag,output,lambda,grad,Hessian]=fmincon ',x0,a,b,Aeq,beq,lb,ub,' non lia (x=0.770.
请注意这里求最大值。 目标函数需要相反;
%目标函数; functionf=myfun(x ) f=-(log ) x )1) log (x )2); end%非线性约束function [c,CEQ]=nonLia(x ) c=[]; %不等式约束; ceq=[]; %等式约束; end%在命令行中显示“clc; 清除全部; A=[1 -1]; b=0; Aeq=[1 2]; beq=5; lb=[0; 0 ); ub=[]; x0=[0; 0 ); [x,fval,exitflag,output,lambda,grad,Hessian]=fmincon ',x0,a,b,Aeq,beq,lb,ub,' non lia (x=1.66.
%定义目标函数; functionf=myfun(x ) f=sqrt )2); end%非线性约束function [c,CEQ]=nonLia(x ) c=[8*x(1)^3-x(2) 2; (1-x(1) )3-x ) ); %多个不等式约束情况ceq=[]; %等式约束; 在结束%窗口中,单击以下命令A=[]; b=[]; Aeq=[]; beq=[]; LB=[ 0,0 ]; ub=[]; x0=[1.234; 5.678]; [x,fval,exitflag,output,lambda,grad,Hessian]=fmincon('myfun ',x0,a,b,[],[],lb,],' non Lin
转载于:https://www.cn blogs.com/guanghui Liu/p/9931946.html