Академический Документы
Профессиональный Документы
Культура Документы
k ∈ {0,…, 4} . Les cosinus, sinus et tangentes de ces angles sont aisément Comme cette fois-ci ce n’est que le rapport y p x p qui nous intéresse, il est possible
calculables. de considérer les suites (X p )0≤p≤n et (Yp )0≤p≤n définies par :
Pour décomposer θ , nous posons θ0 = θ puis nous cherchons, parmi les angles
x 0 = 1 X = X p−1 −Yp−1 tan αp
précalculées, le plus grand qui soit inférieur à θ0 , notons le α1 . On considère alors et p .
y
0 = 0 Yp = X p−1 tan αp +Yp−1
le complément θ1 = θ0 − α1 et on reprend ce processus à partir de θ1 et ce jusqu’à
obtention d’un θn inférieur à arctan(10−4 ) . Ainsi nous parvenons à la relation On observe aisément qu’on a pour tout p ∈ {0,…, n }
θ = α + ε avec α = α1 + + αn et ε = θn réel positif inférieur à arctan(10−4 ) Yp yp
−4
=
donc inférieur à 10 . Xp xp
Parallèlement à la décomposition de θ , nous calculons cosα et sin α en Notons que cette fois-ci, les calculs définissant les suites (X p ) et (Yp ) sont
construisant deux suites (x p )0≤p≤n et (y p )0≤p≤n telles que x p = cos(α1 + + αp ) et beaucoup plus rapides. Certes il existe toujours deux multiplications, mais celles-ci
y p = sin(α1 + + αp ) . En exploitant les formules de développement de cos(a + b ) sont des multiplications par tan αp qui n’est rien d’autre qu’une puissance négative
et sin(a + b ) , on vérifie que ces suites sont définies par de 10, ces multiplications sont donc rapides.
x 0 = 1
x = x p−1 cos αp − y p−1 sin αp
et p .
y
0
= 0 y p = x p−1 sin αp + y p−1 cos αp
Au terme de ce calcul, on obtient Yn X n = tan(α ) et il ne reste plus qu’à en
déduire la tangente de θ = α + ε . Pour cela nous exploitons la formule de
1
développement de tan(a + b ) et l’approximation tan ε ε + ε3 afin d’obtenir
3
3Yn + (3ε + ε3 )X n
tan θ
3X n − (3ε + ε3 )Yn
avec une erreur relative de l’ordre de 10−14 . L’algorithme correspondant à cette
démarche est présenté en annexe.
Et pour aller encore plus vite…
Pour rendre cet algorithme encore plus efficace, il convient de travailler avec des
angles de la forme arctan(2−k ) avec k ∈ . A l’aide de l’inégalité :
arctan(2a ) ≤ 2arctan a
valable pour a ≥ 0 , on peut justifier qu’il est possible de décomposer n’importe
quel θ ∈ [0, π 4] sous la forme
+∞
θ = ∑ εk arctan(2−k )
k =1
de 0,85879 . Avec cette démarche, nous constatons que les suites (X p ) et (Yp )
convergent respectivement vers cos θ et sin θ , et nous disposons d’une méthode
permettant de calculer efficacement les fonctions trigonométriques sur des nombres
représentés en binaire.
Annexe : Algorithmes d’évaluation des fonctions Tant que ( k ≤ 7 ) faire
usuelles { Tant que (10−7 ≤ x ) faire { x = (x −10−k ) (1 + 10−k ) , y = y + Lk }
k = k +1 }
Racine carrée 1
Argument a > 0 . y = y +x − x 2 .
2
x = 0 , y = min(1,1 a ) Si ( a ≥ 1 ) alors {Répondre y }Sinon {Répondre −y }
Tant que ( x < y ) faire { x = y , y = (3x −ax 3 ) 2 } Fin
Répondre 1 y .
Tangente
La suite des x ainsi construits étant croissante, le test d’arrêt x < y est satisfaisant.
On préférera celui-ci au teste x ≠ y car, à cause de l’imprécision numérique, des Ak correspond à la valeur de arctan(10−k ) figurant en mémoire
Logarithme népérien
Lk correspond à la valeur de ln(1 + 10−k ) figurant en mémoire
Argument a > 0 .
Début
Si ( a ≥ 1 ) alors { x = a −1 } Sinon { x = 1 a −1 }
y =0, k =0.