mlx.core.linalg.eigh

目录

mlx.core.linalg.eigh#

eigh(a: array, UPLO: str = 'L', *, stream: Optional[Union[Stream, Device]] = None) tuple#

计算复数厄米特矩阵或实对称矩阵的特征值和特征向量。

此函数支持至少包含 2 个维度的数组。当输入具有两个以上维度时,将计算最后两个维度中每个矩阵的特征值和特征向量。

参数:
  • a (数组) – 输入数组。必须是实对称矩阵或复数厄米特矩阵。

  • UPLO (str, 可选) – 是否使用矩阵的上三角 ("U") 或下三角 ("L")。默认值: "L"

  • stream (, 可选) – 流或设备。默认为 None,在这种情况下使用默认设备的默认流。

返回值:

一个元组,包含按升序排列的特征值和归一化的特征向量。列 v[:, i] 是对应于第 i 个特征值的特征向量。

返回类型:

Tuple[array, array]

注意

假定输入矩阵是对称的(或厄米特的)。仅使用选定的三角部分。不执行对称性检查。

示例

>>> A = mx.array([[1., -2.], [-2., 1.]])
>>> w, v = mx.linalg.eigh(A, stream=mx.cpu)
>>> w
array([-1., 3.], dtype=float32)
>>> v
array([[ 0.707107, -0.707107],
      [ 0.707107,  0.707107]], dtype=float32)