2017-04-18 6 views
0

J'essaie de représenter graphiquement un lemniscate en coordonnées polaires sur scilab. Quelle formule est rho^2=a^2*cos(2*theta). Le fait est que le calcul de la racine carrée de certaines valeurs retournera un nombre imaginaire car la valeur serait négative.Calcul des valeurs de rho pour un graphique de lemniscate

clear 
close 
clc 
clf 
a=3; 
theta=[0:((1*%pi)/180):((359*%pi)/180)]; 
rr=(a*a)*cos(2*theta); 
rho=sqrt(rr); 
polarplot(theta,rho,2); 

Quoi qu'il en soit, le programme se brise lorsque les valeurs sont négatives rr atteint depuis la racine carrée est pas correctement défini pour eux.

Tout ce dont j'ai besoin est le code pour ignorer ces points et tracer les autres.

Je ne sais pas si c'est compréhensible, mais j'espère que quelqu'un le fera et pourra m'aider avec ça.

Merci d'avance.

Répondre

1

Vous pouvez ignorer (par exemple filtrer) ces points, mais il y a une solution encore plus facile: utiliser uniquement la partie réelle de votre vecteur de résultat pour la parcelle avec real

polarplot(theta,real(rho),2); 

Vous pouvez également assigh à une nouvelle variable si vous voulez l'utiliser plus tard:

rhoreal=real(rho); 
+0

Merci beaucoup. Travaillé parfaitement. –