欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python 线性规划问题_一学高数,线代就头疼?让python帮你解决(内含教程)

发布时间:2025/3/15 python 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python 线性规划问题_一学高数,线代就头疼?让python帮你解决(内含教程) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

栏目「有学问」是UBook知识在线的趣味科普专栏,专注于分享有趣好玩的科普知识,旨在发现更多有趣好玩的冷知识,发掘更多生活中的趣味。

自从上了大学以后,各种高数线代数学课防不胜防,有人说,如果你觉得高数难,那是因为你没有遇到过线性规划

但是小编一直觉得线性规划问题不大,每次作业我都能保证全对,并且能够快速做完,因为在大学里早已经学会了用python来帮我解决问题

当然,也不是鼓励大家自己不做作业,只是学会利用工具使得自己更加效(tou)率(lan),最重要的是,每次做出题目答案后可以检验下自己是否能做对,再者说,能够用编程实现问题求解,本身也是对知识的掌握。

市面上有不少软件可以直接求解,但是灵活性要低于python,python提供了很多包可以用来数学计算,今天我为大家介绍的是scripy的linprog,我们利用linprog可以很好的求解线性规划问题。

话不多说,让我们一起进入正式学习——

我们以一个实际例题为例:

例1 求解下列线性规划问题

Min Z = 2x1 + 3x2 + x3

s.t.     

-x1 - x2 + 2x3 <= 10

2x1 - 2x2 + x3 >= 2

x1 + 2x2 + x3 = 5

在这里我们用到scipy中的linprog进行求解,linprog官方的介绍链接如下:https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.linprog.html 

我们要使用的函数为:

scipy.optimize.linprog(c,A_ub=None,b_ub=None,A_eq=None,b_eq=None,bounds=None, method='simplex', callback=None, options=None)

注意要使用linprog,目标函数要变成求最小值,如果原题目要求求max(最大值),只需对目标函数取负,但要注意求解的最终值是取负后的目标函数的最小值,取负即为最大值

下面开始代码编写——

导入我们所需要的linprog

运行结果如下:

un为目标函数的最优值slack松弛变量status表示优化结果状态x最优解

在该例题中,目标函数最小值约为-22.5,最优解为 x1=-5.75, x2=12.25, x3=-13.75。

好啦,本次python求解线性规划的问题就介绍到这,如果大家感兴趣的话,后期会继续推出更为复杂的数学求解

代码已打包,在后台回复“线性规划”即可获取。

Archer

UBook签约作者

励志做一个不掉头发的程序员

对改变世界尤其热衷

喜欢就星标我们,不要走丢了哦~

总结

以上是生活随笔为你收集整理的python 线性规划问题_一学高数,线代就头疼?让python帮你解决(内含教程)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。