euclid e

2
 Maple_PCSI - page 1 - ALGORITHME D'EUCLIDE On rappelle l'algorithme d'Euclide : r k  = q k + 1 r k + 1 + r k + 2  , k   0 r 0  = a   , r 1  = b   *  , 0  r k + 2 < r k + 1 pour k   0 Le dernier reste non nul dans l'algorithme est d  = pgcd(a,b). Sous Maple, le quotient dans la division euclidienne de a par b se calcule par iquo(a,b) et le reste par irem(a,b). 1) Algorithme, version itérative. Ecrire sous Maple, à l'aide d'une boucle une suite de commande calculan t d  . Rajouter un test pour contrôler que a est dans  et b dans *  (type(a,integer) rend vrai si a est entier et faux sinon et type(a,posint) rend vrai ssi a est dans * ). 2) Ecrire à l'aide d'un test un algorithme récursif calculant pgcd( a,b) en utilisant pgcd (a,b) =  pgcd(b,a) si a < b b si b | a (condition d'arrêt) sinon pgcd(b,r ) a = bq + r  est la division euclidienne de a par b avec 0 < r  < b  3) On souhaite trouver une relation de Bezout, c.a.d des entiers u et v tels que ua + bv = d . On construit pour cela des suites (u k ) k  0  et (v k ) k  0  telles que u k a + v k  b = r k  . Déterminer u 0 , u 1 , v 0  et v 1  puis établir les relations de récurrence reliant u k + 2 , u k + 1  et u k d'une part, et v k + 2 , v k + 1  et v k d'autre part. Adapter l'algorithme itératif pour calculer au fur et à mesure les u k  et v k  et déterminer des réels u et v tels que ua + bv = d . 4) Adapter l'algorithme récursif, pour construire des relations α k  r k + β k  r  k + 1 = d  : lorsque r n + 1  = 0, on a d  = r n  d'où α n  = 1 et β n = 0. Etablir les relations de récurrence α k 1  = β k  et β k 1  = α k   q k β k  . Pour k  = 0, on obtient α 0  r 0 + β 0  r  1 = d  c.a.d α 0 a  + β 0  b  = d .

Upload: anis-souissi

Post on 06-Oct-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

  • Maple_PCSI

    - page 1 -

    ALGORITHME D'EUCLIDE

    On rappelle l'algorithme d'Euclide : rk = qk + 1 rk + 1 + rk + 2 , k 0

    r0 = a , r1 = b * , 0 rk + 2 < rk + 1 pour k 0

    Le dernier reste non nul dans l'algorithme est d = pgcd(a,b). Sous Maple, le quotient dans la division euclidienne de a par b se calcule par iquo(a,b) et le reste par irem(a,b).

    1) Algorithme, version itrative. Ecrire sous Maple, l'aide d'une boucle une suite de commande calculant d . Rajouter un test pour contrler que a est dans et b dans * (type(a,integer) rend vrai si a est entier et faux sinon et

    type(a,posint) rend vrai ssi a est dans *).

    2) Ecrire l'aide d'un test un algorithme rcursif calculant pgcd(a,b) en utilisant

    pgcd (a,b) =

    pgcd(b,a) si a < bb si b | a (condition d'arrt)sinon pgcd(b,r) o a = bq + r est la division euclidienne de a par b avec 0 < r < b

    3) On souhaite trouver une relation de Bezout, c.a.d des entiers u et v tels que ua + bv = d. On construit pour cela des suites (uk)k 0 et (vk)k 0 telles que uk a + vk b = rk . Dterminer u0, u1, v0 et v1 puis tablir les

    relations de rcurrence reliant uk + 2 , uk + 1 et uk d'une part, et vk + 2 , vk + 1 et vk d'autre part. Adapter l'algorithme itratif pour calculer au fur et mesure les uk et vk et dterminer des rels u et v tels que

    ua + bv = d.

    4) Adapter l'algorithme rcursif, pour construire des relations k rk + k r k + 1 = d : lorsque rn + 1 = 0, on a d = rn d'o n = 1 et n = 0. Etablir les relations de rcurrence k 1 = k et k 1 = k qk k . Pour k = 0, on obtient 0 r0 + 0 r 1 = d c.a.d 0a + 0 b = d.