jax.numpy.linalg.eig#

jax.numpy.linalg.eig(a)[源代码]#

计算方阵的特征值和特征向量。

JAX 实现的 numpy.linalg.eig()

参数:

a (ArrayLike) – 用于计算特征值和特征向量的形状为 (..., M, M) 的数组。

返回:

一个元组 (eigenvalues, eigenvectors),其中

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

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

返回类型:

tuple[Array, Array]

笔记

  • 这与 numpy.linalg.eig() 的不同之处在于,对于 32 位输入,jax.numpy.linalg.eig() 的返回类型始终为 complex64,对于 64 位输入,则为 complex128。

  • 目前,非对称特征分解仅在 CPU 和 GPU 后端实现。有关 GPU 实现的更多详细信息,请参阅 jax.lax.linalg.eig() 的文档。

另请参阅

示例

>>> a = jnp.array([[1., 2.],
...                [2., 1.]])
>>> w, v = jnp.linalg.eig(a)
>>> with jax.numpy.printoptions(precision=4):
...   w
Array([ 3.+0.j, -1.+0.j], dtype=complex64)
>>> v
Array([[ 0.70710677+0.j, -0.70710677+0.j],
       [ 0.70710677+0.j,  0.70710677+0.j]], dtype=complex64)