我想用scipy的 odeint 解一些常微分方程。唯一的问题是我只想定义一个参数,而要创建一个元组,至少需要两个值。
odeint
我的代码如下所示:
def system(state, t, inputs) x = state[0] u = inputs a = -4 b = 2 dxdt = [a * x + b * u] return dxdt inputs = 5 x_next = odeint(system, x, t, args=(inputs))
这将返回一个错误,因为 args 必须是元组,(inputs)是int/float而不是元组。克服这个问题的一个方法是把a,b作为args的一部分。但那只是伤口上的绷带。
args
正如错误所说 args 必须是一个 tuple
tuple
args=(inputs,)
注意附加的逗号。