matlab 非线性约束最优化问题,希望给出代码
展开全部
先建立M文件fun.m定义目标函数:
function f=fun(x)
f=((x(1)+1)^2+4*(x(2)-1.5)^2)*((x(1)-1.2)^2+0.4*(x(2)-0.5)^2);
再建立M文件mycon.m定义非线性约束:
function [g,ceq]=mycon(x)
g=[2*x(1)-x(1)*x(2)+5*x(2)-6;x(1)-x(2)+0.5;x(1)^2-4*x(2)^2+x(2)];
ceq=0;
主程序为:
x0=[0;0];
VLB=[0 0];VUB=[];
[x,fval,exitflag,output]=fmincon('fun',x0,[],[],[],[],VLB,VUB,'mycon2')
结果为:x =
0.5925
1.0925
fval =
1.6306
exitflag =
1
output =
iterations: 5
funcCount: 18
lssteplength: 1
stepsize: 8.6939e-007
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 3.2838e-008
constrviolation: 1.6077e-011
message: [1x144 char]
function f=fun(x)
f=((x(1)+1)^2+4*(x(2)-1.5)^2)*((x(1)-1.2)^2+0.4*(x(2)-0.5)^2);
再建立M文件mycon.m定义非线性约束:
function [g,ceq]=mycon(x)
g=[2*x(1)-x(1)*x(2)+5*x(2)-6;x(1)-x(2)+0.5;x(1)^2-4*x(2)^2+x(2)];
ceq=0;
主程序为:
x0=[0;0];
VLB=[0 0];VUB=[];
[x,fval,exitflag,output]=fmincon('fun',x0,[],[],[],[],VLB,VUB,'mycon2')
结果为:x =
0.5925
1.0925
fval =
1.6306
exitflag =
1
output =
iterations: 5
funcCount: 18
lssteplength: 1
stepsize: 8.6939e-007
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 3.2838e-008
constrviolation: 1.6077e-011
message: [1x144 char]
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Excel 本身就能解,何必用Matlab呢,哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询