Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数学建模线性规划实例及详细解答(MATLAB代码)[通俗易懂]

数学建模线性规划实例及详细解答(MATLAB代码)[通俗易懂]

作者头像
Java架构师必看
发布于 2022-08-03 00:21:30
发布于 2022-08-03 00:21:30
1.2K00
代码可运行
举报
文章被收录于专栏:Java架构师必看Java架构师必看
运行总次数:0
代码可运行

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说数学建模线性规划实例及详细解答(MATLAB代码)[通俗易懂],希望能够帮助大家进步!!!

前言:

 最近在学习数学建模的算法与应用,以一本较好的书籍为指导(《数学建模算法与应用》),不过对于我来说,我主要去攻MATLAB代码及建模方法,当然书里还有lingo代码解析。对于这本书,我感觉还是蛮难啃的,就像今天我写的这篇博客来说,其中最后一题就是我啃了不知道有多久,最后我老老实实的把每一步都写在纸上,然后一步一步的用MATLAB去试,最后终于搞懂了,此时心情不可言喻啊😃。如此,我来分享一下我学到的东西吧。

1.题目1:

先来一道简单的吧:

这是让大家熟悉一下对MATLAB代码的😄

1.1.MATLAB代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
f=[-3,1,1];
A=[1,-2,1;4,-1,-2]
b=[11;-3];
Aeq=[-2,0,1];
beq=[1];
lb=zeros(3,1);
[x,fval]=linprog(f,A,b,Aeq,beq,lb,[])
x=-x                                                 %上述转换为求最小值,再提个符号变为上述求得目标值

只听到从架构师办公室传来架构君的声音:

独立扬新令,千营共一呼。有谁来对上联或下联?

再来一道相对较难的:

不知道大家看到绝对值会出现什么反应。我们可以定义其它的变量来代替绝对值里面的数,比如用( x 1 x_{1} x1​+ x 2 x_{2} x2​)/2表示绝对值 x 1 x_{1} x1​当然这里的 x 1 x_{1} x1​更上面的不一样。然而,去掉绝对值的数,我们可以用( x 1 x_{1} x1​- x 2 x_{2} x2​)/2,其中,每个数都大于等于0,接下来,我们可以上代码了。

1.2.MATLAB代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
f=[1/2,1/2,1,1,3/2,3/2,2,2];
Aeq=[1/2,-1/2,-1/2,1/2,-1/2,1/2,1/2,-1/2;1/2,-1/2,-1/2,1/2,1/2,-1/2,-3/2,3/2;1/2,-1/2,-1/2,1/2,-1,1,3/2,-3/2];
beq=[0;1;-1/2];
lb=zeros(8,1);
[x,fval]=linprog(f,[],[],Aeq,beq,lb,[])

好了,我相信大家看到这里应该对相关的MATLAB代码熟悉了吧,那现在我们来实战一下。

2.题目2:

 解:设 x 1 x_{1} x1​, x 2 x_{2} x2​分别表示在产品I中通过设备 A 1 A_{1} A1​, A 2 A_{2} A2​的机器个数,同样 x 3 x_{3} x3​, x 4 x_{4} x4​, x 5 x_{5} x5​,分别表示在产品I中通过设备 B 1 B_{1} B1​, B 2 B_{2} B2​, B 3 B_{3} B3​的机器个数。 x 6 x_{6} x6​, x 7 x_{7} x7​, x 8 x_{8} x8​,分别在产品II中表示通过设备 A 1 A_{1} A1​, A 2 A_{2} A2​, B 1 B_{1} B1​的机器个数, x 9 x_{9} x9​表示在产品III中 A 2 A_{2} A2​机器的个数。

有这样的等式: x 1 x_{1} x1​+ x 2 x_{2} x2​+ x 3 x_{3} x3​= x 4 x_{4} x4​+ x 5 x_{5} x5​, x 6 x_{6} x6​+ x 7 x_{7} x7​= x 8 x_{8} x8​。

(图来源《数学建模算法与应用习题解答》)

对于该MATLAB代码我感觉是有点难度,在此小编就不在展示了哦,大家实力非常强,所以我就不展示了。😄😄😄

再来一道代码详细的题目:

在此,小编就不建模了,我给出一个好的建模解析给你们:

对于在markdown中,其数学公式太难打了,所以,我就发一张这样的笔记,给大家看一下哈,这是我将每一步写成有数字的建模方式,有了这样的,我们就可以更好的写代码。(字有点丑,大家将就一下哈)

2.1.代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%目标函数
c=[3100;3800;3500;2850];     %由目标函数可知有12个未知数,且有一些规律,大家可以自行找一下
c=c*ones(1,3);               %使c变成一个43列的函数,并且,刚刚对应于目标函数未知量前面的系数
c=c(:);                    %将c以列排序
%接下来就看约束条件1,可看出未知数前面系数是1,且需要构造一个下面的数组
a1=zeros(3,12);
for i=1:3
    a1(i,4*i-3:4*i)=1;          %如果大家看不懂的话,可以去MATLAB上试一下这段代码最后数组的结果
end
b1=[10 16 8]';
%看约束条件2
a2=zeros(4,12);
for i=1:4                             
    a2(i,i:4:12)=1;                    %如果大家看不懂的话,可以去MATLAB上试一下这段代码最后数组的结果
end
b2=[18 15 23 12]';
%看约束条件3
bb=[480;650;580;390];
a3=zeros(3,12);
for i=1:3
    a3(i,4*i-3:4*i)=bb;           %如果大家看不懂的话,可以去MATLAB上试一下这段代码最后数组的结果
end
b3=[6800 8700 5300]';
a=[a1;a2;a3];
b=[b1;b2;b3];
%看平衡条件
aeq=zeros(2,12);             %如果大家看不懂的话,可以去MATLAB上试一下这段代码最后数组的结果
aeq(1,1:4)=1/10;
aeq(1,5:8)=-1/16;
aeq(2,5:8)=1/16;
aeq(2,9:12)=-1/8;
beq=[0;0];
lb=zeros(12,1);
[x,y]=linprog(-c,a,b,aeq,beq,lb,[])
x=reshape(x,[4,3])         %解出的x值以列排序,将它重组为3*4的数组
x=sum(x')                  %表示舱口1,2,3分别放入货物的总重量
y=-y;                  %目标函数最终的值

啊!!!写这篇博客让我承受了莫大的打击,先是数学公式编辑的学习,再到放弃该学习,最后又是直接放图片。再则自己为了让读者易懂,写了几页的草稿…在此,我好像有点累了,我好像要去休息了。我想在此对大家说一句保护好身体哦,还有就是多多支持!!!😄😄😄

好了,这篇博客也写完了,希望对大家有帮助!!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-012,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数学建模--非线性规划模型+MATLAB代码保姆式解析
非线性规划,要想深刻的理解并且运用这个模型,我们学习者必须要了解什么是线性,什么是非线性,简单的来讲:数学里面的一次函数关系就是线性的关系,其他的函数关系就是非线性的关系,例如,我们平常常见的x^2,logx,sinx这些都是非线性的,我们的这个非线性规划模型要解决的就是这样的问题,这个是我们从宏观上对于我们要学习的非线性规划问题做一个大致的了解。
阑梦清川
2025/02/24
1170
数学建模--非线性规划模型+MATLAB代码保姆式解析
MATLAB求解线性规划(含整数规划和0-1规划)问题[通俗易懂]
线性规划是数学规划中的一类最简单规划问题,常见的线性规划是一个有约束的,变量范围为有理数的线性规划。如:
全栈程序员站长
2022/09/18
1.4K0
MATLAB求解线性规划(含整数规划和0-1规划)问题[通俗易懂]
Matlab求解非线性规划(fmincon函数的使用)[通俗易懂]
最近写文章需要用到fmincon函数做优化,于是抽空学习一下;按照惯例,继续开个博文记录一下学习的过程
全栈程序员站长
2022/09/02
1.7K0
数学建模--深入剖析线性规划(模型全方位解读+代码分析)
我们上面的假设的意义何在呢?假设每一笔交易的投资金额足够大,我们就只需要按照一定的费率付交易费,这样就把原来的分段函数的两种情况变成了只有现在的一种情况,这样就简化了我们的模型,这就是模型假设的意义,相信你已经get到了!
阑梦清川
2025/02/24
1470
数学建模--深入剖析线性规划(模型全方位解读+代码分析)
数学建模算法学习——各类模型算法汇总[通俗易懂]
其中 c 和 x 为 n 维列向量, A 、 Aeq 为适当维数的矩阵, b 、 beq 为适当维数的列向量。
全栈程序员站长
2022/09/10
1.2K0
数学建模算法学习——各类模型算法汇总[通俗易懂]
Matlab求解非线性规划(fmincon函数的使用)
最近写文章需要用到fmincon函数做优化,于是抽空学习一下;按照惯例,继续开个博文记录一下学习的过程
小黑鸭
2020/11/24
11.6K0
Python数学建模系列(一):规划问题之线性规划
​ 线性规划求解需要清晰两部分,目标函数(max, min) 和 约束条件 ,求解前应转化为标准形式:
海轰Pro
2021/08/31
1.5K0
Python数学建模系列(一):规划问题之线性规划
Matlab遗传算法工具箱的使用及实例(非线性规划)
本文将介绍MATLAB遗传算法工具箱求解非线性规划问题。在阅读本文之前,建议读者阅读上一期“MATLAB遗传算法工具箱求解线性规划问题”。文章传送门:
用户9925864
2022/07/27
1K0
Matlab遗传算法工具箱的使用及实例(非线性规划)
Matlab遗传算法工具箱的使用及实例(线性规划)
在使用遗传算法(Genetic Algorithm,GA)之前,你得了解遗传算法是干什么的。遗传算法一般用于求解优化问题。遗传算法最早是由美国的 John holland于20世纪70年代提出,该算法是根据大自然中生物体进化规律而设计提出的。是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。该算法通过数学的方式,利用计算机仿真运算,将问题的求解过程转换成类似生物进化中的染色体基因的交叉、变异等过程。在求解较为复杂的组合优化问题时,相对一些常规的优化算法,通常能够较快地获得较好的优化结果。
用户9925864
2022/07/27
1.8K0
Matlab遗传算法工具箱的使用及实例(线性规划)
用Python求解线性规划问题
线性规划简介及数学模型表示线性规划简介一个典型的线性规划问题线性规划模型的三要素线性规划模型的数学表示图解法和单纯形法图解法单纯形法使用python求解简单线性规划模型编程思路求解案例例1:使用scipy求解例2:包含非线性项的求解从整数规划到0-1规划整数规划模型0-1规划模型案例:投资的收益和风险问题描述与分析建立与简化模型
用户3577892
2020/06/12
6.8K0
用Python求解线性规划问题
建模 python_整数规划建模例题
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说建模 python_整数规划建模例题,希望能够帮助大家进步!!!
Java架构师必看
2022/07/19
1.2K0
建模 python_整数规划建模例题
MATLAB基操复习
3. 导数使用diff(f,v,n)对 f(v)=v^{t-1} 求 n 阶导 \frac{d^nf}{d^nv} ,n缺省时,默认为1,diff(f)默认求一阶导数。
Cloud-Cloudys
2020/07/07
1.7K0
数值分析(一) 牛顿插值法及matlab代码
  刚上完数值分析课在其中学习了不少的知识,课后还做了一些课程实验主要都是利用matlab编程来解决问题,接下先讲插值法中的牛顿插值法
全栈程序员站长
2022/09/07
4.5K0
数值分析(一) 牛顿插值法及matlab代码
Python数学建模系列(二):规划问题之整数规划
整数规划求解的基本框架是分支定界法,首先去除整数约束得到"松弛模型"。使用线性规划的方法求解。
海轰Pro
2021/09/06
2.2K0
用 Python 做数学建模
数学建模中,大多数人都在用MATLAB,但MATLAB不是一门正统的计算机编程语言,而且速度慢还收费,最不能忍受的就是MATLAB编辑器不支持代码自动补全。python对于数学建模来说,是个非常好的选择。python中有非常著名的科学计算三剑客库:numpy,scipy和matplotlib,三者基本代替MATLAB的功能,完全能够应对数学建模任务。
KEVINGUO_CN
2020/03/16
2K0
MATLAB优化函数fmincon解析[通俗易懂]
[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options);
全栈程序员站长
2022/07/02
2K0
MATLAB优化函数fmincon解析[通俗易懂]
matlab求解下面的线性规划和整数规划[通俗易懂]
  本篇博客主要讲了用matlab实际求解整数规划问题,目前还没有时间去自己实现整数规划算法,只能通过调用MATLAB的函数去实现。
全栈程序员站长
2022/09/14
5040
数学建模暑期集训15:matlab求解多目标规划模型
多目标规划模型的求解方法 1.传统优化算法 1.1主要目标法 1.2分层序列法 1.3加权法 1.4理想点法 2.智能优化算法 遗传算法等… 例题实战:MATLAB中多目标遗传算法求解法 通用形式 例1: matlab求解: Fun.m function y=Fun(x) y(1)=x(1)^4-10*x(1)^2+x(1)*x(2)+x(2)^4-x(1)^2*x(2)^2; y(2)=x(2)^4-x(1)^2*x(2)^2+x(1)^4+x(1)*x(2);
zstar
2022/06/14
7130
数学建模暑期集训15:matlab求解多目标规划模型
数学建模--Matlab求解线性规划问题&&两种类型&&实际应用
(1)约束条件的符号一致的意思就是指的是这个约束条件里面的,像这个下面的实例里面的三个约束条件,都是小于号,这个我称之为约束条件符号一致;
阑梦清川
2025/02/24
850
数学建模--Matlab求解线性规划问题&&两种类型&&实际应用
数学建模(7)动态规划以及matlab实现
运筹学分支,求解多阶段决策过程最优化问题的数学方法 思路将复杂的多阶段决策问题分解为一系列的简单,离散的单阶段决策问题,顺序求解法 在考虑本阶段最优的情况下兼顾整体最优的解决方法 主要处理离散连续型问题 特点没有特定的算法,需要具体问题具体分析 无后效性马尔科夫性,系统从某个阶段后的发展仅与本阶段所处的状态和以后的决策所做的决策所决定,与之前的状态无关。 具体问题企业管理,资源分配,路径优化,排序问题,最优控制
全栈程序员站长
2022/11/15
7680
数学建模(7)动态规划以及matlab实现
推荐阅读
相关推荐
数学建模--非线性规划模型+MATLAB代码保姆式解析
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验