scipy.linalg.

cho_solve#

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

求解线性方程组 A x = b,给定 A 的 Cholesky 分解。

文档的编写假定数组参数具有指定的“核心”形状。然而,此函数的数组参数可能具有额外的“批次”维度,这些维度会预置在核心形状之前。在这种情况下,数组被视为较低维切片的批次;有关详细信息,请参阅 批量线性运算

参数:
(c, lower)元组, (数组, 布尔值)

由 cho_factor 给出的 a 的 Cholesky 分解

b数组

右侧向量

overwrite_bbool, 可选

是否覆盖 b 中的数据(可能提高性能)

check_finitebool, optional

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

返回:
xarray

方程组 A x = b 的解

另请参阅

cho_factor

矩阵的 Cholesky 分解

示例

>>> import numpy as np
>>> from scipy.linalg import cho_factor, cho_solve
>>> A = np.array([[9, 3, 1, 5], [3, 7, 5, 1], [1, 5, 9, 2], [5, 1, 2, 6]])
>>> c, low = cho_factor(A)
>>> x = cho_solve((c, low), [1, 1, 1, 1])
>>> np.allclose(A @ x - [1, 1, 1, 1], np.zeros(4))
True