Jump to content

Matrix exponential

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Maechler (talk | contribs) at 08:51, 17 July 2023 (Mention R, Matrix::expm() {since 2005}). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Computing the matrix exponential

Finding reliable and accurate methods to compute the matrix exponential is difficult, and this is still a topic of considerable current research in mathematics and numerical analysis. Matlab, GNU Octave, R, and SciPy all use the Padé approximant.[1] [2] [3] [4] In this section, we discuss methods that are applicable in principle to any matrix, and which can be carried out explicitly for small matrices.[5] Subsequent sections describe methods suitable for numerical evaluation on large matrices.

Diagonalizable case

If a matrix is diagonal: then its exponential can be obtained by exponentiating each entry on the main diagonal:

This result also allows one to exponentiate diagonalizable matrices. If

A = UDU−1

and D is diagonal, then

eA = UeDU−1.

Application of Sylvester's formula yields the same result. (To see this, note that addition and multiplication, hence also exponentiation, of diagonal matrices is equivalent to element-wise addition and multiplication, and hence exponentiation; in particular, the "one-dimensional" exponentiation is felt element-wise for the diagonal case.)

Example : Diagonalizable

For example, the matrix can be diagonalized as

Thus,

Nilpotent case

A matrix N is nilpotent if Nq = 0 for some integer q. In this case, the matrix exponential eN can be computed directly from the series expansion, as the series terminates after a finite number of terms:

Since the series has a finite number of steps, it is a matrix polynomial, which can be computed efficiently.

General case

Using the Jordan–Chevalley decomposition

By the Jordan–Chevalley decomposition, any matrix X with complex entries can be expressed as where

  • A is diagonalizable
  • N is nilpotent
  • A commutes with N

This means that we can compute the exponential of X by reducing to the previous two cases:

Note that we need the commutativity of A and N for the last step to work.

Using the Jordan canonical form

A closely related method is, if the field is algebraically closed, to work with the Jordan form of X. Suppose that X = PJP−1 where J is the Jordan form of X. Then

Also, since

Therefore, we need only know how to compute the matrix exponential of a Jordan block. But each Jordan block is of the form

where N is a special nilpotent matrix. The matrix exponential of J is then given by

Projection case

If P is a projection matrix (i.e. is idempotent: P2 = P), its matrix exponential is:

eP = I + (e − 1)P.

Deriving this by expansion of the exponential function, each power of P reduces to P which becomes a common factor of the sum:

Rotation case

For a simple rotation in which the perpendicular unit vectors a and b specify a plane,[6] the rotation matrix R can be expressed in terms of a similar exponential function involving a generator G and angle θ.[7][8]

The formula for the exponential results from reducing the powers of G in the series expansion and identifying the respective series coefficients of G2 and G with −cos(θ) and sin(θ) respectively. The second expression here for e is the same as the expression for R(θ) in the article containing the derivation of the generator, R(θ) = e.

In two dimensions, if and , then , , and reduces to the standard matrix for a plane rotation.

The matrix P = −G2 projects a vector onto the ab-plane and the rotation only affects this part of the vector. An example illustrating this is a rotation of 30° = π/6 in the plane spanned by a and b,

Let N = I - P, so N2 = N and its products with P and G are zero. This will allow us to evaluate powers of R.

  1. ^ "Matrix exponential – MATLAB expm – MathWorks Deutschland". Mathworks.de. 2011-04-30. Retrieved 2013-06-05.
  2. ^ "GNU Octave – Functions of a Matrix". Network-theory.co.uk. 2007-01-11. Archived from the original on 2015-05-29. Retrieved 2013-06-05.
  3. ^ "R - pkg {Matrix}: Matrix Exponential". 2005-02-28. Retrieved 2023-07-17.
  4. ^ "scipy.linalg.expm function documentation". The SciPy Community. 2015-01-18. Retrieved 2015-05-29.
  5. ^ See Hall 2015 Section 2.2
  6. ^ in a Euclidean space
  7. ^ Weyl, Hermann (1952). Space Time Matter. Dover. p. 142. ISBN 978-0-486-60267-7. {{cite book}}: ISBN / Date incompatibility (help)
  8. ^ Bjorken, James D.; Drell, Sidney D. (1964). Relativistic Quantum Mechanics. McGraw-Hill. p. 22.