2010-03-14 14 views
4

Im essayant de tracer les racines d'un polynôme, et je ne peux pas juste l'obtenir.Octave/Matlab: Comment tracer les racines d'un polynôme

Tout d'abord je crée mon polynôme

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

Im en utilisant la fonction stem, mais je voudrais retirer les tiges, et juste obtenir le cercle autour des racines.

Est-ce possible, est-ce la bonne commande?

Merci à l'avance,

PS: Ce n'est pas devoir, mais très proche, étiquettera si demandé.

Répondre

5

Si vous avez des racines complexes que vous voulez tracer avec la partie réelle sur l'axe des x et la partie imaginaire sur l'axe des y, vous pouvez simplement utiliser la fonction PLOT:

plot(r5,'o'); 

Si vous sont vouloir tracer la fonction et les racines ensemble, vous devrez ignorer les racines complexes (comme Yuk mentionne dans le commentaire ci-dessous):

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 
+2

Notez que r5 contient des nombres complexes et l'intrigue ignorera partie imaginaire. Pour tracer la racine réelle seulement, vous pouvez faire: plot (r5 (imag (r5) == 0), zeros (sum (imag (r5) == 0)), 'o'); – yuk

+0

@yuk: Bonne prise. J'ai mis à jour la réponse en utilisant la fonction ISREAL. ;) – gnovice

+0

@yuk, gnovice: Merci à vous deux pour votre aide, mais comment pourrais-je tracer toutes les racines (à la fois img et réel)? – Tom