jax.numpy.linalg.cholesky

内容

jax.numpy.linalg.cholesky#

jax.numpy.linalg.cholesky(a, *, upper=False)[source]#

计算矩阵的 Cholesky 分解。

JAX 对 numpy.linalg.cholesky() 的实现。

矩阵 A 的 Cholesky 分解是

\[A = U^HU\]

\[A = LL^H\]

其中 U 是上三角矩阵,L 是下三角矩阵,\(X^H\)X 的 Hermitian 转置。

参数::
  • a (ArrayLike) – 输入数组,表示 (批处理) 正定 Hermitian 矩阵。必须具有形状 (..., N, N)

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

返回值::

形状为 (..., N, N) 的数组,表示输入的 Cholesky 分解。如果输入不是 Hermitian 正定矩阵,则结果将包含 NaN 值。

返回类型:

数组

另请参阅

示例

一个小型的实数 Hermitian 正定矩阵

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

下三角 Cholesky 分解

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

上三角 Cholesky 分解

>>> jnp.linalg.cholesky(x, upper=True)
Array([[1.4142135 , 0.70710677],
       [0.        , 1.2247449 ]], dtype=float32)

从分解中重建 x

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