jax.scipy.linalg.lu_solve#
- jax.scipy.linalg.lu_solve(lu_and_piv, b, trans=0, overwrite_b=False, check_finite=True)[源代码][源代码]#
使用LU分解求解线性系统
JAX 实现
scipy.linalg.lu_solve()
。使用jax.scipy.linalg.lu_factor()
的输出。- 参数:
lu_and_piv (tuple[Array, ArrayLike]) –
(lu, piv)
,lu_factor()
的输出。lu
是一个形状为(..., M, N)
的数组,包含L
在其下三角和U
在其上三角。piv
是一个形状为(..., K)
的数组,其中K = min(M, N)
,用于编码枢轴。b (ArrayLike) – 线性系统的右侧。必须具有形状
(..., M)
trans (int) – 要解决的系统类型。选项包括: -
0
: \(A x = b\) -1
: \(A^Tx = b\) -2
: \(A^Hx = b\)overwrite_b (bool) – JAX 未使用
check_finite (bool) – JAX 未使用
- 返回:
形状为
(..., N)
的数组,表示线性系统的解。- 返回类型:
示例
通过LU分解求解一个小型线性系统:
>>> a = jnp.array([[2., 1.], ... [1., 2.]])
通过
lu_factor()
计算 lu 分解,并使用它通过lu_solve()
求解线性方程。>>> b = jnp.array([3., 4.]) >>> lufac = jax.scipy.linalg.lu_factor(a) >>> y = jax.scipy.linalg.lu_solve(lufac, b) >>> y Array([0.6666666, 1.6666667], dtype=float32)
检查结果是否一致:
>>> jnp.allclose(a @ y, b) Array(True, dtype=bool)