有没有办法在没有 for 循环的情况下在 numpy 中实现递归?
Is there a way to implement recurrence in numpy without for-loops?
我有以下问题。有一个矩阵 X
,我需要生成一个矩阵 H
,这样矩阵 H
中 i_th
行的值由矩阵的 i_th
行确定X
和 (i-1)_th
矩阵行 H
.
H_{i} = F(X_{i}, H_{i-1})
为了计算矩阵的第一行 H
我们使用特殊的矩阵外行(可以说是第 0 行)。
有没有一种方法可以在不使用 for 循环的情况下以矢量化形式有效地实现这种递归?
除了明确的 for
循环外,没有其他方法(通常)。这是因为无法跨行并行执行此任务(因为每一行都依赖于其他行)。
更难的是您可以轻松生成 chaotic behavior, for example with the seemingly innocent looking logistic map: x_{n+1} = r * x_n * (1 - x_{n-1})
.
如果你设法找到一个封闭的形式,你只能找到解决这个问题的方法,从根本上消除递归关系。但这必须针对每个递归关系完成,我很确定你甚至不能保证存在封闭形式......
我有以下问题。有一个矩阵 X
,我需要生成一个矩阵 H
,这样矩阵 H
中 i_th
行的值由矩阵的 i_th
行确定X
和 (i-1)_th
矩阵行 H
.
H_{i} = F(X_{i}, H_{i-1})
为了计算矩阵的第一行 H
我们使用特殊的矩阵外行(可以说是第 0 行)。
有没有一种方法可以在不使用 for 循环的情况下以矢量化形式有效地实现这种递归?
除了明确的 for
循环外,没有其他方法(通常)。这是因为无法跨行并行执行此任务(因为每一行都依赖于其他行)。
更难的是您可以轻松生成 chaotic behavior, for example with the seemingly innocent looking logistic map: x_{n+1} = r * x_n * (1 - x_{n-1})
.
如果你设法找到一个封闭的形式,你只能找到解决这个问题的方法,从根本上消除递归关系。但这必须针对每个递归关系完成,我很确定你甚至不能保证存在封闭形式......