Salut troudbibulle, j'ai pas mal de connaissance en mapple et j'ai déja réalisé plusieurs programmes.Je peux t'aider si tu veux je suis en Spé math.T'es en quelle classe ?
Je connais pas de tete 'algorithme d'euclide mais si je me souviens bien c'est pour trouver les PGCD non ?
De toute évidence ta fonction mapple va demarrer par
algoeuclide:=proc(a,b)
local N,q,r;
N:=NULL; // création de ta liste
...ensuite je n'ai pas bien compris ce que tu cherches à avoir
mais j'ai trouvé sur wikipédia un algorithme d'euclide, le voici transformé en mapple :
algoeuclide:=proc(a,b)
local r,r',u,v,x,rs,us,vs,q;
x := a*u+b*v;
r := a;
r' := b ;
u := 1;
v := 0;
u' := 0;
v' := 1;
les égalités r = a*u+b*v et r' = a*u'+b*v' sont des invariants de boucle.
while r'<>0 do
q := r/r'
rs := r, us := u, vs := v;
r := r', u := u', v := v';
r' := rs -q *r', u' = us - q*u', v' = vs -q*v';
od;
[r, u, v];
end:
personnellement j'aurais plus utiliser les fonction iquo et irem de mapple pour avoir le reste de la division euclidienne.Si t'as besoin d'aide voici mon mail break_style@msn.com
n'hésites pas
++
pour la suite : source
http://fr.wikipedia.org/wiki/Algorithme_d%27Euclide_%C3%A9tendu
restart;
> U:=unapply(Diff( u,u$2)+r^(-1)*Diff(u,r)=c^(-2)*Diff(u,t$2),r,t);
> #ceci est un comentaire
> print(`les condition initiales`);
> F:=f(r)=u(r,0);
> V:=Diff(u(r,0),t)=c*g(r);
> #ceci est un comentaire
> print(`opérateur différentielles linéaires`);
> R1:=L[r]=Diff(u(r,t),t);
> T:=L[t,t]=Diff(u(r,t),t$2);
> R:=L[r,r]=Diff(u(r,t),r$2);
> #ceci est un comentaire
> print(`opérateur d'intégration double`);
> H:=L[t,t]^(-1)=int(int(u(r,t),t=0..t),t=0..t);
> Q := u(r,0)+c*g(r)*t;
> u1(r,t):=unapply(Q+c^2*((L[t,t]^(-1)*L[r,r]*u(r,t))+(L[t,t]^(-1)*(r^(-1))*L[r]*u(r,t))),r,t);u=Sum('u[n](r,t)','n'=0..infinity);
> E:=u[0]=Q;
> Z:=u[1]=unapply(c^2*((L[t,t]^(-1)*L[r,r]*E)+(L[t,t]^(-1)*(r^(-1))*L[r]*E)));
> Y:=u[2]=c^2*((L[t,t]^(-1)*L[r,r]*Z)+(L[t,t]^(-1)*(r^(-1))*L[r]*Z));
> sol:= u[k+1]=unapply(a^2*((L[t,t]^(-1)*L[r,r]*u(k))+L[t,t]^(-1)*(r^(-1)*L[r]*u(k))));
/ 2 \
|d | Diff(u, r) Diff(u, t, t)
U := (r, t) -> |--- u| + ---------- = -------------
| 2 | r 2
\du / c
les condition initiales
F := f(r) = u(r, 0)
d
V := -- u(r, 0) = c g(r)
dt
opérateur différentielles linéaires
d
R1 := L[r] = -- u(r, t)
dt
2
d
T := L[t, t] = --- u(r, t)
2
dt
2
d
R := L[r, r] = --- u(r, t)
2
dr
opérateur d'intégration double
t t
/ /
1 | |
H := ------- = | | u(r, t) dt dt
L[t, t] | |
/ /
0 0
Q := u(r, 0) + c g(r) t
u1(r, t) := (r, t) ->
2 /L[r, r] u(r, t) L[r] u(r, t)\
u(r, 0) + c g(r) t + c |--------------- + ------------|
\ L[t, t] L[t, t] r /
infinity
-----
\
u = ) u[n](r, t)
/
-----
n = 0
E := u[0] = u(r, 0) + c g(r) t
/ 2 /L[r, r] u[0] L[r] u[0]\
Z := u[1] = |() -> c |------------ + ---------| =
\ \ L[t, t] L[t, t] r/
2 /L[r, r] (u(r, 0) + c g(r) t) L[r] (u(r, 0) + c g(r) t)\
c |---------------------------- + -------------------------|
\ L[t, t] L[t, t] r /
\
|
/
/ 2 /L[r, r] u[1] L[r] u[1]\ 2 / /
Y := u[2] = |c |------------ + ---------| = c |L[r, r] |() ->
\ \ L[t, t] L[t, t] r/ \ \
2 /L[r, r] u[0] L[r] u[0]\
c |------------ + ---------| =
\ L[t, t] L[t, t] r/
2 /L[r, r] (u(r, 0) + c g(r) t) L[r] (u(r, 0) + c g(r) t)\
c |---------------------------- + -------------------------|
\ L[t, t] L[t, t] r /
\ / 2 /L[r, r] u[0] L[r] u[0]\
|/L[t, t] + L[r] |() -> c |------------ + ---------| =
/ \ \ L[t, t] L[t, t] r/
2 /L[r, r] (u(r, 0) + c g(r) t) L[r] (u(r, 0) + c g(r) t)\
c |---------------------------- + -------------------------|
\ L[t, t] L[t, t] r /
\ \\
|/(L[t, t] r)||
/ //
/ 2 /L[r, r] u(k) L[r] u(k)\\
sol := u[k + 1] = |() -> a |------------ + ---------||
\ \ L[t, t] L[t, t] r//
> je voudrai donner des valeur à f(r) et g(r) pui dessiner le graphe pour c=4,5,6,7 et un autre pour c=5 et r=20 merci d'avence