Matlab 线性规划求解:最小化二次函数
可以使用 Matlab 中的线性规划函数 linprog 来求解该问题。
首先将目标函数和约束条件转化为标准形式:
minimize:f = [2 -2; -2 2] * [x1; x2] + [-4; -6]
subject to:A = [-1 -1; -1 -5; -1 0; 0 -1]; b = [-2; -5; 0; 0];
lb = [0; 0]; ub = []; (表示 x1 和 x2 的下限为 0,上限为无穷大)
然后调用 linprog 函数:
[x, fval] = linprog(f, [], [], A, b, lb, ub);
其中,x 为最优解,fval 为最优目标函数值。
完整代码如下:
f = [2 -2; -2 2]; % 目标函数系数矩阵
c = [-4; -6]; % 目标函数常数矩阵
% 约束条件系数矩阵和常数矩阵
A = [-1 -1; -1 -5; -1 0; 0 -1];
b = [-2; -5; 0; 0];
% 变量下限和上限
lb = [0; 0];
ub = [];
% 调用 linprog 函数求解
[x, fval] = linprog(f, [], [], A, b, lb, ub);
% 输出结果
disp('最优解为:');
disp(x);
disp('最优目标函数值为:');
disp(fval);
原文地址: https://www.cveoy.top/t/topic/nRte 著作权归作者所有。请勿转载和采集!