I am trying to mimic the results obtained in the following paper, but am having some trouble with arithmetic operations that are used to create constant values within the CVX optimization block. If we consider a radial vector `r = [rx, ry]`

, I am trying to perform the arithmetic operation `b = -1/norm( r )^3`

, which is a non-convex expression. However, the expression is calculated *after* the vector `r`

has been calculated by CVX at iteration `k`

. For example, let’s assume that CVX has performed `k`

iterations, and on the `k`

th iteration it finds that `r`

should be `r = [1, 2]`

. What I would like to be able to do is then set the variable `b = -1/norm( r )^3`

, which in this case is `b = -0.0894`

, and use `b`

as a constant value at iteration `k+1`

in CVX. Is such a thing possible? I’ve tried to define `b`

as an “expression” at the start of the CVX block, but I still seem to be getting DCP errors of the form:

Disciplined convex programming error:

Illegal operation: {convex} .^ {3}

(Consider POW_P, POW_POS, or POW_ABS instead.)

I’ve also tried using `b = -inv_pos(pow_pos(norm( r ),3))`

, but get the error:

Disciplined convex programming error:

Illegal operation: pow_p( {convex}, {-1} )