|
Une méthode fort ancienne (abusivement attribuée à Platon) permettait d'extraire la racine carrée d'un nombre par un procédé itératif. Pour calculer la racine carrée x d'un nombre n on partait d'une valeur approchée x0 de x, et on utilisait la formule: ![]() Si le procédé converge, pour i suffisamment grand ![]() Intuitivement, si on part d'un point quelconque (non fixe), la transformation lui donne pour image un point qui est plus "proche" d'un des deux points fixes; le segment compris entre le point et le point fixe est transformé en un segment (point image et point fixe) plus petit. Une répétition de la transformation le rendra encore plus petit et les coordonnées des points successifs se rapprocheront de celle du point fixe. Si on part d'une valeur positive x0 on obtiendra la racine carrée positive de n. Toutefois la convergence est lente: à titre d'exemple, calculons la racine carrée de 2 en partant de 1; on obtient successivement 1, 3/2, 7/5, 17/12, 41/29, 99/70, 239/169, 577/408,... Ne pourrait-on pas améliorer la vitesse de convergence ? On a utilisé une tranformation dont l'équation est de la forme: cx² + (d - a)x - b = 0
Si l'on souhaite que les deux solutions soient n et - n, il faut que l'équation soit équivalente à x² = n. Par conséquent, en posant c=1, on doit avoir a = d et b = n; soit k la valeur commune de a et d.
On voit que la fonction possède les mêmes valeurs fixes ou, si l'on préfère, les mêmes points fixes.
Puisque nous disposons d'un paramètre k, peut-être pourrions-nous jouer sur le choix de k afin d'améliorer la convergence? L'idéal serait évidemment d'aboutir au résultat après une seule itération; on aurait: ![]() ![]() .
Il faudrait donc choisir k égal à la racine carrée de n. Malheureusement, c'est précisément ce que l'on cherche à calculer. Alors, faute de mieux, on peut choisir pour k la meilleure valeur connue à cette étape c'est-à-dire xi, l'approximation d'ordre i. La formule d'itération devient: ![]() En reprenant l'exemple du calcul de la racine carrée de 2 à partir de 1 on obtient 1, 3/2, 17/12, 577/408,... et la convergence est nettement plus rapide. Une autre manière d'arriver à cette formule (dite de Héron) est de raisonner comme suit: soit x0 une valeur de départ pour le calcul de la racine carrée de n. Pour vérifier si elle convient calculons le quotient de n par x0; en général on trouvera une valeur différente de x0, mais cette valeur et x0 encadreront la racine carrée cherchée. On améliorera la valeur en prenant la moyenne arithmétique de ces deux nombres: ![]() Si l'on voit les choses sous cet angle on peut évidemment se demander pourquoi avoir choisi la moyenne arithmétique et non une autre moyenne, harmonique, géométrique ou même arithmétique pondérée. En fait si xi, l'approximation d'ordre i, vaut (1 + ε) fois la valeur exacte, le quotient de n par xivaut approximativement (1 - ε) fois cette valeur (ε est l'erreur relative commise); par conséquent la moyenne arithmétique convient parfaitement (de même que la moyenne harmonique). On peut appliquer la même idée pour la recherche d'une racine cubique. Soit x0 une approximation de la racine cubique de n; on obtient un encadrement par l'intervalle: ![]() et de nouveau on peut améliorer l'approximation en choisissant une valeur intermédiaire; mais dans ce cas quelle moyenne adopter? Si x0 vaut (1 + ε) fois la valeur exacte, le quotient de n par x0 vaudra approximativement (1 - 2ε) fois cette valeur. On approchera donc le mieux la racine cubique en prenant cette fois la moyenne pondérée (2, 1) des deux extrémités de l'intervalle soit: ![]() Plus généralement pour extraire la racine d'ordre k de n la formule d'itération est: ![]() Enfin une autre manière de voir les choses conduit à la formule de Newton qui possède un champ d'application plus large: soit xi une approximation d'ordre i de la racine carrée de n; la valeur exacte est xi + ε; cherchons à déterminer ε: ![]() ![]() Cette méthode se généralise à la recherche d'une solution de l'équation f (x) = k. Si xi est une approximation et xi + ε la valeur exacte, on obtient en développant en série: ![]() ![]() La convergence de cette méthode est assez bonne et dépend du signe de la dérivée seconde. Dans le cas d'une extraction de racine on est assuré de la validité de la méthode de Newton. |