Elementwise Derivative of a Matrix Exponential

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 3K views
madness
Messages
813
Reaction score
69
TL;DR
How can I analytically or numerically maximise an expression involving matrix exponentials?
Hi all. A problem has arisen whereby I need to maximize a function which looks like $$ f(A) = \mathbf{w}^T \left[\int_0^t e^{\tau A} M e^{\tau A^T} d\tau \right]^{-1} \mathbf{w} $$ with respect to the nxn matrix A (here, M is a covariance matrix, so nxn symmetrix and positive-definite, w is an n-dimensional vector, so f(A) is a scalar). I want to differentiate wrt elements of A, and by using some matrix identities I can make some headway into this. But eventually I have to differentiate the matrix exponential wrt its elements. This looks to be a challenging problem - similar problems seem to have arisen in the context of optimal control theory but I'm not sure this one has been addressed. I'm happy to use a numerical approach in the end, but would like to derive some gradient that can be climbed, perhaps using an approximation to the derivative of the matrix exponential.

I found this paper on the directional derivative of the matrix exponential (https://www.sciencedirect.com/science/article/pii/S0196885885710172). Am I correct in saying that my problem reduces to taking directional derivatives along the matrix direction $$ \mathbf{w} \mathbf{w}^T $$? If so, maybe these results could be used. Otherwise, each elementwise derivative is actually a directional derivative itself, but I'd need to find n^2 of them which would be computationally intensive. If not, is there perhaps some other more general way of numerically taking derivatives of difficult matrix functions such as this?

Thanks for your help!
 
Last edited:
Physics news on Phys.org
It's an elementwise integral. This is a standard integral called the controllability Gramian, whose solution is given by a Lyapunov equation.

I've now managed to differentiate the function f(A) with respect to the elements of A and optimise numerically. However it's very slow as I have to solve two Lyapunov equations for each element of A I want to get the derivative of, which for now is all N^2 elements. And I have to do this iteratively as I climb the gradient to optimise f(A). I'm hoping there is a way to increase efficiency by only differentiating along directions that affect f(A).