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=bforx,其中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-布尔值,可选
该参数用于丢弃b中的数据。它可以提高矩阵的性能。
check_finite-布尔值,可选
此参数用于检查输入矩阵是否仅包含有限数。禁用它后,我们可能会获得一些性能提升。如果输入不包含无穷大,则可能会导致问题。
退货
x-(M,)或(M,K)ndarray
它返回带状矩阵方程ax=b的解。输出的形状将取决于b的形状。