jax.lax.linalg.eigh#

jax.lax.linalg.eigh(x, *, lower=True, symmetrize_input=True, sort_eigenvalues=True, subset_by_index=None)[原始碼]#

埃爾米特矩陣的特徵分解。

計算複數埃爾米特或實數對稱方陣的特徵向量和特徵值。

參數:
  • x (Array) – 一批形狀為 [..., n, n] 的方陣複數埃爾米特或實數對稱矩陣。

  • lower (bool) – 如果 symmetrize_inputFalse,則描述要使用輸入矩陣的哪個三角形。如果 symmetrize_inputFalse,則僅存取由 lower 給定的三角形;另一個三角形將被忽略且不被存取。

  • symmetrize_input (bool) – 如果為 True,則在特徵分解之前通過計算 \(\frac{1}{2}(x + x^H)\) 來對矩陣進行對稱化。

  • sort_eigenvalues (bool) –

    如果 True,則特徵值將按升序排序

    順序。 如果 False,則以實作定義的順序傳回特徵值。

    subset_by_index: 可選的 2 元組 [start, end] 表示要計算的特徵值的索引範圍。例如,如果 range_select = [n-2,n],則 eigh 計算兩個最大的特徵值及其特徵向量。

    indices of eigenvalues to compute. For example, is range_select = [n-2,n], then eigh computes the two largest eigenvalues and their eigenvectors.

  • subset_by_index (tuple[int, int] | None | None)

返回:

一個元組 (v, w)

v 是一個與 x 具有相同 dtype 的陣列,使得 v[..., :, i] 是對應於特徵值 w[..., i] 的標準化特徵向量。

w 是一個與 x (如果為複數則為其實數副本) 具有相同 dtype 的陣列,其形狀為 [..., d],包含 x 的特徵值 (按升序排列,每個特徵值根據其重數重複)。如果 subset_by_indexNone,則 d 等於 n。否則,d 等於 subset_by_index[1] - subset_by_index[0]

返回類型:

tuple[Array, Array]