torch.linalg.eigvals¶
-
torch.linalg.
eigvals
(A, *, out=None) → Tensor¶ Computes the eigenvalues of a square matrix.
Letting be or , the eigenvalues of a square matrix are defined as the roots (counted with multiplicity) of the polynomial p of degree n given by
where is the n-dimensional identity matrix.
Supports input of float, double, cfloat and cdouble dtypes. Also supports batches of matrices, and if
A
is a batch of matrices then the output has the same batch dimensions.Note
The eigenvalues of a real matrix may be complex, as the roots of a real polynomial may be complex.
The eigenvalues of a matrix are always well-defined, even when the matrix is not diagonalizable.
Note
When inputs are on a CUDA device, this function synchronizes that device with the CPU.
See also
torch.linalg.eig()
computes the full eigenvalue decomposition.- Parameters
A (Tensor) – tensor of shape (*, n, n) where * is zero or more batch dimensions.
- Keyword Arguments
out (Tensor, optional) – output tensor. Ignored if None. Default: None.
- Returns
A complex-valued tensor cointaining the eigenvalues even when
A
is real.
Examples:
>>> a = torch.randn(2, 2, dtype=torch.complex128) >>> a tensor([[ 0.9828+0.3889j, -0.4617+0.3010j], [ 0.1662-0.7435j, -0.6139+0.0562j]], dtype=torch.complex128) >>> w = torch.linalg.eigvals(a) >>> w tensor([ 1.1226+0.5738j, -0.7537-0.1286j], dtype=torch.complex128)