how to find complex polynomial solution
Mostrar comentarios más antiguos
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
el 30 de Jul. de 2019
Do you have the symbolic toolbox?
halil hasan
el 30 de Jul. de 2019
Respuestas (1)
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
el 30 de Jul. de 2019
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
el 30 de Jul. de 2019
Polynomials only use nonnegative integer powers. 0.9 as a polynomial power is not valid.
halil hasan
el 30 de Jul. de 2019
halil hasan
el 30 de Jul. de 2019
halil hasan
el 30 de Jul. de 2019
halil hasan
el 30 de Jul. de 2019
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.
Categorías
Más información sobre Polynomials en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!