数模 | 线性规划

线性规划

要点

  1. 每个模型都有若干个决策变量,决策变量的一组值代表一种方案,一般非负。
  2. 目标函数、约束条件是决策变量的线性函数。
术语说明
s.t.subject to,约束条件
max最大值(最大规划)
min最小值(最小规划)
最优化最大规化或最小规化

Matlab 求解

Matlab 只能解最小规划

函数原型

m i n z = c T x min z = c^Tx minz=cTx
{ A x ≤ b A e q ∗ x = b e q l b ≤ x ≤ u b \begin{array}{l} \left \{ \begin{array}{l} Ax\leq b\\ Aeq * x = beq\\ lb \leq x \leq ub \end{array} \right.\\ \end{array} AxbAeqx=beqlbxub

% fval:目标函数最优值;x最优解
[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub,x0,options)
参数说明
c目标函数系数向量
A;b A ∗ x ≤ b A*x \leq b Axb;A 是一元线性约束条件不等式组的系数矩阵;b 是对应的常数项组成的列向量;
Aeq;beq A ∗ x = b A*x=b Ax=b;A 是一元线性约束条件方程组的系数矩阵;b 是对应的常数项组成的列向量;
lb决策变量的下界
ub决策变量的上界
x0初迭代点

最大(max)规划转最小(min)规划

目标函数系数向量取相反值。

用例

m a x z = 2 x 1 + 3 x 2 + 5 x 3 { 2 x 1 − 5 x 2 + x 3 ≥ 10 x 1 + 3 x 2 + x 3 ≤ 12 x 1 , x 2 , x 3 ≥ 0 max z = 2x_1+3x_2+5x_3\\ \begin{array}{l} \left \{ \begin{array}{l} 2x_1 - 5x_2 + x_3 \geq 10\\ x_1 + 3x_2 + x_3 \leq 12\\ x_1,x_2,x_3 \geq 0 \end{array} \right.\\ \end{array} maxz=2x1+3x2+5x32x15x2+x310x1+3x2+x312x1,x2,x30
化为适合 Matlab 计算的形式
m i n z = − 2 x 1 − 3 x 2 − 5 x 3 { − 2 x 1 + 5 x 2 − x 3 ≤ − 10 x 1 + 3 x 2 + x 3 ≤ 12 x 1 , x 2 , x 3 ≥ 0 min z = -2x_1-3x_2-5x_3 \\ \begin{array}{l} \left \{ \begin{array}{l} -2x_1 + 5x_2 - x_3 \leq -10\\ x_1 + 3x_2 + x_3\leq 12\\ x_1,x_2,x_3 \geq 0 \end{array} \right.\\ \end{array} minz=2x13x25x32x1+5x2x310x1+3x2+x312x1,x2,x30

c = [-2,-3,-5];
A=[-2 5 -1; 1 3 1;];
b=[-10;12];
Aeq = [1 1 1];
beq = 7;
lb = zeros(3,1);

[x,fval] = linprog(c,A,b,Aeq,beq,lb);

disp(x);

% 此处求出的是变化后的目标函数的最小值,需要求相反数得其最大值
disp(-fval);

Matlab 画图

线性规划好难画。再说
相关资料

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值