0

I know that the ODE that describes how the covariance matrix $P$ changes over time is $$ \dot{P} = A P + P A^T $$ where both $A$ and $P$ are time-varying $n \times n$ matrices.

Since $P$ is a symmetric positive semidefinite (PSD) matrix, there exists a symmetric PSD matrix $R$ such that $P = RR$, which is generally called the square root of $P$. I would like to derive the ODE that describes how $R$ changes over time, that is $$ \dot{R} = f(R, A, \dots) $$ but I do not know how to find that right-hand side $f$ or if it is possible at all.

1 Answers1

0

Replace all occurrences of $P\in{\mathbb R}^{n\times n}\,$ with $R$ $$\eqalign{ P &= RR \\ \dot P &= AP + PA^T \\ \dot RR + R\dot R &= ARR + RRA^T \\ }$$ Define the vectors $$\eqalign{ r &= {\rm vec}(R),\qquad \dot r = {\rm vec}(\dot R) \\ }$$ Then vectorize the differential relationship using Kronecker products $$\eqalign{ (R\otimes I)\dot r + (I\otimes R)\dot r &= (R\otimes A)r + (A\otimes R)r \\ \Big((R\otimes I) + (I\otimes R)\Big)\dot r &= \Big((R\otimes A) + (A\otimes R)\Big)r \\ \dot r &= \Big((R\otimes I) + (I\otimes R)\Big)^{-1} \Big((R\otimes A) + (A\otimes R)\Big)r \\ \dot R &= {\rm Unvec}(\dot r) \\ }$$ In many programming languages (e.g. Matlab, Julia, etc) the Unvec operation is available as the Reshape() function. There is also an algebraic formula for this operation.

Perhaps a better approach is to directly employ the vector-valued ODE $\;\dot r=f(R,A)$

greg
  • 40,033