Clear Filters
Clear Filters

How to apply a bound constraint on a complex power vector

1 view (last 30 days)
I am trying to optimize a complex power vector with where and is a complex number greater than 0. I have implemented bound constraints as . But, after the optimization is complete, the Pareto front contains vector like ( ) . I can not make sense out them as power vector , to me, should not be a negative value especially the real part. Am I missing something? I would appreciate any helpful advice, comment or hint.

Accepted Answer

Thiago Henrique Gomes Lobato
Edited: Thiago Henrique Gomes Lobato on 14 Oct 2019
Saying that a complex number is bigger than the other is not so simple, you're comparing the magnitue? The real part? The imaginary part? It actually can't be done in a standardized way for all cases and thus matlab uses what I believe to be the most used one, which is to compare the magnitude. Therefore when you compare max(S,0), S will always be greater, because it magnitude will be greater then 0 for all values that aren't zero. You can solve that problem by comparing the real and imaginary part by separately:
s = -0.0456-1j*0.3456;
Tmax = 10+1j*10;
Tmin= 0;
% Complex comparison (Magnitude is compared)
ComplexCompariosn = min(max(Tmin,s),Tmax)
% Individual Comparison
IndividualComparison = min(max(real(Tmin),real(s)),real(Tmax)) +...
1j*min(max(imag(Tmin),imag(s)),imag(Tmax))
ComplexCompariosn =
-0.0456 - 0.3456i
IndividualComparison =
0

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!