python解决多变量最优化问题

上一次我们解决了单变量最优化问题,说实话有点简单,今天来个复杂点的。

多变量最优化
问题:
彩电商准备推出两种产品,19寸彩电,建议价格339美元(成本195美元),21寸彩电,建议价格399美元(成本225美元),
固定成本400000美元,已知每售出一台彩电,会导致彩电价格下降1美分,而且每售出一台19寸彩电,会导致21寸彩电下降0.4美分;
每售出一台21寸彩电,会导致19寸彩电下降0.3美分,请问每台彩电应该生产多少台才能达到最大收益。

复制代码
from sympy import *
from sympy.plotting import plot3d

"""
多变量最优化
问题:
彩电商准备推出两种产品,19寸彩电,建议价格339美元(成本195美元),21寸彩电,建议价格399美元(成本225美元),
固定成本400000美元,已知每售出一台彩电,会导致彩电价格下降1美分,而且每售出一台19寸彩电,会导致21寸彩电下降0.4美分;
每售出一台21寸彩电,会导致19寸彩电下降0.3美分,请问每台彩电应该生产多少台才能达到最大收益。
"""
x1 = symbols('x1')
x2 = symbols('x2')
fx = (339 - 0.01 * x1 - 0.003 * x2) * x1 + (399 - 0.01 * x2 - 0.004 * x1) * x2 - (400000 + 195 * x1 + 225 * x2)

# 分别对x1/x2求偏导数
expr1 = diff(fx, x1)
expr2 = diff(fx, x2)
print(expr1)
print(expr2)
# 解方程组x1=4735,x2= 7043
x1x2 = solve([expr1, expr2], [x1, x2])
nx1, nx2 = round(x1x2[x1]), round(x1x2[x2])
# 将x1,x2代入原方程得到最大收益=553641
result = fx.evalf(subs={x1: nx1, x2: nx2})
print(round(result))

# 是一个曲面
plot3d(fx, (x1, 0, 10000), (x2, 0, 10000))
复制代码

看一下图长啥样,加深一下印象

 

posted @   Mars.wang  阅读(1229)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示