Calculate expm(m*A*t/n) from expm(A*t/n)
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
marcel hendrix
il 22 Ago 2025
Modificato: marcel hendrix
il 22 Ago 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 Commenti
Risposta accettata
Torsten
il 22 Ago 2025
Modificato: Torsten
il 22 Ago 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 Commento
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Linear Algebra in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!