Calculate expm(m*A*t/n) from expm(A*t/n)
    5 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    marcel hendrix
 le 22 Août 2025
  
    
    
    
    
    Modifié(e) : marcel hendrix
 le 22 Août 2025
            Is it possible to efficiently calculate M = expm(m*A*T/n) given N = expm(A*T/n)? Here m, n, and T are scalars, m <= n.
The idea is to calculcate N only once, and thereafter use it to quickly approximate M for any m <= n. 
A formula to find expm(A*T/m) given expm(A*T) is also interesting, as is a formula to find expm(A*T) as some combination of fractions of expm(A*T ).
I see there is now a function expmv(A,b,tvals), but its internal factors do not seem to be available.
0 commentaires
Réponse acceptée
  Torsten
      
      
 le 22 Août 2025
        
      Modifié(e) : Torsten
      
      
 le 22 Août 2025
  
      Your question is how to get expm(c*A) given A for a scalar c.
Diagonalize A such that A*V = V*D. 
It follows that (c*A)*V = V*(c*D) and - if V is invertible - c*A = V*(c*D)*inv(V).
Thus expm(c*A) = V*diag(exp(diag(c*D)))*inv(V) .
Summarizing: Saving V and inv(V) (if V is invertible) gives you expm(c*A) from a diagonalization of the matrix A as A = V*D*inv(V).
A = [1 2; 3 4];
[V,D] = eig(A)
expm(A)
V*diag(exp(diag(D)))*inv(V)
c = 2;
expm(c*A)
V*diag(exp(diag(c*D)))*inv(V)
1 commentaire
Plus de réponses (0)
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!

