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?
What does an inequality with a complex value even mean? Did you intend for the quantity x'*A*x
to be complex?
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.
Why not just specify that A is positive semidefinite directly? Please use the user’s guide which discusses how to implement semidefinite constraints.
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?
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 .
thank you very much.
Ok. thank you for your hint