Calculate eigenfunctions to known eigenvalues
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Malte
le 15 Août 2025
Réponse apportée : Christine Tobler
le 18 Août 2025
Hello,
I need to find eigenfunctions and eigenvalues of an operator
. It would require to much storage to calculate the matrix depiction of
, so I am using the eigs command and calculate the eigenvalues and eigenfunctions of
by writing the operator
as a function (the input of this function is a test function f and the output is
). So far so good. Everything works.
No I have run the code and I forgot to save the eigenvectors. I could run the code again to get the eigenvectors, but I wondering: Is there a more efficient way of getting the eigenvectors if the eigenvalues are known?
Thanks for help!
0 commentaires
Réponse acceptée
Christine Tobler
le 18 Août 2025
Unfortunately, there isn't a painless way to do this. That is, it's likely that writing new code to get eigenvectors given the eigenvalues will take you longer to get right, then just re-running eigs.
If you had the eigenvectors and needed the eigenvalues, that's quite painlessly possible using x'*A(x) for each eigenvector x.
The other way around, the usual way to do this would be to solve (A - lambda_mod*I) * x = rand, where lambda_mod is slightly different from lambda to avoid a singular linear system. You might need to do this in multiple iterations (inverse iteration as Torsten mentioned). But with your matrix being given as a function handle, I imagine solving a linear system with it is non-trivial.
0 commentaires
Plus de réponses (1)
Torsten
le 15 Août 2025
Modifié(e) : Torsten
le 15 Août 2025
You could also try
null(A-lambda*eye(size(A)))
where lambda is a given eigenvalue.
Are you talking about eigenfunctions or eigenvectors ? You mix up the two terms in your question.
Voir également
Catégories
En savoir plus sur Linear Algebra dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!