SciPy 中哪个线性函数用于求解带状矩阵方程?


名为 scipy.linalg.solve_banded 的线性函数用于求解带状矩阵方程。此函数的形式如下:

scipy.linalg.solve_banded(l_and_u, ab, b, overwrite_ab=False, overwrite_b=False, debug=None, check_finite=True)

此线性函数将求解方程 ax = b 的 x,其中 a 是带状矩阵。

带状矩阵 **a** 通过使用以下矩阵对角线有序形式存储在 **ab** 中:

ab[u + i - j, j] == a[i,j]

ab 的示例如下:

*       a01 a12 a23 a34 a45
a00 a11 a22 a33 a44 a55
a10 a21 a32 a43 a54 *
a20 a31 a42 a53 * *

这里 a 的形状为 (6, 6),u = 1,l = 2。

参数

以下是 scipy.linalg.solve_banded() 函数的参数:

  • **(l, u)** - (整数,整数)

    它们表示非零下对角线和上对角线的数量。

  • **ab** - b(l + u + 1, M) array_like

    如上所述,此参数表示带状矩阵。

  • **b** - (M,) 或 (M, K) array_like

    此参数表示右侧。

  • **Overwrite_ab** - bool,可选

    此参数用于丢弃带状矩阵 ab 中的数据。它可能会提高矩阵的性能。

  • **Overwrite_b** - bool,可选

    此参数用于丢弃 b 中的数据。它可能会提高矩阵的性能。

  • **check_finite** - bool,可选

    此参数用于检查输入矩阵是否仅包含有限数字。禁用它后,我们可能会获得一些性能提升。如果输入不包含无穷大,则可能会导致问题。

返回值

  • **x** - (M,) 或 (M, K) ndarray

    它返回带状矩阵方程 ax = b 的解。输出的形状将取决于 b 的形状。

更新于:2021-11-25

372 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告