# torch.linalg.matrix_exp¶

torch.linalg.matrix_exp(A)

Computes the matrix exponential of a square matrix.

Letting $\mathbb{K}$ be $\mathbb{R}$ or $\mathbb{C}$, this function computes the matrix exponential of $A \in \mathbb{K}^{n \times n}$, which is defined as

$\mathrm{matrix_exp}(A) = \sum_{k=0}^\infty \frac{1}{k!}A^k \in \mathbb{K}^{n \times n}.$

If the matrix $A$ has eigenvalues $\lambda_i \in \mathbb{C}$, the matrix $\mathrm{matrix_exp}(A)$ has eigenvalues $e^{\lambda_i} \in \mathbb{C}$.

Supports input of bfloat16, float, double, cfloat and cdouble dtypes. Also supports batches of matrices, and if A is a batch of matrices then the output has the same batch dimensions.

Parameters:

A (Tensor) – tensor of shape (*, n, n) where * is zero or more batch dimensions.

Example:

>>> A = torch.empty(2, 2, 2)
>>> A[0, :, :] = torch.eye(2, 2)
>>> A[1, :, :] = 2 * torch.eye(2, 2)
>>> A
tensor([[[1., 0.],
[0., 1.]],

[[2., 0.],
[0., 2.]]])
>>> torch.linalg.matrix_exp(A)
tensor([[[2.7183, 0.0000],
[0.0000, 2.7183]],

[[7.3891, 0.0000],
[0.0000, 7.3891]]])

>>> import math
>>> A = torch.tensor([[0, math.pi/3], [-math.pi/3, 0]]) # A is skew-symmetric
>>> torch.linalg.matrix_exp(A) # matrix_exp(A) = [[cos(pi/3), sin(pi/3)], [-sin(pi/3), cos(pi/3)]]
tensor([[ 0.5000,  0.8660],
[-0.8660,  0.5000]])