Computation of derivatives of matrix exponentials

148 Views Asked by At

Consider the derivative $\frac{\mathrm d}{\mathrm dt}e^{X(t)}$, where $X(t)$ is a square matrix and a function of $t$.

My question is: If the size of $X$ is large, what is the most efficient way to compute the derivative?

In addition, I knew from wikipedia that it can be represented by using the language of Lie algebra as $$ \frac{\mathrm d}{\mathrm dt}e^{X(t)}=e^X\frac{1-e^{-\mathrm{ad}_X}}{\mathrm{ad}_X}\frac{\mathrm dX(t)}{\mathrm dt} $$

I'm not familiar with the theory of Lie algebra. Can the above equation be computed by basic matrix operations, such as inverse and kronecker product, or it involves any intractable operations/series? Thanks!

1

There are 1 best solutions below

1
On

If $X(t)\in{\mathbb R}^{n\times n}\,$ then you can use the Complex Step Approximation $$ \frac{dF}{dt} = {\rm Im}\Bigg(\frac{F(t+ih)}{h}\Bigg) $$ where $$\eqalign{ F(t) &= \exp\big(X(t)\big) \cr h &= 10^{-10} \cr }$$ Note that the result is not subject to cancellation errors, so $h$ can be made extremely small. On the other hand, CSA is $O(h^2)$ so the value suggested above provides full double-precision accuracy.

This yields the desired derivative for the price of one matrix exponential, which is about as inexpensive as things can get, from a computational perspective.