Using the Laplace transform to compute the Matrix Exponential

(e^(At))  is computed as the inverse Laplace transform of the resolvent kernel.

by William Harris and Hubertus von Bremen

Laplace transforms are useful in solving linear differential equations because the transform of a function and its derivative are closely and simply related,

					ℒ[f' (t)] (s) = sℒ[f(t)](s) - f(0).

Applying the Laplace transform to the matrix initial value problem

					Y' (t)=AY(t)+F (t),  Y (0)=   (Subscript[Y, 0])
					
where A is an  n× n constant matrix yields

					(sI-A)ℒ[Y(t)]=(Subscript[Y, 0])+ℒ[F(t)]
					
and for s greater than any real eigenvalue of A,  (sI-A) is nonsingular and

					ℒ[Y(t)]=(((sI-A))^(-1))((Subscript[Y, 0])+ℒ[F(t)]),
and hence
					Y(t)=(ℒ^(-1))[(((sI-A))^(-1))](Subscript[Y, 0])+(ℒ^(-1))[(((sI-A))^(-1))ℒ[F(t)]] .
					
For (Subscript[Y, 0])=I, F(t)=0, the matrix exponential (e^(At)) is the unique solution of the matrix initial value problem

					X'(t)=AX(t),    X(0)=I.
Thus,
					Y(t)=(e^(At))(Subscript[Y, 0])+(∫_0^( t))(e^(A(t - s)))F(s)ds,
					
where we have used the convolution property (ℒ^(-1))[
            ℒ[f(t)] ℒ[g(t)]]=(∫_0^t)f(t - s) g(s) ds.

Thus, for the resolvent kernel
					R(s)=(((sI-A))^(-1)), (e^(At))=(ℒ^(-1))[R(s)].

For n ≥ 3, the determination of the resolvant kernel R(s) and the inverse transform is quite involved.  However, a Computer Algebra System (CAS) or Symbolic Manipulation Program (SMP) can be effectively used to determine R(s) as a matrix of proper rational functions with common denominator

					c(s)=det(sI-A) ,
					
and thus with the use of partial fraction expansion, (ℒ^(-1))[R(s)] can be easily determined.

We note that partial fraction expansion requires the exact factorization of c(s), i.e., the exact determination of the eigenvalues of A.

We present an implementation of this determination of the matrix exponential (e^(At)) through the Laplace transform using Mathematica.

We note that Mathematica has the command MatrixExp which produces (e^(At)) when the eigenvalues of A can be determined exactly.  However, we feel that the use of the Laplace transform yields an understanding of the solution process.

To be able to use Laplace transforms with Mathematica, the package:
Calculus`LaplaceTransforms` has to be loaded.  This is accomplished by the command: 

<<"Calculus`LaplaceTransform`"

The computation of (e^(At)) can be obtained by using the Mathematica commands: 

Define the matrix A
n=Dimensions[A,1][[1]];
B[s_]=s*IdentityMatrix[n]-A;
R[s_]=Inverse[B[s]];
P[s_]=Apart[R[s]]
InverseLaplaceTransform[P[s],s,t]

The following example illustrates the use of Mathematica in the computation of (e^(At)).

Example

<< "Calculus`LaplaceTransform`";

A = {{0, 4, -2}, {-1, -4, 1}, {-1, -3, 0}}

n = Dimensions[A, 1][[1]];

B[s_] = s*IdentityMatrix[n] - A

R[s_] = Inverse[B[s]]

P[s_] = Apart[R[s]]

InverseLaplaceTransform[P[s], s, t]

MatrixForm[%]

ABOUT THE AUTHORS

William Harris [deceased] was a professor of mathematics with research intertests in differential and difference equations.  He was an advocate for the use of CAS in teaching and research.



Hubertus von Bremen is a doctoral student in Mechanical Engineering at the University of Southern California.  He uses computer algebra systems in his research and is interested in the use of computers in education.

Hubertus von Bremen
Department of Mechanical Engineering
University of Southern California
Los Angeles, CA 90089-1453
vonbrem@scf.usc.edu