jax.numpy.linalg.eigh#

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

計算 Hermitian 矩陣的特徵值和特徵向量。

JAX 實作的 numpy.linalg.eigh()

參數:
  • a (ArrayLike) – 形狀為 (..., M, M) 的陣列,包含 Hermitian(如果為複數)或對稱(如果為實數)矩陣。

  • UPLO (str | None) – 指定計算是使用 a 的下三角部分 ('L',預設) 還是上三角部分 ('U') 完成。

  • symmetrize_input (bool) – 如果為 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)