数学建模学习第一节:线性规划基本原理与代码实现

  • Post author:
  • Post category:其他





写在前面


因为要参加数学建模,所以在自我学习的过程中,将学习的记录以博客的形式发出来,希望大家监督



一、线性规划模型是什么?


线性规划(Linear Programming 简记为LP)是数学规划的一个重要分支。

定义:目标函数及约束条件(记为 s.t.)均为线性函数,则该种建模问题便被称为线性规划问题。



二、相关问题



1.引例

在这里插入图片描述



2.解决方案


1.不难发现,该类问题的目标十分明确,即所求利润最大,或所达到的收益最大,通过对设生产x1台甲机床和x2台乙机床,可以得到相关决策变量x1和x2,相关约束条件为生产每台机床所消耗的A、B、C三种机器的每日工作用时。



3.公式呈现

设每天生产x1台甲机床,x2台乙机床;则有公式如下:

在这里插入图片描述

抽象相关问题可得通解公式如下,其中线性规划问题的数学标准型是取最大值,但Matlab中的相关数学公式的标准型求出的是最小值,后文会有所提及。


所以,一定要注意最大最小值的相关符号转换



一、数学标准型公式:

在这里插入图片描述

二:Matlab中的数学标准型

在这里插入图片描述


注意到其中求的是最小值,且所有约束条件需采用小于号


备注:C矩阵为目标函数中决策变量系数,如max(z)=3X(1)+4X(2),则相关矩阵为[3,4](转置前) A为约束条件中不等式的每个决策变量函数前面的悉数,Aeq为约束条件中等式的每个决策变量前面的系数,Beq为等式右侧系数,lb和ub为每个决策变量的上下界



4.Matlab程序求解


线性规划问题,若无取整等限制,则可直接利用Matlab中的

linprog

函数进行求解。


在这里插入图片描述



5.Matlab程序求解案例

在这里插入图片描述

观察可得,需使用上述介绍的第三种命令



代码:

f=[2;3;-5];
A=[-2,5,-1;1,3,1];
B=[-10,12];
aeq=[1,1,1];
beq=7;
lb=zeros(3,1);
[x,y]=linprog(f,A,B,aeq,beq,lb);
x,y=-y



总结


以上是线性规划问题的基本原理与代码实现的记录,千里之行,始于足下,希望接下来可以坚持静心做下来,这一年总是很赶,也总是很浮躁,希望可以通过备战数学建模的过程让自己静下心来。



版权声明:本文为qjyws原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。