Generalizing "trace_inv" for matrix quadratic forms

Hello, everybody!

It is well known that \operatorname{trace} (A^{-1}) is convex with respect to A, and there is even a function “trace_inv” in CVX, dealing with this case.

However, right now I need to minimize the function \operatorname{trace} (CA^{-1}C^{\rm T}), having other conditions expressed with respect to A. This target function is also convex with respect to A, but I have no idea, how to implement this fact within CVX.

Is there a way to construct such target function? Which is the best way to do it?

Thanks in advance!

1 Like

The essence of trace_inv for real X is

 cvx_begin sdp
    variable Y(n,n) symmetric
    minimize(trace(Y));
    [Y,eye(n);eye(n),X] >= 0;
cvx_end

So how about modifying the Schur complement action in the SDP as follows i(n sdp mode):

minimize(trace(Y))
[Y C;C' A] >= 0;

I think this should work.

2 Likes

Thank you, thank you, thank you very much! I love your answer: it is as simple as a miracle.
Indeed, it works. You made my day!