jax.numpy.linalg.cholesky#

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

計算矩陣的 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 分解 U。如果為 False (預設值),則計算下 Cholesky 分解 L

回傳值:

形狀為 (..., N, N) 的陣列,表示輸入的 Cholesky 分解。如果輸入不是 Hermitian 正定矩陣,則結果將包含 NaN 條目。

回傳類型:

Array

另請參閱

範例

一個小的實數 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)