代码之家  ›  专栏  ›  技术社区  ›  Roman

有没有办法在numpy中实现无for循环的递归?

  •  1
  • Roman  · 技术社区  · 7 年前

    我有以下问题。有一个矩阵 X 我需要生成一个矩阵 H 使 i_th 矩阵中的行 H 由确定 i\u th 矩阵的行 十、 (i-1)_th 矩阵行 H .

    H_{i} = F(X_{i}, H_{i-1})
    

    计算矩阵的第一行 H 我们使用一个特殊的out-of-the-matrix行(可以说是第0行)。

    有没有一种方法可以有效地以向量化的形式实现这种递归,而不使用for循环?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Graipher    7 年前

    除了明确的 for 环这是因为无法跨行并行化此任务(因为每一行都依赖于其他行)。

    更难的是,您可以轻松生成 chaotic behavior ,比如看起来很无辜的 logistic map : x_{n+1} = r * x_n * (1 - x_{n-1}) .

    只有设法找到一个封闭的形式,基本上消除了重复关系,才能找到一种解决方法。但这必须针对每个递归关系进行,我很确定你甚至不能保证闭式存在。。。