how to find complex polynomial solution

I want to find roots of CDP, T's are constant real values
CDP1 =T_6*(1i*w).^6 +T_5*(1i*w).^5 +T_4*(1i*w).^4 +T_3*(1i*w).^3 +T_2*(1i*w).^2 +T_1*(1i*w) +T_0;
CDP2 =Tp_4*(1i*w)^.4 +Tp_3*(1i*w).^3 +Tp_2*(1i*w).^2 +Tp_1*(1i*w) +Tp_0;
CDP= CDP1*(1i*w).^1.4 +CDP2;

2 件のコメント

Alex Mcaulley
Alex Mcaulley 2019 年 7 月 30 日
Do you have the symbolic toolbox?
halil hasan
halil hasan 2019 年 7 月 30 日
yes I have

サインインしてコメントする。

回答 (1 件)

Alex Mcaulley
Alex Mcaulley 2019 年 7 月 30 日

0 投票

Then, after defining all the constant values:
syms w
CDP1 = T_6*(1i*w).^6 + T_5*(1i*w).^5 + T_4*(1i*w).^4 + T_3*(1i*w).^3 + T_2*(1i*w).^2 + T_1*(1i*w) + T_0;
CDP2 = Tp_4*(1i*w)^.4 + Tp_3*(1i*w).^3 + Tp_2*(1i*w).^2 + Tp_1*(1i*w) + Tp_0;
CDP = CDP1*(1i*w).^1.4 + CDP2;
sol = double(solve(CDP))

8 件のコメント

halil hasan
halil hasan 2019 年 7 月 30 日
thank you for your comment Alex, but it gives empty column vector.
My polinomial is like this
CDP = 1.6*(i*w^10)^4.9 + 0.04*(i*w^10)^0.9 + i^3*w^30*(7.76*(i*w^10)^0.9 + 1.6) + i*w^10*(1.64*(i*w^10)^0.9 + 0.72) + i^2*w^20*(7.76*(i*w^10)^0.9 + 2.16) + 0.04
Alex Mcaulley
Alex Mcaulley 2019 年 7 月 30 日
What constant values are you using? Putting random values for those constants i get a solution
Walter Roberson
Walter Roberson 2019 年 7 月 30 日
Polynomials only use nonnegative integer powers. 0.9 as a polynomial power is not valid.
halil hasan
halil hasan 2019 年 7 月 30 日
the power of w is integer, only power of j is noninteger.
halil hasan
halil hasan 2019 年 7 月 30 日
When I input constants it gets, like;
CDP = 1.6*(i*w^10)^4.9 + 0.04*(i*w^10)^0.9 + i^3*w^30*(7.76*(i*w^10)^0.9 + 1.6) + i*w^10*(1.64*(i*w^10)^0.9 + 0.72) + i^2*w^20*(7.76*(i*w^10)^0.9 + 2.16) + 0.04
as you can see the power of w is integer, but power of i is non integer
halil hasan
halil hasan 2019 年 7 月 30 日
If I collect imaginary part in mupad it gets like this
CDP = (w^30*(7.76*(i*w^10)^0.9 + 1.6))*i^3 + (w^20*(7.76*(i*w^10)^0.9 + 2.16))*i^2 + (w^10*(1.64*(i*w^10)^0.9 + 0.72))*i + 1.6*(i*w^10)^4.9 + 0.04*(i*w^10)^0.9 + 0.04
halil hasan
halil hasan 2019 年 7 月 30 日
I think
if I can replace equvalent of i powers, to a powerless i ; it may solve my problem.
Walter Roberson
Walter Roberson 2019 年 7 月 30 日
w^10 is okay. You then multiply by i and raise the result to 0.9 or 4.9. By the power law, (A*B)^C is A^C*B^C so (i*w^10)^0.9 is i^0.9 * (w^10)^0.9 and that second part is not polynomial
In the case where w is nonnegative real if you are willing to treat 0.9 as 9/10 exactly (which it is not) then you could multiply out to get w^9. But if that is what you want then you need to code it: with the 1i in there, matlab would never compute it that way. You would be getting a different branch of 0.9 power.

サインインしてコメントする。

カテゴリ

質問済み:

2019 年 7 月 30 日

コメント済み:

2019 年 7 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by