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

6 Ansichten (letzte 30 Tage)
Sina
Sina am 3 Jul. 2013
Kommentiert: KJ N am 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?

Akzeptierte Antwort

Shashank Prasanna
Shashank Prasanna am 3 Jul. 2013
Bearbeitet: Shashank Prasanna am 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 Kommentar
KJ N
KJ N am 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

KJ N
KJ N am 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 am 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 Kommentare
Sina
Sina am 3 Jul. 2013
Oh I think I have misled you about I, actually I is the identity matrix
I = eye (2)
Youssef  Khmou
Youssef Khmou am 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)))

Melden Sie sich an, um zu kommentieren.


Greg Heath
Greg Heath am 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.

Kategorien

Mehr zu Geoscience finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by