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

조회 수: 7 (최근 30일)
Sina
Sina 2013년 7월 3일
댓글: KJ N 2017년 11월 9일
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?

채택된 답변

Shashank Prasanna
Shashank Prasanna 2013년 7월 3일
편집: Shashank Prasanna 2013년 7월 3일
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
KJ N
KJ N 2017년 11월 9일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (3개)

KJ N
KJ N 2017년 11월 9일
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 2013년 7월 3일
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
Sina
Sina 2013년 7월 3일
Oh I think I have misled you about I, actually I is the identity matrix
I = eye (2)
Youssef  Khmou
Youssef Khmou 2013년 7월 3일
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
Greg Heath 2013년 7월 3일
In addition to the surprising fact that you did not post your exact code, your expression for exp(A*t) is incorrect.

카테고리

Help CenterFile Exchange에서 Calculus에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by