← Tous les textes du Grand Oral
MathsNSIHGGSP
Comment calculer $\sqrt{720}$ sans calculatrice ? Il y a près de deux mille ans, Héron d'Alexandrie donne une recette qui tient en trois opérations : diviser, ajouter, prendre la moitié. Répétée, elle fournit des valeurs de plus en plus précises, et elle est si efficace que le nombre de chiffres exacts double à chaque étape. Les scribes de Babylone semblent avoir connu une méthode voisine bien avant Héron, et la même idée, sous le nom de méthode de Newton, tourne encore aujourd'hui dans les calculatrices, les processeurs et même dans un célèbre jeu vidéo.
Ce texte reprend le passage de Héron, explique pourquoi la recette fonctionne (avec des rectangles, puis avec une construction géométrique), puis démontre tout avec les outils de terminale : suites définies par récurrence, raisonnement par récurrence, suites monotones et bornées, limite et continuité, dérivée et tangente, algorithmique. Il ne propose pas de Grand Oral tout fait : à chacun d'y choisir une direction et d'y construire sa question.
Héron vit à Alexandrie, en Égypte romaine, probablement au Ier siècle de notre ère ; on ne sait presque rien de sa vie. Il enseigne et écrit des traités pratiques : machines à vapeur (l'éolipile), automates de théâtre, instruments de visée pour l'arpentage, et un traité de mesure des surfaces et des volumes, les Metrica, dont le manuscrit n'a été retrouvé, à Constantinople, qu'à la fin du XIXe siècle. C'est là que figure la célèbre formule de Héron, qui donne l'aire d'un triangle à partir de ses trois côtés. Pour un triangle de côtés $7$, $8$ et $9$, elle conduit à $\sqrt{720}$, et Héron explique comment en obtenir une valeur approchée.
Voici le passage, dans la traduction donnée par Jean-Luc Chabert dans Histoires d'algorithmes :
Puisque $720$ n'a pas de côté rationnel, nous extrairons le côté avec une très petite différence de la façon suivante. Comme le premier nombre carré plus grand que $720$ est $729$ qui a pour côté $27$, divise $720$ par $27$ ; cela fait $26$ et $\frac{2}{3}$ ; ajoute $27$, cela fait $53$ $\frac{2}{3}$ ; prends-en la moitié, cela fait $26$ $\frac{1}{2}$ $\frac{1}{3}$. Car $26$ $\frac{1}{2}$ $\frac{1}{3}$ multiplié par lui-même donne $720$ $\frac{1}{36}$, de sorte que la différence (sur les carrés) est $\frac{1}{36}$. Si nous voulons rendre cette différence inférieure encore à $\frac{1}{36}$, nous mettrons $720$ $\frac{1}{36}$ trouvé tout à l'heure à la place de $729$ et en procédant de la même façon…
« $720$ n'a pas de côté rationnel » : un carré d'aire $720$ a pour côté $\sqrt{720}$, qui n'est pas une fraction. On va donc en chercher une valeur approchée. Héron écrit les fractions comme les Égyptiens, en sommes de fractions de numérateur $1$ : « $26$ $\frac{1}{2}$ $\frac{1}{3}$ » signifie $26 + \frac{1}{2} + \frac{1}{3} = 26 + \frac{5}{6}$.
Héron vérifie ensuite son résultat en l'élevant au carré :
$$\left(26 + \frac{5}{6}\right)^2 = 26^2 + 2 \times 26 \times \frac{5}{6} + \frac{25}{36},$$donc
$$\begin{aligned} \left(26 + \frac{5}{6}\right)^2 &= 676 + \frac{130}{3} + \frac{25}{36} \\ &= 720 + \frac{1}{36}. \end{aligned}$$Le carré de côté $26 + \frac{5}{6} \approx 26{,}8333$ a donc une aire qui ne dépasse $720$ que de $\frac{1}{36}$. En effet, $\sqrt{720} \approx 26{,}832\,816$ : en une seule étape, on est passé d'une erreur d'environ $0{,}17$ à une erreur d'environ $0{,}000\,5$.
La dernière phrase est la plus importante : pour faire mieux, on recommence avec la valeur obtenue à la place de $27$. En langage moderne, pour approcher $\sqrt{a}$, on part d'une valeur $u_0$ et l'on calcule
$$u_{n+1} = \frac{1}{2}\left(u_n + \frac{a}{u_n}\right).$$C'est un algorithme : une suite d'opérations simples, répétée autant de fois que nécessaire. C'est aussi une suite définie par récurrence, et toute la suite du texte consiste à comprendre pourquoi elle tend vers $\sqrt{a}$, et à quelle vitesse.
Chercher $\sqrt{a}$, c'est chercher le côté d'un carré d'aire $a$. Partons d'un rectangle d'aire $a$ dont un côté mesure $u$ : l'autre côté mesure alors $\dfrac{a}{u}$.
Pour $\sqrt{720}$, le premier rectangle mesure $27$ sur $26{,}67$ ; le suivant mesure $26{,}833\,3$ sur $26{,}832\,3$ : c'est presque un carré. La figure montre le même phénomène pour un nombre $a$ entre $2$ et $20$, en partant, comme Héron, du premier entier dont le carré dépasse $a$.
Cette image explique pourquoi la méthode marche, mais elle ne prouve pas que les rectangles deviennent des carrés, ni à quelle vitesse. C'est l'objet des sections suivantes.
À l'époque de Héron, et encore pendant des siècles, un calcul se justifie par une construction géométrique. Jean Dieudonné, dans Pour l'honneur de l'esprit humain, propose une construction qui donne exactement le nombre de Héron. La voici, démontrée avec le cours de collège et de lycée.
On part d'un carré $ABCD$ d'aire $a$, donc de côté $\sqrt{a}$. On prolonge les côtés $[AD]$ et $[BC]$ pour obtenir un rectangle $ABEF$ dont le côté $[AF]$ mesure un nombre $r > \sqrt{a}$ (une valeur approchée par excès de $\sqrt{a}$, comme $27$ pour $\sqrt{720}$). On trace la médiatrice du segment $[AE]$ : elle coupe la droite $(AF)$ en un point $J$. On complète le rectangle $ABJ'J$. On va démontrer que
$$AJ = \frac{1}{2}\left(r + \frac{a}{r}\right).$$Étape 1. La médiatrice de $[AE]$ partage le plan en deux régions : les points plus proches de $A$ que de $E$, et les points plus proches de $E$ que de $A$.
Étape 2. On a $FA = FD + DA$ et $DA = FE$, donc $FA = FD + FE > FE$ : le point $F$ est plus proche de $E$ que de $A$.
Étape 3. Le triangle $DEF$ est rectangle en $F$, donc son hypoténuse vérifie $DE > FE = DA$ : le point $D$ est plus proche de $A$ que de $E$.
Étape 4. Les points $D$ et $F$ sont donc de part et d'autre de la médiatrice : elle coupe le segment $[DF]$ en un point, qui est $J$.
Étape 1. On trace la parallèle à la médiatrice passant par $E$ ; elle coupe la droite $(AD)$ en $K$. La médiatrice passe par le milieu de $[AE]$ et elle est parallèle à $(EK)$ : d'après le théorème de Thalès (ou des milieux) dans le triangle $AEK$, elle coupe $[AK]$ en son milieu. Donc $J$ est le milieu de $[AK]$ et $AJ = \frac{1}{2}AK$.
Étape 2. La médiatrice est perpendiculaire à $(AE)$, donc $(EK)$ aussi : le triangle $AEK$ est rectangle en $E$, et $[EF]$ est sa hauteur issue de $E$. Dans un triangle rectangle, la hauteur vérifie $EF^2 = FA \times FK$ (démontré dans l'encadré ci-dessous).
Étape 3. Or $EF = \sqrt{a}$ et $FA = r$, donc $a = r \times FK$, soit $FK = \dfrac{a}{r}$.
Étape 4. Enfin $AK = AF + FK = r + \dfrac{a}{r}$, et donc $AJ = \dfrac{1}{2}\left(r + \dfrac{a}{r}\right)$.
Soit $ABC$ un triangle rectangle en $A$ et $H$ le pied de la hauteur issue de $A$. Alors $AH^2 = HB \times HC$.
Par les triangles semblables. Les angles $\widehat{HBA}$ et $\widehat{HAC}$ sont égaux (tous deux complémentaires de $\widehat{HAB}$), et les triangles $HBA$ et $HAC$ sont rectangles en $H$ : ils sont semblables. Leurs côtés sont proportionnels, donc $\dfrac{HB}{HA} = \dfrac{HA}{HC}$, d'où $HA^2 = HB \times HC$.
Par le produit scalaire. Comme $(AH)$ est perpendiculaire à $(BC)$, on a
$$\begin{aligned} &\overrightarrow{AB}\cdot\overrightarrow{AC} \\ &= \left(\overrightarrow{AH} + \overrightarrow{HB}\right)\cdot\left(\overrightarrow{AH} + \overrightarrow{HC}\right), \end{aligned}$$donc, en développant et en utilisant $\overrightarrow{AH}\cdot\overrightarrow{HB} = \overrightarrow{AH}\cdot\overrightarrow{HC} = 0$ :
$$\overrightarrow{AB}\cdot\overrightarrow{AC} = AH^2 + \overrightarrow{HB}\cdot\overrightarrow{HC}.$$Le premier membre est nul (angle droit en $A$), et $\overrightarrow{HB}\cdot\overrightarrow{HC} = -HB \times HC$ car les deux vecteurs sont de sens contraires. Donc $AH^2 = HB \times HC$.
La construction dit même un peu plus. Comme $J$ est sur la médiatrice, $JA = JE$, et l'inégalité triangulaire donne $JE < JF + FE$, c'est-à-dire $JD + DA < JF + FE$, donc $JD < JF$ : le point $J$ est plus près de $D$ que de $F$. L'excédent d'aire (le rectangle au-dessus du carré) est donc plus que divisé par deux à chaque étape : il tend vers $0$, et le côté $AJ$ tend vers $\sqrt{a}$. La section suivante montre que la réalité est bien meilleure encore.
Soit $a$ un réel strictement positif et $u_0$ un réel strictement positif quelconque. On définit la suite $(u_n)$ par
$$u_{n+1} = \frac{1}{2}\left(u_n + \frac{a}{u_n}\right),$$c'est-à-dire $u_{n+1} = f(u_n)$ avec $f(x) = \dfrac{1}{2}\left(x + \dfrac{a}{x}\right)$ sur $]0 ; +\infty[$.
Par récurrence. Initialisation : $u_0 > 0$ par hypothèse. Hérédité : si $u_n > 0$, alors $\frac{a}{u_n} > 0$ et $u_{n+1}$, moitié d'une somme de deux nombres strictement positifs, est strictement positif. Conclusion : pour tout entier $n$, $u_n > 0$ ; en particulier on ne divise jamais par $0$.
Pour tout entier $n$, on met au même dénominateur :
$$u_{n+1} - \sqrt{a} = \frac{u_n^2 + a - 2u_n\sqrt{a}}{2u_n}.$$Le numérateur est une identité remarquable, puisque $a = (\sqrt{a})^2$ :
$$u_{n+1} - \sqrt{a} = \frac{(u_n - \sqrt{a})^2}{2u_n}.$$Cette égalité contient presque tout. Un carré est positif et $u_n > 0$, donc $u_{n+1} \geqslant \sqrt{a}$ pour tout $n$ : à partir du rang $1$, tous les termes sont supérieurs ou égaux à $\sqrt{a}$, quel que soit le point de départ. Si l'on part d'une valeur trop petite, la première étape la fait passer au-dessus.
On peut aussi le voir par une étude de fonction. Sur $]0 ; +\infty[$,
$$f'(x) = \frac{1}{2}\left(1 - \frac{a}{x^2}\right) = \frac{x^2 - a}{2x^2},$$qui est du signe de $x - \sqrt{a}$ : $f$ est décroissante sur $]0 ; \sqrt{a}]$, croissante sur $[\sqrt{a} ; +\infty[$, et son minimum vaut $f(\sqrt{a}) = \sqrt{a}$. Donc $f(x) \geqslant \sqrt{a}$ pour tout $x > 0$.
Pour tout $n \geqslant 1$,
$$\begin{aligned} u_{n+1} - u_n &= \frac{1}{2}\left(\frac{a}{u_n} - u_n\right) \\ &= \frac{a - u_n^2}{2u_n}. \end{aligned}$$Comme $u_n \geqslant \sqrt{a} > 0$ et que la fonction carré est croissante sur $[0 ; +\infty[$, on a $u_n^2 \geqslant a$, donc $u_{n+1} - u_n \leqslant 0$.
Étape 1. À partir du rang $1$, la suite est décroissante et minorée par $\sqrt{a}$ : d'après le théorème de convergence monotone, elle converge vers une limite $\ell$ telle que $\ell \geqslant \sqrt{a} > 0$.
Étape 2. La fonction $f$ est continue en $\ell$, donc en passant à la limite dans $u_{n+1} = f(u_n)$, on obtient $\ell = f(\ell)$ :
$$\begin{aligned} \ell = \frac{1}{2}\left(\ell + \frac{a}{\ell}\right) &\iff 2\ell = \ell + \frac{a}{\ell} \\ &\iff \ell^2 = a. \end{aligned}$$Étape 3. Comme $\ell > 0$, on conclut $\ell = \sqrt{a}$.
Avant de démontrer, regardons. Avec $a = 720$ et $u_0 = 27$, voici les premiers termes, comparés à $\sqrt{720} \approx 26{,}832\,815\,729\,997$.
| $n$ | $u_n$ | $u_n - \sqrt{720}$ |
|---|---|---|
| $0$ | $27$ | $0{,}167$ |
| $1$ | $26{,}833\,333\,333$ | $5{,}2 \times 10^{-4}$ |
| $2$ | $26{,}832\,815\,735$ | $5{,}0 \times 10^{-9}$ |
| $3$ | $26{,}832\,815\,730$ | environ $5 \times 10^{-19}$ |
L'erreur passe de l'ordre de $10^{-1}$ à $10^{-4}$, puis $10^{-9}$, puis $10^{-19}$ : l'exposant fait plus que doubler à chaque étape. Une calculatrice affiche $u_3$ et $\sqrt{720}$ avec exactement les mêmes chiffres.
Étape 1. On note $e_n = u_n - \sqrt{a}$ l'erreur. Pour $n \geqslant 1$, elle est positive, et l'égalité clé s'écrit $e_{n+1} = \dfrac{e_n^2}{2u_n}$.
Étape 2. Comme $u_n \geqslant \sqrt{a}$, on obtient
$$0 \leqslant e_{n+1} \leqslant \frac{e_n^2}{2\sqrt{a}}.$$Étape 3. Si $a \geqslant 1$, alors $2\sqrt{a} \geqslant 2$, et si $e_n \leqslant 10^{-p}$, alors $e_{n+1} \leqslant \dfrac{10^{-2p}}{2} < 10^{-2p}$.
Conclusion. Chaque étape au moins double le nombre de décimales exactes (à un chiffre près, selon les arrondis). Pour $\sqrt{720}$, c'est encore mieux, car on divise par $2\sqrt{720} \approx 53{,}7$.
On dit que la convergence est quadratique. C'est très différent d'une suite géométrique de raison $\frac{1}{2}$, qui gagne un chiffre exact toutes les trois ou quatre étapes environ. Avec la méthode de Héron, $5$ étapes à partir d'un chiffre exact en donnent plus de $30$ ; c'est ce que fait le programme suivant. Il calcule avec des entiers géants (on multiplie tout par une grande puissance de $10$), ce qui permet de dépasser les $16$ chiffres d'une calculatrice.
On obtient successivement $0$, $2$, $5$, $11$, $23$ puis $47$ décimales exactes de $\sqrt{2}$ : le nombre de décimales double bien, à une unité près.
Cette petite tablette d'écolier, de l'époque paléo-babylonienne (vers 1800-1600 av. J.-C.), montre un carré et ses diagonales. Le côté porte le nombre $30$, et le long de la diagonale on lit, en numération sexagésimale (base $60$), les nombres $1\,;24,51,10$ et $42\,;25,35$.
Convertissons à la main, comme on le fait pour les heures, minutes et secondes, qui en sont les héritières :
$$1\,;24,51,10 = 1 + \frac{24}{60} + \frac{51}{60^2} + \frac{10}{60^3},$$c'est-à-dire
$$1\,;24,51,10 \approx 1{,}414\,212\,96,$$alors que $\sqrt{2} \approx 1{,}414\,213\,56$. L'écart est d'environ $6 \times 10^{-7}$ : six décimales exactes, plus de mille ans avant Héron. Le second nombre, $42\,;25,35 \approx 42{,}426\,4$, est la diagonale du carré de côté $30$, soit $30\sqrt{2}$ : le scribe applique le coefficient au cas particulier.
Comment l'a-t-on obtenu ? La tablette ne le dit pas, et les historiens en discutent encore. La méthode de Héron, partie de $\frac{3}{2}$, donne $\frac{17}{12}$ puis $\frac{577}{408} \approx 1{,}414\,215\,7$, qui, écrit en base $60$ et tronqué à trois chiffres après le point-virgule, donne exactement $1\,;24,51,10$. C'est compatible avec une méthode de type Héron, mais $\sqrt{2}$ lui-même, tronqué de la même façon, donne aussi $1\,;24,51,10$ : on ne peut pas conclure. D'autres textes babyloniens utilisent des approximations qui ressemblent à la première étape de Héron, d'où l'hypothèse souvent avancée d'une méthode transmise, mais elle reste une hypothèse.
On retrouve la même famille de fractions chez Archimède, qui encadre $\sqrt{3}$ par $\frac{265}{153}$ et $\frac{1351}{780}$ sans dire comment il les a trouvées. Or une étape de Héron à partir de $\frac{26}{15}$ donne
$$\begin{aligned} \frac{1}{2}\left(\frac{26}{15} + \frac{3 \times 15}{26}\right) &= \frac{676 + 675}{780} \\ &= \frac{1351}{780}. \end{aligned}$$Chercher $\sqrt{a}$, c'est chercher la solution positive de l'équation $g(x) = 0$, avec $g(x) = x^2 - a$. La méthode de Newton remplace la courbe par sa tangente : à partir d'une valeur $u_n$, on trace la tangente à la courbe au point d'abscisse $u_n$, et l'on prend pour $u_{n+1}$ l'abscisse du point où elle coupe l'axe des abscisses.
Étape 1. La tangente au point d'abscisse $u_n$ a pour équation $y = g'(u_n)(x - u_n) + g(u_n)$, avec $g'(u_n) = 2u_n$.
Étape 2. Elle coupe l'axe des abscisses quand $y = 0$, c'est-à-dire pour $x = u_n - \dfrac{g(u_n)}{g'(u_n)}$.
Étape 3. On calcule :
$$\begin{aligned} u_n - \frac{u_n^2 - a}{2u_n} &= \frac{2u_n^2 - u_n^2 + a}{2u_n} \\ &= \frac{1}{2}\left(u_n + \frac{a}{u_n}\right). \end{aligned}$$C'est exactement la formule de Héron.
La méthode de Newton (Newton vers 1670, Raphson en 1690, sous sa forme moderne avec Thomas Simpson en 1740) résout ainsi bien d'autres équations, et elle a en général la même convergence quadratique près de la solution. Elle est présentée en détail dans le texte Approximation des solutions d'une équation, avec la dichotomie et la méthode du point fixe, beaucoup plus lentes.
Une calculatrice ne connaît que des opérations élémentaires sur des chiffres. Pour une racine carrée, elle utilise soit une méthode « chiffre par chiffre », proche de la méthode de la potence apprise autrefois à l'école, soit une méthode de type Newton, selon les modèles. Dans les processeurs d'ordinateur, la norme IEEE 754, qui fixe depuis 1985 la façon de représenter et de calculer les nombres à virgule, impose que la racine carrée soit correctement arrondie : le résultat doit être le nombre représentable le plus proche de la vraie valeur. Les circuits y parviennent avec des algorithmes chiffre par chiffre ou avec des itérations de type Newton suivies d'une correction finale, selon les fabricants.
Un détail rend Newton particulièrement intéressant pour un circuit : la formule de Héron demande une division $\frac{a}{u_n}$, opération lente. On préfère souvent calculer d'abord $\frac{1}{\sqrt{a}}$, dont la méthode de Newton n'utilise que des multiplications, puis multiplier par $a$ (car $a \times \frac{1}{\sqrt{a}} = \sqrt{a}$).
Dans un jeu vidéo en trois dimensions, il faut sans cesse normaliser des vecteurs (les ramener à une longueur $1$, par exemple pour calculer l'éclairage d'une surface), donc diviser leurs coordonnées par $\sqrt{x^2 + y^2 + z^2}$. À la fin des années 1990, ces calculs coûtaient cher. Le code source du jeu Quake III Arena (1999), rendu public en 2005, contient une fonction devenue célèbre :
float Q_rsqrt(float number) {
long i; float x2, y;
x2 = number * 0.5F;
y = number;
i = * (long *) &y; // lire les bits du nombre comme un entier
i = 0x5f3759df - (i >> 1); // la constante « magique »
y = * (float *) &i;
y = y * (1.5F - (x2 * y * y)); // une étape de la méthode de Newton
return y;
}
Elle calcule $\frac{1}{\sqrt{x}}$ en deux temps :
Avec $h(y) = y^{-2} - x$, on a $h'(y) = -2y^{-3}$, donc
$$\begin{aligned} y - \frac{h(y)}{h'(y)} &= y + \frac{y^3}{2}\left(\frac{1}{y^2} - x\right) \\ &= y + \frac{y}{2} - \frac{x}{2}y^3, \end{aligned}$$soit $y\left(\dfrac{3}{2} - \dfrac{x}{2}y^2\right)$.
Après cette unique étape, l'erreur relative ne dépasse pas environ $0{,}2\,\%$, largement assez pour l'œil d'un joueur. L'origine de la constante est restée longtemps mystérieuse ; des enquêtes publiées au milieu des années 2000 font remonter l'astuce à des travaux antérieurs, chez Silicon Graphics et ailleurs, sans qu'un auteur unique soit établi avec certitude. Les processeurs actuels ont des instructions dédiées, et l'astuce n'est plus utile, mais elle reste un bel exemple d'algorithme qui mêle représentation des nombres, logarithme et méthode de Newton.
Le programme ci-dessous ne reproduit pas l'astuce binaire, impossible à écrire simplement en Python, mais il montre l'effet de l'étape de Newton sans division à partir d'une première approximation grossière.
L'erreur relative passe d'environ $3\,\%$ à environ $0{,}14\,\%$, puis à environ $3 \times 10^{-6}$, puis à environ $1{,}2 \times 10^{-11}$ : la convergence est encore quadratique.
Ce texte n'est pas un Grand Oral. Il rassemble des connaissances dans lesquelles chacun peut choisir une direction, la creuser et formuler sa propre question. Quelques directions possibles :
Le jury peut interroger sur les chapitres de spécialité mobilisés. Avec ce thème, il est utile de connaître parfaitement : les suites définies par récurrence et le raisonnement par récurrence ; les suites monotones, majorées ou minorées, et le théorème de convergence monotone ; la limite d'une suite $u_{n+1} = f(u_n)$ avec $f$ continue ; la dérivation, les variations d'une fonction et l'équation d'une tangente ; le produit scalaire ; les boucles en Python.
Pour réviser ces chapitres, l'application Maths FlashBac reprend tout le cours de spécialité en cartes.