how to find complex polynomial solution

11 views (last 30 days)
halil hasan
halil hasan on 30 Jul 2019
Commented: Walter Roberson on 30 Jul 2019
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;

Answers (1)

Alex Mcaulley
Alex Mcaulley on 30 Jul 2019
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 Comments
halil hasan
halil hasan on 30 Jul 2019
I think
if I can replace equvalent of i powers, to a powerless i ; it may solve my problem.
Walter Roberson
Walter Roberson on 30 Jul 2019
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.

Sign in to comment.

Categories

Find more on Polynomials in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!