At first, in the constraint, I wanted to express that the norm of the variable {valy_t} is equal to vector 1, but I couldn’t find the right way.
norm(valy_t)==1;
Then, I scaled the constraint to the inequality shown in the following.
Surprisingly, I find the result {valy_t} satisfying the equality I wanted originally, not only the scaled inequality.
How and why this is so confusing that I can’t sleep at night. Why on earth do scaled inequality constraint have the same effect in CVX? Please help me!
cvx_begin
variable valy_t(m) complex;
minimize real(valy_t'*g);
subject to
for k=1:m
norm(valy_t(k))<=1;
end
cvx_end
Given that linear objective, unless g is the zero vector, the optimization will drive the norm as high as it is allowed to go, namely 1, given the norm constraint. If there were a solution having norm < 1, another solution with better objective could be obtained by changing an element of valy_t corresponding to a non-zero b element, in the opposite direction of the sign of the b element)…
You are so kind! Thank you very much! And there is another problem that needs your help.
If I want to satisfy the original equation constraint, is there another way
Sorry I just saw this reply.
Are you saying that it’s possible for this inequality to have the same effect as the original equation?
And why will “the optimization drive the norm as high as it is allowed to go, given the norm constraint”? Please help me explain this sentence again~~
It’s linear. Monotonic doesn’t really applicable for this purpose in more than one dimension.because variables can change at the same time, provided they satisfy the constraints.
Okay, thank you very much!
I want to check that multi-dimension is an extension of one-dimension, so will CVX decompose multi-dimension into one-dimension and optimize them in turn?
Sorry to bother you.
No. The solvers called by CVX solve multi-dimensional problems as multi-dimensional problems, using interior point methods. They do not use coordinate descent