scipy.linalg.

cho_solve_banded#

scipy.linalg.cho_solve_banded(cb_and_lower, b, overwrite_b=False, check_finite=True)[source]#

求解线性方程组 A x = b,给出带状厄米特矩阵 A 的 Cholesky 分解。

参数:
(cb, lower)tuple, (ndarray, bool)

cb 是 A 的 Cholesky 分解,由 cholesky_banded 得出。lower 必须是相同的数值,即传给 cholesky_banded 的数值。

barray_like

右侧

overwrite_bbool, 可选

如果为 True,函数会覆盖 b 中的值。

check_finitebool, 可选

是否检查输入矩阵仅包含有限数字。禁用可能会获得性能提升,但如果输入确实包含无穷大或 NaN,可能会导致问题(崩溃、不终止)。

返回值:
xarray

系统 A x = b 的解

参见

cholesky_banded

带状矩阵的 Cholesky 分解

附注

在版本 0.8.0 中添加。

示例

>>> import numpy as np
>>> from scipy.linalg import cholesky_banded, cho_solve_banded
>>> Ab = np.array([[0, 0, 1j, 2, 3j], [0, -1, -2, 3, 4], [9, 8, 7, 6, 9]])
>>> A = np.diag(Ab[0,2:], k=2) + np.diag(Ab[1,1:], k=1)
>>> A = A + A.conj().T + np.diag(Ab[2, :])
>>> c = cholesky_banded(Ab)
>>> x = cho_solve_banded((c, False), np.ones(5))
>>> np.allclose(A @ x - np.ones(5), np.zeros(5))
True