# How to make sqrt(square(x)+square(a)) feasible?

Here’s my codes which are equation limits.
Where UAV_vertical_trajectory is variable and hor_distance0 is a known matrix.
distance = cvx( zeros(n,m) );
for i = 1:n
for j = 1:m
distance( i,j ) = sqrt( square(hor_distance0( i,j)) + square(UAV_vertical_trajectory( 1,j )) );
end
end
And the result I get is :Disciplined convex programming error:
Illegal operation: sqrt( {convex} ).

I hope to get the help of you.Thanks.

I would think you would have to do

|| linear expression || <= linear expression

You cannot have nonlinear equalities in a convex model.

Use
`norm([x a]) `
in place of `sqrt(square(x)+square(a)) `

You may be able to use `norrms` in place of for loop(s), by taking norms across all rows or all columns at once.

help norms

norms Computation of multiple vector norms.
norms( X ) provides a means to compute the norms of multiple vectors
packed into a matrix or N-D array. This is useful for performing
max-of-norms or sum-of-norms calculations.

``````All of the vector norms, including the false "-inf" norm, supported
by NORM() have been implemented in the norms() command.
norms(X,P)           = sum(abs(X).^P).^(1/P)
norms(X)             = norms(X,2).
norms(X,inf)         = max(abs(X)).
norms(X,-inf)        = min(abs(X)).
If X is a vector, these computations are completely identical to
their NORM equivalents. If X is a matrix, a row vector is returned
of the norms of each column of X. If X is an N-D matrix, the norms
are computed along the first non-singleton dimension.

norms( X, [], DIM ) or norms( X, 2, DIM ) computes Euclidean norms
along the dimension DIM. norms( X, P, DIM ) computes its norms
along the dimension DIM.

Disciplined convex programming information:
norms is convex, except when P<1, so an error will result if these
non-convex "norms" are used within CVX expressions. norms is
nonmonotonic, so its input must be affine.``````