jax.numpy.linalg.eigh#

jax.numpy.linalg.eigh(a, UPLO=None, symmetrize_input=True)[source]#

计算 Hermitian 矩阵的特征值和特征向量。

JAX 实现的 numpy.linalg.eigh()

参数:
  • a (ArrayLike) – 形状为 (..., M, M) 的数组,包含 Hermitian (如果为复数) 或对称 (如果为实数) 矩阵。

  • UPLO (str | None) – 指定计算是使用 a 的下三角部分 ('L', 默认) 还是上三角部分 ('U') 完成的。

  • symmetrize_input (bool) – 如果为 True (默认),则输入被对称化,这会改善自动微分下的行为。 请注意,当设置为 True 时,输入的上三角和下三角都将用于计算分解。

返回:

一个名为 (eigenvalues, eigenvectors) 的 namedtuple,其中

  • eigenvalues: 形状为 (..., M) 的数组,包含按升序排序的特征值。

  • eigenvectors: 形状为 (..., M, M) 的数组,其中列 v[:, i] 是对应于特征值 w[i] 的归一化特征向量。

返回类型:

EighResult

另请参阅

示例

>>> a = jnp.array([[1, -2j],
...                [2j, 1]])
>>> w, v = jnp.linalg.eigh(a)
>>> w
Array([-1.,  3.], dtype=float32)
>>> with jnp.printoptions(precision=3):
...   v
Array([[-0.707+0.j   , -0.707+0.j   ],
       [ 0.   +0.707j,  0.   -0.707j]], dtype=complex64)