When Wk is symmetric psd and E is complex (but not real), then
trace(Wk*Ek’*Ek) = trace(chol(Wk)'*chol(Wk)*Ek'*Ek) = trace(chol(Wk)*Ek'*Ek*chol(Wk)')
is still valid, but this does not generally equal
sum(vec(Ek*chol(Wk)').*vec(Ek*chol(Wk)'))
I leave it to you and others to check the correctness of the following (especially considering Ek is complex, so maybe the Schur complement formulation in my referenced answer is not correct for this usage), so use at your own peril:
Presuming Wk
is symmetric positive definite, so that its inverse exists, I think you can re-write as
trace(Wk*Ek’*Ek) = trace(Ek * inv(inv(Wk)) * Ek')
then use my solution at Generalizing "trace_inv" for matrix quadratic forms, with inv(Wk)
in place of X
and Ek
in place of C
, and with the requisite variable declarations.