How can we accurately compute the matrix exponential?

In summary, calculating a matrix's exponential can be done using two methods - by using its power series or by diagonalizing the matrix and using its Jordan normal form. The former method involves calculating the sum of the matrix's powers divided by their factorial, while the latter method involves diagonalizing the matrix and then evaluating the exponential of the diagonal matrix. However, the Jordan normal form can be problematic numerically and is only useful for certain types of matrices. An alternative method used by MATLAB is to divide the matrix by a number and approximate it using a Pade approximation, followed by scaling and squaring to obtain the matrix exponential. This method is more robust for most matrices, but may encounter numeric problems in certain cases.
  • #1
princeton118
33
0
How to calculate a matrix's exponential?

e.g exp(-iaL), where L is a 4*4 matrix (like a group generator )
 
Mathematics news on Phys.org
  • #2
By its power series:

[tex]\exp(-iaL)=\sum_{n=0}^{\infty}\frac{(-ia)^nL^n}{n!} [/tex]
 
  • #3
Another method is to diagonalize L:

[tex]L = P^{-1}DP[/tex]

where

[tex]D = \left[ \begin{array}{cccc}\lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{array} \right][/tex]

for the eigenvalues [itex]\lambda_k[/itex]. Then

[tex]e^L = e^{P^{-1}DP} = P^{-1}e^DP[/tex]

(sorry, I forget the proof of this). Then [itex]e^D[/itex] is easy to evaluate:

[tex]e^D = \left[ \begin{array}{cccc}e^{\lambda_1} & & & \\ & e^{\lambda_2} & & \\ & & \ddots & \\ & & & e^{\lambda_n} \end{array} \right][/tex]
 
  • #4
Ben Niehoff's suggestion is almost the same as Sangreda's. In order to efficiently evaluate the sum Sangreda gives, you really need to use a diagonal matrix. Unfortunately, not every matrix is diagonalizable and you have to use "Jordan Normal Form" which leads to a much more complicated formula.

Also to prove Ben Niehoff's forumla, you can use the Taylors series for ex. If A = PDP-1, where D is diagonal, note that [itex]A^2= (PDP^{-1})^2= (PDP^{-1})(PDP^{-1})= PD(P^{-1}P)DP^{-1}= PD^2P^{-1}[/itex]. Then [itex]A^3= (PDP^{-1})^3= (PDP^{-1})^2(PDP^{-1})= PD^3P^{-1}[/itex] and you can prove generally (by induction) that [itex]A^n= (PDP^{-1})^n= PD^nP^{-1}[/itex].

Then
[tex]e^A= I+ A+ \frac{1}{2}A^2+ \cdot\cdot\cdot+ \frac{1}{n!}A^n+ \cdot\cdot\cdot[
[tex]= I+ PDP^{-1}+ \frac{1}{2}(PDP^{-1})^2+ \cdot\cdot\cdot+ \frac{1}{n!}(PDP^{-1})^n+ \cdot\cdot\cdot[/tex]
[tex]= (PP^{-1})+ PDP^{-1}+ /frac{1}{2}(PD^2P^{-1})+ \cdot\cdot\cdot+ \frac{1}{n!}+ PD^nP^{-1}+ \cdot\cdot\cdot[/tex]
[tex]= P(I+ D+ \frac{1}{2}D^2+ \cdot\cdot\cdot+ \frac{1}{n!}D^n+ \cdot\cdot\cdot)P^{-1}[/tex]
[tex]= Pe^DP^{-1}[/tex]
and eD is just the diagonal matrix with e^{a} on the diagonal where a is a diagonal element of D.

With that "i" you might find it better to use [itex]e^{iA}= cos(A)+ i sin(A)[/itex]. You can find cos(A) and sin(A) by using their Taylor series in exactly the same way: if A is diagonalizable- [itex]A= PDP^{-1}[/itex], then cos(A)= Pcos(D)P^{-1}, sin(A)= Psin(D)P^{-1}. Of course, cos(D) is the diagonal matrix with diagonal elements cos(a) for every a on the diagonal of D and sin(D) is the diagonal matrix with diagonal elements sin(a) for every a on the diagonal of D.
 
  • #5
1) Functions of operators

Let [itex]A[/itex] be an operator, [itex]a_k[/itex] its eigenvalues and [itex]|\Psi_k \rangle[/itex] the eigenvectors,
i.e. you have the eigenequation [itex]A |\Psi_k \rangle = a_k |\Psi_k \rangle[/itex].
Functions of an operator [itex]A[/itex] are calculated as

[tex]f(A) = \sum_{k=1}^N f(a_k) |\Psi_k \rangle \langle \Psi_k|[/tex]

Let's call this equation (1).
(see Plenio, lecture notes on quantum mechanics 2002, page 51 eq. (1.86) http://www.lsr.ph.ic.ac.uk/~plenio/teaching.html ).2) Functions of matrices

Equation (1) can also be used to calculate functions of matrices.
Let A be a matrix with the eigenequation

[tex]A \vec{\Psi}_k = a_k \vec{\Psi}_k[/tex]

Then equation (1) becomes

[tex]f(A) = \sum_{k=1}^N f(a_k) \vec{\Psi}_k (\vec{\Psi}_k)^T[/tex]

[itex]a_k[/itex] is the eigenvalue, [itex]\vec{\Psi}_k[/itex] is the eigenvector (column vector) and [itex]\vec{\Psi}_k^T[/itex] is the transposed eigenvector (row vector).3) Calculate exp(L)

In your case we have a matrix L.
You first have to calculate the eigenvalues [itex]l_k[/itex] and eigenvectors [itex]\vec{\Psi}_k[/itex] of L, i.e. you have the eigenequation
[itex]L \vec{\Psi}_k = l_k \vec{\Psi}_k[/itex]

And for your case we consider the function [itex]f(x)=\mbox{exp}(x)[/itex] such that
[itex]f(L)=\mbox{exp}(L)[/itex] and [itex]f(l_i) = \mbox{exp}(l_i)[/itex]

Plugging this into equation (1) we get

[tex]f(L) = \sum_{k=1}^N f(l_k) \vec{\Psi}_k \vec{\Psi}_k^T[/tex]

[tex]\mbox{exp}(L) = \sum_{k=1}^N \mbox{exp}(l_k) \vec{\Psi}_k \vec{\Psi}_k^T[/tex]4) Calculate [tex]\mbox{exp}(-iaL)[/tex]

In order to calculate [itex]\mbox{exp}(-iaL)[/itex] you just multiply your
eigenequation [itex]L \vec{\Psi}_k = l_k \vec{\Psi}_k[/itex] by [itex](-ia)[/itex]
and get the new eigenequation
[itex](-ai)L \vec{\Psi}_k = (-ai)l_k \vec{\Psi}_k[/itex]

You can interpret this as eigenequation with the matrix
[itex](-ai)L[/itex] whose eigenvalues are [itex](-ai)l_k[/itex]

Thus, you can calculate [itex]\mbox{exp}(-aiL)[/itex] as

[tex]\mbox{exp}(-aiL) = \sum_{k=1}^N \mbox{exp}(-ail_k) \vec{\Psi}_k \vec{\Psi}_k^T[/tex]
 
Last edited by a moderator:
  • #6
I have seen a method of decomposing the matrix [tex]A[/tex] as [tex]A=D+N[/tex] where [tex]D[/tex] is diagonable and [tex]N[/tex] is nilpotent and the method is mentioned in wiki. however I cannot find its original source and other relevant papers. Can anybody tell me something about the details?
 
  • #7
Look up Jordan normal form.
 
  • #8
The Jorden form is problematic numerically, and thus only useful for certain kinds of matrices. (e.g. ones we can evaluate symbolically). The problem with the Jorden form is very slight changes in the eigenvectors, destroy the Jorden representation. The scur decomposition is more numerically robust but I haven’t heard of numeric algorithms that use this decomposition to compute the matrix exponential.

Matlab uses a scaling and squaring operation.

exp(A)~exp(A/t)^t

First the matrix is divided by some number so that the matrix can be approximated with a Pade approximation. A pade approximation provides a better fit then a taylor series. Once the matrix exponential fox A/t is approximated then matrix approximation of A is approximated via the above relation.

The method used by MATLAB is superior for most matrices. The diagonalization method is only superior when the eignevalues are nearly orthogonal. There are many cases where numeric problems may arise. For instance if the eigen values are too close together or too far apart. In such cases the numeric methods may not yield accurate computations of the Matrix expontial.
 

What is the exponential of a matrix?

The exponential of a matrix is a mathematical operation that involves raising a square matrix to a certain power. It is denoted by e^A, where A is the matrix. The result of this operation is also a matrix.

Why is the exponential of a matrix important?

The exponential of a matrix is important because it has many applications in various fields, such as physics, engineering, and economics. It is used to solve differential equations, model growth and decay processes, and calculate transition probabilities in Markov chains.

How is the exponential of a matrix calculated?

The exponential of a matrix is calculated using the Taylor series expansion, which involves an infinite sum of powers of the matrix. However, in practice, the calculation is usually approximated by truncating the series to a finite number of terms.

What are the properties of the exponential of a matrix?

The exponential of a matrix has several properties, including the fact that it is always invertible, it commutes with scalar multiplication, and it satisfies the identity e^0 = I, where I is the identity matrix. It also has a unique logarithm, which is useful in solving equations involving the exponential of a matrix.

Can any matrix be raised to any power?

No, not all matrices can be raised to any power. The exponential of a matrix is only defined for square matrices, and the power must be a real or complex number. Additionally, the matrix must be diagonalizable, meaning it can be transformed into a diagonal matrix using a change of basis.

Similar threads

  • General Math
Replies
6
Views
1K
  • General Math
Replies
3
Views
804
  • General Math
Replies
1
Views
724
  • Advanced Physics Homework Help
Replies
1
Views
1K
  • General Math
Replies
8
Views
2K
  • Linear and Abstract Algebra
Replies
2
Views
2K
Replies
1
Views
1K
Replies
2
Views
990
Replies
1
Views
756
Replies
2
Views
388
Back
Top