Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1545 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Matlab] Tracer un cercle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Matlab] Tracer un cercle

n°1716974
Gargeto
Posté le 13-04-2008 à 17:32:49  profilanswer
 

Bonjour à tous,  
 
je débute tout juste matlab et je voudrais représenter graphiquement sur matlab un cercle à partir de son équation cartésienne :
x² + y² - 2x -4y - 4 = 0
 
Pourriez-vous me donner la syntaxe à rentrer dans matlab ?
 
Je vous remercie pour votre aide.
 
PS : ça doit être tout con mais je bloque bêtement dessus.  :pt1cable:

mood
Publicité
Posté le 13-04-2008 à 17:32:49  profilanswer
 

n°1716977
art_dupond
je suis neuneu... oui oui !!
Posté le 13-04-2008 à 17:48:31  profilanswer
 

avec plot ?

 


x=0:0.1:2
y=0:0.1:2

 

z= x*x+y*y...

 

plot(z)

  


ps: je précise que j'ai en tout et pour tout 10 minutes de matlab

 


edit: ah non il va gueuler parce qu'on fait une multiplication de matrice...


Message édité par art_dupond le 13-04-2008 à 17:50:07

---------------
oui oui
n°1716978
Gargeto
Posté le 13-04-2008 à 17:54:02  profilanswer
 

Je te remercie d'essayer. ça ne fonctionne pas avec ce que tu as écrit. J'ai essayé avec plot, fplot, mershgrid mais je n'ai pas encore trouvé.
 
Il ne faudrait pas passer l'équation cartésienne en paramétrique ?

n°1716997
debeman
Posté le 13-04-2008 à 18:55:07  profilanswer
 

Salut fait le avec un fsolve :
z=ton equation  
X=fsolve(z,t) ou t est ta matrice avec les points de temps
et ensuite un plot2d(t,X)
 
edit : c'est quelquechose dans ce style la, je me rapelle jamais des parametres de fsolve  :pt1cable:


Message édité par debeman le 13-04-2008 à 18:56:27
n°1717034
Gargeto
Posté le 13-04-2008 à 22:07:44  profilanswer
 

Ok je te remercie.
 
Mais je n'ai pas trop compris, qu'est-ce que la matrice t ? mon équation z est une équation cartésienne. Je n'ai pas de paramètre t dedans.
fsolve utilise une fonction donc je dois créer une fonction avec mon équation, c'est bien ça ?


Message édité par Gargeto le 13-04-2008 à 22:15:46
n°1717439
debeman
Posté le 14-04-2008 à 19:48:22  profilanswer
 

fsolve resous f(t)=0 ou f est ton equation fonctionnelle, ceci dit en passant par les courbes parametriques ca se fait très bien
solution :
t=[0:%pi/500:2*%pi];
x=3cost(t)+1;
y=3sin(t)+2;
plot2d(x,y);
normalement ca te fais un cercle centre en (1,2) et de rayon 3 qui est la solution de ton équation
( sauf si je me suis planté ^^)
 
edit: je viens de verifier sous scilab ca trace un cercle
par contre la fenetre n'est pas top il faut que tu la réajuste  
 :hello:


Message édité par debeman le 14-04-2008 à 19:54:49
n°1718035
Gargeto
Posté le 15-04-2008 à 18:12:24  profilanswer
 

Merci pour ton aide. J'ai testé sur matlab ta solution mais ça ne fonctionne pas.  
 
J'ai tapé plot2d dans l'aide mais matlab n'a pas l'air de connaître cette fonction. J'ai essayé ta solution avec plot, fplot. Idem ça ne fontionne pas. Matlab possède plot3 mais pas plot2. J'ai tapé plot(t,x,y). J'ai bien la fenêtre de figure qui s'ouvre mais sans rien de tracer et j'ai ce message d'erreur : "Invalid line property: '3*cost(t)+1'. " Je ne comprends pas ce message.
 
j'ai mis des apostrophes pour les fonctions x et y ( x= '3*cos(t)+1' ) car j'avais un message d'erreur rien qu'en écrivant x et y.
 
Comment as-tu réussi à passer de l'équation cartésienne à l'équation paramétrique ? J'ai vu ça mais je ne m'en rappelle plus et je n'ai pas mes cours chez moi actuellement.
 
Merci encore pour ton aide.


Message édité par Gargeto le 15-04-2008 à 18:33:06
n°1718047
fhr
Posté le 15-04-2008 à 18:51:42  profilanswer
 

la solution de debeman devrait marcher (sur le principe au moins)
 

t = 0:0.05:1;
x = cos(t);
y = sin(t);
plot(x,y);

n°1718065
Gargeto
Posté le 15-04-2008 à 20:16:56  profilanswer
 

fhr, merci pour tes précisions. Effectivement avec ton aide la solution de debeman fonctionne très bien. J'ai mon cercle   :bounce:  !  
 
Je vais essayer de retrouver comment l'on passe de l'équation cartésienne à l'équation paramétrique mais si quelqu'un sait qu'il n'hésite pas  ;) .  
Merci beaucoup à tous  :jap:

n°1718086
art_dupond
je suis neuneu... oui oui !!
Posté le 15-04-2008 à 21:30:52  profilanswer
 

tu dois trouver un truc de la forme (x-a)² + (y-b)² = R²
 
donc tu t'arranges pour faire apparaître les produits remarquables et tu réarranges pour avoir cette forme.
 
par exemple :  x² + 2x = x² + 2x + 1 - 1 = (x²+2x+1) - 1 = (x+1)² - 1
 
Après, tu mets en paramétrique :
 
{x = R cos(t) + a
{y = R sin(t) + b


---------------
oui oui
mood
Publicité
Posté le 15-04-2008 à 21:30:52  profilanswer
 

n°1718107
chris672
about:mozilla
Posté le 15-04-2008 à 22:18:07  profilanswer
 

:hello:  
 

 
cercle = 'x^2 + y^2 - 2*x -4*y - 4';
ezplot(cercle,[-3,5,-2,5])  


---------------
„Ich kann, weil ich will, was ich muss.“ I. Kant
n°1718167
Gargeto
Posté le 16-04-2008 à 00:00:32  profilanswer
 

Merci art_dupond pour ton explication très clair. ça y est je m'en souviens.
 
Et merci beaucoup chris672, ton code fonctionne impeccablement.
J'ai d'autres équations à deux variables d'ordre deux et trois à représenter mais cela ne devrait pas me poser de problème grâce à vos explications.
 
Merci à tous, j'arrive avec un problème, je repars avec deux solutions. C'est génial.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Matlab] Tracer un cercle

 

Sujets relatifs
Comment tracer un trait avec Windev !Tirer une point aléatoire dans cercle sur une sphère
Tracer des zones [ API Google ]Matlab
[matlab]Débruitage sous matlab...utiliser des programmes en C sous Matlab
[Matlab] Résoudre une équa diff à pas fixe[G TRouvé] A locker merci modo
GDB: comment tracer pas a pas dans le code machine? 
Plus de sujets relatifs à : [Matlab] Tracer un cercle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR