[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub)
这里给出一个简单的 MATLAB 代码示例,用于求解这个线性规划问题
% 目标函数的系数向量
f = zeros(1, m);
f(1) = 1;
f(m) = -1;
% 不等式约束的系数矩阵和右侧值向量
A = zeros(2*m-2, m);
b = zeros(2*m-2, 1);
for k = 2:m-1
A(k-1, k-1) = 1;
A(k-1, k) = -r(k);
b(k-1) = 0;
A(k+m-3, k) = 1;
A(k+m-3, k-1) = -1;
b(k+m-3) = 0;
end
% 等式约束的系数矩阵和右侧值向量
Aeq = ones(1, m);
beq = 1;
% 取值范围的上下界向量
lb = zeros(1, m);
ub = ones(1, m);
ub(1) = 1.8;
ub(m) = 0.55;
% 使用linprog求解线性规划问题
[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);
% 输出结果
fprintf('使得目标函数最小的系数为:\n');
disp(x);
fprintf('目标函数的最小值为:%.4f\n', fval);
这段代码用到了 linprog
函数,用于求解线性规划问题。具体而言,目标函数的系数、不等式约束的系数矩阵和右侧值、等式约束的系数矩阵和右侧值、变量的取值范围的上下界向量都已经定义好了,直接作为参数传递给 linprog
函数即可。最后,将求解结果打印输出。