Proposition: équa diff polaire

Voir le sujet précédent Voir le sujet suivant Aller en bas

Proposition: équa diff polaire

Message  Reno le Mar 9 Déc - 21:20

Bonjour. Désolé de ne pas publier de macros (je suis TRES débutant), mais ce serait pour proposer un développement.
Pourrait-on intégrer (dans une future version) le tracé de courbe intégrale pour une équation différentielle donnée sous forme polaire.
Dans le même ordre d'idée, puisque on peut tracer des courbes dans l'espace, peut-on également intégrer le tracé de courbe intégrale de solution d'équation différentielle donnée dans l'espace.

Merci d'avance pour la réponse.

Reno

PS : merci de proposer un tel logiciel, facile et très puissant !!

Reno

Nombre de messages : 6
Age : 42
Date d'inscription : 09/12/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Proposition: équa diff polaire

Message  P.Fradin le Mar 9 Déc - 23:35

Bonsoir Reno,

Afin de pouvoir tester une macro, pourrais-tu donner un exemple simple d'une telle équation? Si je pense la même chose que toi, on donne r'(t) et theta'(t) en fonction de t, r et theta, non?

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Proposition: équa diff polaire

Message  Reno le Mer 10 Déc - 0:58

Voilà, c'est exactement ça.
Pourrait-on intégrer dans une future version, un bouton (comme celui pour le tracé des courbes intégrales d'équations différentielles) pour le tracé de courbe intégrale d'équations différentielles donnée sous forme polaire.

Par exemple, on donnerait une fonction f(r,theta)+i*g(r,theta), ainsi que les données initiales sous la forme r_0+i*theta_0 et l'équation correspondante serait
r'=f(r,theta)
theta'=g(r,theta)

Plus précisément, on donnerait pour f(r,theta)+i*g(r,theta)= i et données initiales 1.
Le résultat serait alors le tracé du cercle de centre 0 et de rayon 1.

La macro devrait être exactement la même que celle pour les équas diffs, sauf que le tracé devrait être sous la forme re^{i*theta} et non pas x+i*y.

Reno

Reno

Nombre de messages : 6
Age : 42
Date d'inscription : 09/12/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Proposition: équa diff polaire

Message  Reno le Mer 10 Déc - 0:59

Désolé, dans mes "exemples" j'ai oublié de rajouter la variable t.

Reno

Reno

Nombre de messages : 6
Age : 42
Date d'inscription : 09/12/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Proposition: équa diff polaire

Message  P.Fradin le Mer 10 Déc - 1:09

Re,

Voici une première proposition de macro (j'ai pris u à la place de theta):

Equadifpol( f(t,r,u), t0, z0)


Code:

{equadifpol( f(t,r,u), t0, z0) où r'+i*u'=f(t,r,u)}
[ NewMac("f",String(%1),t,r,u),
  $L:=Get(EquaDif(%1,%2,%3),0),
  Ligne(for $z in L by 1 do Re(z)*exp(i*Im(z)) od,0)
]   

Cette macro crée la fonction f(t,r,u) passée en paramètre, elle appelle la commande EquaDif "normale" pour en extraire la liste des points (commande Get), ensuite on parcourt cette liste L point par point et chaque point est renvoyé sous une forme polaire dans la commande Ligne.

Par exemple, dans un élément graphique Utlisateur (ctrl+U):
Code:

[tMin:=-pi, tMax:=pi, Width:=12, EquaDifpol(-sin(t)+i,0,2)]

cet exemple correspond à r'=-sin(t) et u'=1 et doit donner:

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Proposition: équa diff polaire

Message  Reno le Mer 10 Déc - 1:42

Merci, c'est super et bien mieux que ce que j'avais pu faire "à la main" (en retapant RK4). C'est plus direct et utilise directement la commande equadiff.

Mais (il y a toujours un mais), j'avoue ne pas réussir à faire fonctionner ta macro.
J'ouvre TeXgraph puis j'ai recopié ta macro (en la nommant EquaDifpol). Texgraph me dit qu'il y a un problème de parenthèse ou de virgule après L (ce qui disparait si j'enlève by 1).
Si cela marche, ensuite en recopiant ta commande utilisateur graphique, je devrais obtenir ton dessin, mais il n'y a rien ??

Désolé avec ces questions de débutant mais je suis vraiment débutant.

Reno

Reno

Nombre de messages : 6
Age : 42
Date d'inscription : 09/12/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Proposition: équa diff polaire

Message  P.Fradin le Mer 10 Déc - 1:46

Désolé,c'est de ma faute.

Cette syntaxe n'est pas valide avec la version 1.93. Prends la version test 1.94

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Proposition: équa diff polaire

Message  Reno le Mer 10 Déc - 1:55

Super, ça marche !!
Résultat des courses, tu m'auras comme "client" régulier. Compte sur moi pour me mettre sérieusement à TeXgraph et pouvoir participer activement à son développement !!

Reno

Reno

Nombre de messages : 6
Age : 42
Date d'inscription : 09/12/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Proposition: équa diff polaire

Message  P.Fradin le Mer 10 Déc - 2:04

Reno a écrit:Super, ça marche !!
Résultat des courses, tu m'auras comme "client" régulier. Compte sur moi pour me mettre sérieusement à TeXgraph et pouvoir participer activement à son développement !!

Reno

Merci!

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Proposition: équa diff polaire

Message  P.Fradin le Mer 10 Déc - 2:26

Pour l'espace voici une proposition: la macro rk4:
rk4( f(t,x,y,z), t0, M(x0,y0,z0) )


où f(t,x,y,z) = M(x', y', z'). Cette macro renvoie la liste des points 3D.

Code:

{rk4( f(t,x,y,z), t0, M(x0,y0,z0)): la fonction f telle que M(x',y',z')=f(t,x,y,z}
[$aux:=NewMac("f",StrReplace(StrReplace(StrReplace(String(%1),"x","Xde(Y)"),
                                      "y","Yde(Y)"),
                            "z","Zde(Y)"),t,Y),
$h:=(tMax-tMin)/(NbPoints-1),
$t:=%2, $Y:=%3,
$sortie:=[Y,
while t<tMax do
 $k1:=f(t,Y), Inc(t,h/2),
 $k2:=f(t,Y+h*k1/2), $k3:=f(t,Y+h*k2/2),
 Inc(t,h/2), $k4:=f(t,Y+h*k3),
 Y:=Y+h*(k1+2*k2+2*k3+k4)/6,
 Y
 od],
$t:=%2, $Y:=%3, $h:=-h,
while t>tMin do
 $k1:=f(t,Y), Inc(t,h/2),
 $k2:=f(t,Y+h*k1/2), $k3:=f(t,Y+h*k2/2),
 Inc(t,h/2), $k4:=f(t,Y+h*k3),
 Y:=Y+h*(k1+2*k2+2*k3+k4)/6,
 Insert(sortie,Y,1)
 od,
 sortie ]

Un exemple avec les équations différentielles de Lorentz (dans un élément Utilisateur):

Code:

[theta:=141*deg, phi:=58*deg, {angles de vue}
 tMin:=0, tMax:=50, t0:=0, Y0:= M(0.01,0.01,0.01), NbPoints:=3500, {conditions initiales}
 L:=rk4( M(10*(y-x), 28*x-y-x*z, x*y-8*z/3), t0, Y0), {liste des points}
 transformbox3d(rectangle3d(L),0),                          {adaptation de la matrice3D}
 Color:=black, HideWidth:=8, drawWin3d(0),          {dessin de la boite}
 Color:=gray, Width:=8, Ligne3D(L,0),                    {dessin de la courbe}
 Color:=black, Width:=4, drawWin3d(1)                  {rafraichissement de la boite}
]

ce qui donne:

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Proposition: équa diff polaire

Message  Reno le Mer 10 Déc - 10:36

Alors là, je suis bluffé par
1. Ta rapidité à répondre
2. Ta qualité de réponse
3. La puissance de TeXgraph

Bref, je vais bien bosser tes exemples, comprendre les différentes macros existantes, histoire de bien m'imprégner du "langage" TeXgraph.

A très bientôt en tout cas !!

Reno

Reno

Nombre de messages : 6
Age : 42
Date d'inscription : 09/12/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Proposition: équa diff polaire

Message  Contenu sponsorisé Aujourd'hui à 11:51


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum