python scipyoptimize fsolve太多值无法解压

时间:2019-12-13 14:12:45

标签: python scipy-optimize

当我尝试求解该非线性方程组时,警告“解开太多值”,并且 出现了“预期的类型'ndarray',取而代之的是'Tuple [float,float]'”。 如果我使用np.array([0.5,0.01])而不是(0.5,0.01),则后者将消失。但是,根据文档,这是不正确的。

运行代码时,似乎没有问题。但是,我认为从fsolve获得的值并不明智。

from scipy.optimize import fsolve

def equations(p):
    gamma, k = p
    f1 = ((g["Pt"] - g["vhat"])**2 - (32/33)**(2*gamma)*(g["Pt_1"] - g["vhat"])**2 - k*(1-(32/33)**(2*gamma))).mean()
    f2 = ((g["Pt_1"] - g["vhat"])**2 - (32/33)**(2*gamma)*(g["Pt_2"] - g["vhat"])**2 - k*(1-(32/33)**(2*gamma))).mean()
    return f1, f2

gamma, k =  fsolve(equations, (0.5, 0.01))

print(equations((gamma, k)))

有人知道解决方法吗?

0 个答案:

没有答案