如何仅将一个参数传递给odeint?

时间:2018-09-21 22:37:50

标签: python scipy tuples 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))

这将返回错误,因为args必须是一个元组,而(输入)是一个int / float而不是一个元组。解决此问题的一种方法是将a,b用作args的一部分。但这只是创可贴。

我想知道是否有任何方法可以将args定义为一个值。

1 个答案:

答案 0 :(得分:2)

如错误所述,args必须是tuple。您可以使用

轻松地将当前版本转换为元组
args=(inputs,)

请注意其他逗号。