How can i handle the jointly convex form of (x'*A*x)/t in variables x and t in cvx?


(saeed ) #1

cvx gives 2 errors in using the jointly convex function (x’Ax)/t in variables x and t. first, x’Ax is a quad form. second, 1/t is wrong form because cvx can not solve constand/affine forms. when t is defined as a variable, cvx takes it a s a convex variable. so, i think writing the form (x’Ax)/t is incorrect. please help me to write the jointly convex form of (x’Ax)/t in cvx.


(Mark L. Stone) #2

Presuming you are willing to have t implicitly constrained to be > 0, which is needed for comvexity, and that A is positive definite, then you can use
quad_over_lin(chol(A)*x,t)


(saeed ) #3

thank you so much. it was a great help


(Erling D.Andersen) #4

You do not really need t>0. Using a rotated quadratic cone i.e.

[0.5*s;t;chol(A)] \in rotated quadratic cone

you have

2.0 * 0.5* s * t >= x^T A x
t >= 0

That is what CVX does internally I suppose.