Calcul des fonctions trigonométriques par leur développement en

publicité
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
Téléchargement