why exp(a*t) is not equal to ilaplace ((s*i-a)^-1) in matlab
6 views (last 30 days)
Show older comments
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?
0 Comments
Accepted Answer
Shashank Prasanna
on 3 Jul 2013
Edited: Shashank Prasanna
on 3 Jul 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 Comment
KJ N
on 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.
More Answers (3)
KJ N
on 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)]
0 Comments
Youssef Khmou
on 3 Jul 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 Comments
Youssef Khmou
on 3 Jul 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)))
Greg Heath
on 3 Jul 2013
In addition to the surprising fact that you did not post your exact code, your expression for exp(A*t) is incorrect.
0 Comments
See Also
Categories
Find more on Calculus in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!