Nous allons apprendre ici à intégrer une famille importante de fonctions trigonométriques.

Polynômes à deux variables

Un monôme à deux inconnues X et Y, à coefficients réels, est une expression algébrique formelle de la forme ai,jXiYj, où i et j représentent deux entiers naturels et le coefficient ai,j un nombre réel.
i est le degré du monôme en X, j est le degré du monôme en Y.
Un polynôme à deux inconnues X et Y est une somme (finie) de monômes comme ci-dessus.
Un tel polynôme peut donc s'écrire formellement P ( X , Y ) = 0 i m , 0 j n a i , j X i Y j
m est le degré du polynôme en X et n est le degré du polynôme en Y. le nombre m+n s'appelle le degré total du polynôme à deux inconnues.
Tout polynôme comme ci-dessus définit donc une application p de ℝ×ℝ dans ℝ donnée par p ( x , y ) = 0 i m , 0 j n a i , j x i y j .
Nous admettrons, cela se démontre facilement par récurrence sur le degré, qu'une telle fonction est entièrement caractérisée par la suite double de ses coefficients ai,j, c'est à dire qu'elle ne peut être identiquement nulle que si les ai,j sont tous nuls.
On vérifie facilement que les polynômes à deux inconnues possèdent une structure d'espace vectoriel et même d'algèbre. En langage python une suite double peut-être représentée par un dictionnaire où les clés sont les couples d'entiers, et les valeurs des flottants, le polynôme 1+X+2XY sera donc représenté par le dictionnaire {(0,0):1,(1,0):1 ,(1,1):2}. Voici un programme qui modélise par des objets python l'algèbre des polynômes à deux variables (à coefficients dans n'importe quel corps usuel).

Voici le résultat de l'exécution
+1X^0Y^1-1X^1Y^0+1X^0Y^0
+1X^0Y^1+1X^0Y^0
+2X^0Y^1+2X^0Y^0
+3X^0Y^1-1X^1Y^0+3X^0Y^0
-1X^0Y^1-1X^1Y^0-1X^0Y^0
-1X^0Y^1+1X^1Y^0-1X^0Y^0
+4X^0Y^1-2X^1Y^0+2X^0Y^0+2X^0Y^2-2X^1Y^1
+2X^0Y^1+1X^0Y^0+1X^0Y^2+1X^2Y^0-2X^1Y^0-2X^1Y^1

Polynômes trigonométriques

Un polynôme trigonométrique est une fonction t de ℝ dans ℝ obtenue en substituant cos(x) à l'inconnue X et sin(x) à l'inconnue Y.
D'où l'expression d'une telle fonction t ( x ) = 0 i m , 0 j n a i , j cos ( x ) i sin ( x ) j
Vous pouvez voir ici la représentation graphique du monôme trigonométrique asinm(x)cosn(x).
Vous pouvez faire varier m et n avec les boutons sous la zone graphique .
Vous pouvez faire varier a de -2 à 2 avec le curseur en haut à gauche.

Remarquons tout de suite que:
Les polynômes trigonométriques héritent des polynômes à deux inconnues à partir desquels ils sont construits d'une structure d'algèbre, et que cette algèbre est engendrée, en tant qu'espace vectoriel par les fonctions du type cos(x)isin(x)j.
Voici une modélisation des polynômes trigonométriques. On dérive l'objet polynôme trigonométrique de l'objet polynôme à 2 variables. On crée une méthode valeur dans la classe parente et on surcharge cette méthode dans la classe dérivée.

Linéarisation

On dit qu'un polynôme trigonométrique est 'linéarisé' s'il est combinaison linéaire de fonctions de la forme sin(ax+b) et cos(cx+d) donc du premier degré en sin et cos.
Nous allons voir maintenant un résultat important:
Tout monôme trigonométrique de la forme cosm(x) ou sinn(x) peut être linéarisé.
Plus précisément:
Si n=2p avec p ∈ ℕ, alors:
2 n 1 cos n ( x ) = k = 0 p 1 n k cos ( n 2 k ) x + n p 2
2 n 1 sin n ( x ) = ( 1 ) p ( 1 ) k k = 0 p 1 n k cos ( n 2 k ) x + n p 2
si n=2p+1 avec p ∈ ℕ, alors:
2 n 1 cos n ( x ) = k = 0 p n k cos ( n 2 k ) x
2 n 1 sin n ( x ) = ( 1 ) p ( 1 ) k k = 0 p n k sin ( n 2 k ) x

La démonstration est simple et nous allons la donner pour n=3 pour le cosinus et pour n=4 pour le sinus. Le lecteur pourra se convaincre que la preuve en toute généralité n'est pas plus difficile puisqu'elle repose sur les mêmes astuces de substitution, et de regroupement.
D'une façon générale en utilisant la notation exponentielle complexe
Nous avons donc toujours
cos n x = ( e ix + e - ix 2 ) n et sin n x = ( e ix - e ix 2i ) n
Donc cos 3 x = 1 8 ( e ix + e ix ) 3 = 1 8 ( e 3 ix + 3 e 2 ix e ix + 3 e ix e 2 ix + e 3 ix ) = 1 8 ( ( e 3 ix + e 3 ix ) + 3 ( e ix + e ix ) ) = 1 8 ( 2 cos 3 x + 6 cos x )
et sin 4 x = 1 16 ( e ix e ix ) 4 = 1 16 ( e 4 ix 4 e 3 ix e ix + 6 e 2 ix e 2 ix 4 e ix e 3 ix + e 4 ix ) = 1 16 ( ( e 4 ix + e 4 ix ) 4 ( e 2 ix + e 2 ix ) + 6 ) = 1 8 ( cos 4 x 4 cos 2 x + 6 )

Illustrons cette méthode de linéarisation pour le cosinus par un programme:

Voici le résultat de l'exécution
[Fraction(1, 2), 0, Fraction(1, 2)]
[0, Fraction(3, 4), 0, Fraction(1, 4)]
[Fraction(3, 8), 0, Fraction(1, 2), 0, Fraction(1, 8)]
[0, Fraction(5, 8), 0, Fraction(5, 16), 0, Fraction(1, 16)]

Illustrons cette méthode de linéarisation pour le sinus par un programme:

Voici le résultat de l'exécution
[Fraction(1, 2), 0, Fraction(-1, 2)]
[0, Fraction(3, 4), 0, Fraction(-1, 4)]
[Fraction(3, 8), 0, Fraction(-1, 2), 0, Fraction(1, 8)]
[0, Fraction(5, 8), 0, Fraction(-5, 16), 0, Fraction(1, 16)]
Il résulte de là que:
Tout polynôme trigonométrique peut être linéarisé

Il suffit évidemment de prouver que tout monôme trigonométrique peut être linéarisé.
Pour cela il suffit de prouver que tout monôme de la forme cosm(x)sinn(x) peut être linéarisé.
Mais sachant, d'après le résultat précédent, que cosm(x) et sinn(x) sont linéarisables, tout revient à montrer que le produit de deux polynômes linéarisables est encore linéarisable.
Or le produit de combinaisons linéaires de fonctions cs(ax+b) et cs(cx+d) (cs désigne ici une fonction pouvant être soit sinus soit cosinus) est par développement une combinaison linéaire de produits du type cs(ax+b)cs(cx+d).
Il suffit donc de montrer que toute fonction de ce type peut être linéarisée.
Mais cela résulte des formules de transformation des produits en sommes:
cos a cos b = 1 2 ( cos ( a b 2 ) + cos ( a + b 2 ) )
sin a sin b = 1 2 ( cos ( a b 2 ) cos ( a + b 2 ) )
sin a cos b = 1 2 ( sin ( a b 2 ) + sin ( a + b 2 ) )

Application à la recherche de primitives

Il résulte de tout ce qui précède que:
Pour intégrer un polynôme trigonométrique il suffit de savoir intégrer les fonctions du type cos(ax+b) et sin(cx+d)
Mais ceci se fait instantanément par les changements de variables u=ax+b et v=cx+d.
Une primitive de cos(ax+b) est (1/a)sin(ax+b)+K si a≠0 et K si a=0.
une primitive de sin(cx+d) est -(1/c)cos(cx+d)+K si c≠0 et K si c=0.