polyeig calculating few polynomial eigenvalue

6 ビュー (過去 30 日間)
Waqar Ahmed
Waqar Ahmed 2024 年 10 月 24 日
コメント済み: Christine Tobler 2025 年 1 月 8 日
The eigs routine calculate only few eigenvalues compared to eig. How can few polynomial eigenvalue be calculated rather than all using polyeig?
  2 件のコメント
Raghava S N
Raghava S N 2024 年 10 月 24 日
Could you share more details about the code you are working with? That will help in diagnosing the issue better.
Fabre François
Fabre François 2024 年 12 月 9 日
A solution would be to linearize the eigenvalue problem and use eigs.

サインインしてコメントする。

採用された回答

Bruno Luong
Bruno Luong 2024 年 10 月 24 日
I'm affraid there is no equivalent of EIGS to POLYEIG (vs EIG).

その他の回答 (1 件)

Christine Tobler
Christine Tobler 2025 年 1 月 8 日
While there is no equivalent to eigs for polyeig, if you just need some eigenvalues, you could step through polyeig.m and get what you need.
In the first step, polyeig takes the input matrices and computes a generalized eigenvalue problem of size n*p (where the inputs to polyeig were p+1 matrices of size n). Then, it simply calls eig on this generalized eigenvalue problem. At this point, you could instead call eigs with any number of eigenvalues you want to compute.
If you just need the eigenvalues, you're done at this point - the eigenvalues returned by eig are the eigenvalues of the polynomial eigenvalue problem. If you also need the eigenvectors, you would have to adapt the contents of the "if nargin > 2" branch in polyeig.m to only loop over as many eigenvectors as have been computed, instead of over all eigenvectors like is done in polyeig.
  2 件のコメント
Christine Tobler
Christine Tobler 2025 年 1 月 8 日
You would want to use sparse matrices instead of dense for computing A and B (speye instead of eye to initialize A, and sparse(nB, nB) instead of zeros(nB).
Christine Tobler
Christine Tobler 2025 年 1 月 8 日
Since this has come up once or twice before, I've written a quick modification of the polyeig.m shipped with MATLAB so that it calls eigs to compute just a few eigenvalues and eigenvectors. This takes a cell array of the matrices passed to polyeig, followed by k, and optionally any additional inputs for eigs.
This is just a quick-and-dirty prototype, no guarantees here. But it should hopefully be easier to try this out than follow along my explanation above.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLinear Algebra についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by