1.线性规划模型案例:生产计划 假设一家工厂生产两种产品A和B,每个月有100个工作日,每个工作日可以生产200个A产品或150个B产品。A产品售价为200元/个,B产品售价为300元/个,每个月至少需要保证收入不低于200000元。制定生产计划,使得收益最大化。
代码:
复制from scipy.optimize import linprog
# 定义目标函数和约束条件
obj = [-200, -300]
lhs_eq = [[200, 150]]
rhs_eq = [200000]
bnd = [(0, None), (0, None)]
# 求解线性规划模型
opt = linprog(c=obj, A_eq=lhs_eq, b_eq=rhs_eq, bounds=bnd, method="simplex")
# 输出最优解和最优值
print("最优解为:", opt.x)
print("最优值为:", -opt.fun)
2.非线性规划模型案例:最小二乘拟合 假设有一组实验数据,要求通过拟合得到一个函数y=f(x),使得实验数据与拟合曲线的误差最小。假设拟合曲线为y=asin(bx+c),其中a、b、c为待求参数。
代码:
复制import numpy as np
from scipy.optimize import least_squares
# 定义目标函数和初始参数
def fun(params, x, y):
return params[0]*np.sin(params[1]*x+params[2]) - y
x = np.array([0.1, 0.5, 0.9, 1.3, 1.7, 2.1, 2.5, 2.9, 3.3