eig

paddle.linalg. eig ( x, name=None ) [源代码]

计算一般方阵 x 的的特征值和特征向量。

备注

  • 如果输入矩阵 x 为 Hermitian 矩阵或实对称阵,请使用更快的 API eigh 。

  • 如果只计算特征值,请使用 eigvals 。

  • 如果矩阵 x 不是方阵,请使用 svd 。

  • 该 API 当前只能在 CPU 上执行。

  • 对于输入是实数和复数类型,输出的数据类型均为复数。

参数

  • x (Tensor) - 输入一个或一批矩阵。x 的形状应为 [*, M, M],数据类型支持 float32、float64、complex64 和 complex128。

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

返回

  • Tensor Eigenvalues,输出 Shape 为 [*, M] 的矩阵,表示特征值。

  • Tensor Eigenvectors,输出 Shape 为 [*, M, M] 矩阵,表示特征向量。

代码示例

>>> import paddle

>>> x = paddle.to_tensor(
...     [
...         [1.6707249, 7.2249975, 6.5045543],
...         [9.956216, 8.749598, 6.066444],
...         [4.4251957, 1.7983172, 0.370647],
...     ]
... )
>>> w, v = paddle.linalg.eig(x)
>>> print(v)
Tensor(shape=[3, 3], dtype=complex64, place=Place(cpu), stop_gradient=True,
[[ (0.50613654+0.00000000j),  (0.79717612+0.00000000j),
   (0.18518065+0.00000000j)],
 [ (0.83082366+0.00000000j), (-0.34638131+0.00000000j),
  (-0.68370056+0.00000000j)],
 [ (0.23142573+0.00000000j), (-0.49449989+0.00000000j),
   (0.70587653+0.00000000j)]])

>>> print(w)
Tensor(shape=[3], dtype=complex64, place=Place(cpu), stop_gradient=True,
[(16.50470734+0.00000000j), (-5.50348139+0.00000000j),
 (-0.21026139+0.00000000j)])

使用本API的教程文档