如何只将一个参数传递给 odeint?
How to pass only one argument to odeint?
我正在尝试使用 scipy 的 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))
这将 return 出错,因为 args
必须是元组,并且 (inputs) 是 int/float 而不是元组。克服这个问题的一种方法是将 a、b 作为参数的一部分。但这只是伤口上的创可贴
我想知道是否有任何方法可以将 args 定义为一个值。
正如错误所说 args
必须是 tuple
。您可以使用
轻松地将当前版本转换为元组
args=(inputs,)
注意附加的逗号。
我正在尝试使用 scipy 的 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))
这将 return 出错,因为 args
必须是元组,并且 (inputs) 是 int/float 而不是元组。克服这个问题的一种方法是将 a、b 作为参数的一部分。但这只是伤口上的创可贴
我想知道是否有任何方法可以将 args 定义为一个值。
正如错误所说 args
必须是 tuple
。您可以使用
args=(inputs,)
注意附加的逗号。