Octave / Matlab: How to plot the roots of a polynomial
Question
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.
Solution
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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow