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]