jax.scipy.linalg.cho_factor#

jax.scipy.linalg.cho_factor(a, lower=False, overwrite_a=False, check_finite=True)[原始碼]#

用於基於 Cholesky 的線性求解的因式分解

JAX 版本的 scipy.linalg.cho_factor() 實作。此函數返回適用於 jax.scipy.linalg.cho_solve() 的結果。對於直接 Cholesky 分解,請優先使用 jax.scipy.linalg.cholesky()

參數:
  • a (ArrayLike) – 輸入陣列,表示 (批次) 正定 Hermitian 矩陣。必須具有形狀 (..., N, N)

  • lower (bool) – 如果為 True,則計算下三角 Cholesky 分解 (預設值:False)。

  • overwrite_a (bool) – JAX 未使用

  • check_finite (bool) – JAX 未使用

返回:

c 是一個形狀為 (..., N, N) 的陣列,表示輸入的下或上 Cholesky 分解;lower 是一個布林值,指定這是下分解還是上分解。

返回類型:

(c, lower)

範例

一個小的實數 Hermitian 正定矩陣

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

透過 cho_factor() 計算 Cholesky 因式分解,並使用它透過 cho_solve() 求解線性方程式。

>>> b = jnp.array([3., 4.])
>>> cfac = jax.scipy.linalg.cho_factor(x)
>>> y = jax.scipy.linalg.cho_solve(cfac, b)
>>> y
Array([0.6666666, 1.6666666], dtype=float32)

檢查結果是否一致

>>> jnp.allclose(x @ y, b)
Array(True, dtype=bool)