Polynomial eigenvalue problems as linear eigenvalue problems and function 'polyeig'

16 views (last 30 days)
Dear all,
I have a rather simple fundamental question regarding the function 'polyeig' for the solution of polynomial eigenvalue problems. This function requires the use of full matrices. Since polynomial eigenvalue problems can be formulated as linear eigenvalue problems, it would be great to exploit the sparsity of the matrices at hand - in my case matrices are big (20000x20000) and sparse.
Is there a built-in way to solve polynomial eigenvalue problems by using just sparse matrices?
Best wishes,
Domenico Tallarico

Accepted Answer

Chidvi Modala
Chidvi Modala on 23 Jan 2020
You can use eigs function to calculate the eigenvectors of a sparse matrix, or to calculate the eigenvalues of a sparse matrix that is not real and symmetric.
But there is no built-in way of solving polynomial eigenvalue problem using sparse matrices in MATLAB.
Since polyeig is written in MATLAB code, you can use "edit polyeig" command and copy and modify that code to allow for sparse inputs (e.g., replace eye(np) with speye(np) and zeros(nB) with sparse(nB, nB)). The call to eig on the two "big matrices" A and B for the dense case would become a call to eigs with the sparse matrices A and B, this would only compute a range of the eigenvalues, and the rest of the code would need to be modified to loop over that range of eigenvalues, instead of looping over all eigenvalues as it currently does.
  3 Comments
Steven Lord
Steven Lord on 23 Jan 2020
DON'T edit the built-in polyeig function. If you want to use it as the basis for your own sparse polynomial eigenvalue problem solver, make a copy of polyeig.m under a new name in a directory that is on the MATLAB path but not under matlabroot and edit that copy.
Sansit Patnaik
Sansit Patnaik on 26 Apr 2022
I am curious if you were able to solve the problem. I am trying to find the first few eigenvalues of a large (8000X8000) polynomial system and I was unable to edit the polyeig code successfully to allow for sparse matrices.

Sign in to comment.

More Answers (0)

Categories

Find more on Operating on Diagonal Matrices in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!