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 條目。- 回傳類型:
另請參閱
jax.scipy.linalg.cholesky()
:SciPy 風格的 Cholesky APIjax.lax.linalg.cholesky()
:XLA 風格的 Cholesky API
範例
一個小的實數 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)