Functions of a Matrix: Theory and Computationhigham/talks/talk06_funm.pdf · Classic MATLAB help...
Transcript of Functions of a Matrix: Theory and Computationhigham/talks/talk06_funm.pdf · Classic MATLAB help...
Functions of a Matrix:
Theory and Computation
Nick HighamSchool of Mathematics
The University of Manchester
http://www.ma.man.ac.uk/~higham/
Landscapes in Mathematical Science,University of Bath, November 24 2006
Outline
1 Definition of f (A)
2 Motivation and MATLAB
3 eA and its Frechét derivative
4 A1/2: Modified Newton Methods
MIMS Nick Higham Functions of a Matrix 2 / 45
Function of a Matrix
f : Cn×n 7→ C
n×n for an underlying scalar function f .
These are not matrix functions:
trace(A), det(A).
The adjugate (or adjoint) matrix.
Transfer function f (t) = B(tI − A)−1C.
sin A = (sin aij).
These are matrix functions:
eA = I + A +A2
2!+ · · · .
log(I + A) = A− A2
2+
A3
3+ · · · , ρ(A) < 1.
A−1, A1/2.
MIMS Nick Higham Functions of a Matrix 3 / 45
Multiplicity of Definitions
There have been proposed in the literature since 1880
eight distinct definitions of a matric function,
by Weyr, Sylvester and Buchheim,
Giorgi, Cartan, Fantappiè, Cipolla,
Schwerdtfeger and Richter.
— R. F. Rinehart,The Equivalence of Definitions of a Matric Function,
Amer. Math. Monthly (1955)
MIMS Nick Higham Functions of a Matrix 4 / 45
Jordan Canonical Form
Z−1AZ = J = diag(J1, . . . , Jp), Jk︸︷︷︸mk×mk
=
λk 1
λk. . .. . . 1
λk
Definition
f (A) = Zf (J)Z−1 = Zdiag(f (Jk))Z−1,
f (Jk) =
f (λk) f ′(λk) . . .f (mk−1))(λk)
(mk − 1)!
f (λk). . .
.... . . f ′(λk)
f (λk)
.
MIMS Nick Higham Functions of a Matrix 5 / 45
The Formula for f (Jk)
Write Jk = λk I + Ek ∈ Cmk×mk . For mk = 3 we have
Ek =
0 1 0
0 0 1
0 0 0
, E2
k =
0 0 1
0 0 0
0 0 0
, E3
k = 0.
Assume f has Taylor expansion
f (t) = f (λk) + f ′(λk)(t − λk) + · · ·+ f (j)(λk)(t − λk)j
j!+ · · · .
Then
f (Jk) = f (λk)I + f ′(λk)Ek + · · ·+ f (mk−1)(λk)Emk−1k
(mk − 1)!.
MIMS Nick Higham Functions of a Matrix 6 / 45
Interpolation
Definition (Sylvester, 1883; Buchheim, 1886)
Distinct e’vals λ1, . . . , λs, ni = max size of Jordan blocks for
λi . Then f (A) = r(A), where r is unique Hermite
interpolating poly of degree <∑s
i=1 ni satisfying
r (j)(λi) = f (j)(λi), j = 0 : ni − 1, i = 1 : s.
MIMS Nick Higham Functions of a Matrix 7 / 45
Interpolation
Definition (Sylvester, 1883; Buchheim, 1886)
Distinct e’vals λ1, . . . , λs, ni = max size of Jordan blocks for
λi . Then f (A) = r(A), where r is unique Hermite
interpolating poly of degree <∑s
i=1 ni satisfying
r (j)(λi) = f (j)(λi), j = 0 : ni − 1, i = 1 : s.
Example. Let f (t) = t1/2, A =
[2 2
1 3
], λ(A) = {1, 4}.
Taking +ve square roots,
r(t) = f (1)t − 4
1− 4+ f (4)
t − 1
4− 1=
1
3(t + 2).
⇒ A1/2 = r(A) =1
3(A + 2I) =
1
3
[4 2
1 5
].
MIMS Nick Higham Functions of a Matrix 7 / 45
Cauchy Integral Theorem
Definition
f (A) =1
2πi
∫
Γ
f (z)(zI − A)−1 dz,
where f is analytic on and inside a closed contour Γ that
encloses λ(A).
MIMS Nick Higham Functions of a Matrix 8 / 45
Equivalence of Definitions
Theorem
The three definitions are equivalent, modulo analyticity
assumption for Cauchy.
Interpolation: for basic properties.
JCF: for solving matrix equations (e.g., X 2 = A,
eX = A). For evaluation (normal A).
Cauchy: various uses.
MIMS Nick Higham Functions of a Matrix 9 / 45
Equivalence of Definitions
Theorem
The three definitions are equivalent, modulo analyticity
assumption for Cauchy.
Interpolation: for basic properties.
JCF: for solving matrix equations (e.g., X 2 = A,
eX = A). For evaluation (normal A).
Cauchy: various uses.
For computation:
Use the definitions (with care).
Schur decomposition for general f .
Methods specific to particular f .
MIMS Nick Higham Functions of a Matrix 9 / 45
Outline
1 Definition of f (A)
2 Motivation and MATLAB
3 eA and its Frechét derivative
4 A1/2: Modified Newton Methods
MIMS Nick Higham Functions of a Matrix 10 / 45
Toolbox of Matrix Functions
Want to have techniques for evaluating interesting f at
matrix args as well as scalar args.
Example:
d2y
dt2+ Ay = 0, y(0) = y0, y ′(0) = y ′
0
has solution
y(t) = cos(√
At)y0 +(√
A)−1
sin(√
At)y ′0,
where√
A is any square root of A.
MATLAB has expm, logm, sqrtm, funm.
MIMS Nick Higham Functions of a Matrix 11 / 45
Classic MATLAB
< M A T L A B >
Version of 01/10/84
HELP is available
<>
help
Type HELP followed by
INTRO (To get started)
NEWS (recent revisions)
ABS ANS ATAN BASE CHAR CHOL CHOP CLEA COND CONJ COS
DET DIAG DIAR DISP EDIT EIG ELSE END EPS EXEC EXIT
EXP EYE FILE FLOP FLPS FOR FUN HESS HILB IF IMAG
INV KRON LINE LOAD LOG LONG LU MACR MAGI NORM ONES
ORTH PINV PLOT POLY PRIN PROD QR RAND RANK RCON RAT
REAL RETU RREF ROOT ROUN SAVE SCHU SHOR SEMI SIN SIZE
SQRT STOP SUM SVD TRIL TRIU USER WHAT WHIL WHO WHY
< > ( ) = . , ; \ / ’ + - * :
MIMS Nick Higham Functions of a Matrix 12 / 45
Classic MATLAB
<>
help fun
FUN For matrix arguments X , the functions SIN, COS, ATAN,
SQRT, LOG, EXP and X**p are computed using eigenvalues D
and eigenvectors V . If <V,D> = EIG(X) then f(X) =
V*f(D)/V . This method may give inaccurate results if V
is badly conditioned. Some idea of the accuracy can be
obtained by comparing X**1 with X .
For vector arguments, the function is applied to each
component.
The availability of [FUN] in early versions of MATLAB
quite possibly contributed to
the system’s technical and commercial success.
— Cleve Moler (2003)
MIMS Nick Higham Functions of a Matrix 13 / 45
Outline
1 Definition of f (A)
2 Motivation and MATLAB
3 eA and its Frechét derivative
4 A1/2: Modified Newton Methods
MIMS Nick Higham Functions of a Matrix 14 / 45
Matrix Exponential
Large literature.
Early exposition in Frazer, Duncan & Collar.
Elementary Matrices and Some Applications toDynamics and Differential Equations. CUP, 1938.
Moler & Van Loan.
Nineteen dubious ways to compute the exponentialof a matrix, twenty-five years later, SIAM Rev., 45
(2003).
Over 500 citations on ISI Citation Index.
MIMS Nick Higham Functions of a Matrix 15 / 45
Scaling and Squaring Method
◮ B ← A/2s so ‖B‖∞ ≈ 1
◮ rm(B) = [m/m] Padé approximant to eB
◮ X = rm(B)2s ≈ eA
Used by expm in MATLAB.
Originates with Lawson (1967).
Ward (1977): algorithm, with rounding error analysis
and a posteriori error bound.
Moler & Van Loan (1978): give backward error
analysis covering truncation error in Padé
approximants, allowing choice of s and m.
MIMS Nick Higham Functions of a Matrix 16 / 45
Padé Approximations rm to ex
rm(x) = pm(x)/qm(x) known explicitly:
pm(x) =m∑
j=0
(2m − j)!m!
(2m)! (m − j)!
x j
j!
and qm(x) = pm(−x). Error satisfies
ex−rm(x) = (−1)m (m!)2
(2m)!(2m + 1)!x2m+1+O(x2m+2).
MIMS Nick Higham Functions of a Matrix 17 / 45
Analysis
Let
e−Arm(A) = I + G = eH
and assume ‖G‖ < 1. Then
‖H‖ = ‖ log(I + G)‖ ≤∞∑
j=1
‖G‖j/j = − log(1− ‖G‖).
Hence
rm(A) = eAeH = eA+H .
Rewrite as
rm(A/2s)2s
= eA+E ,
where E = 2sH satisfies
‖E‖ ≤ −2s log(1− ‖G‖).
MIMS Nick Higham Functions of a Matrix 18 / 45
Result
Theorem
Let
e−2−sA rm(2−sA) = I + G,
where ‖G‖ < 1. Then the Padé approximant rm satisfies
rm(2−sA)2s
= eA+E ,
where‖E‖‖A‖ ≤
− log(1− ‖G‖)‖2−sA‖ .
◮ Need to bound ‖G‖ given m and ‖2−sA‖.◮ Then ‖E‖/‖A‖ bounded in terms of m, s and ‖A‖.◮ Now select “best” (s, m) pair for given ‖A‖.
MIMS Nick Higham Functions of a Matrix 19 / 45
Bounding ‖G‖
ρ(x) := e−x rm(x)− 1 =∞∑
i=2m+1
cixi
converges absolutely for |x | < min{ |t | : qm(t) = 0 } =: νm.
Hence, with θ := ‖2−sA‖ < νm,
‖G‖ = ‖ρ(2−sA)‖ ≤∞∑
i=2m+1
|ci |θi =: f (θ). (∗)
Thus ‖E‖/‖A‖ ≤ − log(1− f (θ))/θ) .
◮ If only ‖A‖ known, (∗) is optimal bound on ‖G‖.◮ Moler & Van Loan (1978) bound less sharp;
Dieci & Papini (2000) bound a different error.
MIMS Nick Higham Functions of a Matrix 20 / 45
Summary of Computations
Solve “bound = unit roundoff” by summing 150 terms of
series in 250 digit arithmetic.
Work out cost of evaluating rm(B) and of the squaring
phase.
Minimize cost subject to retaining numerical stability in
evaluation of rm(B).
Precision m θm
IEEE single 7 3.9
IEEE double 13 5.4
IEEE quad 17 3.3
MIMS Nick Higham Functions of a Matrix 21 / 45
Scaling and Squaring Algorithm for eA
Algorithm 1 (H, 2005; MATLAB 7.2, Mathematica 5.1)
1 for m = [3 5 7 9]2 if ‖A‖1 ≤ θm
3 X = rm(A).4 quit
5 end
6 end
7 A← A/2s with s ≥ 0 minimal s.t. ‖A/2s‖1 ≤ θ13 = 5.48 A2 = A2, A4 = A2
2, A6 = A2A4
9 U = A[A6(b13A6 + b11A4 + b9A2) + b7A6 + b5A4 + b3A2 + b1I
]
10 V = A6(b12A6 + b10A4 + b8A2) + b6A6 + b4A4 + b2A2 + b0I
11 Solve (−U + V )r13 = U + V for r13.
12 X = r132s
by repeated squaring.
MIMS Nick Higham Functions of a Matrix 22 / 45
Comparison with Existing Algorithms
Method m max ‖2−sA‖Alg 1 13 5.4
Ward (1977) 8 1.0 [θ8 = 1.5]
Old MATLAB expm 6 0.5 [θ6 = 0.54]
Sidje (1998) 6 0.5
◮ ‖A‖1 > 1: Alg 1 requires 1–2 fewer mat mults than
Ward, 2–3 fewer than expm.
◮ ‖A‖1 ∈ (2, 2.1):Alg 1 Ward expm Sidje
mults 5 7 8 10
MIMS Nick Higham Functions of a Matrix 23 / 45
Squaring Phase
◮ The bound
‖A2 − fl(A2)‖ ≤ γn‖A‖2, γn =nu
1− nu.
shows the dangers in matrix squaring.
◮ Open question: are errors in squaring phase
consistent with conditioning of the problem?
◮ Our choice of parameters uses 1–5 fewer matrix
squarings than previous algorithms. Hence has
potential accuracy advantages.
MIMS Nick Higham Functions of a Matrix 24 / 45
Numerical Experiment
◮ 70 test matrices, dimension 2–10.
◮ Evaluated 1-norm relative error ‖X − X‖1/‖X‖1.
◮ Notation:
◮ expm: Alg 1 (MATLAB 7.2).
◮ old_expm: MATLAB 7.1.
◮ funm: MATLAB 7.
◮ padm: Sidje.
◮ cond(A) = limǫ→0
max‖E‖2≤ǫ‖A‖2
‖eA+E − eA‖2
ǫ‖eA‖2
.
MIMS Nick Higham Functions of a Matrix 25 / 45
Different S&S Codes and funm
0 10 20 30 40 50 60 70
10−18
10−16
10−14
10−12
10−10
10−8
10−6
old_expm
padm
funm
expm (Alg 1)
cond*u
MIMS Nick Higham Functions of a Matrix 26 / 45
Performance Profiles
Dolan & Moré (2002) propose a new type of performance
profile.
For the given set of solvers and test problems, plot
x-axis: α
y -axis: probability that solver has error within factor αof smallest error over all solvers on the test set.
MIMS Nick Higham Functions of a Matrix 27 / 45
Performance Profile
1 1.5 2 2.5 3 3.5 4 4.5 50
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
expm (Alg 1)
padm
funm
old_expm
α
p
MIMS Nick Higham Functions of a Matrix 28 / 45
Frechét Derivative
Fréchet derivative of f : Cn×n → C
n×n at X ∈ Cn×n
A linear mapping L : Cn×n → C
n×n s.t. for all E ∈ Cn×n
f (X + E)− f (X )− L(X , E) = o(‖E‖).
Example For f (X ) = X 2 we have
f (X + E)− f (X ) = XE + EX + E2,
so L(X , E) = XE + EX .
MIMS Nick Higham Functions of a Matrix 29 / 45
Frechét Derivative of eA
L(A, E) =
∫ 1
0
eA(1−s)EeAs ds.
‖L(A)‖ := max ‖L(A, E)‖/‖E‖.
Condition no. of the exponential: κexp(A) =‖L(A)‖‖A‖‖eA‖ .
‖L(A)‖ ≥ ‖L(A, I)‖ = ‖eA‖ ⇒ κexp(A) ≥ ‖A‖ .
Theorem
If A ∈ Cn×n is normal then in the 2-norm,
κexp(A) = ‖A‖2.
If A ∈ Rn×n is a nonnegative scalar multiple of a
stochastic matrix then in the∞-norm, κexp(A) = ‖A‖∞.
MIMS Nick Higham Functions of a Matrix 30 / 45
Quadrature
Repeated trap rule:∫ 1
0f (t) dt ≈ 1
m(1
2f0 + f1 + f2 + · · ·+ fm−1 + 1
2fm), fi := f (i/m)
gives L(A, E) ≈ 1m
(12eAE +
∑m−1i=1 eA(1−i/m)EeAi/m + 1
2EeA
).
Requires eA/m, e2A/m, . . . , e(m−1)A/m, eA.
Lemma
Consider R1(A, E) =∑p
i=1 wi eA(1−ti )EeAti and denote its
m-times repeated form by Rm(A, E). If
Qs = R1(2−sA, 2−sE),
Qi−1 = e2−i AQi + Qi e2−i A, i = s : −1 : 1,
then Q0 = R2s(A, E) .
MIMS Nick Higham Functions of a Matrix 31 / 45
Scaling and Squaring
Recall Lx2(A, E) = AE + EA.
Applying chain rule to eA = (eA/2)2 gives
Lexp(A, E) = Lx2
(eA/2, Lexp(A/2, E/2)
)
= eA/2Lexp(A/2, E/2) + Lexp(A/2, E/2)eA/2.
Recurrence for L0 = Lexp(A, E):
Ls = Lexp(2−sA, 2−sE),
Li−1 = e2−i ALi + Li e2−i A, i = s : −1 : 1.
MIMS Nick Higham Functions of a Matrix 32 / 45
Quadrature Algorithm
Algorithm (Kenney & Laub, 1998; Mathias, 1993)
Approximates L = Lexp(A, E) via repeated Simpson rule;
order of magnitude estimate.
1 B = A/2s with s ≥ 0 minimal s.t. ‖A/2s‖1 ≤ 1/2
2 X = eB
3 X = eB/2
4 Qs = 2−s(XE + 4XEX + EX )/6
5 for i = s:−1: 1
6 if i < s, X = e2−i A, end
7 Qi−1 = XQi + QiX
8 end
9 L = Q0
MIMS Nick Higham Functions of a Matrix 33 / 45
Kronecker Formula
L(A, E) =
∫ 1
0
eA(1−s)EeAs ds.
MIMS Nick Higham Functions of a Matrix 34 / 45
Kronecker Formula
L(A, E) =
∫ 1
0
eA(1−s)EeAs ds.
A⊗ B = (aijB) ∈ Cn2×n2
.
A⊕ B = A⊗ In + Im ⊗ B.
eA⊕B = eA ⊗ eB.
vec(AXB) = (BT ⊗ A)vec(X ).
MIMS Nick Higham Functions of a Matrix 34 / 45
Kronecker Formula
L(A, E) =
∫ 1
0
eA(1−s)EeAs ds.
A⊗ B = (aijB) ∈ Cn2×n2
.
A⊕ B = A⊗ In + Im ⊗ B.
eA⊕B = eA ⊗ eB.
vec(AXB) = (BT ⊗ A)vec(X ).
Theorem
vec(L(A, E)) = K (A)vec(E), where
K (A) = 12(eAT ⊕ eA)τ
(12[AT ⊕ (−A)]
)∈ C
n2×n2,
τ(x) = tanh(x)/x and 12‖AT ⊕ (−A)‖ < π/2 assumed.
MIMS Nick Higham Functions of a Matrix 34 / 45
Approximating the Frechét Derivative
[AT ⊕ (−A)− θI
]vec(E) =
[AT ⊗ I − I ⊗ A− θI
]vec(E)
= vec(EA− AE − θI)
= vec(E(A− θ/2 · I)− (A + θ/2 · I)E).
Obtain Padé approximant
τ(x) = tanh(x)/x ≈ rm(x) =m∏
i=1
(x/βi − 1)−1(x/αi − 1)
by truncating
τ(x) = 1 +1
1 +x2/(1 · 3)
1 +x2/(3 · 5)
1 + · · · x2/((2k − 1) · (2k + 1))
1 + · · ·
.
MIMS Nick Higham Functions of a Matrix 35 / 45
Algorithm (Fréchet derivative; Kenney & Laub, 1998)
Evaluates L = Lexp(A, E) using scaling and squaring and
[8/8] Padé approximant to τ .
1 B = A/2s with s ≥ 0 minimal s.t. ‖A/2s‖1 ≤ 1
2 G0 = 2−sE
3 for i = 1: 8
4 Solve (I + B/βi) Gi + Gi (I − B/βi) =(I + B/αi)Gi−1 + Gi−1(I − B/αi).
5 end
6 X = eB
7 Ls = (GmX + XGm)/2
8 for i = s:−1: 1
9 if i < s, X = e2−i A, end
10 Li−1 = XLi + LiX
11 end
12 L = L0
Outline
1 Definition of f (A)
2 Motivation and MATLAB
3 eA and its Frechét derivative
4 A1/2: Modified Newton Methods
MIMS Nick Higham Functions of a Matrix 37 / 45
Matrix Square Root
X is a square root of A ∈ Cn×n ⇐⇒ X 2 = A .
Number of square roots may be zero, finite or infinite.
Definition
For A with no eigenvalues on R− = {x ∈ R : x ≤ 0} the
principal square root A1/2 is unique square root X with
spectrum in open right half-plane.
MIMS Nick Higham Functions of a Matrix 38 / 45
Newton’s Method for Square Root
Apply Newton to F (X ) = X 2 − A = 0: X0 given,
Solve XkEk + EkXk = A− X 2k
Xk+1 = Xk + Ek
}k = 0, 1, 2, . . .
Modified Newton iteration: freeze Fréchet derivative at X0:
Solve X0Ek + EkX0 = A− X 2k
Xk+1 = Xk + Ek
}k = 0, 1, 2, . . . ,
X0 diagonal⇒ cheap to solve for Ek .
MIMS Nick Higham Functions of a Matrix 39 / 45
Visser Iteration
Set X0 = (2α)−1I in modified Newton:
Visser iteration (1937)
Xk+1 = Xk + α(A− X 2k ), X0 = (2α)−1I.
Stationary iteration.
Richardson iteration.
Linear convergence.
Choice of α?
MIMS Nick Higham Functions of a Matrix 40 / 45
Visser History
Xk+1 = Xk + α(A− X 2k ), X0 = (2α)−1I.
Used with α = 1/2 by Visser (1937) to show positive
operator on Hilbert space has a positive square root.
Likewise in functional analysis texts, e.g. Riesz &
Sz.-Nagy (1956).
Enables proof of existence of A1/2 without using
spectral theorem.
Used computationally by Liebl (1965), Babuška,
Práger & Vitásek (1966), Späth (1966), Duke (1969),
Elsner (1970).
Elsner proves cgce for A ∈ Cn×n with real, positive
ei’vals if 0 < α ≤ ρ(A)−1/2.
MIMS Nick Higham Functions of a Matrix 41 / 45
Visser Transformations
Let Xk = θYk , β = θα and A = θ−2A.
Yk+1 = Yk + β(A− Y 2k ), Y0 =
1
2βI.
Set β = 1/2:
Yk+1 = Yk +1
2(A− Y 2
k ), Y0 = I.
With A ≡ I − C and Yk = I − Pk :
Pk+1 =1
2(C + P2
k ), P0 = 0.
Qk = Pk/2:
Qk+1 = Q2k +
C
4, Q0 = 0.
MIMS Nick Higham Functions of a Matrix 42 / 45
Visser Convergence
Xk+1 = Xk + α(A− X 2k ), X0 = (2α)−1I.
Theorem (H, 2006)
Let A ∈ Cn×n and α > 0. If Λ(I − 4α2A) lies in the cardioid
D = {2z − z2 : z ∈ C, |z| < 1 }
then A1/2 exists and Xk → A1/2 linearly.
−4 −3 −2 −1 0 1 2
−2
−1
0
1
2
MIMS Nick Higham Functions of a Matrix 43 / 45
Example
A ∈ R16×16 spd with aii = i2, aij = 0.1, i 6= j .
Aim for rel residual < nu in IEEE DP arithmetic.
Pulay iteration D = diag(A): θ = 0.191, 9 iters.
Visser iteration α = 0.058 (hand optimized), 245 iters.
−4 −3 −2 −1 0 1 2
−2.5
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
2.5
MIMS Nick Higham Functions of a Matrix 44 / 45
In Conclusion
Many applications of f (A), e.g. control theory,
computer graphics, theoretical physics.
Need better understanding of conditioning of
f (A).
Can we exploit structure, e.g. A ∈ matrix
automorphism group or Jordan or Lie
algebra?
Krylov methods needed for large, sparse A.
How to use Cauchy integral computationally
(H & Trefethen)?
MIMS Nick Higham Functions of a Matrix 45 / 45
References I
D. A. Bini, N. J. Higham, and B. Meini.
Algorithms for the matrix pth root.
Numer. Algorithms, 39(4):349–378, 2005.
C.-H. Guo and N. J. Higham.
A Schur–Newton method for the matrix pth root and its
inverse.
SIAM J. Matrix Anal. Appl., 28(3):788–804, 2006.
N. J. Higham.
Functions of a Matrix: Theory and Computation.
Book in preparation.
MIMS Nick Higham Functions of a Matrix 44 / 45
References II
N. J. Higham.
The scaling and squaring method for the matrix
exponential revisited.
SIAM J. Matrix Anal. Appl., 26(4):1179–1193, 2005.
C. S. Kenney and A. J. Laub.
A Schur–Fréchet algorithm for computing the logarithm
and exponential of a matrix.
SIAM J. Matrix Anal. Appl., 19(3):640–663, 1998.
R. Mathias.
Evaluating the Frechet derivative of the matrix
exponential.
Numer. Math., 63(2):213–226, 1992.
MIMS Nick Higham Functions of a Matrix 45 / 45