# How to compute the eigenvalues and eigenvectors of a square matrix in PyTorch?

Last Updated : 09 Oct, 2022

In this article, we are going to discuss how to compute the eigenvalues and eigenvectors of a square matrix in PyTorch.

## Compute the eigenvalues and eigenvectors of a square matrix in PyTorch

torch.linalg.eig() method computes the eigenvalue decomposition of a square matrix or a batch of matrices. The decomposition exists if the input matrix is diagonalizable. This method also supports the input of float, double, cfloat, and cdouble data types. It will return a named tuple (eigenvalues, eigenvectors). The eigenvalues and eigenvectors are always complex-valued and the eigenvectors are given by columns of eigenvectors. Below is the syntax of torch.linalg.eig() method.

Syntax: torch.linalg.eig(mat)

Parameter:

• mat (Tensor): square matrix or a batch of matrices.

Return: It will return a named tuple (eigenvalues, eigenvectors).

Example 1:

In this example, we see how to compute the eigenvalues and eigenvectors of a square matrix.

## Python3

 `# import the required library ` `import` `torch ` ` `  `# define a 3x3 square matrix ` `mat ``=` `torch.tensor([[``-``0.3371``, ``-``0.2975``, ``1.8739``], ` `                    ``[``1.4078``, ``1.6856``, ``0.3799``], ` `                    ``[``1.9002``, ``-``0.4428``, ``1.5552``]]) ` ` `  `# print the above created matrix ` `print``(``"\n Matrix: \n"``, mat) ` ` `  `# compute the eigenvalues and eigenvectors ` `eigenvalues, eigenvectors ``=` `torch.linalg.eig(mat) ` ` `  `# print output ` `print``(``"\n Eigenvalues: \n"``, eigenvalues) ` `print``(``"\n Eigenvectors: \n"``, eigenvectors) `

Output:

EigenValues and EigenVectors

Example 2:

In this example, we see how to compute the eigenvalues and eigenvectors of a batch of matrices.

## Python3

 `# import the required library ` `import` `torch ` ` `  `# define a batch of matrices ` `mat ``=` `torch.tensor([[[``-``0.1345``, ``-``0.7437``, ``1.2377``], ` `                     ``[``0.9337``, ``1.6473``, ``0.4346``], ` `                     ``[``-``1.6345``, ``0.9344``, ``-``0.2456``]], ` `                    ``[[``1.3343``, ``-``1.3456``, ``0.7373``], ` `                     ``[``1.4334``, ``0.2473``, ``1.1333``], ` `                     ``[``-``1.5341``, ``1.5348``, ``-``1.4567``]]]) ` ` `  `# print the above batch of matrices ` `print``(``"\n Matrix: \n"``, mat) ` ` `  `# compute the eigenvalues and eigenvectors ` `eigenvalues, eigenvectors ``=` `torch.linalg.eig(mat) ` ` `  `# print output ` `print``(``"\n Eigenvalues: \n"``, eigenvalues) ` `print``(``"\n Eigenvectors: \n"``, eigenvectors) `

Output:

EigenValues and EigenVectors