x, y are two vectors of dimension n. and they are variables in a cvx problem.How can I express x.^2/y?
The code is kind like this:
cvx_begin
variables x(n) y(n)
subject to
x.^2 / y <= (another vector of dimension n)
cvx_end
x, y are two vectors of dimension n. and they are variables in a cvx problem.How can I express x.^2/y?
The code is kind like this:
cvx_begin
variables x(n) y(n)
subject to
x.^2 / y <= (another vector of dimension n)
cvx_end
Presuming y > 0, use quad_over_lin
. You could benefit by reading the CV Users’ Guide, which lists this function, among many other things.
f y is not > 0, the constraint is non-convex and can’t be entered in CVX.
Hi, Mark, How to express ||x||^2/y?
||x||^2 = x’*x
Presuming y > 0
help quad_over_lin
quad_over_lin Sum of squares over linear.
Z=quad_over_lin(X,Y), where X is a vector and Y is a scalar, is equal to
SUM(ABS(X).^2)./Y if Y is positive, and +Inf otherwise. Y must be real.If X is a matrix, quad_over_lin(X,Y) is a row vector containing the values of quad_over_lin applied to each column. If X is an N-D array, the operation is applied to the first non-singleton dimension of X. quad_over_lin(X,Y,DIM) takes the sum along the dimension DIM of X. A special value of DIM == 0 is accepted here, which is automatically replaced with DIM == NDIMS(X) + 1. This has the effect of eliminating the sum; thus quad_over_lin( X, Y, NDIMS(X) + 1 ) = ABS( X ).^2 ./ Y. In all cases, Y must be compatible in the same sense as ./ with the squared sum; that is, Y must be a scalar or the same size as SUM(ABS(X).^2,DIM). Disciplined convex programming information: quad_over_lin is convex, nonmontonic in X, and nonincreasing in Y. Thus when used with CVX expressions, X must be convex (or affine) and Y must be concave (or affine).