# 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 :

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 :

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 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: