Plotting complex roots of polynomial
Afficher commentaires plus anciens
Hi I need to plot of the roots of a polynomial in the complex plane. This is the code I have so far but it doesn't seem to be working.
z = -1:0.01:1;
p = z.^9 + z.^8 - z.^7 + z.^6 - z.^5 + z + 1;
plot(z,p)
hold on
r = roots(p);
scatter(real(r),imag(r))
hold off
Réponses (1)
David Goodmanson
le 19 Mai 2020
Hi Thomas,
what the roots function is looking for is the coefficients of the powers of z in decreasing order. In this case that would be
r = roots([1 1 -1 1 -1 0 0 0 1 1])
This shows one real root at approximately -1.9, and eight complex roots. If you use
z = -2:0.01:1;
you can see the curve go through the real root.
4 commentaires
Thomas Sun
le 19 Mai 2020
David Goodmanson
le 19 Mai 2020
here is the code I used
z = -2:0.01:1;
p = z.^9 + z.^8 - z.^7 + z.^6 - z.^5 + z + 1;
r = roots([1 1 -1 1 -1 0 0 0 1 1])
plot(z,p);
hold on
plot(r,'o')
% scatter(real(r),imag(r)) % this one works too
hold off
Thomas Sun
le 19 Mai 2020
David Goodmanson
le 19 Mai 2020
what do you get for the sizes of z and p?
maybe if you tried 'close all' and put 'figure(1)' just before the plot command ....?
Catégories
En savoir plus sur Polynomials dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!