Proposition: équa diff polaire
2 participants
Page 1 sur 1
Proposition: équa diff polaire
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 !!
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 : 49
Date d'inscription : 09/12/2008
Re: Proposition: équa diff polaire
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?
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?
Re: Proposition: équa diff polaire
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
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 : 49
Date d'inscription : 09/12/2008
Re: Proposition: équa diff polaire
Désolé, dans mes "exemples" j'ai oublié de rajouter la variable t.
Reno
Reno
Reno- Nombre de messages : 6
Age : 49
Date d'inscription : 09/12/2008
Re: Proposition: équa diff polaire
Re,
Voici une première proposition de macro (j'ai pris u à la place de theta):
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):
cet exemple correspond à r'=-sin(t) et u'=1 et doit donner:
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:
Re: Proposition: équa diff polaire
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
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 : 49
Date d'inscription : 09/12/2008
Re: Proposition: équa diff polaire
Désolé,c'est de ma faute.
Cette syntaxe n'est pas valide avec la version 1.93. Prends la version test 1.94
Cette syntaxe n'est pas valide avec la version 1.93. Prends la version test 1.94
Re: Proposition: équa diff polaire
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
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 : 49
Date d'inscription : 09/12/2008
Re: Proposition: équa diff polaire
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!
Re: Proposition: équa diff polaire
Pour l'espace voici une proposition: la macro rk4:
où f(t,x,y,z) = M(x', y', z'). Cette macro renvoie la liste des points 3D.
Un exemple avec les équations différentielles de Lorentz (dans un élément Utilisateur):
ce qui donne:
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:
Re: Proposition: équa diff polaire
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
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 : 49
Date d'inscription : 09/12/2008
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|