python - 如何只将一个参数传递给 odeint?

标签 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 必须是元组,并且 (inputs) 是 int/float 而不是元组。克服这个问题的一种方法是将 a、b 作为参数的一部分。但这只是伤口上的创可贴。

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

最佳答案

正如错误所说,args 必须是一个tuple。您可以使用

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

注意额外的逗号。

关于python - 如何只将一个参数传递给 odeint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52451794/

相关文章:

python - 平均分配内存(或尽可能公平)

python - 如何有两个事件循环?

javascript - 代码无法识别 ColumnDataSource 的本质

python - scipy 中的复杂 ODE 系统

python - python中具有有限滤波器和狄拉克增量之和的快速一维卷积

python - 检查值在元组列表中的位置

python - 按第一个元素 float 对包含字符串的元组列表进行排序 (Python)

python - 在 Django 项目中构建模板的最佳实践是什么?

numpy - 我的功率谱可信吗? lomb-scargle 和 fft 之间的比较(scipy.signal 和 numpy.fft)

python - 如何以 Numpydoc 格式记录多个返回值?