How to apply a bound constraint on a complex power vector
1 回表示 (過去 30 日間)
古いコメントを表示
Saifullah Khalid
2019 年 10 月 13 日
編集済み: Thiago Henrique Gomes Lobato
2019 年 10 月 14 日
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.






0 件のコメント
採用された回答
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Get Started with Optimization Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!