why exp(a*t) is not equal to ilaplace ((s*i-a)^-1) in matlab

11 vues (au cours des 30 derniers jours)
Sina
Sina le 3 Juil 2013
Commenté : KJ N le 9 Nov 2017
we know that one of the ways to obtain exp(A*t), when A is a n-by-n matrix is exp(A*t) = ilaplace [ (S*I-A)^-1 ] but the result of exp(A*t) and ilaplace [ (S*I-A)^-1 ] are not equal!
e.g
A = [-3 -1;2 1]
exp(A*t) = [ exp(-3*t), exp(-t) ; exp(2*t), 1]
ilaplace [ (S*I-A)^-1 ] = [ 2*exp(-2*t) - exp(-t), exp(-2*t) - exp(-t); 2*exp(-t) - 2*exp(-2*t), 2*exp(-t) - exp(-2*t)]
what is wrong?

Réponse acceptée

Shashank Prasanna
Shashank Prasanna le 3 Juil 2013
Modifié(e) : Shashank Prasanna le 3 Juil 2013
The matrix exponential e^At = L^-1 {(sI-A)^-1}
This does not mean you can just take exp of each of the elements of the matrix.
This is wrong
Matrix exponential:
e^(At) =/= exp(A*t) = [ exp(-3*t), exp(-t) ; exp(2*t), 1]
MATLAB does element wise operation of matrices hence you can't compute the matrix exponential by the above method.
Maybe this will give you a better idea of how it is defined:
  1 commentaire
KJ N
KJ N le 9 Nov 2017
I commented on the main thread, but to help others looking for it, you can use ' >>syms t; expm(A*t); ' for the matrix exponential.

Connectez-vous pour commenter.

Plus de réponses (3)

KJ N
KJ N le 9 Nov 2017
To help anyone else coming here: if you want to compute the matrix exponential e^(A t), where A is a n x n square matrix and t is a variable, and you DO NOT want to do simply do the by-element exponential, i.e. you want to compute the equivalent of the inverse Laplace of s*eye(n)-A, which is important in state-space analysis of linear systems, you want to use expm(A*t), not exp(A*t).
>> A = [0 1; -2 -3]
A =
0 1
-2 -3
>> syms t;expm(A*t)
ans =
[ 2*exp(-t) - exp(-2*t), exp(-t) - exp(-2*t)]
[ 2*exp(-2*t) - 2*exp(-t), 2*exp(-2*t) - exp(-t)]
>> syms s;ilaplace(inv(s*eye(rank(A))-A))
ans =
[ 2*exp(-t) - exp(-2*t), exp(-t) - exp(-2*t)]
[ 2*exp(-2*t) - 2*exp(-t), 2*exp(-2*t) - exp(-t)]

Youssef  Khmou
Youssef Khmou le 3 Juil 2013
hi Sina,
first you have to use the element wise operator in the power :
try :
syms t s;
A=[-3 -1;2 1];
F1=exp(A.*t);
F2=abs(ilaplace((s*(sqrt(-1))-A).^(-1)));
One problem that exist is on the imaginary part of t .
  2 commentaires
Sina
Sina le 3 Juil 2013
Oh I think I have misled you about I, actually I is the identity matrix
I = eye (2)
Youssef  Khmou
Youssef Khmou le 3 Juil 2013
ok then, it gives almost the result not like the one you posted :
syms t s;
A=[-3 -1;2 1];
F1=exp(A.*t);
F2=(ilaplace((s*eye(2)-A).^(-1)))

Connectez-vous pour commenter.


Greg Heath
Greg Heath le 3 Juil 2013
In addition to the surprising fact that you did not post your exact code, your expression for exp(A*t) is incorrect.

Catégories

En savoir plus sur Geoscience dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by