In this constraint, t_nan(k,j,i) and u_nan(j,i) are both real scalar.
The error says t_nan(k,j,i)^2/u_nan(j,i) is a {convex} ./ {real affine} so it is not convex.
However, it can be rewritten as u_nan(j,i) * (t_nan(k,j,i)/u_nan(j,i))^2, which is a convex perspective function. But i don’t know how to reformulate this term so that CVX can understand it
Presuming all elements of u_nan
are >= 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).