Matrix exponential¶
Let \(\mathbf{A}(t)\) be an \(m \times m\) matrix whose entries depend on \(t\). Then
\[
\frac{d \mathbf{u}}{d t} = \mathbf{A}(t)\mathbf{u}
\]
is a linear system of differential equations. If the matrix \(\mathbf{A}\) is independent of time, it is a linear, constant-coefficient system.
The solution to a linear, constant-coefficient IVP, given also \(\mathbf{u}(0)=\mathbf{u}_0\), is formally
\[
\mathbf{u}(t) = e^{t\mathbf{A}} \mathbf{u}_0,
\]
where \(e^{t\mathbf{A}}\) is a matrix exponential, which can be defined using Taylor series or by other means. This result is a seamless generalization of the scalar case, \(m=1\).
A = [ -2 5; -1 0 ]
2×2 Array{Int64,2}:
-2 5
-1 0
u0 = [1,0]
t = LinRange(0,6,600) # times for plotting
u = zeros(length(t),length(u0))
for j=1:length(t)
ut = exp(t[j]*A)*u0
u[j,:] = ut'
end
using Plots
plot(t,u,label=["\$u_1\$" "\$u_2\$"],xlabel="t",ylabel="u(t)")
However, while the matrix exponential is a vital theoretical tool, computing it is too slow to be a practical numerical method.