Calculate expm(m*A*t/n) from expm(A*t/n)
    6 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    marcel hendrix
 am 22 Aug. 2025
  
    
    
    
    
    Bearbeitet: marcel hendrix
 am 22 Aug. 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 Kommentare
Akzeptierte Antwort
  Torsten
      
      
 am 22 Aug. 2025
        
      Bearbeitet: Torsten
      
      
 am 22 Aug. 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 Kommentar
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

