Programme maple

Fermé
troudbibulle - 27 déc. 2008 à 20:34
 jouga - 23 juin 2009 à 14:09
bonjour à tous!
je dois faire plusieurs programmes en maple et il y en a un qui me pose problème je ne vois pas comment démarrer. Il faut que je fasse une procédure qui à partir d'une liste de quotients successifs renvoie p et q pour lesquels l'algo d'euclide a comme quotients successifs les quotients de la liste.
merci pour votre aide
a bientot

1 réponse

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 Adresse mail supprimée Modération CCM
n'hésites pas
++




pour la suite : source https://fr.wikipedia.org/wiki/Algorithme_d%27Euclide_%C3%A9tendu
1
bonjour ,j(ai vus votre discussion avec qlq et j'ailerai que vous m'aidez svp voici mon programme
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
0