jax.scipy.linalg.cho_solve#
- jax.scipy.linalg.cho_solve(c_and_lower, b, overwrite_b=False, check_finite=True)[源代码]#
使用 Cholesky 分解求解线性系统
scipy.linalg.cho_solve()
的 JAX 实现。 使用jax.scipy.linalg.cho_factor()
的输出。- 参数:
c_and_lower (tuple[ArrayLike, bool]) –
(c, lower)
,其中c
是一个形状为(..., N, N)
的数组,表示矩阵的下或上 Cholesky 分解,而lower
是一个布尔值,指定是下分解还是上分解。b (ArrayLike) – 线性系统的右侧。 必须具有形状
(..., N)
overwrite_a – JAX 未使用
check_finite (bool) – JAX 未使用
overwrite_b (bool)
- 返回值:
形状为
(..., N)
的数组,表示线性系统的解。- 返回类型:
示例
一个小的实 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)