cholesky_solve

paddle.linalg. cholesky_solve ( x, y, upper=False, name=None ) [源代码]

对 A @ X = B 的线性方程求解,其中 A 是方阵,输入 x、y 分别是矩阵 B 和矩阵A 的 Cholesky 分解矩阵 u。

输入 x、y 是 2 维矩阵,或者 2 维矩阵以 batch 形式组成的 3 维矩阵。如果输入是 batch 形式的 3 维矩阵,则输出也是 batch 形式的 3 维矩阵。

参数

  • x (Tensor) - 线性方程中的 B 矩阵。是 2 维矩阵或者 2 维矩阵以 batch 形式组成的 3 维矩阵。

  • y (Tensor) - 线性方程中 A 矩阵的 Cholesky 分解矩阵 u,上三角或者下三角矩阵。是 2 维矩阵或者 2 维矩阵以 batch 形式组成的 3 维矩阵。

  • upper (bool,可选) - 输入 x 是否是上三角矩阵,True 为上三角矩阵,False 为下三角矩阵。默认值 False。

  • name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。

返回

Tensor,线性方程的解 X。

代码示例

import paddle

u = paddle.to_tensor([[1, 1, 1],
                        [0, 2, 1],
                        [0, 0,-1]], dtype="float64")
b = paddle.to_tensor([[0], [-9], [5]], dtype="float64")
out = paddle.linalg.cholesky_solve(b, u, upper=True)

print(out)
# [-2.5, -7, 9.5]