Method on @infsup: expm (A)

Compute the matrix exponential of square matrix A.

The matrix exponential is defined as the infinite Taylor series

                    A²     A³
expm (A) = I + A + ---- + ---- + …
                    2!     3!

The function implements the following algorithm: 1. The matrix is scaled, 2. an enclosure of the Taylor series is computed using the Horner scheme, 3. the matrix is squared. That is, the algorithm computes expm (A ./ pow2 (L)) ^ pow2 (L). The scaling reduces the matrix norm below 1, which reduces errors during exponentiation. Exponentiation typically is done by Padé approximation, but that doesn’t work for interval matrices, so we compute a Horner evaluation of the Taylor series. Finally, the exponentiation with pow2 (L) is computed with L successive interval matrix square operations. Interval matrix square operations can be done without dependency errors (regarding each single step).

The algorithm has been published by Alexandre Goldsztejn and Arnold Neumaier (2009), “On the Exponentiation of Interval Matrices.”

Accuracy: The result is a valid enclosure.

vec (expm (infsup(magic (3))))
  ⇒ ans ⊂ 9×1 interval vector

       [1.0897e+06, 1.0898e+06]
       [1.0896e+06, 1.0897e+06]
       [1.0896e+06, 1.0897e+06]
       [1.0895e+06, 1.0896e+06]
       [1.0897e+06, 1.0898e+06]
       [1.0897e+06, 1.0898e+06]
       [1.0896e+06, 1.0897e+06]
       [1.0896e+06, 1.0897e+06]
       [1.0896e+06, 1.0897e+06]

See also: @infsup/mpower, @infsup/exp.

Package: interval