用matlab求 ex1(4x1^2+2x2^2+4x1x2+2x2+1)最小值

来源:百度知道 编辑:UC知道 时间:2024/05/31 01:12:17
用matlab求 exp(x1)(4x1^2+2x2^2+4x1x2+2x2+1)最小值
St x1+x2=0
1.5+x1x2-x1-x2≤0
-x1x2-10≤0
谢谢各位大哥大姐,急用!!!!!!!!!

ff=optimset; ff.LargeScale='off'; ff.Display='iter';
ff.TolFun=1e-30; ff.TolX=1e-15; ff.TolCon=1e-20;
x0=[-2;2]; xm=[]; xM=[]; A=[]; B=[]; Aeq=[]; Beq=[];
[x,f_opt,c,d]=fmincon('opt_fun',x0,A,B,Aeq,Beq,xm,xM, 'opt_st',ff);
x,f_opt,kk=d.funcCount

%%%%%%%%%
function [c,ceq]=opt_st(x)
ceq=x(1)+x(2);
c=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];
%%%%%%%%%%%%
function y=opt_fun(x)
y=exp(x(1))*(4*x(1).^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);

结果:
x =

-3.1623
3.1623

f_opt =

1.1566

kk =

24