How to apply a bound constraint on a complex power vector

1 回表示 (過去 30 日間)
Saifullah Khalid
Saifullah Khalid 2019 年 10 月 13 日
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 月 13 日
編集済み: 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 Center および File ExchangeSolver Outputs and Iterative Display についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by