从零开始备战数学建模国赛之线性规划1.1

news2024/9/22 15:51:26

从零开始备战数学建模国赛之线性规划1.1

现在距离2023年的数学建模国赛还有不足三个月的时间,想与大家共同备战国赛。
这是我自己总结的一些代码和资料(本文中的代码以及参考书籍等),放在github上供大家参考:https://github.com/HuaandQi/Mathematical-modeling.git

1.什么是线性规划?

线性规划(Linear Programming,LP)是数学建模中常见的优化问题之一。它的目标是在给定的线性约束条件下,寻找一组变量的取值,使得线性目标函数达到最大或最小值。
线性规划问题可以用以下标准形式表示:
最小化:C^T * X
约束条件:A * X <= B
X >= 0
其中,C是目标函数的系数向量,X是待求解的变量向量,A是约束条件的系数矩阵,B是约束条件的右侧向量。

2.实战

关于概念,这里不做过多的赘述,我们直接从题目实战提升结题能力。

2.1 题目1

(1)问题:
在这里插入图片描述
(2)解题思路:
先对方程式进行化简成以下形式:
在这里插入图片描述
(3)求解的python程序如下:

from scipy.optimize import linprog

# 定义目标函数的系数向量
c = [-2, -3, 5]

# 定义约束条件的系数矩阵
A = [[1, 1, 1],
     [-2, 5, -1],
     [-1, -3, -1]]

# 定义约束条件的右侧向量
b = [7, -10, -12]

# 定义变量的取值范围
x_bounds = [(0, None), (0, None), (0, None)]

# 求解线性规划问题
res = linprog(c, A_ub=A, b_ub=b, bounds=x_bounds, method='simplex')

# 提取最优解和最大值
z_max = res.fun
x_opt = res.x

# 输出结果
print("最大值 z = {:.4f}".format(z_max))
print("最优解 x1 = {:.4f}".format(x_opt[0]))
print("最优解 x2 = {:.4f}".format(x_opt[1]))
print("最优解 x3 = {:.4f}".format(x_opt[2]))

(4)运行结果:

最大值 z = -14.5714
最优解 x1 = 6.4286
最优解 x2 = 0.5714
最优解 x3 = 0.0000

2.2 题目2

(1)问题:
在这里插入图片描述
(2)程序:

from scipy.optimize import linprog

# 定义目标函数的系数向量
c = [2, 3, 1]

# 定义约束条件的系数矩阵
A = [[-1, -4, -2],
     [-3, -2, 0]]

# 定义约束条件的右侧向量
b = [-8, -6]

# 定义变量的取值范围
x_bounds = [(0, None), (0, None), (0, None)]

# 求解线性规划问题
res = linprog(c, A_ub=A, b_ub=b, bounds=x_bounds, method='simplex')

# 提取最优解和最优值
z_min = res.fun
x_opt = res.x

# 输出结果
print("最小值 z = {:.4f}".format(z_min))
print("最优解 x1 = {:.4f}".format(x_opt[0]))
print("最优解 x2 = {:.4f}".format(x_opt[1]))
print("最优解 x3 = {:.4f}".format(x_opt[2]))

(3)运行结果

最小值 z = 7.0000
最优解 x1 = 0.8000
最优解 x2 = 1.8000
最优解 x3 = 0.0000

3.结语

后续持续更新…
更多代码和资料在github上:https://github.com/HuaandQi/Mathematical-modeling

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

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

相关文章

流量控制 Sentinel

一、Sentinel(哨兵)简介 1、Sentinel的功能及特点 1.Sentinel的功能 Sentinel的支持 2.Sentinel的特点 Sentinel的特点 2、Sentinel的组成 核心库&#xff08;Java 客户端&#xff09;不依赖任何框架/库&#xff0c;能够运行于所有 Java 8 及以上的运行时环境&#xff0c;同…

HMAC算法详解

1.HMAC算法 1.1 HMAC算法简介 HMAC&#xff08;Hash-based Message Authentication Code&#xff0c;散列消息认证码&#xff09;是一种使用密码散列函数&#xff0c;同时结合一个加密密钥&#xff0c;通过特别计算方式之后产生的消息认证码&#xff08;MAC&#xff09;。它可…

Go语言使用中遇到的错误

Go语言使用中遇到的错误 1、go: go.mod file not found in current directory or any parent directory. 先运行这一行代码&#xff1a; go mod init name再运行你的 go get 命令就好了。 2、Failed to build the application: main.go:4:2: package generateproject/route…

C++之报错:is an inaccessible base of(一百四十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

物业管理变牛的好办法,新手零基础必备!

随着城市化进程的加速和商务发展的蓬勃&#xff0c;写字楼作为商业活动的核心场所&#xff0c;在现代都市生活中扮演着至关重要的角色。 随之而来的安全威胁和管理难题也日益凸显。因此&#xff0c;为了确保写字楼内部的安全与秩序&#xff0c;提高工作人员和访客的出入效率&am…

slab 内存池的设计与实现

目录 从一个简单的内存页开始聊 slab slab 的总体架构设计 slab 的组织架构 ​编辑 ​编辑 参考文献 伙伴系统内存分配原理的相关内容来看&#xff0c;伙伴系统管理物理内存的最小单位是物理内存页 page。也就是说&#xff0c;当我们向伙伴系统申请内存时&#xff0c;至少…

Windows:prometheus + grafana + wmi_exporter+ 主机信息监控页面 + 支持主机信息告警

1、PrometheusGrafana环境搭建 1.1、Prometheus 下载地址&#xff1a;Download | Prometheus 选择对应的系统的版本下载并解压压缩包&#xff0c;运行程序 本人在window系统上操作 双击 验证 浏览器输入http://localhost:9090/ 点击Staatus>Targets 出现以下即成功 1.…

Unifying Large Language Models and Knowledge Graphs: A Roadmap

5.2 LLM-augmented KG Completion 知识图谱补全(KGC)是指对给定知识图谱中缺失的事实进行推断的任务。与KGE类似,传统的KGC方法主要关注于KG的结构,而没有考虑广泛的文本信息。然而,最近llm的集成使KGC方法能够对文本进行编码或生成事实,以获得更好的KGC性能。这些方法根据…

【数据科学赛】2023大模型应用创新挑战赛 #¥10万 #百度

CompHub 主页增加了“近两周上新的奖金赛”&#xff0c;更加方便查找最新比赛&#xff0c;欢迎访问和反馈&#xff01; 以下内容摘自比赛主页&#xff08;点击文末阅读原文进入&#xff09; Part1赛题介绍 题目 2023大模型应用创新挑战赛 举办平台 Baidu AI Studio 主办方…

git介绍和使用

目录 一、git概述 1、简介 2、下载安装 二、git代码托管服务 1、常用的 Git 代码托管服务 2、使用码云代码托管服务 三、git常用命令 1、git全局设置 2、获取git仓库 3、工作区、暂存区、版本库 概念 4、Git工作区中文件的状态 5、本地仓库操作 6、远程仓库操作 …

Jetson Nano介绍

1. bo1公版介绍 Jetson NanoBO1公版的实物图如下图所示。其中1是TF卡接口&#xff0c;可以进行系统镜像烧写&#xff1b;2是40PIN GPIO扩展接口&#xff1b;3是用来传输数据或使用电源供电的Micro USB接口&#xff1b;4是千兆以太网口&#xff1b;5是USB3.0接口&#xff1b;6是…

CentOS Linux的替代品(五)_BigCloud Enterprise Linux for Euler 21.10 U 3基础安装教程

文章目录 CentOS Linux的替代品&#xff08;五&#xff09;_BigCloud Enterprise Linux for Euler 21.10 U 3基础安装教程一、BC-Linux简介二、BigCloud Enterprise Linux for Euler 21.10U3基础安装2.1 下载地址2.2 安装过程 三、简单使用3.1 关闭selinux3.1.1 临时关闭selinu…

QT学习笔记:QT的信号与槽

一、信号与槽&#xff08;Signal & Slot&#xff09;的基本概念 1、了解信号与槽 &#xff08;1&#xff09;信号&#xff08;Signal&#xff09;&#xff1a;在特定情况下被发射的事件&#xff0c;例如PushButton 最常见的信号就是鼠标单击时发射的 clicked() 信号&…

Pytest测试框架快速搭建

一、介绍 pytest是一个非常成熟的Python测试框架&#xff0c;能够支持简单的单元测试和复杂的功能测试&#xff0c;还可以用来做selenium/appnium等自动化测试、接口自动化测试&#xff08;pytestrequests&#xff09;&#xff1b;pytest具有很多第三方插件&#xff0c;并且可…

springboot整合腾讯企业邮箱/企业微信邮箱

springboot整合腾讯企业邮箱/企业微信邮箱 登录后点击“客户端设置” 2.勾选红框中选项并保存 3.点击微信绑定并绑定微信 4.绑定微信后点击生成新密码并保存(复制生成的密码后面会使用) 5.将配置复制到代码中 <dependency><groupId>com.sun

凤凰架构阅读记录-三(分布式算法)

1.Paxos 世界上只有一种共识协议&#xff0c;就是 Paxos&#xff0c;其他所有共识算法都是 Paxos 的退化版本。 算法流程: 1.提案节点&#xff1a;称为 Proposer&#xff0c;提出对某个值进行设置操作的节点&#xff0c;设置值这个行为就被称之为提案&#xff08;Proposal&a…

【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率)

【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率) 目录 【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率) 一、 K-NN 简介 二、K-NN 分类 三、K-NN 分类实例 1、1-NN 分类 : 此时 A 类别…

leetcode 859. Buddy Strings(同伴字符串)

给出字符串s 和 goal, 判断交换 s 中的一对字母是否能得到goal. 必须是不同位置字母的交换。 思路&#xff1a; 先考虑边界情况&#xff0c; s 和 goal 的长度不相等时&#xff0c;s 怎么交换都不会得到goal. s 的长度 < 2时&#xff0c;没有可交换对象&#xff0c;肯定是…

【力扣】94、二叉树的中序遍历

94、二叉树的中序遍历 注&#xff1a;二叉树的中序遍历&#xff1a;左根右&#xff1b; // 非递归&#xff1a; var inorderTraversal function (root) {const arr [];//创建新数组&#xff1b;const stack [];//创建一个栈道&#xff1b;let o root;while( stack.length |…

办公实现降本增效,可借助微服务开源平台的力量!

在如今的快节奏发展时代&#xff0c;低代码开发平台拥有了一个广阔的发展天地&#xff0c;逐渐在通信业、医疗、物流、高校等众多大中型企业中获得一个立足之地&#xff0c;是助力企业提质、降本、增效的得力助手。微服务开源平台可以让企业实现这一目的&#xff0c;那么对于企…