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 的埃尔米特转置。
- 参数:
a (ArrayLike) – 输入数组,表示一个(批次的)正定厄米矩阵。必须具有形状
(..., N, N)
。upper (bool) – 如果为 True,计算上三角 Cholesky 分解 L。如果为 False(默认),计算下三角 Cholesky 分解 U。
- 返回:
形状为
(..., N, N)
的数组,表示输入的 Cholesky 分解。如果输入不是 Hermitian 正定矩阵,结果将包含 NaN 条目。- 返回类型:
参见
jax.scipy.linalg.cholesky()
: SciPy 风格的 Cholesky APIjax.lax.linalg.cholesky()
: XLA 风格的 Cholesky API
示例
一个小型的实对称正定矩阵:
>>> 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)