eigh

paddle.linalg. eigh ( x, UPLO='L', name=None ) [源代码]

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

参数

  • x (Tensor) : 输入一个或一批厄米特矩阵或者实数对称矩阵。 x 的形状应为 [*, M, M], 其中 * 为零或更大的批次维度, 数据类型支持float32、float64、complex64、complex128。

  • UPLO (str,可选) : 表示计算上三角或者下三角矩阵,默认值为 'L',表示计算下三角矩阵的特征值和特征向量,'U'表示计算上三角矩阵的特征值和特征向量。

  • name (str,可选) - 具体用法请参见 Name ,一般无需设置,默认值为None。

返回

  • Tensor out_value, 输出矩阵的特征值,输出顺序按照从小到大进行排序。Shape为 [*, M]

  • Tensor out_vector, 输出矩阵的特征向量,与特征值一一对应,Shape为 [*, M, M]

代码示例

import numpy as np
import paddle

x_data = np.array([[1, -2j], [2j, 5]])
x = paddle.to_tensor(x_data)
out_value, out_vector = paddle.linalg.eigh(x)
print(out_value)
#[0.17157288, 5.82842712]
print(out_vector)
#[(-0.9238795325112867+0j), (-0.3826834323650898+0j)],
#[ 0.3826834323650898j    , -0.9238795325112867j    ]]