【matlab】线性规划模板

matlab中规定线性规划标准形式为

\mathop {\min }\limits_x {f^T}x, \\ s.t.\left\{ \begin{array}{l} A \cdot x \le b,\\ Aeq \cdot x = beq,\\ lb \le x \le ub \end{array} \right.

linprog函数

[x,fval]=lingrog(c,A,b,Aeq,Beq,LB,UB)

[x,fval]=lingrog(c,A,b,Aeq,Beq,LB,UB)

  • x 为最优解, fval 为最优的目标函数值
  • c 为目标函数系数,列向量
  • A为小于等于的系数矩阵,b为小于等于值列向量
  • Aeq,Beq为等于约束,含义同上
  • LB为xi​的下界,UB为上界,列向量
  • 注意后面的参数可以省略,中间如果有条件用不到,需要用【】占位

matlab中求解线性规划的命令为

[x,fval] = linprog(f,A,b)

[x,fval] = linprog(f,A,b,Aeq,Beq)

[x,fval] = linprog(f,A,b,Aeq,Beq,lb,ub)

x为决策向量的取值,fval返回目标函数的最优值

例如:求解如下现行规划问题

\max z = 2{x_1} + 3{x_2} - 5{x_3},\\\begin{array}{l} \;\;\;\;\;\;\;\;{x_1} + {x_2} + {x_3} = 7,\\ s.t.\;\;\;{x_1} + 3{x_2} + {x_3} \le 12,\\ \;\;\;\;\;\;\;\;{x_1},{x_2},{x_3} \ge 0 \end{array}

max z转换成:

\min z = - 2{x_1} - 3{x_2} + 5{x_3}

不等式转化为小于等于形式:

\left[ \begin{array}{l} - 2\;\;5\; -1\\ \;\;1\;\;\;3\;\;\;\;1 \end{array} \right]x \le \left[ \begin{array}{l} - 10\\ \;\;12 \end{array} \right]

所以可得代码如下:

f=[-2;-3;5];
a=[-2,5,-1;1,3,1];
b=[-10;12];
aeq=[1,1,1];
beq=7;
[x,y]=linprog(f,a,b,aeq,beq,zeros(3,1));‘zeros产生m*n的double类型零矩阵
x,y=-y’由于求的-z,所以y=-y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cout0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值