MatrixExp

MatrixExp[m]

gives the matrix exponential of m.

MatrixExp[m,v]

gives the matrix exponential of m applied to the vector v.

Details and Options

  • MatrixExp[m] effectively evaluates the power series for the exponential function, with ordinary powers replaced by matrix powers. »
  • MatrixExp works only on square matrices.

Examples

open allclose all

Basic Examples  (3)

Exponential of a 3×3 numerical matrix:

This is not simply the exponential of each entry in the matrix:

Exponential of a 2×2 symbolic matrix:

Exponential applied to a vector:

Scope  (11)

Basic Uses  (6)

Exponentiate a machine-precision matrix:

Exponentiate a complex matrix:

Compute the exponential of an exact matrix:

The exponential of an arbitrary-precision matrix:

Exponential of a symbolic matrix:

Computing the exponential of large machine-precision matrices is efficient:

Directly applying the exponential to a single vector is even more efficient:

Special Matrices  (5)

The exponential of a sparse matrix is returned as a normal matrix:

Format the result:

Directly apply the matrix exponential of a sparse matrix to a sparse vector:

Compute the exponential of a structured array:

Exponentiate IdentityMatrix:

More generally, the exponential of any diagonal matrix is the exponential of its diagonal elements:

Exponentiate HilbertMatrix:

Applications  (5)

Suppose a particle is moving in a planar force field and its position vector satisfies and , where and are as follows. Solve this initial problem for :

The solution to this differential equation is :

Verify the solution using DSolveValue:

A system of first-order linear differential equations:

Write the system in the form with :

The matrix exponential gives the basis for the general solution:

The matrix exponential applied to a vector gives a particular solution:

In quantum mechanics, the energy operator is called the Hamiltonian . Given the Hamiltonian for a spin-1 particle in constant magnetic field in the direction, find the state at time of a particle that is initially in the state representing :

The system evolves according to the Schrödinger equation :

Cross products with respect to fixed three-dimensional vectors can be represented by matrix multiplication, which is useful in studying rotational motion. Construct the antisymmetric matrix representing the linear operator , where is an angular velocity about the axis:

Verify that the action of is the same as doing a cross product with :

The rotation matrix at time is the matrix exponential of times the previous matrix:

Verify using RotationMatrix:

The point at time zero will be at time :

The velocity of will be given by :

And the vector from the axis of rotation to is (v(t)xomega)/(TemplateBox[{omega}, Norm]^2):

Visualize this motion and the associated vectors:

The matrix s approximates the second derivative periodic on on the grid x:

A vector representing a soliton on the grid x:

Propagate the solution of using a splitting :

Plot the solution and 10 times the error from the solution of the cubic Schrödinger equation:

Properties & Relations  (10)

MatrixExp effectively uses the power series for Exp, with Power replaced by MatrixPower:

Equivalently, MatrixExp is MatrixFunction applied to Exp:

The matrix exponential of a diagonal matrix is a diagonal matrix with the diagonal entries exponentiated:

If m is diagonalizable with , then exp(m)=TemplateBox[{v}, Inverse].exp(d).v:

MatrixExp[m] is always invertible, and the inverse is given by MatrixExp[-m]:

MatrixExp of a real, antisymmetric matrix is orthogonal:

MatrixExp of an antihermitian matrix is unitary:

MatrixExp of a Hermitian matrix is positive-definite:

MatrixExp satisfies :

The matrix exponential of a nilpotent matrix is a polynomial in the exponentiation parameter:

Confirm that is nilpotent ( for some ):

can be computed from the JordanDecomposition as s.exp(j).TemplateBox[{s}, Inverse]

Moreover, is zero except in upper triangular blocks delineated by s in the superdiagonal:

Possible Issues  (1)

For a large sparse matrix, computing the matrix exponential may take a long time:

Computing the application of it to a vector uses less memory and is much faster:

The results are essentially the same:

Neat Examples  (1)

Wolfram Research (1991), MatrixExp, Wolfram Language function, https://reference.wolfram.com/language/ref/MatrixExp.html (updated 2014).

Text

Wolfram Research (1991), MatrixExp, Wolfram Language function, https://reference.wolfram.com/language/ref/MatrixExp.html (updated 2014).

CMS

Wolfram Language. 1991. "MatrixExp." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/MatrixExp.html.

APA

Wolfram Language. (1991). MatrixExp. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/MatrixExp.html

BibTeX

@misc{reference.wolfram_2022_matrixexp, author="Wolfram Research", title="{MatrixExp}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/MatrixExp.html}", note=[Accessed: 05-December-2022 ]}

BibLaTeX

@online{reference.wolfram_2022_matrixexp, organization={Wolfram Research}, title={MatrixExp}, year={2014}, url={https://reference.wolfram.com/language/ref/MatrixExp.html}, note=[Accessed: 05-December-2022 ]}