Calcul des fonctions trigonométriques par leur développement en séries de Taylor Claude Fuhrer ([email protected]) 9 novembre 2009 Table des matières 1 Introduction 2 2 Programmation de la fonction exponentielle 2 3 Programmation de la fonction sinus 3 4 Programmation de la fonction cosinus 3 5 Programmation de la fonction arcsinus 4 1 1 Introduction En informatique, pour calculer la valeur d’une fonction trigonométrique, on recours souvent à son développement en séries de Taylor. Pour exercer la programmation des boucles et aussi la reformulation du problème, nous allons programmer les fonctions exp(x), sin(x), cos(x), arcsin(x) et arctan(x). 2 Programmation de la fonction exponentielle La fonction exponentielle (e x ) est une fonction couramment rencontrée en mathématiques, en physique et dans les sciences de l’ingénier. Son développement en série de Taylor est donné par : x0 x1 x2 x3 xn + + + +...+ +... (1) 0! 1! 2! 3! n! Nous ne désirons pas calculer directement les puissances et factorielles pour accélérer le calcul. Donc nous allons un petit peu transformer cette décomposition pour en simplifier le calcul (sans la modifier pour autant). Considérons la série suivante : ex = e x = t0 + t1 + t2 + t3 + . . . Dans laquelle on aura x0 0! x1 t1 = 1! x2 t2 = 2! x3 t3 = 3! ... t0 = En examinant plus attentivement ces différents termes, on peut réécrire : x0 0! x1 x t1 = = t0 · 1! 1 x2 x t2 = = t1 · 2! 2 x3 x t3 = = t2 · 3! 3 ... t0 = De cette dernière équation on peut tirer une relation de récurrence qui dit : 2 t0 = 1 x t i = t i −1 · X i exp(x) = t i pour i ≥ 1 i Ensuite la programmation de cette fonction se fait simplement, par exemple avec le code : public static double exp ( double x , int maxIteration ) { double term = 1.0; double sum = 1.0; for ( int i = 1; i < maxIteration ; i ++) { term = term * x / i ; sum += term ; } return sum ; } 3 Programmation de la fonction sinus De manière similaire à la fonction exponentielle (se rappeller la manière de passer d’une à l’autre), on définit la série de Taylor de la fonction sinus comme étant : x 2n+1 x1 x3 x5 x7 − + − + . . . + (−1)n +... (2) 1! 3! 5! 7! (2n + 1)! On remarquera au passage un moyen mnémotechnique simple pour se rappeller de cette série. La fonction sin(x) est une fonction impaire (càd que sin(−x) = −si n(x) et seuls les termes impairs apparaissent dans le développement en série de Taylor de la fonction sinus. sin(x) = 4 Programmation de la fonction cosinus Le développement en série de la fonction cos(x) est donné par : x0 x2 x4 x6 x 2n − + − + . . . + (−1)n +... (3) 0! 2! 4! 6! (2n)! On remarque la grande similitude avec la fonction sin(x). Ici nous n’avons que les termes pairs. Donc, on peut immédiatement profiter des calculs effectués pour la fonction sin(x) pour trouver la relation de récurrence : cos(x) = 3 5 Programmation de la fonction arcsinus La fonction arcsin(x) est la fonction inverse de la fonction sin(x). Son développement en série de Taylor est : arcsin(x) = x + 1 x3 1 · 3 x5 1 · 3 · 5 x7 + + +... 2 3 2·4 5 2·4·6 7 trigo.tex (4) 9 novembre 2009-15:49 4