I am trying to simplify some algebraically intensive expressions that involve inverses and Kronecker products. One simple example of such an expression is

$$(1) \quad \quad \quad Z'(I_n\otimes\Sigma+Z\Phi Z')^{-1}Z, $$

where $Z = 1_n\otimes I_p$, $1_n$ is an $n-$variate vector full of ones, and $(\Sigma,\Phi)$ are symmetric positive definite $p\times p$ matrices. Using Kronecker product properties along with the Woodbury matrix identity, it is not too difficult to see that the above can be simplified to

$$(2) \quad \quad \quad n(\Sigma + n\Phi)^{-1}$$

Note that (2) is computationally more efficient because it only involves the inverse of a $p\times p$ matrix, a considerable improvement to the two matrix products along the $np\times np$ inversion involved in (1).

While this is a simple example, I am looking at more complicated cases involving multiple Kronecker products (not just 2), but that always end up in a $p\times p$ matrix as a result. I have successfully spent weeks doing these derivations, but I am convinced Mathematica can make my life easier in the future, where I will potentially explore more complicated problems of similar nature. Many of the Kronecker product properties can be exploited as in here, but I can't get passed using these Kronecker properties along with the Woodbury formula repeatably until the result involves matrix products and inverses of $p\times p$ matrices only (any matrix operation on matrices larger than $p\times p$ is not feasible in my applications).

Any suggestions as to how to simplify (1) to (2)? Or how to tackle the problem in general?

  • $\begingroup$ Please show the Mathematica code that you have tried. $\endgroup$
    – bbgodfrey
    Aug 16 '21 at 4:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.