简体   繁体   中英

Octave / Matlab: How to plot the roots of a polynomial

Im trying to plot the roots of a polynomial, and i just cant get it.

First i create my polynomial

p5 = [1 0 0 0 0 -1] %x^5 - 1
r5 = roots(p5)
stem (p5)

Im using the stem function, but I would like to remove the stems, and just get the circle around the roots.

Is this possible, is stem the right command?

Thanks in advance,

PS: This is not homework, but very close, will tag it if requested.

If you have complex roots that you want to plot with the real part on the x-axis and the imaginary part on the y-axis, you can just use the PLOT function:

plot(r5,'o');

If you are wanting to plot the function and the roots together, you will have to ignore the complex roots (as yuk mentions in the comment below):

p5 = [1 0 0 0 0 -1];
r5 = roots(p5);
realRoots = r5(isreal(r5));  %# Gets just the real roots
x = -2:0.01:2;               %# x values for the plot
plot(x,polyval(p5,x));       %# Evaluate the polynomial and plot it
hold on;                     %# Add to the existing plot
plot(realRoots,zeros(size(realRoots)),'o');  %# Plot circles for the roots

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM