Math 倍频程/Matlab:如何绘制多项式的根

Math 倍频程/Matlab:如何绘制多项式的根,math,matlab,octave,Math,Matlab,Octave,我在试着画多项式的根,但我就是画不出来 首先,我创建多项式 p5 = [1 0 0 0 0 -1] %x^5 - 1 r5 = roots(p5) stem (p5) 我正在使用stem函数,但是我想删除茎,然后只得到根周围的圆 这可能吗,stem是正确的命令吗 提前感谢, PS:这不是作业,但非常接近,如果需要,将标记它。如果你有复数根,你想用实部在x轴上绘制,虚部在y轴上绘制,你可以使用以下函数: plot(r5,'o'); 如果要将函数和根绘制在一起,则必须忽略复杂的根(正如yuk在下

我在试着画多项式的根,但我就是画不出来

首先,我创建多项式

p5 = [1 0 0 0 0 -1] %x^5 - 1
r5 = roots(p5)
stem (p5)
我正在使用
stem
函数,但是我想删除茎,然后只得到根周围的圆

这可能吗,stem是正确的命令吗

提前感谢,


PS:这不是作业,但非常接近,如果需要,将标记它。

如果你有复数根,你想用实部在x轴上绘制,虚部在y轴上绘制,你可以使用以下函数:

plot(r5,'o');
如果要将函数和根绘制在一起,则必须忽略复杂的根(正如yuk在下面的评论中提到的):


请注意,r5包含复数,绘图将忽略虚部。要仅绘制实根,您可以执行以下操作:绘制(r5(imag(r5)==0)、零(sum(imag(r5)==0))、'o')@yuk:接得好。我使用ISREAL函数更新了答案。;)@yuk,gnovice:谢谢你们两位的帮助,但是我该如何绘制所有根(img和real)?@Tom:我的新答案的第一部分显示了如何将所有根的实部和虚部一起绘制。@gnovice,谢谢,最后使用了plot(real(r5)、imag(r5)、o)
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