16

多くの定数を持つ非線形方程式を解いています。
次のように解決するための関数を作成しました。

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()ますか?

4

2 に答える 2