powerpoint 2003 - Site de jacques bretin

publicité
QUELQUES
ALGORITHMES
DANS 5 500
ANS
D’HISTOIRE
Quelques dates importantes au proche orient (en gros):
En très gros
-100 000 : Apparition de l’homo sapiens-sapiens. NOUS
-11 000 : Premiers sédentaires, premières « maisons » au proche orient.
-10 000 : Début de l’agriculture: Apparition du …. TRAVAIL
- 9 000 : Début de l’élevage.
- 5 000 : Premiers villages conséquents; il ya suffisamment à manger pour tous, la
population s’accroît, hiérarchisation de la société: Naissance de l’aristocratie qui ne
travaille pas… donc apparition de … L’IMPOT
- 3 500 : Premières villes, cités états: Nombreux corps sociaux différents (clergé au
service de l’aristocratie divine, artisans, fonctionnaires …). Pour payer tous ces gens,
les rois doivent avoir un système d’imposition efficace: il faut savoir calculer,
n’oublier personne. Deux outils deviennent vite indispensable : L’ECRITURE, LE CALCUL
Ainsi les mathématiques procèdent de l’impôt…
A partir de -2 500 : Résolution d’équations (premier et second degré), relation de
Pythagore etc.
Points de repère:
Hammourabi : -1800
Ramsès II: -1300
Assurbanipal :-669
Pythagore -580/-497
Euclide -325/-265
Thalès -625/-547
Aristote -384/-322
Archimède -287/-212
Nabuchodonosor : -600
Alexandre: -350
Diophante 200/284
MESOPOTAMIE
1 ; 24 , 51 , 10 = 1 + 24/60 + 51/602 + 10/ 603 ≈ 1, 41421296
chevron==42;
1025 , 34 , 59 …
30 × 1, 41421296 ≈ 42, 14263870
Une tablette de
-2500=30
3 chevrons
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
L’algorithme de Babylone: calcul d’une racine carrée
On part d’un rectangle (21), 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,10).
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)
Un problème babylonien du second degré (-1500)
X2 + bX = c avec
b=1 , c=0;45 (= 45/60)
b/2=1/2=0;30 (= 30/60)
(b/2)²=0;15 (1/4= 15/60)
(b/2)²+c=1 (45/60+ 15/60=1)
Le texte donne donc l’algorithme calculant la solution positive de l’équation X²+bX=c
(avec b et c positifs: ils ne connaissent pas les négatifs)
Aucun texte prouvant l’algorithme n’a été retrouvé.
Pourtant ces algorithmes ont certainement du être « corrigés » …
EGYPTE ANCIENNE
La multiplication égyptienne
Calcul de 13238 par les égyptiens:
La division égyptienne
Sur le même principe, on divise… 212/6:
GRECE ANCIENNE
A tout seigneur…. L’algorithme « d’Euclide »
Il s’agit de calculer le PGCD de deux nombres.
L’algorithme repose sur deux règles:
 Si b0 : (a,b)  (b,r)
avec r = reste de a par b dans la division euclidienne
 (a,0)  a
Correction de l’algorithme:
 il faut démontrer que PGCD(a,b) = PGCD(b,r)
 il faut démontrer que PGCD(a,0) = 0
 il faut démontrer que la suite des couples (a,b) est finie
Tout ceci est très simple à faire…
Mise en
œuvre de
l’algorithme
Incommensurabilité de racine de 2: méthode « d’antiphérèse »
Il s’agit d’un algorithme permettant de trouver une « commune mesure » de deux lignes.
En clair: a et b étant les longueurs de deux segments, il faut trouver (ou non) un réel d (la
commune mesure) et deux entiers n et p tels que a=nd et b=pd.
L’algorithme est le même que le précédent:
« Soient deux lignes a et b. On peut en retranchant un certain nombre de fois la
plus petite b de la plus grande a, et en recommençant avec b et r, écrire une suite
d’égalités : a=b q1+r1 , b=r1q2+r2 , r1=r2q2+r3 … avec 0 r1<b, 0 r2<r1,… (les qi sont entiers)
jusqu’à ce qu’un reste soit nul. La partie commune est alors le dernier reste non nul.
Il est facile de démontrer que si a et b ont une partie commune alors la suite est finie.
Et donc si on démontre que la suite est infinie alors a et b n’ont pas de partie commune.
Soit un carré ABCD. On reporte sur la diagonale AC une longueur AE égale au côté AB et on
Euclide va utiliser cette méthode pour démontrer que la diagonale du carré est
mène la perpendiculaire à la diagonale en E qui coupe le côté BC en F.
incommensurable avec le côté du carré.
On
démontrer l’incommensurabilité
de AC et AB:
Ceciveut
est remarquable:
c’est sans doute la première
fois (bien avant le théorème des 4 couleurs)
Appliquons
maintenant
l’algorithme
de
recherche
d’une
commune
mesure.
qu’un algorithme ne se contente pas d’exhiber un résultat
(chose honnie
des grecs), mais
Une mesure commune à AC et AB est une commune mesure à AB et EC (AC-AB) donc à
démontre
un résultat.
BC et BF (BC=BF
, BF=EC) ou encore à FC et EC:
(AC,AB)  (AC-AB,AB)=(EC,AB) = (BF,BC)  (BC,BF)  (BC-BF,BF)  (FC,BF)=(FC,EC).
On recommence et on obtient un nouveau carré semblable au précédent.
Cela montre que le processus ne se termine pas. Il n’y a donc pas de commune mesure...
Ce raisonnement a induit un autre algorithme du calcul de valeurs
approchées de la racine de 2 que celui de Babylone (xx/2+1/x) :
Si on pose s=BF et d=FC (côté et diagonale de EFGC)
alors s’=AB=s+d et d’=AC=AB+s=2s+d (côté et diagonale de ABCD)
L’algorithme (s,d)(s+d,2s+d) en partant de (1,1) permet de trouver une
approximation de racine de 2 (d²/s² converge vers 2) :
Euclide
Ptolémée
et
AL-Kashi
Ptolémée (90/168):
Dans son traité d’astronomie (Almageste – « le très grand »), il a proposé un modèle
géocentrique du système solaire, qui fut accepté dans les mondes occidental et arabe
pendant plus de mille trois cents ans jusqu’à Copernic (1543)
Si les indiens utilisaient déjà les « sinus », les grecs travaillaient sur les cordes dans
leur cercle trigo de rayon 60, coupé en 360° comme les babyloniens.
Il était nécessaire de connaître les longueurs de cordes aussi précisément possible:
Sur la table ci-contre, on peut voir que la
corde correspondant à un angle de 2°30’ est
2p 37’ 4 ’’ ce qui signifie
2+37/60+4/60² = 589/225 ≈ 2,617777
Nous savons que la corde sous-tendue par
un angle a est 2Rsin(a/2) et donc égal ici à
120sin(1,25°) = 2,617786..
C’est donc une très bonne approximation:
D’autant que 1 ’’ = 1/60² = 0,00027
Cette table est juste à la seconde près.
La question est: comment a-t-il fait?
IlPour
Ilconnaît
connaît
aussi
Pythagore,
la construction
donc
il trouve
duson
pentagone,
les
cordesdonc
correspondant
il trouve lesaux
pouvoir
continuer,
il trouve
théorème:
ABCD
cordes
angles
est
correspondant
60°
un et
quadrilatère
90° de manière
auxconvexe,
angles
exacte.
36°
s’iletest
72°
inscrit
de manière exacte.
dans un cercle, alors ACBD=AB  CD+CB AD
(La réciproque est vraie)
Il utilise cette propriété pour trouver les formules de
Démonstration:
est sur [AC] tel que les angles ABD et
d’addition de laEcorde:
EBC soient égaux.
AEB et DCB sont semblables donc AE  BD = AB  CD
BEC et BAD sont semblables donc EC  BD =AD  BC
En additionnant: AB  BD = AB  CD + AD  BC
Il va pouvoir ainsi trouver les cordes de 12°, 6°, 3° :
corde(12°)=corde(72°-60°)
corde(6°)=corde(12°/2)
corde(3°)=corde(6°/2)
corde(1,5°)=corde(3°/2)
corde(0,75°) =corde(1,5°/2)
Et ceci de manière exacte, donc avec l’algorithme
de Babylone, obtenir des valeurs approchées aussi
précise qu’il veut…
En revanche, pas possible d’obtenir la valeur exacte de corde(1°) (problème de la
trisection de l’angle) et corde (0,5°).
En utilisant le fait que « corde(0,75°)/0,75 < corde(1°)/1 < corde(1,5°)/1,5 »,
il encadre corde(1°)
et trouve des valeurs approchées de corde(1°) et corde(0,5°) justes à 1’’ près.
Il ne reste plus qu’à construire la table de
valeurs par pas de 0,5°.
Pour cela il décompose l’arc en une somme
d’arcs dont il connaît la corde et applique
la formule de duplication de la corde….
Vers 1400, AL KASHI (Persan) dans son « Epître de la corde et du sinus » va améliorer
la table en améliorant la précision (60-7) et en trouvant la valeur exacte de Sin(1°).
Il abandonne les cordes pour le sinus indien:
Sin(a) = corde(2a)/2 = 60 sin(a).
(les sinus ont été inventés par les indiens vers -500)
Il trouvera la valeur exacte de Sin(1°) à partir de Sin(3°) [3;8,24,33,59,34,28,15]
[c’est-à-dire un algorithme qui converge vers Sin(1°)]
en résolvant notre égalité sin(3a)=3sin(a)-4sin3(a):
en posant x=Sin(1°), il faut résoudre x3+ p = qx
avec p=47,6;8,29,53,37,3,45 = 2826,141637… et q = 45,0;0 = 2700
(Sin(3°)/60= 3x/60-4(x/60) 3  x3+Sin(3°)  60²/4=3x60²/4  x3+900Sin(3°) =2700x)
Sa méthode revient à écrire en langage moderne: pour résoudre x=(x3+p)/q:
x=a0; a1, a2,.. = a0+a160-1+a260-2… et on pose bn=a0; a1, a2,.., an
Il pose a0=b0=E(p/q) et an+1 = E( ( (p+bn3)/q – bn ) 60n ) et bn+1 = bn + an+160-(n+1)
Il obtient: Sin(1°) = 1;2,49,43,11,14,44,16,26,17.
Et maintenant, quels algorithmes dans nos calculateurs pour calculer sin(x)?
Les algorithmes CORDIC (COordinate Rotation Digital Computing) sont le plus souvent
utilisés. Le principe reste le même, mais la base d’angles de référence n’est plus
90°,72°,60°… mais est : tan-1(20), tan-1(2-1), tan-1(2-2)…
car les divisions ou multiplication par 2 sont de simples décalages de virgule en base 2.
L’image d’un vecteur V(x,y) par une rotation d’angle a est V’(cos(a)(x-ytan(a)), cos(a)(y+xtan(a)).
Pour calculer sin(a), on écrit a (entre 0 et p/2) comme une somme de ai=tan-1(2-i) de plus en
plus petits. Puis on calcule les coordonnées d’une suite de vecteurs V images successives de
V0(1,0) par les rotations d’angle ai.
Renaissance
X3+pX=q
On cherche u et v
avec uv=(p/3)3
EQUATION 3ème DEGRE
X3+pX = u-v = q
uv=(p/3)3
TARTAGLIA 1534
On cherche a et b
a+b= q
ab= - (p/3)3
Résoudre:
Y²=qY+(p/3)3
VANTARD
Napoléon
s’amuse
Correction de l’algorithme (démonstration):
Le principe de la démonstration est la possibilité de construire au compas seul la longueur b²/a si
les longueurs a et b sont connues:
La démonstration s'appuie sur les propriétés du triangle rectangle:
Dans la figure ci-dessous, le triangle ABA' est rectangle en B et H est le pied de la hauteur issue
de B, on peut donc écrire l'égalité suivante : AH × AA' = AB² . Donc AH=b²/(2a) et AC=b²/a
Dans la construction précédente, on
retrouve deux fois une configuration
de ce type :
 les points A, B et B' sont sur le
cercle de centre O et de rayon r, les
distances
AB, AB',du
BCcercle!
et B'C valent R
O est le centre
donc AC=R²/r.
 les points A, D et D' sont sur le
cercle de centre C et rayon R²/r , les
distances DA, D'A, DO, D‘O valent R
donc AO= R²/(R²/r) = r.
La figure étant symétrique par
rapport à la médiatrice de [BB’], A,
O et C sont sur l’axe de symétrie.
Donc O est le centre du cercle.
Problème de Napoléon:
Retrouver le centre d’un cercle avec
le seul compas…
Maintenant
Un algorithme proposé par G. Berry (Collège de France)
(pour le traitement d’images)
Coût calcul d’angles:
O(n)
Coût tri et numérotation:
O(nlog(n))
Coût construction:
O(n)
BIBLIOGRAPHIE
-Gilles
Cours
Histoires
de
débuts
métamorphoses
Gérard
d’algorithmes
Berry
l’histoire
au
ducollège
:calcul
du
learabe»
Proche-Orient,
caillou
GFrance:
Dowek
à laDowek
puce
de
LeXXIème
»au
pommier
l’invention
J-L
Chabert
deFrance:
Belin
l’écriture à la
Eliane
Cousquer:
Babylone
-«
Séminaire
« Les
UneAdlon
histoire
(vidéo
etde
Michel
de
époustouflante)
la science
Mizony:
De
de»de
Babylone
Gilles
Ahmed
au
Djebbar
collège
Seuil.
siècle
de
naissance
http://www.college-de-france.fr/default/EN/all/inn_tec2007
du monothéisme » Editions de http://mediamaths.fr/pdf/grece.pdf
la Martinière.
http://mediamaths.fr/pdf/babylone.pdf
http://www.college-de-france.fr/default/EN/all/inn_tec2007/seminaire_n5_gilles_dowek.htm
http://rallye-math.univ-lyon1.fr/2007/Conference/conf2.pdf
http://mediamaths.fr/pdf/pythagore.pdf
ET VOILÀ, C’EST FINI!
Vous pourrez retrouver ce diaporama ici:
http://bretin.jacques.free.fr/algorithmes/histoire.ppt
Téléchargement