如何通过Matlab求解函数的最大值问题

如题所述

第1个回答  2014-01-03
求最大值,可以转换为求最小值问题。比如:% 计算最小值f(x) = -x1*x2*x3,起始点为x = [10;10;10],约束条件为:
% 0 ≤ x1 + 2*x2 + 2*x3 ≤ 72.
% –x1–2*x2–2*x3 ≤ 0
% 1.写出目标函数% function f = myfun(x)
% f = -x(1) * x(2) * x(3);% 2.约束条件
% –x1–2*x2–2*x3 ≤ 0
% x1 + 2*x2 + 2*x3≤ 72
% 3.构造约束条件矩阵
% A = [-1 -2 -2; ...
% 1 2 2];
% b = [0;72];% 4.最优化计算% x0 = [10;10;10];
% [x,fval] = fmincon(@myfun,x0,A,b);% 5.结果
% x
% x =
% 24.0000
% 12.0000
% 12.0000
%
%
% fval
% fval =
% -3.4560e+03
%
%
% A*x-b
% ans =
-72