当我尝试求解该非线性方程组时,警告“解开太多值”,并且 出现了“预期的类型'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)))
有人知道解决方法吗?