jax.scipy.linalg.cholesky

目录

jax.scipy.linalg.cholesky#

jax.scipy.linalg.cholesky(a, lower=False, overwrite_a=False, check_finite=True)[源代码][源代码]#

计算矩阵的 Cholesky 分解。

JAX 实现的 scipy.linalg.cholesky()

矩阵 A 的 Cholesky 分解是:

\[A = U^HU = LL^H\]

其中 U 是一个上三角矩阵,L 是一个下三角矩阵。

参数:
  • a (ArrayLike) – 输入数组,表示一个(批次的)正定厄米矩阵。必须具有形状 (..., N, N)

  • lower (bool) – 如果为 True,计算下三角 Cholesky 分解 L。如果为 False(默认),计算上三角 Cholesky 分解 U

  • overwrite_a (bool) – JAX 未使用

  • check_finite (bool) – JAX 未使用

返回:

形状为 (..., N, N) 的数组,表示输入的 Cholesky 分解。

返回类型:

Array

示例

一个小型的实对称正定矩阵:

>>> x = jnp.array([[2., 1.],
...                [1., 2.]])

上三角Cholesky分解:

>>> jax.scipy.linalg.cholesky(x)
Array([[1.4142135 , 0.70710677],
       [0.        , 1.2247449 ]], dtype=float32)

下三角Cholesky分解:

>>> jax.scipy.linalg.cholesky(x, lower=True)
Array([[1.4142135 , 0.        ],
       [0.70710677, 1.2247449 ]], dtype=float32)

从其因式分解中重建 x

>>> L = jax.scipy.linalg.cholesky(x, lower=True)
>>> jnp.allclose(x, L @ L.T)
Array(True, dtype=bool)