数学建模 (线性规划 python代码 两种)

这篇具有很好参考价值的文章主要介绍了数学建模 (线性规划 python代码 两种)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

线性规划: 

线性规划(Linear Programming,LP)是一种数学优化方法,用于解决一类特定类型的最优化问题。该问题的目标是在给定的一组线性约束条件下,找到使某个线性目标函数达到最大或最小的变量值。线性规划问题可以表示为以下标准形式:

最小化(或最大化):Z = c^T * x

约束条件:Ax <= b, x >= 0

其中,c是一个n维向量,表示线性目标函数的系数;x是一个n维向量,表示待求解的变量;A是一个m×n的矩阵,表示约束条件的系数;b是一个m维向量,表示约束条件的右侧常数。

线性规划问题的解可以通过以下步骤求得:

  1. 将问题转化为标准形式。
  2. 判断是否存在可行解,即是否存在满足所有约束条件的变量值。
  3. 利用线性规划算法求解最优解。常用的线性规划算法包括单纯形法、内点法等。
  4. 检验最优解的可行性和稳定性。
  5. 根据实际问题对最优解进行解释和应用。

线性规划广泛应用于经济学、工程学、运筹学等领域,用于解决资源分配、生产计划、货运调度等问题。

运用scipy.optimize:

求最大值:

import numpy as np
c = np.array([2,3,-5])#目标函数系数

A = np.array([[-2,5,-1],[1,3,1]])#不等式<=左侧未知数系数矩阵
B = np.array([-10,12])#不等式<=右侧未知数系数矩阵

Aeq = np.array([[1,1,1]])#等式左侧系数矩阵
Beq = np.array([7])#等式右侧系数矩阵

x1 = [0, None]  #未知数取值范围
x2 = [0, None]  #未知数取值范围
x3 = [0, None]  #未知数取值范围

res = optimize.linprog(-c,A,B,Aeq,Beq,bounds=(x1, x2, x3))#求最大值,将目标函数系数转为负数,求最小值(即为最大值)
print(res)

#最大值即为14

线性规划怎么编程,数学建模,数学建模,python,算法

 求最小值:

#coding=gbk
from scipy import optimize
import numpy as np
c = np.array([2,3,1])#目标函数系数

A = np.array([[-1,-4,-2],[-3,-2,0]])#不等式<=左侧未知数系数矩阵
B = np.array([-8,-6])#不等式<=右侧未知数系数矩阵

x1 = [0, None]  #未知数取值范围
x2 = [0, None]  #未知数取值范围
x3 = [0, None]  #未知数取值范围
res = optimize.linprog(c,A,B,bounds=(x1, x2, x3))
print(res)

#最小值为7

线性规划怎么编程,数学建模,数学建模,python,算法

运用cvxpy库:

求最大值:

import cvxpy as cp
from numpy import array

c = array([70, 50, 60])  #定义目标向量
a = array([[2, 4, 3], [3, 1, 5], [7, 3, 5]])  #定义约束矩阵
b = array([150, 160, 200])  #定义约束条件的右边向量
x = cp.Variable(3, pos=True)  #定义3个决策变量
obj = cp.Maximize(c@x)    #构造目标函数
cons = [a@x <=b]     #构造约束条件
prob = cp.Problem(obj, cons)
prob.solve(solver='GLPK_MI')   #求解问题
print('最优解为:', x.value)
print('最优值为:', prob.value)

 线性规划怎么编程,数学建模,数学建模,python,算法

求最小值:

import cvxpy as cp

x=cp.Variable((4,4),pos=True)
obj=cp.Minimize(2800*sum(x[:,0])+4500*sum(x[:3,1])+
    6000*sum(x[:2,2])+7300*x[0,3])
cons=[sum(x[0,:])>=15,
      sum(x[0,1:])+sum(x[2,:3])>=10,
      sum(x[0,2:])+sum(x[1,1:3])+sum(x[2,:2])>=20,
      x[0,3]+x[1,2]+x[2,1]+[3,0]>=12]
prob=cp.Problem(obj,cons)
prob.solve(solver='GLPK_MI')
print("最优值为:",prob.value)
print("最优解为:\n",x.value)

线性规划怎么编程,数学建模,数学建模,python,算法文章来源地址https://www.toymoban.com/news/detail-851442.html

到了这里,关于数学建模 (线性规划 python代码 两种)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模__非线性规划Python实现

    线性规划指的是目标模型均为线性,除此以外的都是非线性规划,使用scipy提供的方法对该类问题进行求解。

    2024年02月07日
    浏览(52)
  • 【数学建模】Python+Gurobi求解非线性规划模型

    目录 1 概述 2 算例  2.1 算例 2.2 参数设置 2.3 Python代码实现 2.4 求解结果 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。 参考:(非线性规划Python)计及动态约束及节能减排环保要求的经济调度 2.1 算例 2.2 参数设置 求解NLP/非凸问题时,

    2024年02月09日
    浏览(47)
  • Matlab数学建模算法详解之混合整数线性规划 (MILP) 算法(附完整实现代码)

    🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥  推荐专栏:《算法研究》 ####  防伪水印—— 左手の明天 #### 💗 大家好🤗🤗🤗,我是 左手の明天 !好久不见💗 💗今天分享matlab数学建模算法—— 混合整数线性规划 (MILP) 算法 💗

    2024年02月04日
    浏览(52)
  • 数学建模整理-线性规划、整数规划、非线性规划

    在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济 效益的问题。若目标函数及约束条件均为线性函数,则称为线性规划(Linear Programming 简记 LP)。 可行解 :满足约束条件的解。 可行预 :所有可行解构成的集合称为问题的可行域,记为R。 图解法

    2024年02月06日
    浏览(41)
  • 【数学建模】线性规划

    1.1线性规划的实例与定义 1.2线性规划的Matlab标准形式 线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab中规定线性规划的标准形式为 其中c和x为n维列向量,A,Aeq为适当维数

    2024年02月09日
    浏览(44)
  • 数学建模——线性规划

    目录 基本概念 模型求解和应用 基于求解器的求解方法 基于问题的求解方法 其他  运筹学的一个重要分支是数学规划,线性规划是数学规划的一个重要的分支。 变量称为 决策变量 ,规划的目标称为 目标函数 ,限制条件称为 约束条件 ,s.t.是“受约束于”的意思。 建立线

    2024年01月18日
    浏览(46)
  • 数学建模(二)线性规划

    课程推荐:6 线性规划模型基本原理与编程实现_哔哩哔哩_bilibili 目录 一、线性规划的实例与定义 1.1 线性规划的实例 1.2 线性规划的定义 1.3 最优解 1.4 线性规划的Mathlab标准形式 1.5 使用linprog函数 二、线性规划模型建模实战与代码 2.1 问题提出 2.2 基本假设 2.3 模型的分析与建

    2024年02月12日
    浏览(42)
  • 数学建模——线性规划类

    [x,y]=linprog(c,A,b,Aeq,beq,lb,ub) 例如: max需要加负号变成min、=需要加负号变成= matlab (1)基于求解器 (2)基于问题 con中根据符号分类 python (1)绝对值 (2)min(max(q*x)) (见风投案例模型二) 【0】题目描述 【1】模型一 模型一:设定风险度的最大接受值,在不太冒险的情况下

    2024年02月13日
    浏览(46)
  • 数学建模十大算法03—线性规划、整数规划、非线性规划、多目标规划

    一、线性规划(Linear Programming,LP) 1.1 引例 在人们的生产实践中,经常会遇到 如何利用现有资源来安排生产,以取得最大经济效益的问题。 此类问题构成了运筹学的一个重要分支一数学规划,而 线性规划(Linear Programming, LP) 则是数学规划的一个重要分支。 简而言之,线

    2024年02月13日
    浏览(46)
  • 数学建模| 线性规划(Matlab)

    线性规划:约束条件和目标函数都是线性的。简单点说,所有的决策变量在目标函数和约束条件中都是一次方。 Matlab函数: 参数解释: func 表示目标函数。 A 表示不等式约束条件系数矩阵,b 表示不等式约束条件常数矩阵。 Aeq 表示等式约束条件系数矩阵,beq 表示等式约束条

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包