【发布时间】:2013-11-19 12:31:39
【问题描述】:
我正在求解一个包含许多常数的非线性方程。
我创建了一个解决问题的函数:
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() 调用的函数吗?
【问题讨论】:
标签: python python-2.7 numpy scipy