Calcul de la racine carr´ee, de l’inverse par l’it´eration de Newton. Calcul de cos x, sin x
11 septembre 2012
1 Contractance
Nous aurons besoin de cette notion tout `a l’heure.
Soit f une fonction de R de R, continue et d´erivable sur un intervalle X. On dit que f est contractante sur X si pour tout x1 ∈ X, x2 ∈ X, on a :
|f(x1)−f(x2)|<|x1−x2|.
Notonsf′(X) un intervalle contenant tous les f(xx1)−f(x1)
1−x2 pourx1∈X, x26= x1∈X (en fait six1=x2, on peut consid´ererf′(x1)).
Alorsf(x1)−f(x2)∈(x1−x2)f′(X). Donc il suffit que |f′(X)|<1 pour quef soit contractante dansX.
2 Racine carr´ ee
Les processeurs en arithm´etique flottante utilisent souvent (une variante de) la m´ethode de Newton.
Pour r´esoudref(x) =x2−a= 0 (doncf′(x) = 2x), la m´ethode de Newton calcule jusqu’`a convergence :x0=a,xk+1=N(xk), o`u :
N(x) =x− f(x) f′(x) = 1
2(x+a x)
Cette m´ethode pour calculer la racine carr´ee ´etait utilis´ee par les Babyloniens dans l’antiquit´e...
V´erifiez queN(√ a) =√
a.
V´erifiez que N(√
a+ǫ) = √
a+O(ǫ2), o`u ǫ ”tend vers z´ero”. Donc si xk
est `a moins de 10−10 de √
a, xk+1 sera `a moins de 10−20 de √
a. On dit que la convergence est quadratique ; en pratique, le nombre de d´ecimales correctes double `a chaque it´eration.
Cette m´ethode n´ec´essite une division par ´etape :a/x. Elle peut ˆetre ´evit´ee si est consid´er´ee :
f(x) = 1 x2 −1
a = 0 Alorsf′(x) =−2/x3, et
N(x) = x
2(3−bx2),o`ub= 1/a
1
V´erifiez queN(√a) =√a. V´erifiez queN(√a+ǫ) =√a+O(ǫ2). Cette variante n’utilise qu’une seule division :b= 1/a, lors d’une initialisation.
Convergence : la m´ethode converge quand x0 appartient `a un intervalle X o`uN est contractante ; une condition suffisante est|N′(X)|<1. Or
N′(x) = 3/2(1−bx2)
et, apr`es avoir trac´e la courbe (x, N′(x)), une parabole, vous pouvez calculer l’intervalle o`u la convergence est garantie.
Dessinez aussi la courbe x, N(x) pour a = 2, b = 1/2. Dessinez la droite y =x. Suivez l’algorithme sur le dessin. V´erifiez queN est contractante dans un intervalleX quand|N′(X)|<1. R´esoudre|N′(x) = 3/2(1−bx2)|<1
Fig. 1 – Calcul de l’inverse de a= 1/2. La m´ethode part de x0=a= 1/2, et converge vers le point d’intersection de la parabole (la courbe (x, N(x))) et de la droite diagonaley=x.
3 Inverse
Pour calculer 1/a, certains processeurs arithm´etiques flottants utilisent la m´ethode de Newton pour r´esoudre
f(x) = 1
x−a= 0⇒f′(x) = −1 x2 L’it´eration de Newton est :
N(x) =x− f(x) f′(x) =x−
1 x−a
−1 x2
=x(2−ax) V´erifiez queN(1/a) = 1/aet que N(1/a+ǫ) = 1/a+O(ǫ2).
2
4 Calcul de cos x, sin x
Une s´erieP
iui est altern´ee quand (au moins `a partir d’un certain rang), les signes de (−1)iui sont tous ´egaux.
Th´eor`eme : si P
iui est une s´erie altern´ee, et si |ui| est d´ecroissante ten- dant vers 0, alors P
iui converge vers une valeurs, incluse dans [sn, sn+1] ou [sn+1, sn].
La preuve est omise. Voir ”http ://c.caignaert.free.fr/chapitre9/node5.html”
Ces s´eries pour cosxet sinxsont altern´ees : cosx= 1−x2
2! +x4
4! +. . .+ (−1)k x2k (2k)!. . . sinx=x−x3
3! +x5
5! +. . .+ (−1)k x2k+1 (2k+ 1)!. . .
Attention : pour assurer une bonne convergence, il faut r´eduire l’argument x, pour que |x| soit inf´erieure `a 1 ; la p’eriodicit´e et les symm´etries de cos et sin sont utilis´ees.
Programmez le calcul de cos et/ou sinx; comparez avec les fonctions de la librairie math´ematique de votre langage de programmation.
3