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,可选) - 具体用法请参见 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.5061365365982056+0j) ,  (0.7971761226654053+0j) ,
   (0.1851806491613388+0j) ],
 [ (0.8308236598968506+0j) , (-0.3463813066482544+0j) ,
   (-0.6837005615234375+0j) ],
 [ (0.23142573237419128+0j), (-0.49449989199638367+0j),
   (0.7058765292167664+0j) ]])

>>> print(w)
Tensor(shape=[3], dtype=complex64, place=Place(cpu), stop_gradient=True,
[ (16.50470733642578+0j)  , (-5.503481388092041+0j)  ,
  (-0.21026138961315155+0j)])

使用本API的教程文档