# 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.