我正在尝试使用 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))
这将返回错误,因为 args
必须是元组,并且 (inputs) 是 int/float 而不是元组。克服这个问题的一种方法是将 a、b 作为参数的一部分。但这只是伤口上的创可贴。
我想知道是否有任何方法可以将 args 定义为一个值。
最佳答案
正如错误所说,args
必须是一个tuple
。您可以使用
args=(inputs,)
注意额外的逗号。
关于python - 如何只将一个参数传递给 odeint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52451794/