【数学建模】线性规划问题及Matlab求解
问题一
题目:
求解下列线性规划问题
解答:
先将题目中求最大值转化为求最小值,则有
我们就可以得到系数列向量:
我们对问题中所给出的不等式约束进行标准化则得到了
就有不等式约束条件下的变系数矩阵和常系数矩阵分别为:
等式约束条件下的系数矩阵为
然后我们利用求解器对该线性规划问题进行求解,解决该问题的Matlab代码为:
f=[-3;1;1];
a=[1,-2,1;4,-1,-2];
b=[11;-3];
aeq=[-2,0,1];
beq=1;
lb=zeros(3,1);%表示下界是一个三行一列的数组且全为0
[x,fval]=linprog(f,a,b,aeq,beq,lb);
y=-fval;%将最小值转化为最大值
disp(x);%输出各个x的取值
disp(y);%输出最大值
最终答案为:

问题二
题目:
求解下列线性规划问题
解答:
由于本题中目标函数的自变量都带有绝对值号,所以我们需要再目标函数中去掉绝对值符号,让目标函数变为标准形式,在这里我们设,不难看出
,其中
均大于0
于是目标函数被我们改写成了:
目标函数的系数列向量就能被表示出来:
等式约束条件也被改写为:
从而得到系数矩阵和常数矩阵为:
同时由于我们引进了新的变量,且这八个未知数都为大于0的值。
然后我们利用求解器对该线性规划问题进行求解,解决该问题的Matlab代码为:
M=[1;2;3;4];
f=[M;M];
P=[1,-1,-1,1;1,-1,1,-3;1,-1,-2,3];
Aeq=[-P,P];
beq=[0;1;-1/2];
lb=zeros(8,1);
[x,y]=linprog(f,[],[],Aeq,beq,lb);
ff=-y;
uv=x(5:end)-x(1:4);
disp(uv);
disp(ff)
最终答案为:

问题三
题目:
某厂生产三种产品Ⅰ、Ⅱ、Ⅲ。每种产品要经过A、B两道工序加工。设该厂有两种规格的设备能完成A工序,他们以表示;有三种规格的设备能完成B工序,它们以
表示,产品Ⅰ可在A、B任何一种规格设备上加工。产品Ⅱ可在任何规格的A设备上加工,但完成B工序时,只能在
设备上加工;产品Ⅲ只能在
设备上加工。已知在各种机床涉笔的单件工时、原材料费、产品销售单价、各种设备有效合时以及满负载操作时机床设备的费用如下表所示,求最优的生产计划,使该厂利润最大。
| 设备 | 产品 | 设备有效台时 | 满负荷时的设备费用/元 | ||
| Ⅰ | Ⅱ | Ⅲ | |||
| 5 | 10 | 6000 | 300 | ||
| 7 | 9 | 12 | 10000 | 321 | |
| 6 | 8 | 4000 | 250 | ||
| 4 | 11 | 7000 | 783 | ||
| 7 | 4000 | 200 | |||
| 原料费/(元/件) | 0.25 | 0.35 | 0.5 | ||
| 单价/(元/件) | 1.25 | 2.00 | 2.80 | ||
解答:
根据题目所求,不妨设产品Ⅰ在设备上加工的产品件数分别为
,产品Ⅱ在设备
上加工的产品件数分别为
,产品Ⅲ在设备
上加工的产品件数分别为
根据题目我们不难得到利润的目标函数
也就是:
化为求解器的标准形式为
目标函数的系数列向量为
由于每件产品都要经过A,B两步骤,我们就可以得到关于x的三条等式约束关系:
也就是:
系数矩阵和常数矩阵为:
且每台设备的有效台时固定,我们就可以得到对应的不等式约束关系:
则有系数矩阵和常数矩阵为:
不难看出每一个x都是不小于0的,我们就可以得到解决该问题的matlab代码:
f=-[1.25-0.25-300*5/6000;1.25-0.25-321*7/10000;-250*6/4000;-783*4/7000;-200*7/4000;2-0.25-300*10/6000;2-0.25-321*9/10000;-250*8/4000;2.8-0.5-321*12/10000;-783*11/7000];
a=[5,0,0,0,0,10,0,0,0,0;0,7,0,0,0,0,9,0,12,0;0,0,6,0,0,0,0,8,0,0;0,0,0,4,0,0,0,0,0,11;0,0,0,0,7,0,0,0,0,0];
b=[6000;10000;4000;7000;4000];
Aeq=[1,1,-1,-1,-1,0,0,0,0,0;0,0,0,0,0,1,1,-1,0,0;0,0,0,0,0,0,0,0,1,-1];
beq=[0;0;0];
lb=zeros(10,1);
[x,y]=linprog(f,a,b,Aeq,beq,lb);
ff=-y;
format long
disp(x)
disp(ff)
得到的结果是:

但该规划应为整数规划,我们调整代码得到:
f=-[1.25-0.25-300*5/6000;1.25-0.25-321*7/10000;-250*6/4000;-783*4/7000;-200*7/4000;2-0.25-300*10/6000;2-0.25-321*9/10000;-250*8/4000;2.8-0.5-321*12/10000;-783*11/7000];
a=[5,0,0,0,0,10,0,0,0,0;0,7,0,0,0,0,9,0,12,0;0,0,6,0,0,0,0,8,0,0;0,0,0,4,0,0,0,0,0,11;0,0,0,0,7,0,0,0,0,0];
b=[6000;10000;4000;7000;4000];
Aeq=[1,1,-1,-1,-1,0,0,0,0,0;0,0,0,0,0,1,1,-1,0,0;0,0,0,0,0,0,0,0,1,-1];
beq=[0;0;0];
lb=zeros(10,1);
intcon=(1:10);
[x,y]=intlinprog(f,intcon,a,b,Aeq,beq,lb);
ff=-y;
format long
disp(x)
disp(ff)
最终的结果是:

问题四
题目 :
一架货机有三个货舱:前舱、中仓和后舱。三个货舱所能装载的货物的最大质量和体积有限制如下表所示。并且为了飞机的平衡,三个货舱装在的货物质量必须与其最大的容许量成比例。
| 前舱 | 中仓 | 后舱 | |
| 质量限制/t | 10 | 16 | 8 |
| 体积限制/ | 6800 | 8700 | 5300 |
现有四类货物用该货机进行装运,货物的规格以及装运后获得的利润如下表所示
| 质量/t | 空间/( | 利润(元/t) | |
| 货物1 | 18 | 480 | 3100 |
| 货物2 | 15 | 650 | 3800 |
| 货物3 | 23 | 580 | 3500 |
| 货物4 | 12 | 390 | 2850 |
假设:
(1)每种货物都可以无限细分;
(2)每种货物可以分布在一个或者多个货舱内;
(3)不同的货物可以放在同一个货舱内,并可以保证不留空隙;
应如何装运,才能使伙计的飞行利润最大?
解答:
首先我们分别假设货物1到货物4装载在前舱、中仓、后舱的重量分别为
根据表格我们得到了本问题的目标函数
化为标准形式就是
系数列向量为:
根据货舱的质量限制和体积限制我们可以得到三类不等式约束
质量的不等式约束:
体积的不等式约束:
三种货物的质量总量的不等式约束:
综合一起我们得到了全部变量的不等式约束
系数矩阵及常数矩阵为:

由于三个货舱装在的货物质量必须与其最大的容许量成比例,我们可以得到一个等式条件
也就是满足下列两个等式条件:
对应的常系数矩阵为:

不难看出每一个都是不小于0的值。
这样我们就可以得到利用求解器求解该线性规划的matlab代码 :
f1=[3100;3100;3100];
f2=[3800;3800;3800];
f3=[3500;3500;3500];
f4=[2850;2850;2850];
f=-[f1;f2;f3;f4];
a=[1,0,0,1,0,0,1,0,0,1,0,0;0,1,0,0,1,0,0,1,0,0,1,0;0,0,1,0,0,1,0,0,1,0,0,1;480,0,0,650,0,0,580,0,0,390,0,0;0,480,0,0,650,0,0,580,0,0,390,0;0,0,480,0,0,650,0,0,580,0,0,390;1,1,1,0,0,0,0,0,0,0,0,0;0,0,0,1,1,1,0,0,0,0,0,0;0,0,0,0,0,0,1,1,1,0,0,0;0,0,0,0,0,0,0,0,0,1,1,1];
b=[10;16;8;6800;8700;5300;18;15;23;12];
a1=[8,-5,0];
a2=[0,1,-2];
Aeq=[a1,a1,a1,a1;a2,a2,a2,a2];
beq=[0;0];
lb=zeros(12,1);
[x,y]=linprog(f,a,b,Aeq,beq,lb);
ff=-y;
format long
x1=sum(x(1:3));
x2=sum(x(4:6));
x3=sum(x(7:9));
x4=sum(x(10:12));
x1=roundn(x1,-4);
x2=roundn(x2,-4);
x3=roundn(x3,-4);
x4=roundn(x4,-4);
ff=roundn(ff,-4);
disp(x1)
disp(x2)
disp(x3)
disp(x4)
disp(ff)
值得指出的是下列代码的作用是对x1四舍五入到指定的四位小数
x1=roundn(x1,-4);
最后得到的结果是:

问题五
题目:
某部门在今后五年内考虑给下列项目投资,已知:
项目A,从第一年到第四年每年年初都需要投资,并于次年末回收本利115%;
项目B,从第三年初需要投资,到第五年末能回收本利125%,但规定最大投资额不超过4万元;
项目C,第二年年初需要投资,到第五年末能回收本利140%,但规定最大投资额不超过3万元;
项目D,五年内每年初可购买公债,于当年末归还,并加利息6%。
该部门现有资金10万元,问它应如何确定给这些项目每年的投资额,使得到第五年末拥有的资金的本利总额最大?
解答:
只有该项目组每年都把资金全部投入出去,最后得到的本利总额才能最大。
假设第一年年初给项目A和项目C分别投资元,我们就可以得到:
则第二年可以分配的资金为元,
假设第二年年初给项目A、项目C和项目D分别投资元,我们就可以得到:
则第三年可以分配的资金为元
假设第三年年初给项目A、项目B和项目D分别投资元,我们就可以得到:
则第四年可以分配的资金为元
假设第四年年初给项目A和项目D分别投资元,我们就可以得到:
第五年可以分配的资金为
假设第五年初给项目D投资元,我们可以得到:
我们可以得到最后的本利总额也就是目标函数为:
化为求解器中的标准形式为:
系数列向量为
根据上述的分析过程我们可以得到不等式约束为:
对应的系数矩阵和常数矩阵为:

相应的等式约束条件为:
得到相应的常系数矩阵和常数矩阵为:
根据上述过程我们就能得到解决该问题的matlab代码:
f=-[0;0;01.4;0;0;1.25;0;1.15;0;1.06];
a=[0,0,0,1,0,0,0,0,0,0,0;0,0,0,0,0,0,1,0,0,0,0];
b=[30000;40000];
Aeq=[1,1,0,0,0,0,0,0,0,0,0;0,-1.06,1,1,1,0,0,0,0,0,0;-1.15,0,0,0,-1.06,1,1,1,0,0,0;0,0,-1.15,0,0,0,0,-1.06,1,1,0;0,0,0,0,0,-1.15,0,0,0,-1.06,1];
beq=[100000;0;0;0;0];
lb=zeros(11,1);
[x,y]=linprog(f,a,b,Aeq,beq,lb);
ff=-y;
format long
disp(x)
disp(ff)
最终的答案为:

问题六
题目:
食品厂用三种原料生产两种糖果,糖果的成分要求和销售价见下表
| 原料A | 原料B | 原料C | 价格/(元/kg) | |
| 高级奶糖 | 24 | |||
| 水果糖 | 15 |
各种原料的可供量和成本见下表:
| 原料 | 可供量/kg | 成本/(元/kg) |
| A | 500 | 20 |
| B | 750 | 12 |
| C | 625 | 8 |
该厂根据订单至少需要生产600kg高级奶糖、800kg水果糖,为求最大利润,试建立线性规划模型并求解。
解答:
不妨假设高级奶糖和水果奶糖所含有原料A、B、C的质量分别为
根据题目我们可以得到所求的目标函数
对上该式进行化简我们可以得到
化为标准形式则为
系数列向量为:
根据题目我们一共发现了下述的三类不等式约束关系:
根据原料的可供量我们可以得到以下的不等式约束关系:
根据两种糖中原料占比的关系我们可以得到以下的不等式约束关系:
根据订单量的要求我们得到以下的不等式约束关系:
对以上三类的不等式约束进行化简并合并,我们可以得到所有的不等式约束关系:
对应的变系数矩阵和常数矩阵为:
不难看出三种原料在两种糖中的使用量均不为0
根据上述分析我们可以的到计算该线性规划模型的matlab代码
f=-[4;12;16;-5;3;7];
a=[1,0,0,1,0,0;0,1,0,0,1,0;0,0,1,0,0,1;-1,1,1,0,0,0;1,-3,1,0,0,0;-1,-1,9,0,0,0;0,0,0,3,-2,-2;0,0,0,-2,3,-2;0,0,0,3,3,-17;-1,-1,-1,0,0,0;0,0,0,-1,-1,-1];
b=[500;750;625;0;0;0;0;0;0;-600;-800];
lb=zeros(6,1);
[x,y]=linprog(f,a,b,[],[],lb);
ff=-y;
format long
disp(x)
disp(ff)
最后得到的答案是:

相关文章:
【数学建模】线性规划问题及Matlab求解
问题一 题目: 求解下列线性规划问题 解答: 先将题目中求最大值转化为求最小值,则有 我们就可以得到系数列向量: 我们对问题中所给出的不等式约束进行标准化则得到了 就有不等式约束条件下的变系数矩阵和常系数矩阵分别为: 等式…...
【JavaWeb后端学习笔记】Spring全局异常处理器
在程序运行时,不可避免的会出现异常。在三层开发架构中,当Mapper层出现异常、如果不进行处理会抛给Service层,如果Service层也不处理则会抛给Controller层,通常Controller层有许多接口,如果对每个接口单独处理异常&…...
PT8M2102 触控型 8Bit MCU
1 产品概述 ● PT8M2102 是一款基于 RISC 内核的8位 MTP 单片机,内部集成了电容式触摸感应模块、TIMER,PWM、LVR、LVD、WDT等外设,其主要用作触摸按键开关,广泛适用于触控调光、电子玩具、消费电子、家用电器等领域,具…...
4. React 性能优化技巧:如何让你的应用更快
在构建大型应用时,性能优化是一个非常重要的话题。React 提供了许多优化工具,帮助我们提高应用的渲染速度和响应能力。本文将分享一些常见的 React 性能优化技巧。 4.1. 使用 React.memo 缓存组件 当组件的 props 没有变化时,React 默认不会…...
pytest中使用conftest做测试前置和参数化
pytest中比较高阶的应用是,使用conftest去做测试前置工作、测试收尾工作和参数化。conftest是pytest的一个组件,用于配置测试环境和参数。通过conftest, 可以创建一个可复用的测试配置文件,以便在多个测试模块之间共享配置信息。即࿰…...
Spring Boot 中使用 @Transactional 注解配置事务管理
事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污…...
MATLAB 建筑顶面面积计算(95)
MATLAB 建筑顶面面积计算(95) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 根据给出的建筑顶面点云,计算建筑面积,具体的方法实现和结果如下: 二、算法实现 1.代码 代码如下(示例): % 从 PLY 文件读取点云数据 filename = D:\shuju\屋顶2.ply; % 替换为你的…...
Linux网络编程之---组播和广播
一.组播 1.概述 单播地址标识单个IP 接口,广播地址标识某个子网的所有IP 接口, 多播地址标识一组IP 接口。单播和广播是寻址方案的两个极端(要么单个要么全部), 多播则意在两者之间提供一种折中方案。多播数据报只应该由对它感兴趣的接口接收…...
Apache Dolphinscheduler可视化 DAG 工作流任务调度系统
Apache Dolphinscheduler 关于 一个分布式易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。 DolphinScheduler 的主要特性如下: 易于部署,提供四种部署方式&am…...
docker 部署共享文档ZFile
1、拉取ZFile镜像 docker pull crpi-k5k93ldwfc7o75ip.cn-hangzhou.personal.cr.aliyuncs.com/tirling-pdf/zfile:latest 2、创建文件夹和进入文件夹 mkdir zfile && cd zfile 3、创建docker-compose.yml配置文件。 vim docker-compose.yml version: 3.3 service…...
面试题之JVM
一、Java虚拟机基本概念 题目1:Java虚拟机(JVM)是什么? 选项: A. 一种编程语言 B. 一个可以执行Java字节码的虚拟机进程 C. 一个操作系统 D. 一个数据库 参考答案:B 解析:Java虚拟机是一个可…...
二叉树的深搜(不定期更新。。。。。)
二叉树的深搜 验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左 子树 只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉…...
WebLLM Chat:无服务器、私密的AI聊天体验
简介 什么是 Web-LLM ? Web-LLM 是一个高性能的浏览器内语言模型推理引擎,允许用户在没有服务器支持的情况下直接在网页浏览器中进行语言模型推理。它利用 WebGPU 进行硬件加速,从而实现强大的 LLM 操作。Web-LLM 完全兼容 OpenAI API,支持…...
C#中的模拟服务器与客户端建立连接
创建一个控制台项目,命名为Server,模拟服务器端。在同一个解决方案下,添加新项目,命名为Client,模拟客户端。在服务器端与客户端之间建立TCP连接,并在客户端发送消息,在服务器端输出。 Server项…...
【深度学习】利用Java DL4J 构建和训练医疗影像分析模型
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s…...
application.yml 和 bootstrap.yml
在 Spring Boot 中,application.yml 和 bootstrap.yml 都是用来配置应用程序的属性文件,通常用于环境配置、服务配置等。但是,它们有一些不同的用途和加载顺序。以下是它们之间的主要区别: 1. application.yml: 主要…...
使用uniapp开发小程序场景:在百度地图上调用接口返回的设备相关信息并展示
首先在百度地图开发者平台注册微信小程序开发密钥下载百度地图SDK-bmap-wx.min.js,下载地址在项目入口index.html页面进行引入页面中进行调用,代码示例如下<map id"map" longitude"108.95" latitude"34.34" scale"3" :m…...
ubuntu22.04 使用可以用的镜像源获取你要的镜像
默认的是不行的 不管pull啥镜像 仍然会出现这个错误 Error response form daemon:Get "https://registry-1.docker.io/v2": net/http: request canceled while waiting for connection (Client.Timeout exceeded while await) 操作方法是 如果在目录没有/etc/docker…...
Flume——sink连接hdfs的参数配置(属性参数+时间参数)
这可不是目录 配置文件官网说明属性参数时间参数 配置文件官网说明 可以参考官网的说明 属性参数 属性名称默认值说明channel-type-组件类型名称,必须是hdfshdfs.path-HDFS路径,例如:hdfs://mycluster/flume/mydatahdfs.filePrefixFlumeDa…...
python+docker实现分布式存储的demo
test.py代码 #test.py from flask import Flask, request, jsonify import requests import sys import threadingapp Flask(__name__)# 存储数据 data_store {}# 节点列表,通过环境变量传入 nodes [] current_node Noneapp.route(/set, methods[POST]) def …...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
