Python 在数学建模中的应用(已完结)
山晚望晴空w:
不错,up加油,我们学校matlab被禁了只能用python了[大哭]
哈工浅:
pulp 库第一个例题错了,我自己加了几条语句,大家可以参考看看
# 使用 pulp 库求解问题
import pulp as pp
# 目标函数的系数
z = 【2, 3, 1】
a = [【1, 4, 2】, 【1, 2, 4】]
b = 【8, 6】
aeq = [【1, 2, 4】]
beq = 【101】
# 确定最大最小化问题,当前确定的是最大化问题
m = pp.LpProblem(sense=pp.LpMaximize)
# 定义三个变量放到列表中
x = [pp.LpVariable(f'x{i}', lowBound=0) for i in 【1, 2, 3】]
# 定义目标函数,并将目标函数加入求解的问题中
m += pp.lpDot(z, x) # lpDot 用于计算点积
# 设置比较条件
for i in range(len(a)):
m += (pp.lpDot(a【i】, x) >= b【i】)
# 设置相等条件
for i in range(len(aeq)):
m += (pp.lpDot(aeq【i】, x) == beq【i】)
# 求解
m.solve()
# 输出结果
print(f'优化结果:{pp.value(m.objective)}')
print(f'参数取值:{【pp.value(var) for var in x】}')
【回复】回复 @可惜-没-如_果 : pulp库的那个问题不对吧,解不出来,程序算出来结果是0
【回复】回复 @康康来啦_ :a那个不是a=[【1,4,2】, 【3,2,0】]吗?是我搞错了吗?
阴阳命师:
我的妈呀,这老师废话咋能在这么多。
羊羊的海轰:
分享几篇自己做的笔记[奋斗] 链接: https://pan.baidu.com/s/1lfe7Hsw3c4axd95SDqXVTg 提取码: 5s8a
【回复】哥我plt有的代码直接复制你的但是运行出来画板是空的
【回复】好兄弟,我直接原地三百六十度感谢,我自己用typora码了半天还报错,呜呜,有你真好!!!
死宅不出门怎么办:
pulp的第一个例题错了,他忘记输入等式条件了,2,0,3带进去不可能等于101.
【回复】是的,他错了,使用scipy验证一下,结果是:
con: array(【3.75850107e-09】)
fun: -201.9999999893402
message: 'Optimization terminated successfully.'
nit: 6
slack: array(【 93. , 296.99999998】)
status: 0
success: True
x: array(【1.01000000e+02, 6.13324051e-10, 3.61350245e-10】)
爱学习的吱小吱:
pulp 库第一道例题
from pulp import *
z = 【2, 3, 1】
a = [【1, 4, 2】, 【3, 2, 0】]
b = 【8, 6】
aeq = 【1, 2, 4】
beq = 【101】
m = LpProblem(sense=LpMaximize)
x = [LpVariable(f'x{i}', lowBound=0) for i in 【1, 2, 3】]
m += lpDot(z, x)
for i in range(len(a)):
m += (lpDot(a【i】, x) >= b【i】)
m += (lpDot(aeq, x)) == beq
m.solve()
print(f'优化结果:{value(m.objective)}')
print(f'参数取值:{【value(var) for var in x】}')
优化结果:202.0
参数取值:【101.0, 0.0, 0.0】
【回复】打印出来的参数取值对应的顺序不对咋回事儿?
百衣令:
很不错呀!!超级合适有基础的!!!
依风闻雨歌:
画了十天可算是学完了。还是很感谢的。
总结就是:有python基础可以看,否则建议换视频学!!
如果有python基础的话,这课不能算差。前面基础部分不要听,直接听4就行。
讲代码其实不错,了解每一行在干嘛,还是很不错的。
问题就是,ppt代码里错误一大堆,可能修代码的时间远比学习画的时间长。
而最坑的是,没有数据集。不给数据集,有两个非常重要的大实验没法做。只能去别处学习了。
【回复】有没有其他推荐的视频,适合零基础的
Mark8579:
能看这课程的,py肯定有基础,没有必要重复py语法基础知识
山上の新人神明:
整数规划确实是死循环,不知道为什么
MasonSong:
pulp例题1:
# 目标函数系数
c = 【2, 3, 1】
# 约束
a = [【1, 4, 2】, 【3, 2, 0】]
b = 【8, 6】
aeq = [【1,2,4】]
beq = 【101】
# 确定是最大化还是最小化问题,最大化要将Min改成Max
m = pulp.LpProblem(sense=pulp.LpMaximize)
# 定义三个x变量放入到列表中
x = [pulp.LpVariable(f'x{i}', lowBound=0) for i in 【1, 2, 3】]
# 定义目标函数,lpDot可以将两个列表的对应位置相乘再相加
m += pulp.lpDot(c, x)
# 设置约束条件
for i in range(len(a)):
m += (pulp.lpDot(a【i】, x) >= b【i】)
# 设置相等条件
for i in range(len(aeq)):
m += (pulp.lpDot(aeq【i】, x) == beq【i】)
# 求解
m.solve()
print(f'优化结果:{pulp.value(m.objective)}')
print(f'参数取值:{【pulp.value(var) for var in x】}')
冇de:
1.3运输问题那里,约束条件应该是==而不是<=吧
白森丶:
CAL已经安装运行的时候还是提示No module named 'CAL',哪位大神知道是什么情况吗
【回复】鬼鬼,我也是这样,其他包都好使,就这个死活用不了[大哭]求一个解决方案