Formule de Héron d’Alexandrie 
La suite finale permet de calculer la racine carrée en fonction d’une valeur initiale arbitraire x 0 . En principe, on utilise 
la valeur entière approchée de la racine carrée, la formule permettant initialement d’obtenir rapidement les nombres 
situés après la virgule. Donc si vous cherchez la racine carrée de 40, sachant que 6x6 vaut 36 et que 7*7 vaut 49, la 
racine carrée est comprise entre les deux, vous devriez mettre 6. Cependant dans la pratique, n’importe quelle valeur 
peut convenir, avec un nombre important d’itérations vous obtiendriez toujours le résultat attendu, autant en plaçant 
1 que 10000. 
Il  est  cependant  très  intéressant  de  pouvoir  optimiser  le  calcul  en  récupérant  l’entier  le  plus  proche.  Du  coup 
l’algorithme sera extrêmement précis. Celui­ci contiendra deux boucles. La première de type "Tant Que", chargée de 
calculer  l’entier  x  le  plus  proche  de  la  racine  carrée  de  a.  La  seconde  de  type  "Pour"  calculera  les  décimales.  Le 
nombre  d’itérations permettra de déterminer une précision. D’ailleurs,  inutile  d’exécuter cette seconde boucle si le 
résultat de la première correspond à la racine recherchée. 
Variables i,x,a,cpt en Numérique 
Début 
x←1 
α←39 
cpt←5 
Tant Que (x*x) x←x+1 
Fin Tant Que 
Si (x*x) !=a Alors 
x←x-1 
Pour i de 1 à cpt Faire 
x←0.5*(x+a/x) 
Fin Pour 
FinSi 
Ecrire "La racine de ",a," est ",x 
Fin
Vous allez être étonné de la pertinence et de la précision des résultats. Ainsi en seulement trois ou quatre itérations, 
la  précision  est  suffisante  pour  la  plupart  des  applications.  Malheureusement,  et  vous  le  verrez  dans  la  suite  de 
l’ouvrage,  c’est  beaucoup  de  travail  pour  pas  grand  chose  :  les  langages  sont  fournis  avec  des  instructions 
particulières  permettant  d’effectuer  ces  calculs,  d’autant  plus  que  les  fameux  FPU  (coprocesseurs  arithmétiques) 
disposent d’une instruction en dur rien que pour ça (FSQRT par exemple sur un vieux Motorola MC68881). 
En attendant, voici la transcription de ce calcul avancé en Java : 
class chap4_racine { 
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
92
Précédent

- 92/220

Suivant