How to express a semidefinite convex matrix as a constraint in cvx?


(saeed ) #1

I have a matrix constraint A>=0 in which the elements include cvx variables. i wanted to express this constraint as x’Ax>=0 which x is an arbitrary vector. but an error was shown as complex affine>=real constant. because the coefficients of cvx varibles in matrix elements are complex. how should I express this constraint?


Disciplined convex programming error: Matrix powers not permitted
Is there any cvx function to express a matrix as a constraint?
(Michael C. Grant) #2

What does an inequality with a complex value even mean? Did you intend for the quantity x'*A*x to be complex?


(saeed ) #3

no, not finally. the matrix A>=0 which means positive semidefinite and 0 is not complex. based on the rule that for a positive semidefinite matrix A, gives the inequality x’Ax>=0 for every x, i wanted to convert the constraint A>=0 which is a constraint on matrix to a constraint x’Ax>=0 which is a constraint on an affine expression. that was because i did not know how to express constraint A>=0 in cvx. note that elements of a inclute multiplication of complex coefficient and cvx variables.


(Michael C. Grant) #4

Why not just specify that A is positive semidefinite directly? Please use the user’s guide which discusses how to implement semidefinite constraints.


(saeed ) #5

I have many constraints in my problem. one of them is A>=0 which A is a matrix that includes some of the variables of the problem. I wanted to see if is there a direct function to express this constraint in cvx or I have to use another equivalent form for this constraint?


(Mark L. Stone) #6

You can use
A == semidefinite(n) to express the constraint that the real n by n matrix A be semidefinite. Use A == hemnitian_semidefinite(n) is A is complex.

Or if you use the semidefinite mode (cvx_begin sdp ), A > = 0 means that A is constrained to be semidefinite.

In either case, the elements of A need to be affine in the CVX variables.

Read more about it in the CVX User’s Guide. http://cvxr.com/cvx/doc/basics.html#set-membership and http://cvxr.com/cvx/doc/sdp.html Alternatively, a CVX matric variable can be declared (hermitian) semidefinite, as described in http://cvxr.com/cvx/doc/basics.html#variables .


(saeed ) #8

thank you very much.


(saeed ) #9

Ok. thank you for your hint