Calculate eigenfunctions to known eigenvalues
    11 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Malte
 el 15 de Ag. de 2025
  
    
    
    
    
    Respondida: Christine Tobler
    
 el 18 de Ag. de 2025
            Hello,
I need to find eigenfunctions and eigenvalues of an operator  . It would require to much storage to calculate the matrix depiction of
. 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
, so I am using the eigs command and calculate the eigenvalues and eigenfunctions of  by writing the operator
 by writing the operator  as a function (the input of this function is a test function f and the output is
 as a function (the input of this function is a test function f and the output is  ). So far so good. Everything works.
). So far so good. Everything works.
 . It would require to much storage to calculate the matrix depiction of
. 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
, so I am using the eigs command and calculate the eigenvalues and eigenfunctions of  by writing the operator
 by writing the operator  as a function (the input of this function is a test function f and the output is
 as a function (the input of this function is a test function f and the output is  ). So far so good. Everything works.
). 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 comentarios
Respuesta aceptada
  Christine Tobler
    
 el 18 de Ag. de 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 comentarios
Más respuestas (1)
  Torsten
      
      
 el 15 de Ag. de 2025
        
      Editada: Torsten
      
      
 el 15 de Ag. de 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.
Ver también
Categorías
				Más información sobre Linear Algebra en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




