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 的形状。
广告