Rotated_lorentz


(zhangQK) #1

I’m a little confused about the parameter named ‘n’ of rotated_lorentz(n).
For example,
cvx_begin
variable x(10);
variable y(10);
variable z(10);
minimize(sum(x+y+z))
subject to
{x,y,z}==rotated_lorentz(1);
cvx_end

I want to know the number of n(n is 1 or 3?) in the example and I also want to know the meaning of ‘n’.
Thank you.


(Mark L. Stone) #2

Look at the rotated_lorentz entry at http://cvxr.com/cvx/doc/funcref.html#sets .

n is the dimension (length) of x in
{x,y,z} == rotated_lorentz(n)
which corresponds to
norm(x) <= sqrt(y*z), y >=- 0, z >= 0

It seems pointless to me to require n to be specified, because CVX ought to be able to determine that itself. Similarly for semidefinite(n) and hermitian_semidefinite(n). Nevertheless, that is CVX’s syntax.

Your example is invalid because y and z need to be scalars.


(zhangQK) #3



The word ‘{x, y, z} == rotated_lorentz(3)’ of Erling D.Andersen and Michal Adamaszek,I want to know why n is ‘3’. In here,y=E(k),z=E(k)-P(k) and x=E(k+1) are scalars,although E and P are vectors,aren’t they?


(Mark L. Stone) #4

You could reduce confusion if you showed a complete CVX formulation of your problem, including all variable declarations, except perhaps that you might not get the rotated_lorentz constraint correct.


(zhangQK) #5

Hi,Mark.
There is a problem about rotated_lorentz.
The length of three vectors is 10(just like x(10), y(10) and z(10), x>=0,y>=0,z>=0).
And I want to express a constraint which is x(i)<=(y(i)*z(i))^0.5 (i=1,2,3…10). I want to know how to express the constraint by rotated_lorentz without loop(such as for loop),because using loop in cvx will extend running time of program largely.
Thank you.


Running time of cvx problem
(Mark L. Stone) #6

I don’t know of a way to do that without a loop. If someone else does, please post it.