% 以下代码可在7.1以上版本运行.
close all
clear,clc
warning('off')
% 问题1
lb = [0; 0]; % x y的下限
ub = [16; 0.15]; % x y的上限
myfun = @(x) -x(1)/(1+x(2)); % 目标函数
x0 = [10;0.1]; % Starting guess at the solution
[x1,fval1] = fmincon(myfun,x0,[],[],[],[],lb,ub);
xmax = x1(1) % 极值点x的值
ymax = x1(2) % 极值点y的值
zmax = -fval1 % Z的最大值
% 问题2
lb = [0; 0]; % x y的下限
ub = [9; 3] ; % x y的上限
myfun = @(x) -(61.6-0.95*x(1)-2.25*x(2))*100/(100+(25-1.66*x(1)+3.33*x(2))); % 目标函数
x0 = [5;0.1]; % Starting guess at the solution
[x1,fval1] = fmincon(myfun,x0,[],[],[],[],lb,ub);
xmax2 = x1(1) % 极值点x的值
ymax2 = x1(2) % 极值点y的值
zmax2 = -fval1 % Z的最大值
.
计算结果:
问题1:
当xmax =16、ymax =0时,
Z取得最大值16.
问题2:
当xmax =0、ymax =0时,
Z取得最大值49.28.