数学建模之线性回归的标准型以及例题

Matlab中线性规划的标准型为
所求的线性规划问题为: m i n c T x min {{c}^{T}}x mincTx,下列为参数的限制条件
 s.t.  { A x ≤ b A e q ⋅ x = b e q l b ≤ x ≤ u b \text { s.t. }\left\{\begin{array}{l} A x \leq b \\ A e q \cdot x=b e q \\ l b \leq x \leq u b \end{array}\right.  s.t. AxbAeqx=beqlbxub
注意:我们的代码对于第一个条件必须是小于等于的形式,如果我们已知的不等式条件不是该形式需要通过添加负号进行转换
Matlab对于线性规划来讲只能求解最小值,但是很多线性规划问题会要求你求出最大值,此时就需要对该问题转化为最小值来进行Matlab求值。
Matlab求解此类问题的函数为linprog(c, A, b),它的返回值是向量 x 的值(其他的函数调用形式可以在Matlab指令窗运行help linprog命令就可以看到所有的函数调用形式),如:
在这里插入图片描述
例1:求解下列线性规划问题:
max ⁡ z = 2 x 1 + 3 x 2 − 5 x 3 \max z=2 x_{1}+3 x_{2}-5 x_{3} maxz=2x1+3x25x3
条件如下:
x 1 + x 2 + x 3 = 7 2 x 1 − 5 x 2 + x 3 ≥ 10 x 1 + 3 x 2 + x 3 ≤ 12 x 1 , x 2 , x 3 ≥ 0 \begin{array}{l} x_{1}+x_{2}+x_{3}=7 \\ 2 x_{1}-5 x_{2}+x_{3} \geq 10 \\ x_{1}+3 x_{2}+x_{3} \leq 12 \\ x_{1}, x_{2}, x_{3} \geq 0 \end{array} x1+x2+x3=72x15x2+x310x1+3x2+x312x1,x2,x30
代码为:

c = [-2; -3; 5];            %c就是标准型中需要求解的问题,由于本题是求
                            %最大值,而matlab只能求最小值,因此给变量加负号
a = [-2, 5, -1;1, 3, 1];    %这里的a就相当于标准型中的A
b = [-10; 12];              %因为不等式添加负号了,因此右侧的10也要添加负号
aeq = [1, 1, 1];
beq = 7;
x = linprog(-c, a, b, aeq, beq, zeros(3, 1));
value = c' * x;				%通过矩阵乘法进行所求表达式值的大小

例2:求解下列线性规划问题:
min ⁡ z = 2 x 1 + 3 x 2 + x 3 \min z=2 x_{1}+3 x_{2}+ x_{3} minz=2x1+3x2+x3限定条件如下:

x 1 + 4 x 2 + 2 x 3 ≥   8 3 x 1 + 2 x 2 ≥ 6 x 1 , x 2 , x 3 ≥ 0 \begin{array}{l} x_{1}+4x_{2}+2x_{3}\geq\ 8 \\ 3 x_{1}+2 x_{2} \geq 6 \\ x_{1}, x_{2}, x_{3} \geq 0 \end{array} x1+4x2+2x3 83x1+2x26x1,x2,x30
题解代码如下:

c = [2; 3; 1];
a = [-1, -4, -2; -3, -2, 0];    %这里的第二维的缺失值必须使用0来进行填充
b = [-8; -6];
[x, y] = linprog(c, a, b, [], [], zeros(3, 1));

本示例参考书籍为:司守奎老师的《数学建模算法与程序》

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值