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

17 次查看(过去 30 天)
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

采纳的回答

Chidvi Modala
Chidvi Modala 2020-1-23
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 个评论
Steven Lord
Steven Lord 2020-1-23
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 2022-4-26
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Operating on Diagonal Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by