【发布时间】:2022-01-21 16:00:31
【问题描述】:
我想得到以下方程组的最优解:
x_w * 1010 + x_m * d_m = 1017
x_w + x_m = 1
我的代码如下:
from scipy.optimize import minimize
import numpy as np
def f1(p):
x_w, x_m, d_m = p
return (x_w*1010 + x_m*d_m) - 1017.7
def f2(p):
x_w, x_m, d_m = p
return x_w + x_m - 1
bounds =[(0,1), (0,1), (1000, 10000)]
x0 = np.array([0.5, 0.5, 1500])
res = minimize(lambda p: f1(p)+f2(p), x0=x0, bounds=bounds)
但是,我得到的所有 (res.x) 都是初始值 (x0)。
如何让它发挥作用?有更好的方法吗?这三个变量只有这两个方程。
【问题讨论】:
标签: python scipy scipy-optimize-minimize