我正在解决一个有许多常量的非线性方程。
我创建了一个用于解决的函数,如下所示:
def terminalV(Vt, data):
from numpy import sqrt
ro_p, ro, D_p, mi, g = (i for i in data)
y = sqrt((4*g*(ro_p - ro)*D_p)/(3*C_d(Re(data, Vt))*ro)) - Vt
return y
然后我想要做:
data = (1800, 994.6, 0.208e-3, 8.931e-4, 9.80665)
Vt0 = 1
Vt = fsolve(terminalV, Vt0, args=data)
但是fsolve
解包了data
,并将太多的参数传递给terminalV
函数,因此我会得到以下错误:
TypeError: terminalV()接受2个参数,但提供了6个
所以,我的问题是:我能否以某种方式向fsolve()
调用的函数传递一个元组?