美文网首页麻城经理程序员@IT·互联网
《一》线性规划的解法——matlab学习

《一》线性规划的解法——matlab学习

作者: 李庆文 | 来源:发表于2016-08-11 14:43 被阅读409次

数学建模我们队伍中我主要负责程序编码部分,所以在这里做学习记录,方便之后的查找使用。
我会尽量的做一个数学建模系列的专题。本次是第一个关于线性规划的解法。

matlab系列

前期知识储备

一.matlab 安装(本文不做介绍,简书上有很多)

二.矩阵乘法知识储备

  • 1.行向量 1*m的矩阵
  • 2.列向量 n*1的矩阵
  • 3.矩阵乘法 mp的矩阵A和Pn的矩阵B相乘 得到m*n的结果矩阵。

三了解matlab函数中的方法调用

首先在matlab中有着关于这种线性方程的基本形式,我们首先要将我们要进行计算的方程化成基本形式,然后套用内部公式即可。

线性方程的基本形式

其次我们查看一下线性函数的基本方法参数

线性函数的方法

之后我们介绍一下方法参数的含义
在基本形式的那个图片中我们可以看到,f,x,b,beq,ub都是向量,而A和aeq是矩阵。

  • f:这里指的是我们要的目标函数的系数,(这里的函数是指我们经过我们标准化之后的,如果要求最大值,可以加负号)
  • A: 矩阵,是表示图中的不等关系的矩阵,将所有的不等关系化为<= ,然后系数构成我们的系数矩阵A
  • b: 不等关系的结果,不等号后面的结果构成的矩阵
  • Aeq: 恒等关系的系数矩阵,等号左边。
  • beq: 恒等关系的结果矩阵,等号右边。
  • lb: 参数的下限,每个参数的最小值构成的向量
  • ub:参数的上限,每个参数的最大值构成的向量
  • x0:官方解释是设为初始值,个人感觉应该是说 参数》=0的意思。
    个人感觉用不到,知道上面这些就足够了。

正式开始解题

例题一.求最大值

线性方程求解例题一

首先我们分析有恒等式,也有不等式,所以我们肯定要使用我们图二的第三个或者第四个方法
当我们使用第三个方法的时候我们利用写出我们的matlab程序

%注意这里有一个巧妙的转换,我们要求的是最大值,然后我们在最后的方程这个地方由于要算最小值,所以给加了一个负号,最后结果要变回来
c=[2;3;-5];
A=[-2, 5, -1
   1 , 3,  1 ];
b=[-10;12];
Aeq=[1,1,1];
beq=[7];
x =linprog(-c,A,b,Aeq,beq,zeros(3,1))
value=c'*x

例题二 同样求最大值

线性方程求解例题二

直接参照例题一得出我们的代码

z=[4;3];
A=[2,1;1,1];
b=[10;8];
x=linprog(-z,A,b,[],[],zeros(2,1),[Inf,7])
value=z'*x

例题三,求最小值

线性方程求解,例题四

参照我们例题一写出代码,注意现在就不需要在我们最后的linprog中添加负号了,但是要看到给的式子中是大于号,需要我们进行转化。

c=[2;3;1];
A=[1,4,2;3,2,0];
b=[8;6];
%这里的y就是我们通过后面的函数计算出来的最小值
[x,y]=linprog(c,-A,-b,[],[],zeros(3,1))
value=c'*x

最后写点值得pay attention的东西

  • 1 关于方法中的上下限问题比如说
    a<x1<c
    b<x2<d
    他这个地方格式是这样的
    lb=[a,b] ub=[c,d]

  • 2 zeros(a,b) 生成一个大小为a*b数值都是0的矩阵

  • 3 Inf 无穷大

  • 4 -Inf 无穷小

  • 5如果是写了一个matlab脚本函数,最后的最后如果你是以;结尾的,那么会报这个Optimization terminated错误,可以稍微注意一下。

应该差不多了。关于数学建模的线性规划部分,用matlab进行解决的话应该以上就是可以的。
当然由于我是matlab新手,再加上线代学过好久了,所以可能文章中有不对的地方,如果大家看到,请一定给我评论或者给我简信,在这里先谢谢大家~

相关文章

  • 《一》线性规划的解法——matlab学习

    数学建模我们队伍中我主要负责程序编码部分,所以在这里做学习记录,方便之后的查找使用。我会尽量的做一个数学建模系列的...

  • 《二》线性规划的解法——matlab学习

    这个专题是matlab的学习,所以这个专题的重点在于如何用matlab来解决这个问题,而具体matlab是如何解决...

  • 数学建模📒

    一、非线性规划 非线性规划问题没有统一的解法,只能依据问题和模型特点选择适当的解法。不过,大多数解法都是数值迭代算...

  • 2019-07-15

    今天继续搞数学建模,用matlab改写非线性规划问题

  • PIMS 101:从零搭建Buy-Sell 模型(2)

    本文讲着重讲解线性规划,线性空间,行,列,系数的联系。 补充内容:如何使用matlab求解线性规划问题 小测验: ...

  • 数学建模习题

    1.1 首先将线性规划转换成matlab的标准形式 输出: 1.2 求解求解这类问题,可以转化为线性规划来解决模型...

  • 【数学建模算法】(22)对策论(下)

    4.零和对策的线性规划解法 当且时,通常采用线性规划方法求解零和对策问题。局中人Ⅰ选择混合策略的目的是使得: 其中...

  • 【数学建模算法】(2)线性规划的应用

    上一部分我们了解了线性规划的定义,基本形式和Matlab实现,那么这一部分我们介绍一些线性规划的应用。 可转化为线...

  • matlab解决线性规划

    线性规划 线性规划(Linear programming,简称LP),是运筹学中研究较早、发展较快、应用广泛、方法...

  • 用python的pulp库解决线性规划问题

    本文会介绍怎么用python解决线性规划问题,为什么要用python而不是matlab和lingo呢?因为matl...

网友评论

本文标题:《一》线性规划的解法——matlab学习

本文链接:https://www.haomeiwen.com/subject/zlfssttx.html