why exp(a*t) is not equal to ilaplace ((s*i-a)^-1) in matlab
    13 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
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



