用matlab求约束最优化问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 16:31:30
具体函数是
fun=-(1/2)*(2000-(100*x(1)+250)/(2+0.01*x(2)^2+0.01*(1-x(2))^2))*(x(1)-20-0.015*x(1)*x(2))
20 < x(1) < 100
0 < x(2) < 1
即求这个二元二次方程的最小值,并求出想x(1),x(2)的值。

请问具体该用哪个函数,程序如何编写?
不胜感激!!!!

在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=zhidao_wtosc(x)
y=-(1/2)*(2000-(100*x(1)+250)/(2+0.01*x(2)^2+0.01*(1-x(2))^2))*(x(1)-20-0.015*x(1)*x(2));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

在Matlab下面输入:
xmin=[20;0];
xmax=[100;1];
x0=xmin;
[x,ymin,flag,c]=fmincon('zhidao_wtosc',x0,[],[],[],[],xmin,xmax);
x,ymin

得到结果:
x =
28.8500
0

ymin =
-1.9483e+003