How to apply a bound constraint on a complex power vector

3 次查看(过去 30 天)
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.

采纳的回答

Thiago Henrique Gomes Lobato
编辑:Thiago Henrique Gomes Lobato 2019-10-14
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Multiobjective Optimization 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by