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 comentarios

Alex Mcaulley
Alex Mcaulley el 30 de Jul. de 2019
Do you have the symbolic toolbox?
halil hasan
halil hasan el 30 de Jul. de 2019
yes I have

Iniciar sesión para comentar.

Respuestas (1)

Alex Mcaulley
Alex Mcaulley el 30 de Jul. de 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 comentarios

halil hasan
halil hasan el 30 de Jul. de 2019
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 el 30 de Jul. de 2019
What constant values are you using? Putting random values for those constants i get a solution
Walter Roberson
Walter Roberson el 30 de Jul. de 2019
Polynomials only use nonnegative integer powers. 0.9 as a polynomial power is not valid.
halil hasan
halil hasan el 30 de Jul. de 2019
the power of w is integer, only power of j is noninteger.
halil hasan
halil hasan el 30 de Jul. de 2019
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 el 30 de Jul. de 2019
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 el 30 de Jul. de 2019
I think
if I can replace equvalent of i powers, to a powerless i ; it may solve my problem.
Walter Roberson
Walter Roberson el 30 de Jul. de 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.

Iniciar sesión para comentar.

Preguntada:

el 30 de Jul. de 2019

Comentada:

el 30 de Jul. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by