用matlab或者lingo求解无约束非线性问题

用matlab或者lingo求解无约束非线性问题求大神 在线等。关键想知道x2 x3 怎么定义取值范围为实数

用matlab求解无约束非线性问题,可以用fminunc()函数来求解。求解方法:

x0=[1.3107       1.33219      0.24839];

[x,fval] = fminunc(@(x) myfunc(x),x0)

运行结果

x =        1.323       1.3393      0.24964

fval =      -13.958

myfunc(x)函数主要内容:

if  x1+2*x1^2+x2+2*x2^2+x3>10 | x1+x1^2+x2+x2^2-x3>50 | 2*x1+x1^2+2*x2+x3>40 | x1^2+x3==2 | x1+2*x2<1

f=inf;

else

f =-(2*x1+3*x1^2+3*x2+x2^2+x3);

end

温馨提示:答案为网友推荐,仅供参考