Décomposition d'une fraction rationnelle en éléments simples
REPÈRES 2 Repères 1. Introduction............................................... 3 2. Préliminaires.............................................. 4 2.1 Opérations sur les polynômes.................................. 4 2.2 Opérations sur les matrices................................... 5 3. Application aux fractions rationnelles................................. 10 3.1 Principe.............................................. 10 3.2 Construction du système linéaire................................ 10 3.3 Un exemple de programme informatique............................ 12 4. Le programme informatique...................................... 14 4.1 Tableaux.............................................. 14 4.2 Structures possibles........................................ 14 4.3 Expression de la décomposition à l'aide de ces structures................... 15 La table des matières est détaillée à la n du document.
1. Introduction 3 Chapitre 1 Introduction Il existe une méthode systématique qui permet de décomposer une fraction rationelle en éléments simples : la première étape est d'écrire la forme a priori de la décomposition, puis, après mise sous même dénominateur, d'identier les coecients de la décomposition. Cette méthode revient à résoudre un système linéaire de n inconnues à n équations. Les n inconnues sont les n coecients de la décomposition de la fraction en éléments simples. Un théorème arme que cette décomposition existe et est unique ce qui nous assure que le système linéaire à résoudre admet nécessairement une solution unique. Les chapitres qui suivront ont pour de présenter un algorithme de décomposition des fractions rationnelles en éléments simples.
2. Préliminaires 4 Chapitre 2 Préliminaires 2.1 Opérations sur les polynômes La multiplication de polynômes sera la seule opération sur les polynômes utilisée par l'algorithme. Néanmoins, l'addition sera également présentée. Un polynôme P est déni par : D'après ces notations : { un degré dp un tableau de coecients {a 0,,a dp } P (x) = d P i=0 a i x i Par dénition, un polynôme est constant si et seulement si d P = 0, par convention, le polynôme nul aura pour degré 0. 2.1.1 L'addition On considère deux polynômes : P de degré d P et de coecients {a 0,,a dp } et Q de degré d Q et de coecients { b 0,,b dq }. Soit R = P + Q, on sait que d R max (d P,d Q ), et es coecients de R sont {c 0,,c dr }. La valeur précise de d R est donnée par : a i + b i si i min {d P,d Q } i {0,,d R }, c i = a i si i d P et i > d Q b i si i > d P et i d Q d R = { max {dp,d Q } si d P d Q inf {i i {0,,d R } et k > i, c k = 0} si d P d Q
2. Préliminaires 5 On prend cette précaution pour s'assurer que le coecient du terme de plus haut degré est non nul. Dans le programme, cette addition n'est pas utilisée. 2.1.2 La multiplication On considère deux polynômes P de degré d P coecients { } b 0,,b dq. et de coecients {a 0,,a dp } et Q de degré d Q et de P = Q = d P i=0 d Q i=0 a i x i b i x i Par conséquent, soit R le polynôme vériant R = P Q, de degré d R et de coecients {c 0,,c dr }, alors : { 0 si P = 0ouQ = 0 d R = d P + d Q sinon Dans le cas où P 0 et Q 0 : R = R = R = ( dp i=0 d R i=0 k+l=i k d R l d Q d R i=0 a i x i ) d Q i=0 a k b l x i min{i,d P } k=max{0,i d Q} b i x i a k b i k x i 2.2 Opérations sur les matrices L'algorithme fait intervenir deux opérations sur les matrices : la multiplication et l'inversion. Une matrice M est représentée de manière informatique par : 2.2.1 La multiplication un nombre de lignes L M un nombre de colonnes C M un tableau de coecients (a ij ) 1 i LM 1 j C M On considère deux matrices : M de coecients (a ij ) 1 i LM 1 j C M et N de coecients (b ij ) 1 i LN. 1 j C N
2. Préliminaires 6 On peut eectuer le produit K = MN si C M = L N : K = (c ij ) 1 i LM 1 j C N i {1,,L M }, j {1,,C N }, c ij = C M 2.2.2 Multiplication et opérations sur les lignes et colonnes k=0 a ik b kj Les multiplications entre matrices permettent à l'aide de matrices simples de traduire des opérations sur les lignes et les colonnes. Exemple : 1 0 0 0 1 5 2 0 1 L 2 L 3 }{{} matrice quelconque composée de 3 lignes = L 2 5L 3 L 3 + 2 Dans le cas général, multiplier à gauche par une matrice carrée M M n, M = (a ij ) 1 i n des opérations sur les lignes sur la matrice de droite : 1 j n revient à faire (a ij ) L 2. L n = n a 1j L j j=1 n a 2j L j j=1. n a nj L j j=1 De même, multiplier à droite par une matrice carrée M M n, opérations sur les colonnes sur la matrice de gauche : ( ( ) n C1 C 2... C n (aij ) = a i1 C i i=1 n a i2 C i... i=1 M = (a ij ) 1 i n 1 j n ) n a in C i i=1 revient à faire des Ces précisions sont importantes en terme de coût algorithime. En eet, pour eectuer le produit de matrices suivant : 1 0 0 0 1 5 2 0 1 L 2 L 3 }{{} matrice quelconque composée de 3 lignes Il est plus judicieux de faire des opérations sur les lignes plutôt que d'eectuer le produit matriciel complet. Le coût d'un produit matriciel est en O ( n 3) ceci signie que pour deux matrices carrées d'ordre n, le
2. Préliminaires 7 nombre d'opérations (au sens informatique) est un multiple constant (indépendant des matrices choisies) de n 3, ou 3 boucles imbriquées de n itérations. Or, eectuer les opérations suivantes sur les lignes : L 2 5L 3 L 3 + 2 est beaucoup moins coûteux. Dans ce cas, chaque ligne de la matrice résultat est une somme coecientée de deux autres lignes. Le coût de ce produit sera donc en O ( n 2). Ce sera justement le seul cas rencontré lors du pivot de Gauss. 2.2.3 Matrice de passage du pivot de Gauss Lors du calcul de l'inverse, il est nécessaire de calculer la matrice de passage qui permet de passer de la matrice initiale à la matrice triangulaire supérieure obtenue par pivot de Gauss. 1 0 0 2 1 0 } 3 5 {{ 1 } matrice de passage On peut écrire également : 1 0 0 2 1 0 3 5 1 L 2 L 3 1 0 0 0 1 0 0 0 1 }{{} matrice identité = L 2 2 = } L 3 3 5L 2 {{ } obtenue directement par pivot de Gauss L 2 L 3 = L 2 2 L 3 3 5L 2 = a 11 a 12 a 13 0 a 22 a 23 0 0 a 33 a 11 a 12 a 13 0 a 22 a 23 0 0 a 33 Si on note la matrice identité : 1 0 0 0 1 0 0 0 1 = I 1 I 2 I 3 On peut écrire le résultat précédent sous la forme : I 1 I 2 2I 1 I 3 3I 1 5I 2 L 2 L 3 = L 2 2 L 3 3 5L 2 = a 11 a 12 a 13 0 a 22 a 23 0 0 a 33 Le pivot de Gauss consiste à appliquer une série d'opérations sur les lignes à partir de la matrice initiale pour la rendre triangulaire supérieure. La matrice de passage s'obtient donc en eectuant exactement les mêmes opérations sur les lignes à partir de la matrice identité. 2.2.4 L'inversion L'inversion d'une matrice utilise le pivot de Gauss. Cette méthode permet de rendre les matrices triangulaires supérieures. C'est également cette méthode qui est utilisée pour calculer son déterminant. La méthode utilisée se décrit simplement, nous supposons que nous avons une matrice de la forme :
2. Préliminaires 8 L 2 L 3 L 4 L 5 = a 11 0 a 22 0 0 a 33 a 34 0 0 a 43 a 44 0 0 a 53 a 54 les * désignent un coecient quelconque) L'objectif est de rendre nul les coecients a 43 et a 53, pour ce faire, on eectue les opérations sur les lignes comme si on résolvait un système linéaire, ces opérations correspondent également à un produit de matrice : On suppose que a 33 0 : P 3 L 4 L 4 L 3 a 43 a 33 L 5 L 5 L 3 a 53 a 33 1 0 0 0 0 a 11 0 1 0 0 0 0 a 22 0 0 1 0 0 0 0 a 33 a 34 = 0 0 a 43 1 0 0 0 a 43 a 44 0 0 a 53 0 1 0 0 a 53 a 54 }{{}}{{} M 3 a 11 0 a 22 0 0 a 33 a 34 0 0 0 a 44 a 43 33 a 34 } 0 0 0 a 54 a 53 a 33 a 44 {{ } M 4 Dans le cas où a 33 = 0 et que a 43 0, on fait d'abord : L 3 L 4 puis on continue le pivot de Gauss : 1 0 0 0 0 1 0 0 0 0 a 11 0 1 0 0 0 0 1 0 0 0 0 a 22 0 0 1 0 0 0 0 1 1 0 0 0 0 a 34 = 0 0 a 43 1 0 0 0 0 1 0 0 0 a 43 a 44 0 0 a 53 0 1 0 0 0 0 1 0 0 a 53 a 54 }{{}}{{} P 3 M 3 a 11 0 a 22 0 0 a 43 a 43 + a 44 0 0 0 a 34 } 0 0 0 a 54 a 53 a 43 a 34 {{ } M 4 Dans le cas général, on suppose que M est une matrice carrée d'ordre n, on suppose que M 1 = M et la suite (P i ) est construite de telle sorte que : P i M i = M ( i+1 ) M i = (k,l) tel que i > k > l 1, a kl i = 0 a kl i 1 k,l n
2. Préliminaires 9 On obtient nalement que (P n P n 1... P 1 ) M = N avec N matrice triangulaire supérieure. Comme la matrice P n P n 1... P 1 est inversibles (c'est un produit de matrice inversibles), la matrice M est inversible si la matrice N l'est aussi et N est inversible si tous ses coecients sur la diagonale sont non nuls. En eet, on note N = ( b kl), N est triangulaire supérieure donc : 1 k,l n det N = n i=1 b ii = det (P n P n 1... P 1 ) det M }{{} =1 par construction = det M On suppose maintenant que la matrice M est inversible, tous les coecients diagonaux de N sont donc non nuls. Dans cette première phase, nous avons, dans l'ordre croissant des lignes, rempli la matrice M de 0 en dessous de sa diagonale, il est alors possible en appliquant le même pivot de Gauss mais cette fois dans l'ordre décroissant des lignes de remplir la matrice de 0 au-dessus de sa diagonale. Il existe donc une suite de matrice (Q i ) tel que (Q n Q n 1... Q 1 ) N = D n où D n est une matrice diagonale. De plus, on peut choisir les matrices Q i de telle sorte que D n = I n où I n est la matrice identité. Par exemple : 1 0 b 13 0 0 1 0 0 0 0 b 11 b 12 b 13 0 0 0 1 b 23 0 0 0 1 0 0 0 0 b 22 b 23 0 0 0 0 1 0 0 1 0 0 b 33 0 0 0 0 b 33 0 0 = 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 }{{}}{{} Q 3 N 3 b 11 b 12 0 0 0 0 b 22 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 } {{ } N 4 Donc : D'où : (Q n Q n 1... Q 1 ) (P n P n 1... P 1 ) M = I n M 1 = (Q n Q n 1... Q 1 ) (P n P n 1... P 1 )
3. Application aux fractions rationnelles 10 Chapitre 3 Application aux fractions rationnelles 3.1 Principe Trouver tous les coecients de la décomposition a priori d'une fonction rationnelle revient à résoudre un système linéaire. Soit P et Q deux polynômes à coecients réels, Q se décompose en : Q = α s (X a i ) d i i=1 t ( X 2 ) d + p i X + q i i i=1 La fraction P Q se décompose donc en : où E est la partie entière. P Q = E + s d i i=1 k=1 On met tout sous le même dénominateur : P = EQ α k i (X a i ) k + d t i βi kx + γk i (X 2 + p i X + q i ) k i=1 k=1 ( ) ( + α s (X + a j ) d ( j X 2 ) d di ) + p i X + q j i αi k (X a i) d i k i=1 j i j k=1 ( + α t (X + a j ) d j i=1 j j i ) ( ( X 2 ) d d + p i X + q j i i k=1 ( β k i X + γi k ) ( X 2 ) d + p i X + q i k i Il sut d'identier ces deux polynômes, ce qui revient à résoudre un système linéaire. Pour que l'algorithme marche, il faut néanmoins connaître la factorisation en éléments simples du dénominateur. ) 3.2 Construction du système linéaire L'illustration par un exemple permet de mieux comprendre l'algorithme qu'une description théorique utilisant une multitude d'indice.
3. Application aux fractions rationnelles 11 Nous allons donc décortiquer chaque étape de l'algorithme sur la fraction rationnelle : P Q = X 9 (X + 1) 3 (X 2 + X + 2) 2 (3.1) 3.2.1 Numérotation des coecients La partie entière est de degré 2 (=9-7). La forme a priori de la décomposition de la fraction rationnelle est : P Q = a 1 + a 2 X + a 3 X 2 + a 4 X + 1 + a 5 (X + 1) 2 + a 6 (X + 1) 3 + a 7 + a 8 X X 2 + X + 2 + a 9 + a 10 X (X 2 + X + 2) 2 La numérotation suit le sens croissant des puissances en commençant par la partie entière. 3.2.2 Construction du système linéaire En mettant tout sous le même dénominateur, on obtient : P = a 1 Q + a 2 XQ + a 3 X 2 Q + On construit la matrice suivante : a 4Q X + 1 + a 5Q (X + 1) 2 + a 6Q (X + 1) 3 + (a 7 + a 8 X) Q X 2 + X + 2 + (a 9 + a 10 X) Q (X 2 + X + 2) 2 a 1 Q a 2 XQ a 3 X 2 Q a 4 Q/ (X + 1) a 5 Q/ (X + 1) 2 = a 6 Q/ (X + 1) 3 a 7 Q/ ( X 2 + X + 2 ) a 8 XQ/ ( X 2 + X + 2 ) a 9 Q/ ( X 2 + X + 2 ) 2 a 10 XQ/ ( X 2 + X + 2 ) 2 X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 a 1 4 16 29 33 26 14 5 1 a 2 4 16 29 33 26 14 5 1 a 3 4 16 29 33 26 14 5 1 a 4 4 12 17 16 10 4 1 a 5 4 8 9 7 3 1 a 6 4 4 5 2 1 a 7 1 4 6 4 1 a 8 1 4 6 4 1 a 9 1 3 3 1 a 10 1 3 3 1 } {{ } =M (10 lignes et 10 colonnes) On peut écrire ce système sous la forme : (M T est la transposée de M)
3. Application aux fractions rationnelles 12 ( ) a1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 M Donc par identication des deux polynômes, on obtient : X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 = 0 0 0 0 0 0 0 0 0 1 T X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 }{{} =P numérateur de la fraction ( a1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 ) M = ( 0 0 0 0 0 0 0 0 0 1 ) D'où : M T ( a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 ) T = ( 0 0 0 0 0 0 0 0 0 1 ) T }{{} c'est le système linéaire cherché 3.2.3 Résolution D'après le système précédent, on déduit que : ( a1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 ) T = ( M T ) 1 ( 0 0 0 0 0 0 0 0 0 1 ) T La décomposition de la fraction rationnelle est donc : P Q = 11 5X + X2 6,6875 X + 1 + 2 (X + 1) 2 0,25 15 + 4,3125X 5,75 + 5,625X 3 (X + 1) X 2 + + X + 2 (X 2 + X + 2) 2 3.3 Un exemple de programme informatique La fraction ( 3.1) peut être décrite comme dans la gure 3.1, le résultat est imprimé dans la gure 3.2. Quelques diérences peuvent être observées entre la solution fournies par le programme et la véritable solution, ceci est dû aux approximations de calcul des ordinateurs qui code les nombres réels avec environ 15 chires de précision. Certains termes nuls peuvent alors être non nuls mais très petits par rapport aux autres coecients.
3. Application aux fractions rationnelles 13 numerateur degre 9 d0 0 d1 0 d2 0 d3 0 d4 0 d5 0 d6 0 d7 0 d8 0 d9 1...denominateur produit 2 denominateur puissance 3 denominateur degre 1 d0 1 d1 1 denominateur puissance 2 denominateur degre 2 d0 2 d1 1 d2 1 Fig. 3.1 Description d'une fraction rationnelle fraction a decomposer : numerateur : X 9 nombre de terme au denominateur : 2 terme 1 : (1 + X) 3 terme 2 : (2 + X + X 2) 2 decomposition en elements simples partie entiere : 11 5 X + 1 X 2 terme en (1 + X) : 6.6875 terme en (1 + X) 2 : 2 terme en (1 + X) 3 : 0.25 terme en (2 + X + X 2) : 15 4.3125 X terme en (2 + X + X 2) 2 : 5.75 + 5.625 X Fig. 3.2 Résultat de la décomposition
4. Le programme informatique 14 Chapitre 4 Le programme informatique 4.1 Tableaux Etant que les tableaux informatique de dimension n sont indicés de 0 à n 1 inclus, un polynôme devient : a [50] est un tableau appelé a à 50 éléments numérotés de 0 à 49 a[i] représente l'élément d'indice i un polynôme s'écrit P = n a [i] X i i=0 Et une matrice : a [40] [50] est un tableau appelé a de 40 lignes et 50 colonnes a[i][j] représente l'élément placé sur la ligne i et la colonne j le dernier élément est l'élément a [39] [49] une matrice s'écrit M = a [0] [0] a [0] [n 1].. a [m 1] [0] a [m 1] [n 1] = (a [i] [j]) 0 i m 1 0 j n 1 4.2 Structures possibles Deux types spéciaux peuvent être créés pour contenir matrices et polynômes. Structure d'une matrice : typedef struct { double *C ; int Ligne ; int Colonne ; } Matrice ;
4. Le programme informatique 15 Structure d'un polynôme : typedef struct { double *C ; int Degre ; } Polynome ; 4.3 Expression de la décomposition à l'aide de ces structures facteur 1 P Q = partie_entiere+ n=0 puissance[n] 1 k=0 partie_entiere.degre P Q = partie_entiere.c [i] X i + i=0 facteur 1 n=0 puissance[n] 1 k=0 resultat[n][k] (element[n]) k+1 resultat[n][k].degre i=0 ( element[n].degre i=0 resultat[n][k].c [i] X i element[n].c [i] X i ) k+1
Bibliographie Bibliographie 16
Table des gures 17 Table des gures 3.1 Description d'une fraction rationnelle.............................. 13 3.2 Résultat de la décomposition.................................. 13
Liste des tableaux Liste des tableaux 18
Table des matières 19 Table des matières 1. Introduction............................................... 3 2. Préliminaires.............................................. 4 2.1 Opérations sur les polynômes.................................. 4 2.1.1 L'addition......................................... 4 2.1.2 La multiplication..................................... 5 2.2 Opérations sur les matrices................................... 5 2.2.1 La multiplication..................................... 5 2.2.2 Multiplication et opérations sur les lignes et colonnes................. 6 2.2.3 Matrice de passage du pivot de Gauss......................... 7 2.2.4 L'inversion........................................ 7 3. Application aux fractions rationnelles................................. 10 3.1 Principe.............................................. 10 3.2 Construction du système linéaire................................ 10 3.2.1 Numérotation des coecients.............................. 11 3.2.2 Construction du système linéaire............................ 11 3.2.3 Résolution......................................... 12 3.3 Un exemple de programme informatique............................ 12 4. Le programme informatique...................................... 14 4.1 Tableaux.............................................. 14 4.2 Structures possibles........................................ 14 4.3 Expression de la décomposition à l'aide de ces structures................... 15
Index A addition....................................... 4 C coût d'un algorithme.......................... 6 D décomposition................................10 S système linéaire......................... 3, 8, 10 T tableaux..................................... 14 théorème...................................... 3 triangulaire................................... 7 E exemple...................................... 10 expression....................................15 F fraction rationnelle........................... 10 G Gauss......................................... 7 I identité....................................... 7 inversion...................................... 7 M matrice....................................... 5 matrice de passage............................ 7 matrice identité............................... 7 matrice triangulaire........................... 7 multiplication...............................5, 6 N numérotation................................ 11 O opérations sur les lignes et les colonnes........ 6 P pivot de Gauss................................ 7 polynôme..................................... 4 R résolution.................................... 12 20