The inv() in CVX

inv is not supported by CVX, as you would know by reading the CVX User’s Guide However, there is some inverse functionality provided by inv_pos, matrix_frac, prod_inv, det_inv, and trace_inv.

ar’*inv(Q)*ar can be entered as matrix_frac(ar,Q)

Presuming taorad/beita02 >= 0, the RHS of the constraint is convex.

ar’*inv(F)*ar can be entered as matrix_frac(ar,F). However, it is convex, and therefore can’t be used on the LHS of >= constraint.

So the constraint is non-convex, and therefore can’t be entered in CVX. Perhaps SCA or something can be used to iteratively solve a series of convex optimization problems using CVX, but there should be no expectation that it would necessarily converge to anything, let alone a global or even local optimum of the original problem.

1 Like