ALGORITHMES CHEZ LES BABYLONIENS
1 ; 24 , 51 , 10 = 1 + 24/60 + 51/602 + 10/ 603 ≈ 1, 41421296 30 × 1, 41421296 ≈ 42, 4263870 = 42; 25 , 34 , 59 … 1 chevron = 10 3 chevrons =30 Une tablette de -2000 L’algorithme « de Babylone» permet de calculer les racines carrées de manière très efficace… 1 clou = 1 2 clous =2 Diapo largement inspiré des travaux de Gilles Aldon et Michel Mizony: http://rallye-math.univ-lyon1.fr/2007/Conference/conf2.pdf 2
Les calculs à Nippur Une table … Qu’est-ce? Centre intellectuel du 2ème millénaire. Grande école de Scribe où on a pu retrouver plus de 12 000 tablettes d’apprentis scribes. En particulier des tables et exercices de calcul… Une table … Qu’est-ce? 4 4 16
Les calculs à Nippur Une table … Qu’est-ce? 4 4 16 6 6 36
Les calculs à Nippur Une table … Qu’est-ce? 4 4 16 6 6 36 12 12 02.24 2x60 + 24 = 144
Les calculs à Nippur Une table … Qu’est-ce? 4 4 16 6 6 36 12 12 02.24 13 13 02.49 2x60 + 49 = 169
C’est une table de carrés de 1 à 13 Les calculs à Nippur C’est une table de carrés de 1 à 13
Cela semble être la table de multiplication par 18 Les calculs à Nippur Une autre table… « a-ra » signifie « fois » fois 2 36 fois 5 01.30 1x60 + 30 = 90 fois 9 02.42 2x60 + 42 = 162 Cela semble être la table de multiplication par 18
Les calculs à Nippur Encore une table… = inverse 18 3 . 20 = 3/60 + 20/60² = 1/20 + 1/180 = 1/18 L’inverse de 18 est 0.3.20 (ou 3.20 ) Tablette néo-sumérienne Ist Ni 374 Les calculs à Nippur Encore une table…
Les calculs à Nippur Encore une table… Inverse de 20 3 = 3/60 = 1/20 L’inverse de 20 est 0.3 ( ou 3 ) Tablette néo-sumérienne Ist Ni 374 Les calculs à Nippur Encore une table…
Les calculs à Nippur Encore une table… Inverse de 27 2.13.20 27 x 2.13.20 = .. . .. . 00 . 00 1.00.00.00 .. . .. . .. . 00 27 x 20 = 540 = 9 x 60 = 9 , 00 27 x 13 + 9 = 360 = 6 x 60 = 6 , 00 27 x 2 + 6 = 60 = 1 x 60 = 1 , 00 L’inverse de 27 est 2.13.20 Tablette néo-sumérienne Ist Ni 374 Les calculs à Nippur Encore une table…
Les calculs à Nippur Encore une table… Inverse 26 négation 26 n’est pas inversible en base 60 (c’est-à-dire que la suite des « décimales » est infinie) Tablette néo-sumérienne Ist Ni 374 Les calculs à Nippur Encore une table…
C’est une table d’inverses… Traduction de la tablette (et complément) Recto col1 n:inv Recto col 2 n:inv Verso col 1 Verso col 2 2 : 30 16 : 3.45 33 : - 51 : - 3 : 20 17 : - 34 : - 52 : - 4 : 15 18 : 3.20 35 : - 53 : - 5 : 12 19 : - 36 : 1.40 54 : 1.6.40 6 : 10 20 : 3 37 : - 55 : - 7 : - 21 : - 38 : - 56 : - 8 : 7.30 22 : - 39 : - 57 : - 9 : 6.40 23 : - 40 : 1.30 58 : - 10 : 6 24 : 2.30 41 : - 59 : - 11 : - 25 : 2.24 42 : - 1 : 1 12 : 5 26 : - 43 : - 1.4 : 56.15 13 : - 27 : 2.13.20 44 : - 1.12 : 50 14 : - 28 : - 45 : 1.20 1.15 : 48 15 : 4 29 : - 46 : - 1.20 : 45 30 : 2 47 : - 1.21 : 44.26.40 31 : - 48 : 1.15 1.30 : 40 32 : 1.52.30 49 : - 1.36 : 37.30 50 : 1.12 1.40 : 36 Tablette néo-sumérienne Ist Ni 374 Période Néo-sumérienne ( - 2000) C’est une table d’inverses… Les calculs à Nippur
Des calculs pour les scribes EXPLICATIONS: a=8.00, b=0.20 et on cherche l’inverse de a+b. L’inverse de b est b-1 = 3. 25 = 8.20 x 3 = (a+b) x b-1 Les tables donnent l’inverse de 25 = 2.24 2.24 = ((a+b) x b-1) -1 = (a+b)-1 x b 7.12 = 3 x 2.24 = b-1 x (a+b)-1 x b = (a+b)-1 = 8.20-1 On cherche l’inverse de 08.20: On le décompose en une somme a+b où b est dans la table des inverses: a=08.00 et b=00.20 L'inverse de b est b-1 = 3 ( 3 x 20 = 1.00) On effectue le produit 3 x 2.24: 3 x 2.24 = 7.12 qui est 8.20-1 : 8.20 x 7.12 = 1 L’inverse de 08.20 est 07.12 Tablette (copie Robson) CBS 1215 On recommence la méthode avec 7.12 en l’écrivant 7.00+00.12. Et on trouve que l’inverse de 7.12 est 8.20… On effectue le produit 8.20x3 et on calcule l’inverse: 8.20 x 3 = 25 et 25-1 = 2.24 Des calculs pour les scribes
Retrouver l’erreur du scribe… On cherche l’inverse de 33.20: 33.20 = 30.00 + 03.20 L'inverse de 03.20 est 18 4 x 2.15 = 8 L’inverse de 8 est 6.40 ERREUR: 2,15x4 = 9 Et non 8.. 33.20 x 18 = 10 et 10-1 = 6 4 x 6.40 = 26.40 26.40 x 1.15 = 33.20 L’inverse de 1.48 est 33.20 Où est l’erreur? 18 x 6 = 1.48 L’inverse de 33.20 est 1.48 L’inverse de 00.48 est 1.15 01.15 x 1.48 = 02.15 = 2 + 0.15 L’inverse de 0,15 est 4 Retrouver l’erreur du scribe…
Les calculs à Nippur – calcul d’inverse (façon moderne) Calcul de l’inverse de 7 (non inversible pour les néo-Sumériens) 01 . 00 . 00 . 00 . 00 . 00 7 - 00. 56 4 . 00 8 . 34 . 17 8 8 . 34 8 . 34 . 17 . 8 - 3 . 58 02 . 00 - 1 . 59 01 . 00 - 0 . 56 04 . 00 On voit apparaître la période… L’inverse de 7 est : 8 . 34 . 17 . 8 . 34 . 17 . 8 …. On peut faire réaliser cet algorithme (« à la main ») par les élèves. Par exemple l’inverse de 11 en donnant la table de 11… Les calculs à Nippur – calcul d’inverse (façon moderne)
Les calculs à Nippur – calcul d’inverse (façon moderne) Calcul de l’inverse de 11 (non inversible pour les néo-Sumériens) 1 . 00 . 00 . 00 . 00 . 00 . 00 . 00 11 - 55 5 . 00 5 . 27 . 16 . 21 . 49 . 05 5 . 27 . 16 . 21 5 . 27 . 16 5 . 27 5 5 . 27 . 16 . 21 . 49 - 4 . 57 03 . 00 - 2 . 56 04 . 00 - 3 . 51 09 . 00 - 8 . 59 01 . 00 - 0 . 55 05 . 00 On voit apparaître la période… L’inverse de 11 est : 5 . 27 . 16 . 21 . 49 . 05 . 27 . 16 . 21 . 49 …. Les calculs à Nippur – calcul d’inverse (façon moderne)
Intermède : Exercices de calculs à la mode Scribouillard Traduction: Ecriture décimale Ecriture sexagésimale Ecriture cunéiforme En écriture décimale : 3625 3625 = 1 x 60² + 0 x 60 + 25 En écriture sexagésimale : 01.00.25 En écriture sexagésimale : En écriture cunéiforme :
Intermède : Exercices de calculs à la mode Scribouillard Traduction: Ecriture décimale Ecriture sexagésimale Ecriture cunéiforme En écriture décimale : 36,25 36,25 = 36 + 0,25 = 36 + 1/4 = 36 + 15 / 60 En écriture sexagésimale : 36.15 En écriture sexagésimale : En écriture cunéiforme :
Intermède : Exercices de calculs à la mode Scribouillard Traduction: Ecriture décimale Ecriture sexagésimale Ecriture cunéiforme En écriture décimale : 8415 02.20.15 = 2x60² + 20x60 + 15 = 7200 + 1200 +15 = 8415 En écriture sexagésimale : 02.20.15 (entier < 603) En écriture cunéiforme :
Intermède : Exercices de calculs à la mode Scribouillard Traduction: Ecriture décimale Ecriture sexagésimale Ecriture cunéiforme En écriture décimale : (entre 1 et 60) 22,683… 22 + 41/60 =1361/60 22,683 En écriture sexagésimale : 22.41 En écriture cunéiforme :
Calculs en cunéiforme: addition, soustraction Intermède : Exercices de calculs à la mode Scribouillard Calculs en cunéiforme: addition, soustraction 22 + 19 = 41 41+14 = 55 22 - 19 = 3 41 - 14 = 27 Vérification 22.41 = 22 x 60 + 41 = 1361 19.14 = 19 x 60 + 14 = 1154 Somme = 2515 = 41 x 60 + 55 = 41.55 Vérification 22.41 = 22 x 60 + 41 = 1361 19.14 = 19 x 60 + 14 = 1154 Différence = 207 = 3 x 60 + 27 = 3.27
Calculs en cunéiforme: multiplication Intermède : Exercices de calculs à la mode Scribouillard Calculs en cunéiforme: multiplication 30 x 40 = 1200 = 20x60 = 20.00 21 + 30 = 51 30 x 7 = 210 = 3x60+30 = 3.30 3 x 40 = 120 = 2x60+0 = 2.00 3 x 7 = 21 2 + 3 + 20 = 25 On peut vérifier que c’est 47 x 33 = 1551 [25 x 60 + 51 = 1551 ]
Calculs en cunéiforme: multiplication Intermède : Exercices de calculs à la mode Scribouillard Calculs en cunéiforme: multiplication (16 + 44) x 60 = 60 x 60 = 60 x 60 = 1 x 60² = 00 et je retiens 1 52 x 19 = 988 = 16 x 60 + 28 = 16.28 52 x 2 x 60 = 104 x 60 = 60 x 60 + 44 x 60 = 1 x 60² + 44 x 60 = 1.44.00 On peut vérifier que c’est 139 x 52 = 7 228 [ 2 x 60 + 19 = 139 et 2 x 60² + 28 = 7 228 ]
L’algorithme de Babylone: calcul d’une racine carrée Calcul de racine de 2: On part d’un rectangle (21), on cherche la moyenne des longueurs des côtés: (2+1)/2 = 3/2 = 1.30 qui sera notre nouvelle longueur. On cherche la nouvelle largeur de sorte que l’aire du nouveau rectangle soit toujours 2. 2/1.30 = 1.20. On obtient notre nouveau rectangle (1.30 1.20). On réitère: (1.25 1.24.42.21.10…) qu’on arrondit à (1.25 1.24.42.21) Et encore: (1.24.51.10.35 1.24.51.9.40): c’est la valeur de la tablette: 1.24.51.10. L’algorithme pour calculer la racine de A est donc: (x,y)( (x+y)/2 , 2A/(x+y) ) en initialisant à (1,A) La suite des couples donne des encadrements de plus en plus fins de la racine carrée 25
L’algorithme de Babylone: retour sur les calculs – une activité Nous sommes apprenti scribe (Padawan-scribe) à l’école de Nippur en l’an -2100 et Maître Iodabulu nous demande le calcul de racine de 2 en partant de la largeur 2 et hauteur 1… On part de ( a , b ) = (2 , 1) et il faut trouver le couple suivant ( (a+b)/2 , 4/(a+b) ) … (a+b)/2 = 3/2. L’inverse de 2 est 30, donc (a+b)/2 = 3 x 30 = 1.30 (car 90=1x60+30). Il faut trouver maintenant 2 / 1.30, ou encore l’inverse de 1.30. La table des inverses dit que l’inverse de 1.30 est … L’inverse de 01.30 est 40. Donc 2 / 1.30 = 2 x 40 = 1.20 (car 80=1x60+20). On a : ( 2 , 1 ) (1.30 , 1.20) Cherchons le couple suivant: (a+b)/2 = 2.50 / 2 = 2.50 x 30 = 1.25 (0.50x30 = 1500 = 25x60 = 25.00 et 30x2.00 = 60 = 1x60+00 = 01.00.00 soit 01.25.00) Il faut trouver maintenant 2 / 1.25, ou encore l’inverse de 1.25. Mais la table des inverses ne donne pas l’inverse de 1.25… Il faut se coltiner la division avec la table des 1.25
Algorithme de Babylone - Calcul de 2 / 1.25 La division ne se finit pas. On garde juste l’arrondi 1 . 24 . 42 . 21 2 . 00 . 00 . 00 . 00 . 00 . 00 1.25 - 1 . 25 35 . 00 1 . 24 . 42 . 21 . 10 . 35 1 . 24 . 42 . 21 . 10 1 . 24 . 42 . 21 1 . 24 1 1 . 24 . 42 - 34 . 00 01 . 00 . 00 - . 59 . 30 00 . 30 . 00 - 29 . 45 15 . 00 - 14 . 10 50 . 00 - 49 . 35 25
Algorithme de Babylone - Calcul des approximation de racine de 2 On avait : ( 2 , 1 ) (1.30 , 1.20) (a+b)/2 = 2.50 / 2 = 2.50 x 30 = 1.25 et 2 / 1.25 arrondit à 1 . 24 . 42 . 21 Donc ( 2 , 1 ) (1.30 , 1.20) (1.25 , 1.24.42.21) Couple suivant: (a+b)/2 = (1.25 +1.24.42.21)/2 = 2.49.42.21 / 2 1.24.51.10.35 qu’on arrondit à 1.24.51.10 Il faut calculer 2 / 1.24.51.10 car on ne connaît pas l’inverse de 1.24.51.10 et donc construire la table de 1.24.51.10…
Algorithme de Babylone - Calcul de 2 / 1.24.51.10 2 . 00 . 00 . 00 . 00 . 00 . 00 1.24.51.10 - 1 . 24 . 51 . 10 35 . 08 . 50 . 00 1 . 24 . 51 . 10 1 . 24 . 51 1 . 24 1 1 . 24 . 51 . 10 . 15 - 33 . 56 . 28 . 00 1 . 12 . 22 . 00 . 00 - 1 . 12 . 07 . 29 . 30 14 . 30 . 30 . 00 - 14 . 08 . 31 . 40 21 . 58 . 20 . 00 - 21 . 12 . 47 . 30 45 . 32 . 30 . 00 La division ne se finit pas. On garde juste l’arrondi 1 . 24 . 51 . 10 . 15
Algorithme de Babylone - Calcul des approximation de racine de 2 ( 2 , 1 ) (1.30 , 1.20) (1.25 , 1.24.42.21) (a+b)/2 est arrondi à 1.24.51.10 2 / 1.24.51.10 est arrondi à 1.24.51.10.15 ( 2 , 1 ) (1.30 , 1.20) (1.25 , 1.24.42.21) (1.24.51.10 , 1.24.51.10.15) On peut prendre 1.24.51.10 comme approximation de la racine carrée de 2. La tablette utilisait justement 1.24.51.10
Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – Ecriture moderne ( x ; y ) ( (x+y)/2 , 2A/(x+y) ) Initialisation: ( 1 ; A ) Arrêt quand Abs(y-x) < epsilon Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme
Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner x y Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme
Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner x y 0,001 2 1 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme
donc on entre dans la boucle Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner e A x y 0,001 2 1 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme ABS(y-x) = 1 > e donc on entre dans la boucle
Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner x y 0,001 2 1 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme 3/2 (x+y) / 2 = 3/2 → x
Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner x y 0,001 2 1 3/2 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme 4/3 A / x = 2/(3/2) = 4/3 → y
donc on entre dans la boucle Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner e A x y 0,001 2 1 3/2 8/3 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme ABS(y-x) = 1/6 0,16 > e donc on entre dans la boucle
Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner x y 0,001 2 1 3/2 4/3 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme 17/12 (x+y) / 2 = 17/12 → x
Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner x y 0,001 2 1 3/2 4/3 17/12 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme 24/17 A / x = 2/(17/12) = 24/17 → y
donc on entre dans la boucle Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner e A x y 0,001 2 1 3/2 4/3 17/12 24/17 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme ABS(y-x) = 1/204 0,005 > e donc on entre dans la boucle
(x+y) / 2 = (17²+12*24)/(2*12*17) = 577 / 408 → x Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner e A x y 0,001 2 1 3 / 2 4 / 3 17 / 12 24 / 17 17/12 24/17 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme 577 / 408 (x+y) / 2 = (17²+12*24)/(2*12*17) = 577 / 408 → x
Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner x y 0,001 2 1 3 / 2 4 / 3 17 / 12 24 / 17 577 / 408 24/17 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme 816 / 577 A / x = 2 / (577 / 408) = 816 / 577 → y
donc on sort de la boucle Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner e A x y 0,001 2 1 3 / 2 4 / 3 17 / 12 24 / 17 577 / 408 816 / 577 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme ABS(y-x) = 1/235 416 4.10-6 < e donc on sort de la boucle
La racine carrée de 2 est entre: Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner e A x y 0,001 2 1 3 / 2 4 / 3 17 / 12 24 / 17 577 / 408 816 / 577 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme La racine carrée de 2 est entre: 816 / 577 ( 1,414 211) et 577 / 408 ( 1,414 215)
La racine carrée de 2 est entre: Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – On le fait fonctionner e A x y 0,001 2 1 3 / 2 4 / 3 17 / 12 24 / 17 577 / 408 816 / 577 Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme La racine carrée de 2 est entre: 816 / 577 ( 1,414 211) et 577 / 408 ( 1,414 215) Racine de 2 1,414213
Algorithme de Babylone – Calcul d’un encadrement de la racine carrée de A – Réalisation sur Algobox Variables : x est un nombre réel y est un nombre réel A est un nombre réel e est un nombre réel Début algorithme Lire A Lire e 1 → x A → y Tant que Abs(y-x) > e (x+y) / 2 → x A / x → y Fin de Tant que Afficher x et y Fin algorithme
Fin de la 1ère partie