数学建模--Matlab求解线性规划问题两种类型实际应用

1.约束条件的符号一致

(1)约束条件的符号一致的意思就是指的是这个约束条件里面的,像这个下面的实例里面的三个约束条件,都是小于号,这个我称之为约束条件符号一致;

(2)下面的就是上面的这个线性规划问题的代码,我们首先要把这个目标函数的系数矩阵表示出来,就是这个代码里面的第三行的c向量,然后表示这个约束条件的系数矩阵,因为第三个约束条件是x2<=7.因此这个x1前面的系数就是0,b向量表示的就是这个等号右边的数据;

clc,clear;pro=optimproblem("ObjectiveSense","max");c=[4,3];a=[2,1;1,1;0,1];b=[10;8;7];x=optimvar("x",2,"LowerBound",0);pro.Objective=c*x;pro.Constraints=a*x<=b;[s,v]=solve(pro);xx=s.x

 (3)optimvar表示的就是创建优化变量,在这个问题里面,x1和x2就是优化变量,因为这个优化变量的最小值是0,所以在这个代码里面,我们使用这个lowerbound表示的就是最小边界值,2表示的就是这个问题里面的优化变量的数量是两个;

(4)pro就是我们给这个问题起的一个名字,这个名字变量是可以随意命名的,但是这个过程中的名字要保持一致,c*x表示的就是这个目标函数,我们通过这个矩阵的乘法可以得到这个目标函数

(5)注意事项:上面这个里面老师讲解的时候使用的就是乘号,但是我自己认为应该使用点乘的操作,因为之前我们说过这个向量的乘法,应该使用点乘,但是这个如果使用点乘就会报错;

报错的原因就是这优化变量矩阵x表示的就是一个列向量,就是这个x1x2实际上是2行1列的矩阵,这个点乘的时候矩阵的维数(几行几列)必须是一样的,这个也是报错的提示出来的错误信息;

(6)为什么会出现这个情况,我们可以打开这个optimvar函数的帮助文档,这个里面就有一个例子,说的就是这个创建的是3*1的矩阵,因此,我们可以理解为这个函数创建的矩阵默认就是列向量;

实际上这个matlab里面输入一个向量,这个向量会被默认为是行向量,这个和该函数的默认方式还是有所区别的;

 

(7)同理这个约束条件,就是a*x<=b这个就是组合之后会出现我们现在的约束条件,使用solve函数解决这个pro问题,返回值两个,一个就是s,即两个优化变量的值,val指的就是这个目标函数的最值;

因为这个求解的是最大值,但是这个默认的是最小值,因此在这个optimproblem函数里面,我们使用到了这个objectsence表示的就是相反的意思,意思就是原来默认的是求解最小值,我们使用这个指令之后就会求解出来这个目标函数的最大值,这个也是不需要我们自己记住的,因为这个在我们键入这个optimproblem之后,这个会默认的显示出来,我们只需要使用tab键补充完整就可以了

 

2.约束条件的符号不一致

(2)这个想必你就已经知道了,这个符号不一致的时候,就是需要我们挨个把这个约束条件给罗列出来,而且这个matlab里面不支持这种符号不相同的方程组,只能放在不同的约束条件里面,无法使用一个约束条件统一表示出来,但是python可以;

(2)这个约束条件是写出来了3个,sum就是求解这三个优化变量的和,第二个和第三个就是普通的大于小于条件约束,这个变量x1中的1必须加上括号,否则运行的时候这个系统就会报错,表示这个变量无法识别;

 

(3)p1,p2,p3就是我们给这个约束条件起的名字,上一个题目是只有一个式子就可以表示这三个约束条件,因此我们只写出来了pro.constraints没有写后面的,但是这个里面我们使用的是多个式子,方便区分,我们必须给这三个约束条件命名;

clc,clear;pro=optimproblem("ObjectiveSense","max");c=[2,3,-5];x=optimvar("x",3,"LowerBound",0);pro.Objective=c*x;pro.Constraints.p1=sum(x)==7;pro.Constraints.p2=2*x(1)-5*x(2)+x(3)>=10;pro.Constraints.p3=x(1)+3*x(2)+x(3)<=12;[s,v]=solve(pro)xx=s.x

3.模型的应用

(1)这个就是一个仓库的租借问题;

 (2)

(3)我们通过对于这个模型的分析决定定义4*4的矩阵,这个每一个元素的含义上面有相应的说明,我们使用的就是无符号的,纯数学语言,使用通式进行表示这些变量;

 

(4)这个里面出现了一种符号,x(1,2:4)表示的就是这个矩阵里面的第一行的第二个,第三个和第四个,前面的sum元素就表示对于这三个元素进行求和;

x(1,:)这个就是取出来第一行的元素,哪些列呢,就是1,2,3,4,5一直到最后,我们就可以使用这个里面的冒号进行标识;

(5) 这个里面的问题会有什么,这个下面的就是我自己遇到的问题,这个目标函数我最开始是写了两行的,就是下面这样的,但是无法求解出来正确的结果,这个不是我们语法问题,而是这个换行的格式问题,我们可以写在一行,也可以使用下面的方法:即把加号放在末尾,加上三个点,系统会识别为蓝色的,这样就可以把这两行的内容连接在一起了;

(6)代码自测:

clc,clear;pro=optimproblem;x=optimvar('x',4,4,'LowerBound',0);pro.Objective=2800*sum(x(:,1))+4500*sum(x(1:3,2))+...
6000*sum(x(1:2,3))+7300*x(1,4);pro.Constraints.con=[sum(x(1,:))>=15
sum(x(1,2:4))+sum(x(2,1:3))>=10
x(1,3)+x(1,4)+x(2,2)+x(2,3)+x(3,1)+x(3,2)>=20
x(1,4)+x(2,3)+x(3,2)+x(4,1)>=12];[sol,val]=solve(pro)xx=sol.x

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/34832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的3次软考高项通关之旅

1、缘起 初次听说软考是在2022年下半年了&#xff0c;软考的高级分为很多种&#xff0c;我起先想报考高级架构师&#xff0c;但是架构师一年才考一次&#xff0c;如果一次考不过得再准备一年&#xff0c;时间对我来说太长了&#xff0c;于是我决定报考一年考两次的高项。对于国…

iPhone怎么恢复删除的数据?几款顶级iPhone数据恢复软件

从iOS设备恢复数据。 对于任何数据恢复软件来说&#xff0c;从iOS设备恢复数据都是一项复杂的任务&#xff0c;因为Apple已将众多数据保护技术集成到现代iPhone和iPad中。其中包括硬件加密和文件级加密。iOS 上已删除的数据只能通过取证文件工件搜索来找到&#xff0c;例如分析…

Python 报错 Max retries exceeded with url 解决方案

下面有三个常见的方法&#xff1a; 1、增加重试连接次数&#xff1a; requests.DEFAULT_RETRIES 52、关闭多余的链接&#xff1a; 默认的http connection是keep-alive的&#xff0c;在post请求中&#xff0c;header中有这样一个字段&#xff1a;Connection&#xff0c;我们…

抖音集团基于 Apache Doris 的实时数据仓库实践

作者&#xff1a;字节跳动数据平台 在直播、电商等业务场景中存在着大量实时数据&#xff0c;这些数据对业务发展至关重要。而在处理实时数据时&#xff0c;我们也遇到了诸多挑战&#xff0c;比如实时数据开发门槛高、运维成本高以及资源浪费等。 此外&#xff0c;实时数据处…

游戏心理学Day26

游戏测试 我们能够成为创建游戏机制和系统的专家&#xff0c;却无法在没有测试数据支持的情况下&#xff0c;妄言游戏的真实品质。因为游戏更关注的是人的感受而非系统&#xff0c;毕竟系统通常都很清晰且符合逻辑&#xff0c;而玩家的感受却个人化且难以洞悉。我们能够在自身…

C#面试题目含参考答案(四)

前言 面试是应聘一个工作岗位的环节&#xff0c;来考察一个人的工作能力与综合素质。在应聘C#程序员或与C#相关岗位时&#xff0c;我们都会被问到一些与.NET、C#、数据库、业务知识或编程思想等问题。本文列举一些问题及提供参考答案&#xff0c;题目&#xff08;四&#xff0…

用谷歌Gemini免费批量生成微信公众号图书带货文章

谷歌Gemini 的api现在是免费的&#xff0c;功能很强大。可以在其官网简单几步操作申请到API&#xff1a;https://ai.google.dev/pricing 以上是一些Excel表格中的图书名称&#xff0c;现在要通过谷歌Gemini来批量生成这些图书的带货推广文章。 ChatGPT中输入提示词&#xff1a…

NVIDIA GPU参数

NVIDIA作为全球领先的GPU制造商&#xff0c;其产品广泛应用于深度学习、机器学习、高性能计算&#xff08;HPC&#xff09;和图形计算等领域。以下是NVIDIA一系列GPU的性能参数概述&#xff1a; V100 Tensor Core GPU V100是NVIDIA的一款高性能GPU&#xff0c;专为深度学习、机…

java对word文档预设参数填值并生成

目录 &#xff08;1&#xff09;定义word文档模板 &#xff08;2&#xff09;模板二次处理 处理模板图片&#xff0c;不涉及图片可以跳过 处理模板内容 &#xff08;3&#xff09;java对word模板填值 &#xff08;4&#xff09;Notepad的XML Tools插件安装 工作上要搞一个…

什么是服务器硬盘?

什么是服务器硬盘呢&#xff1f; 服务器硬盘顾名思义&#xff0c;指的就是在服务器上所使用的硬盘&#xff0c;如果服务器是数据网络中的核心部分&#xff0c;那么服务器硬盘则是指数据网络核心的数据仓库&#xff0c;其中所有的软件应用与用户数据信息都是存储在服务器硬盘当中…

C#与工业自动化结合还有搞头吗?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「c#的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“666”之后私信回复“666”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;当然有搞头&#xff01;C#是一…

Java 8 新特性:Lambda表达式让你的代码焕然一新——掌握它,让编程变得轻松又高效!

前言 Java 8 是 Java 发展史上的一次重要里程碑。作为企业级开发语言&#xff0c;它在性能和功能上做了巨大的提升。这其中&#xff0c;Lambda表达式是一个关键的新特性&#xff0c;它为 Java 语言带来了函数式编程的概念。本篇文章将深入探讨Lambda表达式&#xff0c;并结合热…

中断变轮询的一种机制

前言 MCU中断嵌套中断很容易引起问题&#xff0c;例如我们在MCU中引入串口shell&#xff0c;封装一些指令&#xff0c;如果这些指令中需要调用其他中断&#xff0c;例如I2C发送中断等&#xff0c;就很容易引起问题&#xff0c;这个时候我们就需要搞一个缓冲机制 思考 那么应…

element 问题整合

没关系&#xff0c;凡事发生必有利于我 文章目录 一、el-table 同级数据对齐及展开图标的位置问题二、el-table 勾选框为圆角及只能勾选一个 一、el-table 同级数据对齐及展开图标的位置问题 element 官方提供的扩展tree型数据在表格里默认是靠左边对齐&#xff0c;项目需求需要…

超越边界:探索深度学习的泛化力量

深度学习的泛化能力 一. 简介1.1 深度学习的定义1.2 什么是泛化能力1.3 深度学习模型的泛化能力1.4 提升深度学习模型的泛化能力 二. 泛化能力的重要性2.1 深度学习中泛化能力的作用2.1.1 防止过拟合2.1.2 处理噪声和不完整数据2.1.3 对于数据分布的变化具有适应性 2.2 泛化能力…

Gitlab合并代码并解决冲突演示

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

【SQL】数据操作语言(DML) - 删除数据:精细管理数据的利刃

目录 前言 DELETE语句的基础使用 删除指定记录 清空表与删除表数据的区别 注意 前言 在数据库管理的日常工作中&#xff0c;数据的删除是一项需要格外小心的操作&#xff0c;因为一旦数据被删除&#xff0c;往往难以恢复。数据操作语言(DML)中的DELETE语句&am…

景区智能厕所系统让旅游更便捷、更舒适

在旅游业蓬勃发展的今天&#xff0c;游客对于旅游体验的要求越来越高&#xff0c;而景区的基础设施建设也在不断创新和完善。其中&#xff0c;景区智能厕所系统的出现&#xff0c;无疑为游客带来了更加便捷、舒适的旅游体验。 一、智能厕所系统首先体现在其精准的定位和引导功能…

20个你必须知道的Linux小命令

20个你必须知道的Linux小命令 Linux系统强大的命令行工具让我们可以高效地管理和监控系统。本文将介绍20个分门别类的小命令,它们的安装方式和使用技巧,希望能提升你的工作效率。 系统监控 1. htop 简介:htop 是一个交互式的进程查看器,比 top 更友好且功能更强大。 特…

three.js 第六节 - 纹理以及贴图【.hdr文件(hdr贴图)】- 色彩空间

素材 这是素材 更多素材、案例、项目 好几个G一共&#xff0c;加我q178373168&#xff0c;60大洋拿走 源码 源码 // ts-nocheck // 引入three.js import * as THREE from three // 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls…