I have the following trace term:

trace(Sk' Ck Sk)

where Sk is a KxM matrix and Ck is a KxK positive semidefinite matrix. I'm involving this trace term in a Matlab code and it seems to suffer when computing this term. How could I simplify it (if possible)?

  • $\begingroup$ Which is bigger, K or M? $\endgroup$ – Omnomnomnom Mar 31 '19 at 13:21
  • $\begingroup$ K is far more smaller than M $\endgroup$ – Alberto Mar 31 '19 at 13:22

In general, note that $\operatorname{trace}(AB) = \operatorname{trace}(BA)$, whenever both matrix multiplications are defined.

So, we can rewrite your expression as $$ \operatorname{trace}(S_k' C_k S_k) = \operatorname{trace}(S_k S_k' C_k) $$ Note that $S_k' C_k S_k$ is $M \times M$, whereas $S_k S_k' C_k$ is $K \times K$.

  • $\begingroup$ That's true, I did not considered to shift the matrices... but it seems to make a lighter problem in Matlab . Thank you $\endgroup$ – Alberto Mar 31 '19 at 14:18

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.