Programme maple
troudbibulle
-
jouga -
jouga -
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
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
A voir également:
- Programme maple
- Maple - Télécharger - Gestion de données
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
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
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
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