Bonjour,
Je cherche à résoudre sur Maple le système différentiel suivant écrit en coordonnées cylindriques à l'aide de la méthode d'Euler:
La solution étant la trajectoire d'une particule chargée dans un champ uniforme selon l'axe des z.Code:> eq1:=diff(r(t),t)=u(t): > eq2:=diff(theta(t),t)=v(t): > eq3:=diff(z(t),t)=w(t): > eq4:=diff(u(t),t)=(q/m)*(r(t)*v(t)*B[z]-w(t)*B[theta])+r(t)*(v(t))**2: > eq5:=diff(v(t),t)=((q/m)*(w(t)*B[r]-u(t)*B[z])-2*u(t)*v(t))/r(t): > eq6:=diff(w(t),t)=(q/m)*(u(t)*B[theta]-r(t)*v(t)*B[r]):
J'ai déjà résolu le système en utilisant les coordonnées cartésiennes (plus simple car les équations sont linéaires), et donc je sais que je dois obtenir un cercle comme trajectoire dans un plan orthogonal à l'axe z.
Voici mon programme sur Maple:
Or la courbe que j'obtiens ne semble pas en accord avec ce à quoi je m'attendais, soit un cercle.Code:B[theta]:=0:B[z]:=1:B[r]:=0:q:=1:m:=1: > f1:=(r,theta,z,u,v,w)->u: > f2:=(r,theta,z,u,v,w)->v: > f3:=(r,theta,z,u,v,w)->w: > f4:=(r,theta,z,u,v,w)->r*v**2+(q/m)(B[z]*r*v-B[theta]*w): > f5:=(r,theta,z,u,v,w)->(1/r)((q/m)(w*B[r]-u*B[z])-2*u*v): > f6:=(r,theta,z,u,v,w)->(q/m)(u*B[theta]-r*v*B[r]): > > > Euler:=proc(N,d,r0,theta0,z0,u0,v0,w0); > r[0]:=r0:theta[0]:=theta0:z[0]:=z0:u[0]:=u0:v[0]:=v0:w[0]:=w0: > for k from 0 to N-1 do > r[k+1]:=evalf(r[k]+d*f1(r[k],theta[k],z[k],u[k],v[k],w[k])); > theta[k+1]:=evalf(theta[k]+d*f2(r[k],theta[k],z[k],u[k],v[k],w[k])); > z[k+1]:=evalf(z[k]+d*f3(r[k],theta[k],z[k],u[k],v[k],w[k])); > u[k+1]:=evalf(u[k]+d*f4(r[k],theta[k],z[k],u[k],v[k],w[k])); > v[k+1]:=evalf(v[k]+d*f5(r[k],theta[k],z[k],u[k],v[k],w[k])); > w[k+1]:=evalf(w[k]+d*f6(r[k],theta[k],z[k],u[k],v[k],w[k])); > od; > [r[N],theta[N],z[N],u[N],v[N],w[N]]; > L:=seq([r[k],theta[k],z[k],u[k],v[k],w[k]], k=0..N); > > plot([seq([r[k],theta[k]],k=0..N)],coords=polar); > end:
Image supprimée.
J'ai touché un peu à tout, le nombre de points, la précision, les conditions initiales. Rien n'y fait, je n'obtiens pas de cercle ou de courbe s'en rapprochant.
Je ne comprends pas pourquoi ma courbe diverge autant.
Est-ce ma méthode d'Euler qui n'est pas bonne? Ou un problème autre?
Merci d'avance pour votre aide.
Lisbeth
-----