[python]线性规划作图及求解

  • 前言
  • 一、最优化题目(求最大值)
  • 二、求解线性规划
    • 1.使用fill_between()函数画线性规划
    • 2.数值求解
  • 三、参考资料

前言

第一次写博客,理论与实践相结合。


一、最优化题目(求最大值)

maxZ=70x1+30x2max\ \ \ Z = 70x_1+30x_2\\ max   Z=70x1​+30x2​

x1≥0,x2≥0x_1 ≥ 0 ,x_2 ≥ 0\\ x1​≥0,x2​≥0

二、求解线性规划

1.使用fill_between()函数画线性规划

fill_between()函数是填充两条线条之间的区域。但现有3条线,先将其中2条线定义在一个函数中,成为1个线条(两两组合两组,再将这两组组合),再由第3条线约束进行区域的填充。

plt.fill_between(x,0,y7, where=y7<=y3,facecolor=‘grey’, alpha=0.5)

x:第一个参数表示覆盖的区域,我直接复制为x,表示整个x都覆盖
0:表示覆盖的下限
y7:表示覆盖的上限是y7这个曲线
where: 对覆盖区域进行条件判断和约束
facecolor:覆盖区域的颜色
alpha:覆盖区域的透明度[0,1],其值越大,表示越不透明

将2个线条定义为1个,用numpy中的minimum()函数和maximun()函数

代码如下:

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inlinex = np.linspace(0.0,240.0,30)y1 = -0.33*x + 60
y2 = -1*x + 90
y3 = -3*x + 240y4 = np.minimum(y1, y2)
y5 = np.minimum(y2, y3)
y7 = np.minimum(y4, y5)plt.fill_between(x,0,y7, where=y7<=y3,facecolor='grey', alpha=0.5)plt.plot(x, y1, label=r'$y = -0.33*x+60$')
plt.plot(x, y2, label=r'$y=-1*x+90$')
plt.plot(x, y3, label=r'$y=-3*x+240$')plt.xlim((0.0, 240.000))
plt.ylim((0.0, 240.000))
plt.xlabel(r'$x$')
plt.ylabel(r'$y$')
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
plt.show()

图解如下:

2.数值求解

代码如下(示例):

import numpy as np
from scipy.optimize import linprogA = np.array([[1, 3], [1, 1], [3, 1]])
b = np.array([180, 90, 240])
c = np.array([-70, -30])res = linprog(c, A_ub = A, b_ub = b)print('Optimal value:', round(res.fun * (-1), ndigits = 2),'\nx values:', res.x,'\nNumber of iterations performed:', res.nit,'\nStatus:', res.message)

结果如下:
Optimal value: 5700.0
x values: [74.9999996 14.99999987]
Number of iterations performed: 5
Status: Optimization terminated successfully.

三、参考资料

  1. https://blog.csdn.net/Poul_henry/article/details/88936637
  2. https://blog.csdn.net/kabuto_hui/article/details/84979606
  3. 求解过程参考了一位大佬的文章,现在找不到了,后面找到了补上

[python]线性规划作图及求解相关推荐

  1. 线性规划问题及单纯形法-线性规划问题的求解方法

    线性规划问题的求解方法 两种方法 1.图解法(两个变量使用直角坐标.三个变量使用立体坐标) 2.单纯形法(适用于任意变量,但需将一般形式编程标准形式) 2图解法 建立直角坐标(x1,x2>=0) ...

  2. Python线性规划库Pulp的详解及应用示例

    Python线性规划库Pulp的详解及应用示例 线性规划是一种常见的优化方法,在商业.工程等领域有着广泛的应用.而Python作为一种高效.灵活的编程语言,也提供了丰富的线性规划库可供选择.本文将介绍 ...

  3. python线性规划算法_线性规划的算法分析

    本章涉及知识点 1.线性规划的定义 2.可行区域.目标函数.可行解和最优解 3.转线性规划为标准型 4.转线性规划为松弛型 5.单纯形算法的思想和例子 6.避免退化-Bland规则 7.广义单纯形算法 ...

  4. em算法python代码_EM 算法求解高斯混合模型python实现

    注:本文是对<统计学习方法>EM算法的一个简单总结. 1. 什么是EM算法? 引用书上的话: 概率模型有时既含有观测变量,又含有隐变量或者潜在变量.如果概率模型的变量都是观测变量,可以直接 ...

  5. pythonchar中的拟合方法_在python中利用numpy求解多项式以及多项式拟合的方法

    构建一个二阶多项式:x^2 - 4x + 3 多项式求解 >>> p = np.poly1d([1,-4,3]) #二阶多项式系数 >>> p(0) #自变量为0时 ...

  6. python turtle绕原点旋转_「加德老师与小朋友们的编程之旅」Python海龟作图(上)

    加德老师寄语: 小朋友们,家长朋友们,大家好! [加德老师与小朋友们的编程之旅]今天迎来第二节课--用python进行海龟作图(上) Python被誉为现今人工智能第一语言,适合9岁以上孩子进行编程入 ...

  7. 管理运筹学软件计算机解咋看,管理运筹学-线性规划的计算机求解ppt课件.ppt

    <管理运筹学-线性规划的计算机求解ppt课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<管理运筹学-线性规划的计算机求解ppt课件.ppt> ...

  8. python实现一元二次方程求解

    python实现一元二次方程求解 import random a=float(input("请输入a: "))b=float(input("请输入b: "))c ...

  9. 线性规划两阶段求解方法

    想快速掌握线性规划两阶段求解方法,强烈推荐博文<三言两语讲清楚线性规划单纯形方法>. 百度百科给了下面一个例子,感觉其解法不容易看明白原理,换一种解释方法,应该很容易看明白两阶段法的原理. ...

最新文章

  1. LeetCode() Largest Number
  2. Java final关键字,常量的定义
  3. hihocoder-1615-矩阵游戏II
  4. php mvc cms企业站,Phpcms V9程序目录结构及MVC简析
  5. 【Swift学习】Swift编程之旅---ARC(二十)
  6. Mybatis源码阅读(四):核心接口4.1——StatementHandler
  7. jdk卸载不干净怎么办_【实用】流氓软件卸载不干净?
  8. java ftp遍历所有子文件_Java 遍历指定文件夹及子文件夹下的文件
  9. Perl 6 真的太烦人了?
  10. 参数中带有“”符号问题
  11. 《机电传动控制》第六周学习笔记
  12. HTML期末学生大作业-最新QQ音乐、网易云音乐、酷狗音乐、虾米音乐、咪咕音乐网站html+css+javascript
  13. Adb连不上夜神模拟器的原因adb devices显示设备信息为空
  14. android的平台签名工具,《安卓开发》APK签名工具使用方法
  15. matlab求点,MATLAB求两点中点
  16. OkHttp优点及工作原理
  17. 广义表C/C++实现详解
  18. 无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口
  19. Java设计模式—模板模式(Template)
  20. java long转日期,long转String

热门文章

  1. python3-xlwt-Excel设置表格基础(字体颜色 背景颜色 设置边框 边框颜色 冻结窗口 字体大小 字体高度 字体加粗 下划线 斜体字 单元格对齐方式 自动换行 删除线 超链接 插入公式)
  2. FL Studio21傻瓜式编曲音乐编辑器FL水果软件
  3. 电子元器件自动化测试系统|大功率分立器件测试系统NSAT-2000
  4. 计算机stem案例,【stem教育项目教学案例】_STEM教育理念下的“三维创意设计”课程教学案例...
  5. 【RED-V】驱动 PWM 实现呼吸灯
  6. java计算图片相似度_图片相似度比较--算法
  7. 计算机视觉面试题总结
  8. ZOJ - 1203 Swordfish(最短路)
  9. Ubuntu配置GoldenDict词典翻译-划线翻译
  10. java如何读取.properties配置文件