228
ÉCOLE D’INGÉNIEURS DE FRIBOURG SECTION DE MÉCANIQUE COURS D’INFORMATIQUE : PREMIÈRE ET SECONDE ANNÉES MATHÉMATIQUES NUMÉRIQUES ALGORITHMIQUE SECONDE ÉDITION 1991-1992 G. Nicolet, EIF Fribourg

TABLE DES MATIRES - raymondnicolet.ch Num 1992.pdf · 3.2 Calcul d'un polynôme par le schéma de Horner 57 . 3.2.1 Évaluation d'un polynôme par la méthode de Homer 57

Embed Size (px)

Citation preview

ÉCOLE D’INGÉNIEURS DE FRIBOURG SECTION DE MÉCANIQUE

COURS D’INFORMATIQUE : PREMIÈRE ET SECONDE ANNÉES

MATHÉMATIQUES NUMÉRIQUES

ALGORITHMIQUE

SECONDE ÉDITION 1991-1992

G. Nicolet, EIF Fribourg

TABLE DES MATIÈRES

MATHÉMATIQUES NUMÉRIQUES

ALGORITHMIQUE Page Table des matières 3 Introduction 11 Chapitre 1 GÉNÉRALITÉS SUR LES MÉTHODES NUMÉRIQUES 13 1.1 Introduction au calcul numérique 13 1.1.1 Particularités du calcul numérique 13 1.1.1.1 Arranger les opérations 13 1.1.1.2 Manipulation sur les nombres 14 1.1.1.3 Calcul répétitif d'une table 14 1.1.2 Création d'un algorithme 15 1.1.2.1 Calcul d'une factorielle 15 1.2 Syntaxe du pseudo-code 16 1.2.1 Constantes et variables 16 1.2.1.1 Constantes numériques 16 1.2.1.2 Variables simples 17 1.2.1.3 Variables de tableau 17 1.2.2 Opérateurs 17 1.2.2.1 Opérateurs arithmétiques 17 1.2.2.2 Opérateurs de relation 17 1.2.2.3 Opérateurs logiques 17 1.2.3 Instructions 18 1.2.3.1 Affectation 18 1.2.3.2 Entrée de données 18 1.2.3.3 Sortie de données 18 1.2.3.4 Saut inconditionnel 18 1.2.3.5 Éxécution conditionnelle 18 1.2.3.6 Répétition avec compteur 19 1.2.3.7 Répétition avec contrôle en fin de boucle 19 1.2.3.8 Répétition avec contrôle en début de boucle 19 1.2.4 Fonctions 19 1.2.4.1 Fonctions mathématiques 20 1.2.4.2 Fonctions trigonométriques 20 1.3 Erreurs dans les opérations 20 1.3.1 Représentation des nombres 20 1.3.1.1 Représentation des nombres entiers 20 1.3.1.2 Représentation générale des nombres réels 21 1.3.1.3 Représentation interne des nombres réels 21 1.3.2 Erreurs dans le opérations arithmétiques 22 1.3.2.1 Choix de la représentation des nombres 22 1.3.2.2 Addition de deux termes de même exposant 22 1.3.2.3 Addition de deux termes avec des exposants différents 23 1.3.2.4 Soustraction de deux nombres réels 23 1.3.2.5 Associativité et distributivité 24 1.3.3 Classification des erreurs 25 1.3.3.1 Erreurs de description du modèle mathématique 25 1.3.3.2 Erreurs de méthode 25 1.3.3.3 Erreurs de calcul 26 1.3.4 Erreurs vraies et relatives 26 1.3.4.1 Définition des erreurs vraies 26 1.3.4.2 Définition des erreurs relatives 26 1.3.5 Erreurs dans les opérations arithmétiques 27 1.3.5.1 Erreurs en addition 27 1.3.5.2 Erreurs en soustraction 27

3

1.3.5.3 Erreurs en multiplication et en division 28 1.3.5.4 Nombre de chiffres significatifs sûrs 28 1.4 Méthodes générales en calcul numérique 29 1.4.1 Énoncé du problème 29 1.4.1.1 Grandeurs d'entrée 29 1.4.1.2 Questions à se poser 29 1.4.1.3 Sortie des résultats 30 1.4.2 Solution du problème 30 1.4.2.1 Modules 30 1.4.2.2 Actions 31 1.4.2.3 Représentation du déroulement du logiciel 31 1.4.2.4 Entrée des données 33 1.4.2.5 Qualités de la solution 34 1.5 Exercices sur le chapitre 1 35 Chapitre 2 SOLUTION DES ÉQUATIONS NON LINÉAIRES 37 2.1 Équation à une inconnue 37 2.1.1 Généralités sur les méthodes itératives 37 2.1.1.1 Représentation de la fonction : y=f(x) 38 2.1.1.2 Représentation de deux fonctions partielles 38 2.1.1.3 Valeur initiale approximative du zéro 39 2.1.2 Méthode de la bipartition 39 2.1.3 Méthode de la sécante 41 2.1.4 Méthode de Newton-Raphson 42 2.1.5 Méthode de Newton-Raphson sans dérivée analytique 44 2.1.6 Méthode itérative générale 45 2.1.7 Convergences des méthodes 47 2.2 Système d'équations à plusieurs inconnues 48 2.2.1 Introduction 49 2.2.2 Système de deux équations non linéaires 49 2.2.2.1 Principe de la méthode de résolution 49 2.2.2.2 Méthode de résolution 50 2.2.2.3 Exemple numérique 51 2.2.3 Exercices sur les équations transcendantes 53 Chapitre 3 POLYNÔMES ALGÉBRIQUES ET ZÉROS 55 3.1 Principales propriétés des polynômes 55 3.1.1 Division de deux polynômes algébriques 55 3.1.2 Nombre de zéros d'un polynôme algébrique 55 3.1.3 Relation de Vieta 56 3.1.4 Limite des modules des zéros 56 3.1.5 Propriétés des zéros complexes 56 3.1.6 Plus grand commun diviseur de deux polynômes 57 3.2 Calcul d'un polynôme par le schéma de Horner 57 3.2.1 Évaluation d'un polynôme par la méthode de Homer 57 3.2.2 Reste de la division d'un polynôme par (x-u) 58 3.2.3 Dérivée première d'un polynôme algébrique 58 3.2.4 Schéma complet de Horner 59 3.3 Zéros des polynômes algébriques 60 3.3.1 Zéros du trinôme du second degré 60 3.3.2 Méthode itérative pour les zéros réels 60 3.3.2.1 Exposé de la méthode 60 3.3.2.2 Exemple de calcul des zéros d'un polynôme 61 3.3.2.3 Algorithme de la solution itérative 62 3.3.3 Équation du troisième degré 63 3.3.3.1 Mise en équation 63 3.3.3.2 Solution de Cardan 64 3.3.3.3 Recherche du premier zéro réel 64 3.3.3.4 Recherche des autres zéros 65 3.3.3.5 Algorithme de la solution de l'équation du 3ième degré 65 3.3.4 Équation du quatrième degré 66 3.3.5 Méthode de Bairstow 67

4

3.3.5.1 Principe de la méthode de Bairstow 67 3.3.5.2 Coefficient et constante du binôme R1(x) 68 3.3.5.3 Matrice des dérivées partielles 68 3.3.5.4 Algorithme de la solution selon Bairstow 70 3.3.5.5 Exemple de détermination des zéros 71 3.4 Exercices sur les polynômes et les zéros 73 Chapitre 4 SOLUTION DES SYSTÈMES D'ÉQUATIONS LINÉAIRES 75 4.1 Notions de calcul matriciel 75 4.1.1 Vecteurs 75 4.1.1.1 Somme de deux vecteurs 75 4.1.1.2 Produit d'un vecteur par un scalaire 76 4.1.1.3 Produit scalaire de deux vecteurs 76 4.1.2 Matrices quelconques 76 4.1.2.1 Égalité de deux matrices 76 4.1.2.2 Somme ou différence de deux matrices 77 4.1.2.3 Produit d'une matrice par un scalaire 77 4.1.2.4 Produit de deux matrices 77 4.1.2.5 Transposée d'une matrice 79 4.1.3 Matrices carrées 80 4.1.3.1 Matrice diagonale 80 41.3.2 Matrice unité 81 4.1.3.3 Matrice scalaire 81 4.1.3.4 Matrices triangulaires 81 4.1.3.5 Matrice inverse 82 4.1.4 Partition de matrices 82 4.1.5 Matrice orthogonale 82 4.1.6 Déterminant 83 4.1.6.1 Mineur et cofacteur 83 4.1.6.2 Calcul du déterminant 84 4.1.6.3 Propriétés du déterminant 84 4.2 Solution par élimination 85 4.2.1 Écriture matricielle du système linéaire 85 4.2.1.1 Écriture algébrique du système d'équations linéaires 85 4.2.1.2 Écriture matricielle du système d'équations linéaires 85 4.2.1.3 Solution du système d'équations linéaires 86 4.2.2 Systèmes simples d'équations linéaires 86 4.2.2.1 Système à matrice triangulais inférieure 86 4.2.2.2 Système à matrice triangulaire supérieure 88 4.2.3 Système à matrice tridiagonale 89 4.2.3.1 Configuration du système d'équations linéaires 89 4.2.3.2 Solution du système à matrice tridiagonale 90 4.2.3.3 Algorithme de la solution 91 4.3.2.4 Exemple d'utilisation de la solution 92 4.2.4 Solution par la méthode de Gauss 93 4.2.4.1 Principe de la méthode d'élimination 93 4.2.4.2 Recherche des inconnues 94 4.2.4.3 Choix du pivot 94 4.2.3.4 Algorithme de Gauss avec permutation des lignes 95 4.2.4.5 Amélioration de la précision 96 4.2.4.6 Exemple numérique 96 4.2.4.7 Méthode de Gauss-Jordan 97 4.2.5 Méthode itérative de Gauss-Seidel 99 4.2.5.1 Principe des méthodes itératives 100 4.2.5.2 Méthode particulière de Gauss-Seidel 100 4.2.5.3 Recherche de la nouvelle valeur des inconnues 100 4.2.5.4 Algorithme de la méthode de Gauss-Seidel 101 4.2.5.5 Convergence de la méthode 102 4.2.6 Méthode de Crout 102 4.2.6.1 Factorisation de la matrice [A] 102 4.2.6.2 Recherche des éléments des matrices [L] et [R] 103 4.2.6.3 Algorithme de la méthode de Crout 104 4.3 Solution par inversion et opérations d'échange 105 4.3.1 Inversion de la matrice 105

5

4.3.1.1 Recherche des coefficients de la matrice [A]-1 par colonne 105 4.3.1.2 Principe de la méthode d'inversion 106 4.3.3 Opérations d'échange 106 4.3.3.1 Principe de l'opération d'échange 107 4.3.3.2 Règles pour l'opération d'échange 107 4.3.3.3 Exemple numérique simple 108 4.3.4 Inversion d'une matrice carrée 108 4.3.4.1 Exemple numérique manuel et simple 108 4.3.4.2 Algorithme de la méthode par opérations d'échange 109 4.3.4.3 Exemple numérique d'inversion d'une matrice 111 4.3.5 Solution selon Stiefel 112 4.3.5.1 Écriture du système linéaire 112 4.3.5.2 Règles d'échange 112 4.3.5.3 Exemple commenté 112 4.3.5.4 Algorithme de la méthode de Stiefel 113 4.3.6 Système d'équations linéaires homogènes 114 4.3.6.1 Solution d'un système linéaire par la méthode de Cramer 115 4.3.6.2 Propriétés de la matrice des coefficients 115 4.3.6.3 Exemple numérique 116 4.4 Exercices sur les systèmes linéaires 117 Chapitre 5 VALEURS PROPRES D'UNE MATRICE 5.1 Compléments de calcul vectoriel 119 5.1.1 Norme d'un vecteur et d'une matrice 119 5.1.1.1 Norme d'un vecteur 119 5.1.1.2 Norme d'une matrice 119 5.1.2 Valeurs propres d'une matrice 120 5.1.2.1 Polynôme caractéristique 120 5.1.2.2 Valeurs propres 121 5.1.2.3 Vecteurs propres 121 5.1.3 Compléments 121 5.1.3.2 Puissance d'une matrice 121 5.1.3.2 Réduction à une matrice diagonale 122 5.1.3.3 Cas des matrices orthogonales 122 5.2 Polynôme caractéristique 122 5.2.1 Méthode de Leverrier 122 5.2.1.1 Puissances de la matrice [A] et sommes 123 5.2.1.2 Coefficients du polynôme caractéristique 123 5.2.1.3 Algorithme de la méthode de Leverrier 124 5.2.1.4 Exemple numérique simple 125 5.2.2 Méthode de Krylov 126 5.2.2.1 Principe de la méthode de Krylov 126 5.2.2.2 Colonnes de la matrice [Y] 127 5.2.2.3 Algorithme de la méthode de Krylov 127 5.2.2.4 Exemple numérique 128 5.3 Calcul par des méthodes itératives 129 5.3.1 Méthode de von Mises 129 5.3.1.1 Principe de la méthode 129 5.3.1.2 Méthode pratique 130 5.3.1.3 Algorithme de la méthode de von Mises 130 5.3.1.4 Exemple 131 5.3.2 Méthode de Jacobi 132 5.3.2.1 Principe de la méthode de Jacobi 132 5.3.2.2 Matrice orthogonale de Jacobi 132 5.3.2.3 Élimination de l'élément maximal 133 5.3.2.4 Calcul pratique de l'angle phi 133 5.3.2.5 Convergence de la méthode de Jacobi 133 5.3.2.6 Algorithme de la méthode de Jacobi 134 5.3.2.7 Exemple d'utilisation de la méthode de Jacobi 135 5.3.2.8 Principe de la méthode de Householder 138 5.4 Exercices sur les valeurs et vecteurs propres 139

6

Chapitre 6 INTERPOLATION 6.1 Interpolation polynomiale 141 6.1.1 Introduction 141 6.1.1.1 Généralités 141 6.1.1.2 Matrice de Vandermonde 141 6.1.2 Tableau des différences 142 6.1.2.1 Différence première 142 6.1.2.2 Exemple de calcul d'un tableau des différences 143 6.1.3 Formule d'interpolation de Lagrange 144 6.1.3.1 Interpolation linéaire 144 6.1.3.2 Formule d'interpolation de Lagrange 144 6.1.3.3 Algorithme de la formule de Lagrange 145 6.1.3.4 Exemple d'utilisation de l'interpolation de Lagrange 146 6.1.4 Interpolation par les formules de Newton 146 6.1.4.1 Différences divisées 146 6.1.4.2 Formule générale d'interpolation de Newton 147 6.1.4.3 Algorithme de la formule de Newton pour un pas variable 149 6.1.4.4 Formule en sens direct pour un pas constant 149 6.1.4.5 Algorithme de la méthode de Newton en sens direct 150 6.1.4.6 Formule en sens inverse pour un pas constant 151 6.1.4.7 Algorithme de la méthode de Newton en sens inverse 152 6.1.4.8 Remarques sur l’interpolation polynomiale 153 6.2 Fonctions spline cubique 153 6.2.1 Caractéristiques générales des fonctions spline 154 6.2.1.1 Propiétés des fonctions spline cubique 154 6.2.1.2 Avantages des fonctions spline 154 6.2.2 Fonctions définies par les dérivées premières 155 6.2.2.1 Conditions imposées par les dérivées premières 155 6.2.2.2 Expression générale des continuités aux points connus 155 6.2.2.3 Valeurs des dérivées secondes 156 6.2.2.4 Algorithmique de la méthode des dérivées premières 157 6.2.3 Fonctions définies par les dérivées secondes 158 6.2.3.1 Conditions imposées par les dérivées secondes 158 6.2.3.2 Expression générale des continuités aux points connus 158 6.2.3.4 Algorithmique de la méthode des dérivées secondes 159 6.2.3.5 Exemple d'utilisation de fonctions spline cubique 160 6.2.4 Fonctions spline cubique pour fonctions périodiques 161 6.2.4.1 Fonctions spline d'une fonction périodique 161 6.2.4.2 Matrice des coefficients et vecteur des constantes 162 6.2.4.3 Algorithme de la méthode pour une fonction périodique 162 6.2.5 Fonctions spline cubique pour courbe fermée 163 6.2.5.1 Conditions particulières 164 6.2.5.2 Valeur du paramètre et fonctions spline cubique 164 6.2.5.3 Composants de l'algorithme pour courbe fermée 164 6.3 Interpolation par polynômes trigonométriques 165 6.3.1 Introduction aux séries de Fourier 165 6.3.1.1 Décomposition en fonctions trigonométriques 166 6.3.1.2 Nombre de fonctions trigonométriques 166 6.3.2 Séries de Fourier pour fonctions discrètes 167 6.3.2.1 Solution de la recherche des séries de Fourier 167 6.3.2.2 Algorithme de la solution discrète 167 6.3.2.3 Méthode rapide pour fonction discrète 168 6.3.2.4 Algorithme de la solution rapide pour fonction discrète 169 6.3.2.5 Exemple d'utilisation de la solution rapide 170 6.3.3 Séries de Fourier pour fonctions analytiques 171 6.3.3.1 Principe de la méthode pour fonctions analytiques 171 6.3.3.2 Principe de l'algorithme pour les fonctions analytiques 172 6.4 Exercices sur l'interpolation 175

7

Chapitre 7 DÉRIVÉES ET INTÉGRALES NUMÉRIQUES 7.1 Calcul des dérivées d'une fonction analytique 177 7.1.1 Expressions élémentaires des dérivées d'une fonction 178 7.1.1.1 Expression élémentaire de la dérivée première 178 7.1.1.2 Expression élémentaire de la dérivée seconde 179 7.1.1.3 Expression élémentaire de la dérivée troisième 179 7.1.1.4 Exemple d'utilisation de la méthode élémentaire 180 7.1.2 Dérivées d'une fonction à partir de la formule de Newton 180 7.1.2.1 Expressions générales des dérivées approchées 180 7.1.2.2 Expressions particulières des dérivées premières 181 7.1.2.3 Exemple de calcul des dérivées premières 182 7.1.3 Méthodes de calcul des dérivées d'une fonction analytique 183 7.1.3.1 Principe du calcul de la dérivée en un point 183 7.1.3.2 Formules générales de calcul des dérivées en un point 183 7.1.3.3 Algorithme du calcul des dérivées en un point 184 71.3.4 Considérations sur le choix du pas de calcul 185 7.2 Calcul des dérivées d'une fonction discrète 185 7.2.1 Dérivées d'une fonction discrète à pas constant 185 7.2.1.1 Dérivées premières aux points de définition 185 7.2.1.2 Dérivées premières aux points intermédiaires 186 7.2.2 Dérivées d'une fonction discrète à pas quelconque 186 7.3 Calcul numérique des intégrales 187 7.3.1 Intégration par la méthode des trapèzes 188 7.3.1.1 Intégration entre deux points de définition 188 7.3.1.2 Intégration entre n+1 points de définition équidistants 188 7.3.1.3 Intégration entre n+1 points de définition quelconques 189 7.3.1.4 Exemple d’intégration entre n+1 points 189 7.3.2 Intégration par les formules de Newton-Cotes 189 7.3.2.1 Formules du premier degré 189 7.3.2.2 Formules du second degré 190 7.3.2.3 Formules du troisième degré 191 7.3.2.4 Coefficients des formules de Newton-Cotes 191 7.3.3 Calcul numérique d'une intégrale à pas constant 192 7.3.3.1 Méthode des trapèzes améliorée 192 7.3.3.2 Méthode de Simpson améliorée 193 7.3.3.3 Méthodes complémentaires 194 7.3.3.4 Fonction tendant vers l’infini à l’une de ses bornes 194 7.3.4 Intégration numérique à pas quelconque 195 7.3.4.1 Méthode de Simpson pour un pas variable 195 7.3.4.2 Méthode de Simpson avec fonctions spline cubique 195 7.3.3.3 Algorithme de la méthode avec spline cubique 196 7.3.4.4 Exemple d'application de l'algorithme 196 7.3.5 Méthode de Romberg 197 7.3.5.1 Construction de la première colonne du tableau 197 7.3.5.2 Construction des autres éléments du tableau 198 7.3.5.3 Algorithme de la méthode de Romberg 199 7.4 Exercices sur les dérivées et intégrales 201 Chapitre 8 ÉQUATIONS DIFFÉRENTIELLES ORDINAIRES 8.1 Équations différentielles du premier ordre : Méthodes à pas séparés 203 8.1.1 Solutions élémentaires 204 8.1.1.1 Problème de Cauchy 204 8.1.1.2 Méthode d'Euler 205 8.1.1.3 Méthode de Heun 206 8.1.1.4 Méthode d'Euler modifiée 207 8.1.1.5 Exemple numérique simple 208 8.1.1.6 Méthode de Heun itérative 208 8.1.2 Méthode d'Euler-Romberg 210 8.1.2.1 Principe de la méthode d'Euler-Romberg 210 8.1.2.2 Algorithme de la méthode d'Euler-Romberg 211 8.1.3 Méthodes du quatrième ordre 212 8.1.3.1 Propriétés des méthodes à pas séparés 212

8

8.1.3.2 Méthodes de Runge - Kutta 213 8.1.3.3 Algorithme des méthodes de Runge - Kutta 214 8.1.3.4 Application de l'algorithme des méthodes de Runge - Kutta 215 8.1.3.5 Méthode de Gill 215 8.1.3.6 Choix du pas d'intégration 216 8.2 Équations différentielles du premier ordre : Méthodes à pas liés 217 8.2.1 Méthodes à pas liés explicites 217 8.2.1.1 Considérations générales 217 8.2.1.2 Recherche générale des schémas d'approximation 218 8.2.1.3 Méthodes d'Adams-Moulton 218 8.2.1.4 Méthodes de Milne 219 8.2.2 Méthodes à pas liés implicites 220 8.3 Systèmes d'équations différentielles du premier ordre 221 8.3.1 Principe de la solution 221 8.3.2 Système de deux équations différentielles 221 8.4 Équations différentielles d'ordre supérieur 223 8.4.1 Méthode générale 223 8.4.2 Équation différenctielle de second ordre 224 8.5 Exercices : Équations différentielles 225 BIBLIOGRAPHIE 227

9

10

INTRODUCTION

Le 4 octobre 1972, les enseignants de l‘Ecole d’Ingénieurs de Fribourg étaient invités à participer à une première leçon d’introduction aux mathématiques numériques ou mathématiques appliquées. Ils firent connaissance avec les organigrammes, le schéma de Horner, les opérations répétitives et itératives et finalement une introduction à la simulation de systèmes analogiques. La semaine suivante fut consacrée à l’algèbre linéaire, en particulier aux opérations d’échange, à la solution des systèmes linéaires et à l’inversion de matrices. Le cours continua ainsi de semaine en semaine. Chaque par-ticipant eut alors l’occasion de développer quelques points particuliers dans le domaine des mathématiques numériques.

Le développement de la micro-informatique depuis lors met aujourd’hui à disposition des utilisateurs des moyens puissants de calcul. Bien qu’il existe actuellement une série de logiciels spécialisés dans le calcul numérique, comme par exemple Mathematica pour n’en cité qu’un, il arrive assez souvent que l’ingénieur se trouve devant un problème nécessitant l’emploi des mathématiques numériques. Il devient ainsi possible de traiter des problèmes considérés, il y a peu de temps encore, comme impossibles à résoudre. Le cours comprend un choix limité de sujets. Primitivement, il accompagnait le cours d’informatique traitant d’un ou de deux langages de programmation : Pascal et Fortran. A cette époque, la programmation sur PC utilisait le système d’exploitation DOS pour les divers lan-gages. Il était très facile de créer rapidement un programme exécutable, par exemple d’une dizaine de lignes, en particulier au moyen de Turbo Pascal de Borland International.

Le sujet est très intéressant, mais nécessite un haut niveau en mathématiques. Ce cours donne une série d’algorithmes permettant de trouver la solution de nombreux problèmes pratiques. Mal-heureusement, il laisse souvent de côté l’aspect purement mathématique, en particulier l’étude dé-taillée et justifiée de la convergence des méthodes.

Ce cours de mathématique et algorithmique comprend principalement les points suivants:

Chapitre 1 : Introduction aux mathématiques numériques, à la représentation des nombres, aux méthodes de travail.

Chapitre 2 : Solution des équations non linéaires par diverses méthodes itératives, en particulier la méthode de Newton-Raphson.

Chapitre 3 : Calcul des polynômes algébriques : recherche de la valeur du polynôme, de ses dérivées et des zéros de l’équation polynomiale.

Chapitre 4 : Solution des systèmes d’équations linéaires : méthodes de Gauss, de Crout, de Gauss-Jordan, de Gauss-Seidel, de Stiefel.

Chapitre 5 : Valeurs propres d’une matrice carrée par les méthodes de Leverrier, de Krylov, de Jacobi, de von Mises.

Chapitre 6 : Interpolation numérique par les méthodes de Lagrange, d’Aitken, les diverses formules de Newton, fonctions spline cubique, décomposition en fonctions trigonométriques.

Chapitre 7 : Dérivées et intégrales numériques à partir de la méthode de Newton, de Newton-Cotes, de Romberg.

Chapitre 8 : Solution numérique des équations différentielles ordinaires : méthodes du premier ordre à pas séparés et à pas liés, équations différentielles d’ordre supérieur.

Que serait un cours sans la possibilité de tester les 48 algorithmes proposés ? Une collection de plusieurs logiciels permet d’essayer ces méthodes de calcul. Tous les logiciels sont implémentés sous WINDOWS le plus simplement possible. Chaque logiciel comprend deux fichiers : un fichier exécutable et un fichier d’aide. Le cours est complété par un descriptif et un mode d’emploi de ces programmes. Tous les logiciels sont écrits en Turbo Pascal et Pascal Delphi pour WINDOWS. Le test détaillé de tous les logiciels n’a pas été effectué. Il est possible d’obtenir des comportements peu recherchés à partir de valeurs particulières.

11

12

CHAPITRE 1

GÉNÉRALITÉS SUR LES MÉTHODES NUMÉRIQUES

Le but de ce cours sur les mathématiques numériques est d’étudier et d’appliquer les diverses

méthodes de calcul permettant d’employer d’une manière optimale les diverses machines à calculer manuelles, comme les calculettes de poche, ou programmables, les micro-ordinateurs personnels et pourquoi pas les ordinateurs professionnels. Dans un environnement évolué, l’utilisateur a très sou-vent des auxiliaires à disposition comme une bibliothèque de programmes ou de sous-programmes ou même un logiciel spécifique pour résoudre certaines tâches mathématiques. Il doit être capable de choisir, parmi les composants de cette collection, les outils les plus appropriés et d’en saisir leur fondement.

1.1 INTRODUCTION AU CALCUL NUMÉRIQUE

1.1.1 PARTICULARITÉS DU CALCUL NUMÉRIQUE

Les propriétés spécifiques des calculateurs numériques sont énumérées ci-après: 1. Les calculateurs numériques effectuent seulement les opérations arithmétiques fondamentales,

contrairement à ce que laisse à penser les diverses touches des calculettes addition + sous-traction -, multiplication * et division De plus, ils sont capables d’effectuer des comparaisons logi-ques entre des valeurs numériques ou alphanumériques.

2. Ces calculateurs peuvent répéter un très grand nombre de fois une suite d’opérations à cadence très élevée en fournissant toujours le même résultat.

3. Les opérations fondamentales sont effectuées en des intervalles de temps très courts, tandis que le calcul de fonctions, comme les fonctions trigonométriques, nécessitent un plus grand nombre d’opérations fondamentales. Ces calculateurs ne sont pas équipés de tables de fonctions ou de tables numériques comme celles qui sont employées dans les calculs manuels.

4 Ces calculateurs peuvent représenter les valeurs numériques seulement avec un certain nombre de chiffres significatifs, nombre qui dépend de la représentation interne de l’ordinateur, et dans des limites bornées pour les valeurs positives et négatives.

Ces caractéristiques imposent à l’utilisateur une révision de ses connaissances sur les nombres et leur représentation. La représentation des nombres réels fait l’objet d’une normalisation appliquée de plus en plus par les fabricants de matériel informatique ou les fournisseurs de logiciel. Voyons maintenant quelques exemples classiques d’opérations effectuées sur les ordinateurs. 1.1.1.1 ARRANGER LES OPÉRATIONS

Choisissons un premier exemple montrant la différence entre un calcul manuel ordinaire et un calcul par ordinateur. Pour adapter la méthode de calcul aux caractéristiques fondamentales des or-dinateurs, il est habituellement nécessaire de modifier la suite des opérations afin d’utiliser au mieux les propriétés numériques citées précédemment.

Soit à évaluer la valeur numérique d’un polynôme algébrique pour une variable indépendante x donnée. Le polynôme algébrique s’écrit sous la forme générale :

P nn

nn( ) ... .x a x a x a x a x a x an

n= ⋅ + ⋅ + ⋅ + ⋅ + ⋅ +−−

−−

11

22

22

11

0

La méthode manuelle consiste à stocker la valeur de la variable x dans une mémoire de la cal-culette, à relever le premier coefficient, ici an , à multiplier cette grandeur par la valeur stockée en mé-moire élevée à la puissance n , à sommer ce résultat dans une autre mémoire et à répéter cette opération pour tous les coefficients de an-1 à a0 et finalement à retrouver la somme dans la mémoire de la calculette et de l’afficher. Cette façon de procéder n’est pas très efficace en calcul numérique sur

13

1. Généralités sur les méthodes numériques

ordinateur bien que la méthode soit répétitive. Elle impose le calcul de la variable indépendante x à plusieurs puissances entières, calcul effectué éventuellement par l’intermédiaire des fonctions loga-rithmique et exponentielle ou par des produits successifs. La méthode développée par Horner, proposée déjà au siècle passé, est mieux adaptée au calcul numérique. L’évaluation du polynôme algébrique peut aussi s’écrire sous la forme:

P n n n( ) ((...(( ) ) ... ) .x a x a x a x a a x an= ⋅ + ⋅ + ⋅ + + ⋅ +− − −1 2 3 1 0

Les opérations proposées ici sont toujours de même nature : lecture du coefficient, multiplication par la valeur de la variable indépendante x et adjonction du coefficient suivant, multiplication de cette somme par la variable x et adjonction du coefficient suivant, etc. .., jusqu’à ce que le dernier terme, soit la constante a0, ait été introduite dans cette suite répétitive. Cette méthode ne fait appel qu’à la multiplication et à l’addition.

L’évaluation d’un polynôme par la méthode de Horner sera traitée en détail dans le chapitre 3. La description des opérations à effectuer pour évaluer une certaine expression ou pour effectuer une suite de manipulations sur des nombres ou sur des chaînes de caractères porte le nom d’

a I g o r i t h me . L’algorithme est la “recette” utilisée dans la méthode numérique. 1.1.1.2 MANIPULATION SUR LES NOMBRES

Prenons un second exemple de calcul numérique connu : soit à trouver tous les nombres pre-miers dans l’ensemble des nombres entiers compris entre 1 et 5000. La méthode manuelle et usuelle consiste à écrire sur une feuille de papier la suite des nombres de 1 à 5000 et à biffer tous les mul-tiples en partant de l’entier 2 si possible sans se tromper: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 . . . etc jusqu’à 5000. Les nombres premiers sont les nombres non biffés de cette suite. Ce travail est très long et fasti-dieux, donc difficile à maîtriser. Un calculateur numérique permet d’effectuer cette même opération, sous une forme légèrement différente, par exemple en mettant à zéro tous les multiples des nombres premiers trouvés à la suite de 2, sans rechigner et sans faute, tandis que le calcul manuel est long, demande beaucoup de concentration, et il est surtout très peu passionnant ! 1.1.1.3 CALCUL RÉPÉTITIF DANS UNE TABLE Le troisième exemple montre le calcul d’une table d’une fonction exponentielle sans évaluation de cette fonction à chaque ligne de la table. Choisissons dans ce but un exemple évident et soit à calcu-ler la fonction:

f e( ) exp( ) .x A A k tk t= ⋅ = ⋅ − ⋅− ⋅

pour: t = 0, 1 , 2, 3, . . . , n-1, n; avec : A et k des valeurs numériques connues.

La fonction exponentielle est désignée ici par le nom symbolique exp( . . . ). Pour effectuer ce calcul, la fonction exponentielle est évaluée de la manière suivante. L’exponentielle est calculée une seule fois pour la valeur de la constante k à t = 1 changée de signe, le nom symbolique du résultat étant expmoinsk. L’exponentielle de zéro est égale à un. Ces deux premières opérations peuvent s’écrire comme suit:

1.0 expmoinsk = exp(-k . 1), 1.1 f(x=0) = y(0) = A.exp(0) = A.

Les valeurs suivantes se trouvent par :

2.0 seconde valeur: y(1) = A . exp(-k f e( ) exp( ) .x A A k tk t= ⋅ = ⋅ − ⋅− ⋅ 1) = y(0) . expmoinsk, 3.0 troisième valeur: y(2) = y(1) . expmoinsk,

14

1. Généralités sur les méthodes numériques

n.0 n-iême valeur: y(n) = y(n-1) . expmoinsk.

La mise en évidence des opérations à prévoir dans ce cas particulier montre que toutes les lignes, à part les deux premières, se trouvent en multipliant la valeur précédente par expmoinsk. Le calcul de la fonction nécessite un seul appel à la fonction exponentielle, d’où un gain de temps de calcul et une réduction des coûts. 1.1.2 CRÉATION D’UN ALGORITHME 1.1.2.1 CALCUL D’UNE FACTORIELLE Soit à calculer la valeur d’une factorielle n. Rappelons que la factorielle de n se trouve par multipli-cation successive d’entiers de 1 à n :

n! = 1 . 2 . 3 . 4 . 5 . . . . . n-2 . n-1 . n.

Exemple : 6! 1 2 3 4 5 6 720= ⋅ ⋅ ⋅ ⋅ ⋅ = .

L’expression mathématique que nous venons décrire peut s’exprimer par les règles suivantes lors du calcul informatisé :

1. Lire la valeur de n. 2. Initialiser le calcul à 1. 3 Multiplier successivement la valeur précédente par les entiers successifs de 2 jusqu’à attein-

dre la valeur n. 4. Afficher le résultat.

Cette description est bien longue et incomplète. Elle ne reflète pas directement toutes les opéra-tions ou tous les pas à effectuer pour trouver la factorielle de n. Nous donnons ci-après l’algorithme de calcul afin de montrer les divers points à observer dans la liste des opérations à prévoir.

A L G O R I T H M E Calcul de la factoriel n !

1. Initialiser Lis n n ⇐ ¦n¦ y ⇐ 1 i ⇐ 1 2. Test de cas particuliers si n > 1 alors tant que i < n fais y ⇐ y*i i ⇐ i + 1 fin faire tant que fin faire si si n = 0 ou si n = 1 alors y ⇐ 1

3. Ecriture du résultat Ecris n,y

Dans cet exemple, le calcul de la factorielle fait intervenir les deux cas particuliers si n = 0 ou si n = 1. Cet algorithme devrait se compléter par un contrôle de la valeur de n. Est-ce que n est un nombre entier positif ? Si ce n’est pas le cas, il faudrait corriger le résultat soit en interdisant le déroulement des opérations et en affichant une remarque, soit en prévoyant une modification automatique de la

15

1. Généralités sur les méthodes numériques

grandeur introduite, comme ici en prenant la valeur absolue. Comme les calculateurs numériques ne peuvent pas représenter n’importe quelle grandeur numérique, il serait encore nécessaire de limiter l’évaluation de la factorielle à une valeur limite acceptable par l’ordinateur afin de ne pas dépasser les possibilités existantes.

Nous avons écrit un algorithme au moyen d’un certain nombre de lignes, appelées instructions, sans nous lier à une syntaxe d’un langage de programmation. Nous voulons fixer quelques règles d’écriture des instructions dans un pseudo-code personnel, indépendant des langages existants. L’avantage de cette façon de faire est de nous libérer des syntaxes impératives de Pascal, Fortran, Modula, C ++ , etc.

1.2 SYNTAXE DU PSEUDO-CODE DES ALGORITHMES Pour accéder aux possibilités de traitement des données dans un ordinateur, il faut utiliser un pro-gramme écrit dans un langage compréhensible par le calculateur. Or les ordinateurs ne comprennent que le langage dit machine, suite de bits groupée en octets et formant par exemple un nombre entier exprimant ce nombre dans le système hexadécimal. Dans les applications techniques actuelles, le programmeur ne peut plus écrire un programme en langage machine car cette méthode est réservée aux opérations fondamentales et élémentaires. L’utilisateur emploie un langage de programmation plus ou moins performant, appelé langage source, facilement compréhensible par les connaisseurs du langage, mais incompréhensible par l’ordinateur. Les instructions écrites par le programmeur doivent être traduites en langage machine par un programme appelé compilateur. Chaque langage de pro-grammation possède ses qualités, mais également ses défauts. Il n’existe pas pour l’instant de langa-ge de programmation vraiment universel et applicable à tous les usages.

Dans ce cours de mathématiques numériques, nous allons utiliser dans les algorithmes un lan-gage très élémentaire, appelé pseudo-code. Il permettra de décrire les instructions sans être lié à la syntaxe rigide de programmation d’un des langages existants. La syntaxe du pseudo-code est simple et se compose d’un certain nombre d’opérations élémentaires. La codification en langage source des algorithmes proposés ne devrait pas présenter de difficulté particulière car la syntaxe proposée ici est très près des syntaxes des langages actuels. Les mots réservés et utilisés sont en français afin de faciliter le déroulement et la compréhension de l’algorithme. 1.2.1 CONSTANTES ET VARIABLES 1.2.1.1 CONSTANTES NUMÉRIQUES Une constante numérique est représentée par toute valeur numérique algébrique décimale et ne sera pas limitée par les possibilités de représentation. Une valeur sans signe est positive, une valeur négative est précédée du signe moins (-). Une constante numérique peut s'écrire sous deux formes :

1. Virgule fixe : Exemples : 4.2178 -12.4287 0.0002939495 18 -987

Le point décimal pourra se remplacer par la virgule décimale (si c'est nécessaire) et nous ne ferons pas de distinction entre les nombres entiers et les nombres réels.

2. Virgule flottante : Cette seconde notation est utilisée pour les grands et les petits nombres : 10 à la puissance ... est écrit par le symbole E .... le signe de l'exposant positif pouvant être omis. Exemples : 21 E4 12.35E-6 18.0E21 1.2345E-12

16

1. Généralités sur les méthodes numériques

1.2.1.2 VARIABLES SIMPLES Une variable simple permet de conserver une valeur numérique, ou alphanumérique, dans un emplacement de la mémoire de l'ordinateur. L'identificateur de variable ou nom symbolique com-mence toujours par une lettre suivie éventuellement d'un ou de plusieurs caractères, lettre ou chiffre. Ici, le nombre de caractères ne sera pas limité dans l'écriture du nom symbolique. 1.2.1.3 VARIABLES DE TABLEAU Une variable de tableau permet de stocker plusieurs valeurs numériques ou alphanumériques sous un même identificateur et dans des emplacements successifs de la mémoire de l'ordinateur. Le nom symbolique de ces variables commence également par une lettre et peut comporter plusieurs caractères, lettres ou chiffres. Les composants des tableaux se nomment les éléments repérés par un ou plusieurs indices placés entre parenthèses. Exemples : a(2,7) b(10) c(i,j) 1.2.2 OPERATEURS Les opérateurs utilisés dans le pseudo-code sont des opérateurs arithmétiques, de relation ou lo-giques. 1.2.2.1 OPÉRATEURS ARITHMÉTIQUES Ils permettent de fixer les opérations à effectuer entre des constantes et des variables numé-riques. Ce sont les symboles :

+ en addition , - en soustraction * en multiplication, / en division , ^ en exponentiation. 1.2.2.2 OPÉRATEURS DE RELATION Les opérateurs de relation permettent de comparer deux valeurs numériques ou alphanu-mériques. Le résultat de la comparaison est soit vrai , soit faux . Les symboles des opérateurs sont les suivants :

= égal ≠ différent > supérieur < inférieur ≥ supérieur ou égal ≤ inférieur ou égal 1.2.2.3 OPÉRATEURS LOGIQUES Les opérateurs logiques testent la véracité d'affirmations, le résultat du test étant vrai ou faux. Les symboles des opérateurs logiques utilisés dans les algorithmes sont limités à ET , OU et NON. Les tables de vérité donnent le résultat du test sous forme numérique : 1 = vrai, 0 faux.

Opérateur ET Opérateur OU Opérateur NON

X Y Rés. X Y Rés. X Rés.

0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1

17

1. Généralités sur les méthodes numériques

1.2.3 INSTRUCTIONS La collection d'instructions proposées est réduite au stricte minimum afin de ne pas alourdir la

compréhension des algorithmes et de pouvoir programmer ces derniers dans tous les langages de programmation courants. La plupart des langages de programmation possèdent une gamme plus riche d'instructions. 1.2.3.1 AFFECTATION L'instruction d'affectation permet de transmettre une valeur numérique, alphanumérique ou logi-que, à une variable simple ou à un élément d'une variable de tableau. Le symbole utilisé dans ce but est : ⇐ . Il signifie en clair :

affecte à la variable ou à l'élément situé à gauche du symbole ⇐ la valeur de l'expression située à droite du symbole ⇐

Nous appellerons expression une entité composée de : constantes, variables ou constantes et va-riables reliées par des opérateurs. 1.2.3.2 ENTRÉE DE DONNÉES

La lecture d'une donnée numérique, alphanumérique ou logique, à introduire dans l'algorithme se déclare par : lis var où var représente une variable simple ou un élément de tableau.

1.2.3.3 SORTIE DE DONNÉES Les résultats des opérations effectuées par l'algorithme doivent apparaître en cours de calcul ou de manipulation, au plus tard avant la fin de l'algorithme. La syntaxe utilisée sera :

écris expression

avec : expression une expression numérique, alphanumérique ou logique. 1.2.3.4 SAUT INCONDITIONNEL Le traitement d'un algorithme s'effectue séquentiellement c'est-à-dire que les instructions sont traitées les unes à la suite des autres, comme elles sont écrites dans le pseudo-code. Le saut inconditionnel permet de passer d'une instruction à une autre instruction sans parcourir les instructions intermédiaires. La syntaxe de l'instruction est :

va à étiquette

avec : étiquette une adresse numérique dans l'algorithme suivie de : . Nous éviterons, dans la mesure du possible, l'emploi de cette instruction. 1.2.3.5 EXÉCUTION CONDITIONNELLE La syntaxe de l'exécution conditionnelle d'une ou de plusieurs instructions, en fonction d'une évaluation logique d'une expression, est dans la forme de base :

si expression alors instruction(s) . . . fin si

L'expression logique du test contient un ou plusieurs opérateurs de relation ou logiques. Si expression est vraie, toutes les instructions qui suivent alors sont effectuées. La fin du déroulement conditionnel de plusieurs instructions sera signalée par fin si , cette syntaxe étant omise si une seule instruction est

18

1. Généralités sur les méthodes numériques

placée après alors. Une deuxième variante de cette instruction conditionnelle est donnée par la clause complémentaire sinon :

si expression alors instruction(s) sinon instruction(s) fin si

Si expression est vraie, toutes les instructions qui suivent alors sont exécutées; si expression est fausse, toutes les instructions qui suivent sinon sont prises en charge. La fin de l'exécution conditionnelle par fin si est utilisée seulement lorsqu'il y a plusieurs instructions ou éventuellement un doute possible dans le déroulement de l'exécution conditionnelle. 1.2.3.6 RÉPÉTITION AVEC COMPTEUR Les mathématiques numériques font très souvent intervenir une suite d'opérations répétitives et la formation de boucles avec nombre de parcours connu. Cette structure joue un rôle primordial dans les algorithmes de calcul matriciel. La syntaxe d'une boucle avec compteur est :

pour compteur . . . début,fin,incr instruction(s) fin faire compteur

Le compteur est appelé variable de boucle et sera désigné très souvent par les identificateurs courants i, j, k ou l . L'identificateur début est attribué à compteur à la lecture de l'instruction, incr est l'incrément généralement +1 ou -1, fin est la limite à atteindre par le compteur . A chaque passage de la boucle, le compteur est incrémenté de incr jusqu'à ce que la valeur limite fin soit atteinte. 1.2.3.7 RÉPÉTITION AVEC CONTROLE EN FIN DE BOUCLE Une seconde structure d'instruction sera utilisée dans les algorithmes. La répétition des ins-tructions de la boucle est poursuivie jusqu'à ce qu'une condition logique soit vraie. La syntaxe est :

répète instruction(s) jusqu'à ce que expression

L'identificateur expression est une expression logique dont les composants doivent subir une modification dans la partie instruction(s) . Si expression est faux, alors la ou les instructions sont répétées; par contre si expression est vrai, l'algorithme continue après expression . Cette structure itérative est introduite chaque fois que la boucle doit être parcourue au moins une fois et lorsque le nombre de parcours est inconnu initialement. 1.2.3.8 RÉPÉTITION AVEC CONTRÔLE EN DÉBUT DE BOUCLE Pour parcourir une série d'instructions avec test de condition logique avant le parcours de la boucle, il faut utiliser une structure :

tant que expression fais instruction(s) fin faire tant que

Tant que l'expression logique est vraie, les instructions qui suivent fais sont évaluées jusqu'à fin faire tant que . Si la première exécution de expression donne un résultat vrai, il faut que les instructions suivantes influencent directement la valeur d'expression afin que la boucle ne soit pas parcourue indéfiniment. Cette structure itérative est introduite chaque fois que la boucle doit être parcourue seulement si la conditions logique est vraie et si le nombre de parcours n'est pas connu initialement. 1.2.4 FONCTIONS L'utilisation et la présence d'un certain nombre de fonctions mathématiques permettent de con-ditionner plus facilement les opérations à effectuer sur les entités numériques. Certains algorithmes fondamentaux sont basé sur l'introduction de fonctions mathématiques ou trigonométriques.

19

1. Généralités sur les méthodes numériques

1.2.4.1 FONCTIONS MATHÉMATIQUES Les fonctions mathématiques utilisées dans les algorithmes sont principalement des fonctions de choix, exponentielle ou logarithmique. La syntaxe utilisée sera :

¦expr 1¦ valeur absolue int (expr) valeur entière sqrt (expr) racine carrée sgn(expr) signe (donne +1,0,-1 selon le signe) ln (expr) logarithme naturel exp( expr) exponentielle

Dans ces syntaxes, expr est une expression numérique convenant à la fonction, située dans les li-mites acceptables pour l'ordinateur. 1.2.4.2 FONCTIONS TRIGONOMÉTRIQUES Les arguments des fonctions trigonométriques simples sont toujours exprimés en radians. Les syntaxes des fonctions de base sont :

sin(expr) sinus cos (expr) cosinus tan(expr) tangente arctan(expr) arctangente arctan2(exprx,expry) arctangente à deux arguments

Dans ces syntaxes, expr est une expression numérique convenant à la fonction, située dans les li-mites acceptables pour l'ordinateur. Les angles sont exprimés en radians. Dans la fonction arctan2 les deux expressions représentent les composantes sur les axes Ox et Oy.

1.3 ERREURS DANS LES OPÉRATIONS Les opérations arithmétiques effectuées par les calculateurs numériques sont limitées à l'addition, la soustraction, la multiplication et la division, ces dernières opérations étant basées aussi sur l'ad-dition. En plus des opérations arithmétiques, des comparaisons d'égalité ou d'inégalité peuvent intervenir pendant le déroulement des tâches de l'ordinateur. 1.3.1 REPRÉSENTATION DES NOMBRES Le calcul numérique en technique utilise le système décimal, base = 10. Les calculateurs numé-riques introduisent généralement des bases différentes : 2, 8 ou 16, ces systèmes portant les déno-minations systèmes de numération binaire, octal ou hexadécimal. 1.3.1.1 REPRÉSENTATION DES NOMBRES ENTIERS En exprimant par b la base du système utilisé et par c (c = 0,1,2, 3, ... b-1) les divers chiffres du système de numération, un nombre entier positif e à n+1 chiffres s'exprime par la somme :

e c b c b c b c b c b= ⋅ + ⋅ + + ⋅ + ⋅ + ⋅−n

nn-1

n 12

21

10

0... .

Exemple: le plus grand nombre entier exprimable en base 2 , chiffres 0 et 1, au moyen de 15 chiffres, (n = 15-1 = 14), est :

emax ... .= ⋅ + ⋅ + ⋅ + + ⋅ + ⋅ + = − =1 2 1 2 1 2 1 2 1 2 1 2 1 32 76714 13 12 2 1 15

Dans la plupart des ordinateurs, les nombres entiers, positifs ou négatifs, sont représentés dans le système binaire, au moyen d'un certain nombre de chiffres 0 ou 1, limité à 15 chiffres, soit 2 x 8 bits -1

20

1. Généralités sur les méthodes numériques

ou 2 octets - 1 bit, ou à 31 chiffres, 4 x 8 bits - 1 ou 4 octets -1 bit, le premier bit étant réservé au signe. Il en résulte qu'un calculateur numérique peut : 1. représenter exactement les nombres entiers dans les limites de la représentation, limites données

par le nombre d'octets réservé à cette représentation. 2. générer une quantités limitée d'entiers, cette limite ne pouvant pas être dépassée, ou si cette

limite est dépassée, peut provoquer une ou plusieurs erreurs numériques. 3. l'écart entre deux nombres entiers successifs est toujours exactement un entier.

Représentation des entiers positifs dans le système binaire Représentation par 15 chiffres Représentation par 31 chiffres

- 215 ≤ e ≤ 215 - 1 - 231 ≤ e ≤ 231 - 1 avec : 215 = 32768 231 = 2 147 483 648 1.3.1.2 REPRÉSENTATION GÉNÉRALE DES NOMBRES RÉELS L'écriture usuelle d'un nombre réel r , en base b, chiffres c (c = 0,1 2,3,. . . b-1) prend la forme générale suivante :

r c b c b c b c b c b c b c b= ⋅ + ⋅ + ⋅ + + ⋅ + ⋅ + ⋅ + + ⋅ −n

nn-1

n-1n-2

n-21

10

0-1

-1-m

m... ... . ce nombre réel ayant n+m+1 chiffres. La quantité de nombres réels représentables est limitée par la valeur de la base b et le nombre de chiffres q = n + m + 1 . Cette quantité vaut :

quantité de nombres réels représentables : bq = bn+m+1 .

La représentation exacte des nombres réels n'est possible qu'avec les nombres réels coïncidant exactement avec les nombres dont la valeur est exprimée par la somme ci-dessus. Tout autre nombre réel se représente par une valeur approchée écrite dans la syntaxe de l'expression générale. 1.3.1.3 REPRÉSENTATION INTERNE DES NOMBRES RÉELS La représentation interne, c'est-à-dire dans l'ordinateur, des nombres réels comprend habituel-lement trois parties :

1. le signe du nombre, 2. l'exposant, 3. la mantisse : cette partie fixe le nombre de chiffres significatifs sûrs de la représentation.

signe exposant mantisse

exposant et mantisse sont représentés en base b . L'écart entre deux nombres réels successifs dé-pend de la base, de la valeur de l'exposant et du nombre de chiffres représentable par la mantisse. Par exemple, dans TURBO Pascal, versions 4 ou 5, versions créées pour des ordinateurs personnels sans coprocesseur arithmétique, trois genres de représentation des nombres réels sont à disposition :

1. Représentation des nombres réels au moyen de 6 octets, cette représentation étant peu employé en informatique, configuration : signe, mantisse et exposant. Les limites de représentation sont, exprimées dans le système décimal : - valeurs négatives : - 1.7 10+38 jusqu'à - 2.9 10-39 - valeur nulle : 0.0 - valeurs positives + 2.9 10-39 jusqu'à + 1,7 10+38 - nombre de chiffres significatifs : 11 à 12 Il est vivement recommandé d’abandonner ce type de nombres réels.

2. Représentation des nombres réels Single selon norme IEEE (valable aussi pour Fortran). Repré- sentation au moyen de 4 octets, limites exprimées dans le système décimal : - valeurs négatives : - 3.4 10+38 jusqu'à - 1.5 10-45 - valeur nulle : 0.0 - valeurs positives : + 1.5 10-45 jusqu'à + 3.4 10+38

21

1. Généralités sur les méthodes numériques

- nombre de chiffres significatifs : 7 à 8

3. Représentation des nombres réels Double selon norme IEEE (valable aussi pour Fortran) au moyen de 8 octets, limites exprimées dans le système décimal : - valeurs négatives : - 1.7 10+308 jusqu’à -5.0 10-324 - valeurs nulles : 0.0 - valeurs positives : + 5.0 10-324 jusqu’à +1,7 10+308 - nombre des chiffres significatifs : 15 à 16

4. Représentation des nombres réels Extended selon norme IEEE, valable pour les processeurs actuels, employés dans nos logiciels de mathématiques numériques (Pascal Delphi).

- Domaine de la représentation : 3.4 10-4932 jusqu’à 1.1 104932 - Nombre d’octets : 10 - nombre de chiffres significatifs : 19 à 20

5. Il existe encore d’autres types de représentation des nombres réels : - Comp : - 263 + 1 à 263 –1, représentation des tous les entiers entre ces deux limites - Currency : type de données à virgule fixe, 8 octets, recommandé pour les calculs monétaires.

Comme la représentation interne des nombres entiers et des nombres réels est différente, les opérations arithmétiques sur des nombres de types différents doivent toujours être précédées de transformation d'un système de représentation dans l'autre pour autant que ces opérations soient autorisées dans le langage de programmation. La représentation interne de l'exposant est toujours positive, car l'exposant subit un décalage lors de l'utilisation du nombre.

1.3.2 ERREURS DANS LES OPÉRATIONS ARITHMÉTIQUES 1.3.2.1 CHOIX DE LA REPRÉSENTATION DES NOMBRES Afin de faciliter l'exposé du principe des opérations arithmétiques sur les nombres réels et éviter les transformations en diverses bases, nous supposerons pour la discussion qui va suivre que la man-tisse et l'exposant des nombres réels exprimées ou écrites en base 10, contrairement aux bases em-ployées normalement dans les ordinateurs. De plus, nous admettrons que la représentation de ces nombres est très primitive pour mettre en évidence les erreurs de représentation, soit : 1. une mantisse avec seulement 5 chiffres décimaux : de 0.00000 jusqu'à 0.99999 2. un exposant avec un seul chiffre décimal : de -9 jusqu'à +9 3. un signe pour le nombre et une base : b = 10, 4. seulement les chiffres décimaux : c = 0,1,2, ...,8,9 . La configuration du nombre réel devient, en écriture usuelle avec tout d'abord la mantisse et en-suite l'exposant de façon à lire facilement le nombre :

+ 0 , 1 2 3 4 5

+ 1

Le zéro placé devant la virgule décimale est écrit ici afin de comprendre la valeur du nombre et ne fait pas partie des chiffres significatifs de la mantisse. L'exposant est entier, positif ou négatif. Avec ces conventions, les nombres réels représentables dans ce système de numération sont compris :

- 1010 < r < +1010 .

Étudions surtout les deux opérations fondamentales, l'addition et la soustraction, à partir des conventions introduites dans la discussion. Nous négligerons l'opération d'arrondi dans cet exposé simplifié. 1.3.2.2 ADDITION DE DEUX TERMES DE MÊME EXPOSANT Soit à effectuer l'opération d'addition sur deux nombres réels de même exposant avec divers gen-res d'opérandes :

22

1. Généralités sur les méthodes numériques

Exemples de trois additions :

1 2 3 0,32576 +2 0,32576 +2 0,51025 +9 + 0,51093 +2 + 0,83419 +2 + 0,73724 +9 ____________ ____________ ____________

0,83669 +2 1,15995 +2 1,24749 +9 ¦ ¦ V V 0,11599 +3 0,12474 +10

Exemple 1 : La somme : 32,576 + 51,093 = 83,669 correspond exactement à la somme des deux nombres proposés, l'addition est correcte. Exemple 2 : Dans ce second exemple, la somme : 32,576 + 83,419 est effectuée mais perd le dernier chiffre significatif puisque le nombre de chiffres de la mantisse devient égal à 6 . Or l'arithmétique numérique n'autorise que 5 chiffres. La valeur retenue pour la somme est finalement 115,99 . Cette valeur est différente de la somme exacte, donc il y a erreur. L'erreur commise, due à la troncature de la mantis-se, est 5.10-3. Exemple 3 : Dans le troisième exemple, la somme : 510 250 000 + 737 240 000 ne peut pas s'effectuer, bien que ces deux nombres soient représentables dans le système numérique adopté, car le calculateur ne peut plus représenter la somme des deux termes. Il y a dépassement de la capacité de représentation des réels et dans un ordinateur : affichage d'une erreur avec arrêt du déroulement du calcul. 1.3.2.3 ADDITION DE DEUX TERMES AVEC DES EXPOSANTS DIFFÉRENTS Soit à sommer les deux nombres réels : 3 742,5 et 7,2127 . Écrivons ces deux nombres réels selon les règles valables pour le système de représentation adopté :

0,37425 +4 0,37425 +4 + 0,72127 +1 + 0,00072127 +4 _____________________

0,37497 +4

Pour effectuer cette addition, le deux nombres doivent avoir le même exposant, dans ce cas 10 à la puissance 4. La somme s'écrit selon la configuration de droite, mais les trois derniers chiffres du second terme sont perdus. D'une manière générale, la somme de deux termes peut s'exprimer par la relation :

somme = mantisse : 10ex + erreur - 10ex-q avec : ex l'exposant conservé dans le résultat, q le nombre de chiffres de la mantisse, ici q = 5 . L'erreur maximale pouvant être commise sur le résultat peut se donner par l'expression :

lerrmaxl = lerrl . 10ex-q < 10ex-q ,

avec : 0 <= lerrl < 1 , car l'erreur peut être nulle. 1.3.2.4 SOUSTRACTION DE DEUX NOMBRES RÉELS La soustraction de deux nombres réels est particulièrement dangereuse lorsque les deux termes ont à peu près la même valeur numérique. Démontrons cette particularité sur deux exemples.

Exemples :

23

1. Généralités sur les méthodes numériques

1 2

0,62847 +2 0,62847 +2 - 0,31973 +2 - 0,62815 +2 _________________ _________________

0,30874 +2 0,00032 +2 ¦ v 0,32000 –1 Dans le premier exemple, le résultat peut se donner avec 5 chiffres significatifs. Dans le second exemple, il ne subsiste que deux chiffres significatifs après la soustraction ! Un résultat numérique voisin de zéro ou même nul peut rendre un calcul numérique instable, en particulier lorsque la différence apparaît au dénominateur d'une expression à évaluer. 1.3.2.5 ASSOCIATIVITÉ ET DISTRIBUTIVITÉ Comme la représentation des nombres réels s'effectue avec une quantité limitée de chiffres significatifs, les règles usuelles d'associativité et de distributivité ne sont plus valables en calcul numé-rique. Montrons cette particularité en calculant numériquement la somme de trois nombres réels. Soit à sommer : a = 476,23, b = 0,00787 et c = 0,008453. Première méthode Seconde méthode (a+b)+c (b+c)+a

0,47623 +3 0,78700 -2 + 0,00000 +3 + 0,84530 -2 _________________ _________________

0,47623 +3 1,63230 -2 ¦ ¦ ¦ V ¦ 0,16323 -1 ¦ ¦ V V 0,47623 +3 0,00001 +3 + 0,00000 +3 + 0,47623 +3 __________________ __________________

0,47623 +3 0,47624 +3 Cet exemple montre que les deux sommes numériques (a+b)+c et (b+c)+a ne sont pas équi-valentes. Les propriétés de l'associativité et de la distributivité ne sont plus valables en calcul numé-rique. L'adjonction de termes très petits à certaines expressions numériques permet, par une utili-sation judicieuse des opérations, d'éviter par exemple une partie des erreurs citées ci-dessus ou une division par zéro. Ces adjonctions peuvent s'effectuer en fonction de la valeur des termes de l'ex-pression. Cette méthode est efficace dans la programmation simple de dénominateur d'expression comme par exemple le calcul de la tangente d'un quotient : tan x = a/b.

Pour éviter des opérations numériques prohibées, il est possible d'utiliser des nombres rela-tivement petits, mais représentables correctement. Un exemple simple est donné par le calcul de l'arc tangente dont l'argument est le rapport de deux valeurs numériques. Si le terme du dénominateur est nul, il y a arrêt du calcul numérique car l'unité arithmétique devrait effectuer une division par zéro. En sommant un terme très petit au terme du dénominateur, l'opération est presque toujours réalisable.

24

1. Généralités sur les méthodes numériques

1.3.3 CLASSIFICATION DES ERREURS Les erreurs intervenant dans les calculs numériques sur ordinateurs peuvent provenir de trois sources différentes : 1. erreurs de description du modèle mathématique, 2. erreurs de méthode numérique 3. erreurs de calcul.

Ces erreurs existent pratiquement dans tous les problèmes à résoudre en sciences de l'ingénieur et sont à estimer si possible avant mais au plus tard en fin de calcul. 1.3.3.1 ERREURS DE DESCRIPTION DU MODÈLE MATHÉMATIQUE Le but d'un calcul numérique plus ou moins compliqué est de trouver la solution d'un problème réel au moyen d'une formulation mathématique adéquate. Lors de la transformation de l'objet réel et de la mise en équation du problème, il est toujours nécessaire de remplacer le système réel par un modèle mathématique. La description de l'ensemble réel par un ensemble de relations mathématiques est entachée d'erreurs dues aux hypothèses et simplifications initiales. Tous les problèmes liés à la science de l'ingénieur appartiennent à cette catégorie. Prenons comme exemple simple l'équation différentielle décrivant l'oscillation d'un pendule com-posé d'une petite masse suspendue à un fil supposé inextensible. Cette équation peut s'écrire :

dd

dd

2

2 0ϕ ϕ ϕt

fm t

gl

+ ⋅ + ⋅ =sin .

avec : l la longueur du pendule, m masse suspendue, f facteur de frottement, g accélération de la pesanteur terrestre, ϕ angle du pendule à l'instant t par rapport à la direction verticale. L'équation différentielle adoptée ne correspondra jamais exactement au problème à résoudre car le terme de frottement n'est pas parfaitement linéaire et ne dépend pas seulement de la vitesse de la masse. De plus, le fil réel est déformable et comme la tension dans le fil varie avec sa position, le centre de la masse ne décrit pas une trajectoire parfaitement circulaire. Ces erreurs de description ou de modélisation devront faire l'objet d'une discussion détaillée lors du dépouillement des résultats après la solution. De plus, tout calcul numérique réel nécessite l'introduction de valeurs provenant de grandeurs existantes comme la longueur du fil du pendule ou l'accélération de la pesanteur terrestre dans l'exemple cité. Dans la plupart des cas, l'incertitude dans la mesure ou dans le choix des grandeurs est plus grande que les erreurs commises dans les transformations de la représentation externe, introduite par l'utilisateur, en représentation interne des nombres et vice versa. Les erreurs de tron-cature, provenant de l'impossibilité d'exprimer correctement une valeur numérique en représentation interne, peuvent être également classées dans cette catégorie. 1.3.3.2 ERREURS DE MÉTHODE Comme seules les quatre opérations arithmétiques fondamentales peuvent être effectuées et seules les fonctions rationnelles peuvent être évaluées avec un nombre limité de chiffres significatifs, la configuration des opérations joue un rôle très important dans la recherche du résultat. Le calcul des diverses fonctions non rationnelles comme les racines et puissances non entières, les logarithmes, les fonctions exponentielles, trigonométriques et hyperboliques, les grandeurs infinitésimales, doit se trou-ver par un nombre fini d'opérations arithmétiques simples. Dans l'exemple du pendule, l'équation différentielle n'est pas résoluble sous forme explicite. La so-lution doit faire appel à une méthode numérique qui donne lieu à des erreurs supplémentaires. Ces erreurs portent le nom d'erreurs de méthode. La théorie du calcul numérique comprend comme partie fondamentale l'élaboration d'algorithmes stables tels que les résultats soient affectés d'erreurs mini-males.

25

1. Généralités sur les méthodes numériques

La plupart des programmes techniques possèdent des méthodes de résolution qui font intervenir un certain nombre d'hypothèses simplificatrices. Il ne faudra jamais perdre de vue que la solution obtenue dépend directement de la méthode et de ces hypothèses. La méthode de résolution doit être adaptée au problème à résoudre. Il en découle qu'il faut presque toujours avoir plusieurs méthodes numériques en réserve pour résoudre une certaine famille de problèmes techniques et numériques. 1.3.3.3 ERREURS DE CALCUL Les erreurs de calcul sont engendrées le plus souvent par les erreurs de troncature. Ces erreurs interviennent chaque fois que la représentation de la valeur numérique dépasse les possibilités de transformation ou de conservation de la quantité de chiffres significatifs dans le calculateur. L'erreur de troncature, dans les résultats d'opérations arithmétiques, est pratiquement toujours présente.

1.3.4 ERREURS VRAIES ET RELATIVES Désignons par x* la valeur exacte recherchée dans la méthode numérique et par x la valeur ap-prochée. Remarquons immédiatement que la grandeur exacte x* reste inconnue à tout moment pen-dant le calcul numérique ! Cette particularité du calcul numérique fait qu'il n'est jamais possible de trouver l'erreur exacte dans les opérations. 1.3.4.1 DÉFINITION DES ERREURS VRAIES L'erreur vraie est définie d'une manière arbitraire par la différence entre la valeur exacte et la va-leur approchée :

Δx x x= −* ,

et l'erreur en valeur absolue par :

Δx x x= −* .

Dans la plupart des cas, ces deux grandeurs ne peuvent pas se trouver exactement puisque la valeur exacte reste toujours inconnue. Très souvent, la discussion sur l'erreur consiste à rechercher la borne supérieure de l'erreur absolue. Si ¦ Δx ¦ est l'erreur en valeur absolue de la solution approximative x et si err(x) > 0 est la limite supérieure pour ¦ Δx ¦, de telle manière que :

¦ Δx ¦ ≤ err(x) , alors l'erreur supérieure err(x) , en valeur absolue, permet d'écrire :

x - err(x) ≤ x ≤ x + err(x), ou encore :

x Œ [ x-err(x),x+err(x)] . 1.3.4.2 DÉFINITION DES ERREURS RELATIVES Si ¦ Δx ¦ est l'erreur en valeur absolue sur la solution approximative x , l'erreur relative, en valeur absolue, se définit par le rapport :

Δxx

x xx

=−*

.

L’erreur supérieure relative peut se donner par le rapport et la condition suivante :

26

1. Généralités sur les méthodes numériques

err( ).

xx

xx

≥Δ

Généralement, les erreurs relatives sont données en pour-cent. Les calculs itératifs font intervenir très souvent les notions d'erreurs relatives et/ou d'erreurs absolues. Notons en passant qu'il n'est pas possible de définir d'une manière univoque l'erreur relative lorsque la valeur de x est nulle.

1.3.5 ERREURS DANS LES OPÉRATIONS ARITHMÉTIQUES Etudions maintenant les erreurs pouvant intervenir dans les opérations arithmétiques fondamen-tales : addition, soustraction, multiplication et division. 1.3.5.1 ERREURS EN ADDITION Soient deux valeurs numériques approchées désignées par x et y avec les erreurs vraies données par: - sur la grandeur x : Δ x avec : x* = x + Δx ou Δx = x* - x, - sur la grandeur y : Δ y avec : y* = y + Δy ou Δy = y* - y. En complément, introduisons encore la notion d'erreur supérieure sur ces deux grandeurs par la notation : - sur la grandeur x : err(x) , - sur la grandeur y : err(y) . La somme exacte des deux valeurs numériques données vaut alors :

Somme = x* + y* = (x + Δx) + (y + Δy) = (x + y) + (Δx + Δy),

et l'erreur sur la somme : (Δx + Δy) = Δ (x + y) = (x* + y*) - (x + y).

L'erreur absolue prendra une valeur telle que :

¦ Δ (x + y) ¦ ≤ err(x) + err(y) .

L'erreur sur la somme, en valeur absolue, est inférieure ou égale à la somme des erreurs supé-rieures. Calculons maintenant l'erreur relative sur la somme des deux termes, en valeur absolue, par les expressions :

Δ Δ Δ Δx yx y

xx y

xx

yx y

yy

++

≤+

⋅ ++

⋅ .

Pour une vraie addition, avec ¦ x ¦ ≤ ¦ x + y ¦ et ¦ y ¦ ≤ ¦ x + y ¦ , les coefficients des erreurs relatives :

x

x y+ et

yx y+

sont plus petit que 1 . Il en résulte que l'erreur relative sur la somme est plus petite que la somme des erreurs relatives sur chacun des termes. 1.3.5.2 ERREURS EN SOUSTRACTION En utilisant les mêmes notations qu'en addition pour les termes et les erreurs, l'erreur en valeur absolue peut s'exprimer par la relation :

⎢(Δ x + Δ y) ⎢≤ err(x) + err(y) .

Les erreurs relatives sont :

27

1. Généralités sur les méthodes numériques

Δ Δ Δ Δx yx y

xx y

xx

yx y

xy

+−

≤−

⋅ +−

⋅ .

Les coefficients des erreurs relatives.

x

x y− et

yx y−

,

sont en soustraction toujours plus grands que l'unité. Ils peuvent prendre des valeurs tendant vers l'infini si le second terme y tend vers le premier terme x . Il s'ensuit qu'en soustraction, les erreurs relatives peuvent devenir énormes. 1.3.5.3 ERREURS EN MULTIPLICATION ET EN DIVISION En utilisant encore les mêmes notations qu'en addition, la multiplication de deux valeurs exactes donne : x* . y* = (x + Δx) . (y + Δy) ,

ou : x* . y* = x . y + x . Δy + y . Δx + Δx . Δy . En négligeant le dernier produit Δx - Δ y, l'erreur absolue sur le produit est :

⎢Δ(x . y) ⎢ = ⎢ x* . y* - x . y ⎢ ≤ ⎪ x . Δy + y . Δx ⎢. Calculons l'erreur relative par :

Δ Δ Δ Δ( ) .x y

x yx y y x

x yx

xy

y⋅⋅

≤⋅ + ⋅

⋅= +

Δ

L'étude de la division de deux valeurs numériques donne exactement la même expression. En multiplication et en division, l'erreur relative sur le produit ou sur le quotient est inférieure ou égale à la somme des erreurs relatives sur chacun des termes. 1.3.5.4 NOMBRES DE CHIFFRES SIGNIFICATIFS SURS Le dernier chiffre de la représentation d'un nombre est un chiffre sûr si l'erreur commise est inférieure ou égale à 0,5 fois 10m avec m l'exposant de dix multipliant le dernier chiffre. Pour que cette règle soit applicable, il faut que le calcul s'effectue avec l'opération d'arrondi. Le nombre maximal de chiffres significatifs sûrs est 1. En addition et soustraction : C'est la quantité de chiffres sûrs dans le terme contenant le plus petit nombre de chiffres significa- tifs. 2. En multiplication et division : Deux chiffres de moins que le terme ayant le plus petit nombre de chiffres significatifs. 3. En élévation à une puissance : Au plus, autant de chiffres que le nombre à élever à une certaine puissance. 4. En extraction de racine : Au plus, autant de chiffres que le nombre de chiffres de la valeur approchée du radical.

Règles dans les calculs numériques : Dans les calculs intermédiaires, en particulier au moyen des calculettes, il est recommandé de conserver les chiffres incertains et d'éliminer ces derniers avant l'écriture du résultat final. En multi-plication et division, il faut donc retenir deux chiffres de plus que ce qui est nécessaire au résultat.

28

1. Généralités sur les méthodes numériques

1.4 MÉTHODES GÉNÉRALES EN CALCUL NUMÉRIQUE

Le but de ce cours est de donner les principales méthodes numériques pour pouvoir résoudre plus facilement les divers problèmes pratiques de l'ingénieur. Dans la plupart des cas, la solution du problème réel comprend les phases suivantes 1. Énoncé du problème à résoudre : Valeurs initiales, valeurs finales connues ou désirées. 2. Spécification de la solution : Type de problème et choix de la ou des méthodes. 3. Codification des deux premiers points cités : Obtention d'un programme exécutable. 4. Tests du programme Recherche des erreurs éventuelles de solution. Erreurs numériques et domaine d'application. 5. Documentation Établissement de la documentation ou de l'aide à l'utilisation du logiciel. La codification du problème en langage source et les diverses manipulations nécessaires pour rendre un logiciel exécutable sont traitées dans les cours de programmation. Elles dépendent dans une certaine mesure du matériel, du système d'exploitation et du langage de programmation. 1.4.1 ÉNONCÉ DU PROBLÈME L'énoncé correct du problème à résoudre est le premier point fondamental de toute solution infor-matique. À tout énoncé défectueux ou incomplet correspond une mauvaise solution et un logiciel plein d'embûches. Le problème doit être énoncé d'une manière univoque. Il comporte habituellement un cahier des charges avec : - les données d'entrée et les buts à atteindre, - la solution retenue avec ses particularités, - les résultats escomptés en sortie. Grandeurs Solution du Grandeurs d'entrée problème de sortie L'énoncé du problème doit rester indépendant du langage de programmation et du matériel utilisé. 1.4.1.1 GRANDEURS D'ENTRÉE Toute solution et tout programme créé pour résoudre un problème contient un certain nombre de valeurs numériques ou de chaînes de caractères à introduire avant d'effectuer toute transformation ou manipulation. Il est recommandé d'établir une liste détaillée des grandeurs d'entrée en utilisant si possible un système d'unités homogène afin de rendre le logiciel plus universel. Si l'on emploie un système d'unités bien déterminé, il faudra fixer les unités d'entrée avant toute opération numérique. 1.4.1.2 QUESTIONS À SE POSER Avant de commencer à chercher la ou les solutions du problème, il faut pouvoir répondre d'une manière univoque aux questions suivantes : 1. Quelle est la nature du problème à résoudre ? 2. Connaît-on exactement ce que l'on désire comme problème général à résoudre et comme

résultats de la solution ? Faut-il proposer des compléments d'information aux voeux exprimés primitivement ?

3. Existe-t-il une solution unique ou éventuellement plusieurs variantes à étudier avant le choix définitif ? Peut-on introduire ou faut-il utiliser des solutions partielles existantes ? Il est recom-mandé d'ex-ploiter pleinement les développements effectués précédemment.

4. Quels sont les voeux réels et cachés de l'utilisateur dans l'entrée des données et dans la sortie des résultats ? Une liste détaillée des possibilités offertes par d'autres logiciels semblables aide fortement la recherche des points à prendre en considération.

29

1. Généralités sur les méthodes numériques

5. Faut-t-il ou peut-on prévoir une limitation du domaine d'application dans la solution ? Tous les points cités peuvent ou mieux doivent faire l'objet d'un cahier des charges fixant les divers critères de sélection et l'importance attribuée à chaque question. Un logiciel devrait être universel, c'est-à-dire il devrait pouvoir résoudre tous les problèmes de même configuration. Pratiquement, il est matériellement impossible d'atteindre ce but et tout logiciel reste limité en application. Tout logiciel est toujours améliorable. 1.4.1.3 SORTIE DES RÉSULTATS Le but principal d'un logiciel est d'obtenir des résultats corrects et complets. Il est donc impératif de fixer la manière de communiquer les grandeurs de sortie à l'utilisateur : 1. à l'écran, 2. sur une imprimante ou sur tout support informatique, 3. dans un fichier de données alphanumériques ou éventuellement binaires, 4. sous forme graphique, 5. sous la forme d'une combinaison des divers points précédents. Le nombre de résultats doit rester limité et ne doit, en aucun cas, compliquer le dépouillement des données de sortie. Il est recommandé de ne pas dépasser une dizaine de pages de résultats numé-riques. Par contre, une liste de base de données classées pourra comporter un nombre bien plus grand de pages. Exemple : résultats d'une course avec le nom de tous les coureurs classés. 1.4.2 SOLUTION DU PROBLÈME La solution du problème se compose du choix des divers algorithmes qui vont permettre d'aboutir à la sortie de résultats corrects. Si un problème très simple peut se résoudre par un seul schéma élé-mentaire, la plupart des problèmes réels nécessitent habituellement : 1. une décomposition modulaire de la solution, 2. une action logique sur toutes les grandeurs et données traitées. 1.4.2.1 MODULES Le problème global est décomposé en un certain nombre de modules élémentaires facilement maîtrisables. L'organisation générale entre les divers modules est très importante afin d'éviter des ré-sultats erronés.

Cette figure montre la dépendance des divers modules. À partir du module principal, le problème est décomposé en modules plus simples et chacun de ces derniers se décompose à son tour en modules élémentaires. Cette conception porte le nom de conception descendante. Les avantages essentiels de cette méthode sont : 1. chaque module peut s'étudier séparément et contenir un ou plusieurs algorithmes,

30

1. Généralités sur les méthodes numériques

2. chaque module devrait pouvoir se tester séparément, 3. une modification ultérieure du problème nécessite seulement une adaptation d'un seul ou d'un

nombre limité de modules, 4. l'utilisation de modules existants créés pour des problèmes semblables peut intervenir dans le

développement. La difficulté majeure de cette conception provient de la liaison entre les divers modules. Cette con-nexion est facilitée dans les langages de programmation et par l'utilisation de sous-programmes. Ces derniers devraient posséder des liaisons avec les autres modules seulement par l'intermédiaire des paramètres d'appel. L'organisation des divers modules peut dépendre, dans une certaine mesure, des possibilités d'entrée et de sortie des valeurs alphanumériques : entrée par fichiers ou par menus en mode interactif. 1.4.2.2 ACTIONS Chaque algorithme peut contenir trois sortes de comportements ou d'actions logiques dans le déroulement des opérations : 1. Actions séquentielles :

Les opérations s'effectuent successivement les unes à la suite des autres comme elles apparais-sent dans le programme.

2. Actions sélectives : Le choix de la suite des opérations dépend de la valeur logique d'une ou de plusieurs expres-sions.

3. Actions répétitives : Une suite d'opérations est répétée n fois afin d'obtenir soit un résultat précis, soit d'affecter un en-semble de données.

Exemples : langage BASIC : for i=1 to 20 langage FORTRAN : do i,1,20 langage PASCAL : for i:=l to 20 do 1.4.2.3 REPRÉSENTATION DU DÉROULEMENT DU LOGICIEL Pour faciliter la compréhension d'un algorithme ou même d'un logiciel, il est possible de construire une représentation graphique des opérations prévues à cet effet. L'organigramme est une repré-sentation bidimensionnelle de la suite des actions nécessaires à la solution d'un problème déterminé. Il sert également à renseigner l'utilisateur du logiciel sur la ou les méthodes introduites par le ges-tionnaire de projet, Si l'organigramme doit représenter toutes les opérations à effectuer, il devient rapidement illisible. Il sert actuellement à donner une idée sur le comportement d'un algorithme ou à montrer l'organisation générale des modules. Les composants d'un organigramme sont décrits ci-après. 1. Blocs terminaux départ DÉBUT ou START arrivée FIN ou END Un seul raccordement; Utilisation des blocs circulaires : en début et en fin de page

2. Entrée ou sortie de données Ces blocs indiquent les opérations de lecture ou d'écriture en fixant l'information transmise. - en lecture : LIS - en écriture : ÉCRIS

31

1. Généralités sur les méthodes numériques

3. Affectations

Les blocs indiquent les opérations effectuées sur les données au moyen d'opérateurs arith-métiques, logiques ou autres. La syntaxe dépend un peu du langage de programmation et ne correspond pas obligatoirement à l'écriture des diverses relations.

4. Décisions Les décisions interviennent dans les actions sélectives ou dans les actions répétitives. La figure montre les possibilités principales de ces bifurcations.

5. Sous-programmes

Un sous-programme est une partie de programme intervenant plusieurs fois pendant le dérou-lement des opérations. Le sous-programme est placé dans l'organigramme chaque fois qu'il intervient dans le déroulement des instructions. Il se désigne par son identificateur

6. Liaisons Les divers blocs de l'organigramme sont reliés par des segments rectilignes, éventuellement par des lignes brisées rectangulaires. Le sens normal de la circulation de l'information est : - verticalement : de haut en bas. - horizontalement : de gauche à droite. Les autres sens sont repérés par des flèches de circulation inscrites sur les lignes de liaison. 7. Exemple très simple Soit à chercher le point d'intersection de deux droites placées dans le plan Oxy. Les équations de ces droites sont :

y1 = a1 . x + b1 et y2 = a2 . x + b2 .

Les coordonnées du point d'intersection P de ces deux droites s'exprime par les relations :

- abscisse : x b ba aP =−−

2 1

1 2

, - ordonnée : y a x bP P= ⋅ +1 1 .

L'organigramme de ce problème comprend la lecture des coefficients et constantes, le test de parallélisme, le calcul des coordonnées et la sortie du résultat de l'évaluation. Schéma structuré Liste des instructions 1. Lecture des données Pour y(1) : Lis a1,b1 Pour y(2) : Lis a2,b2

2. Test de parallélisme si a1 = a2 alors Ecris : pas de point Sinon

32

1. Généralités sur les méthodes numériques

3. Recherche du point xp <-- (b2-b1)/(a1-a2) yp <-- a1*xp+b1

4. Sortie du résultat Ecris : Point d'intersection : abscisse xp ordonnée yp Fin

Si l'organigramme permet de mettre en évidence le principe de l'algorithme, il demande beaucoup de temps dans l'élaboration de la solution. C'est la raison pour laquelle ce cours ne contient pas d'orga-nigramme. Pour chaque algorithme proposé, un schéma structuré de calcul est à disposition. Ce schéma est indépendant du langage de programmation. 1.4.2.4 ENTRÉE DES DONNÉES Les premiers ordinateurs utilisaient exclusivement les cartes perforées pour alimenter les calcu-lateurs en données d'entrée. Actuellement, l'introduction des données numériques et alphabétiques s'effectue de plus en plus au clavier par l'utilisateur. Les modes opératoires principaux sont : 1. Introduction des données dans un ou plusieurs fichiers au moyen d'un éditeur de texte. Le logiciel

doit être capable de lire ces fichiers, d'en contrôler la syntaxe et d'interpréter la suite de carac-tères. L'avantage de cette méthode est de conserver la trace des données.

2. Entrée des données en mode interactif : le logiciel comporte une série de questions ou de choix. L'utilisateur doit répondre correctement aux divers choix à disposition. La création d'un historique des commandes facilite le contrôle des entrées.

3. Introduction mixte par fichiers et mode interactif. Chacun de ces modes d'entrée des données possède ses qualités et présente aussi des inconvé-nients. La méthode interactive s'adapte bien aux postes de travail tandis que la création de fichiers est réservée aux grands systèmes. Il faudra prévoir, dans tous les cas, la possibilité de lire les valeurs introduites et de pouvoir effectuer facilement les corrections en cas de nécessité.

33

1. Généralités sur les méthodes numériques

1.4.2.5 QUALITÉS DE LA SOLUTION Les qualités exigées d'une solution informatique sont principalement : 1. Exécution sans erreurs de toutes les opérations prévues : elle nécessite une étude fouillée de

toutes les conditions de fonctionnement avec toutes les exceptions ou tous les cas particuliers pouvant intervenir.

2. Facilité d'utilisation par une configuration simple et logique des divers composants et des divers modules.

3. Facilité d'entretien : toutes les opérations doivent rester simples, concises, lisibles et facilement modifiables afin d'améliorer ou d'étendre les applications de la solution. Les programmations structurée et orientée objet poursuivent ce but.

4. Sortie des résultats sous une forme facile à dépouiller. En calcul numérique, une représentation graphique est toujours supérieure à un tableau de valeurs.

34

1. Généralités sur les méthodes numériques

1.5 EXERCICES SUR LE CHAPITRE 1

1.1 Soient deux polynômes algébriques P1 (m) et P2(n). Écrivez l'algorithme permettant d'enre-gistrer les constantes et les coefficients des deux polynômes et d'effectuer, au moyen d'algorithmes différents, les opérations suivantes : 1. Addition des deux polynômes : P1(m) + P2(n) , 2. Soustraction des deux polynômes : P1(m) - P2(n) , 3. Multiplication des deux polynômes : P1(m) * P2(n) .

1.2 Le calcul de la fonction hyperbolique sinh(x) peut se trouver par un développement en série selon la relation proposée ici :

sinh( )! ! ! !

......( ) .x x x x x x= + + + +

3 5 7 9

3 5 7 9etc

- Cherchez l'algorithme de la solution. - Écrivez le schéma structuré correspondant. - Construisez l'organigramme. Combien de termes faut-il utiliser si la précision exigée est 0,000001 et si x peut varier entre 0 et 6 ?

1.3 Le calcul de la fonction trigonométrique sin(x), x étant exprimé en radians, peut se trouver par le développement en série :

sin( )! ! ! ! !

......( ) .x x x x x x x= − + − + −

3 5 7 9 11

3 5 7 9 11etc

En utilisant seulement les quatre premiers termes de ce développement en série pour l'estimation de cette fonction, calculez les valeurs des erreurs vraies, absolues et relatives pour : 1. x = 20o et x = 40o, 2. x = 45o et x = 55o, 3. x = 70o et x = 90o.

1.4 Les calcul de la fonction trigonométrique cos(x) , x étant exprimé en radians, peut se trouver approximativement par un polynôme du troisième degré : Pour x inférieur à 45° : cos(x) ≈ 0,06706 x3 - 0,52749 x2 + 1 . Pour x égal ou supérieur à 45° : cos(x) ≈ 0,15201 x1

3 - 0,36948 x12 - 0,70448 x1 + 0,70711

avec x1 = x - π/4 . Calculez les erreurs vraies, absolues et relatives pour les angles : 1. x = 20o et x = 40o, 2. x = 60o et x = 80o, 3. x = 30o et x = 90o.

1.5 Écrivez le schéma structuré du calcul de cos(x) selon problème précédent et représentez l'organigramme de cette méthode de calcul.

35

1. Généralités sur les méthodes numériques

36

CHAPITRE 2

SOLUTION DES ÉQUATIONS NON LINÉAIRES Dans ce chapitre, nous voulons traiter les solutions numériques des équations à une ou plusieurs inconnues. Habituellement, il existe plusieurs méthodes de résolution pour trouver un résultat accep-table. Certains cas particuliers ne peuvent se traiter que par des méthodes spéciales et, en général, aucune méthode n'est capable de résoudre tous les problèmes pouvant se présenter. La solution de la famille des équations à une inconnue : f(x) = 0 comme par exemple l'équation algébrique du premier degré ou celle du second degré est traitée dans le cours d'algèbre élémentaire. Prenons comme exemple l'équation normée du second degré à coefficients réels, dite normée car le coefficient de l'inconnue x au plus fort exposant, ici 2, est égal à un. Cette équation peut s'écrire :

x2 + 2 b x + c = 0 .

Cette équation possède deux racines dans le cas général, soit :

x b b c1 22

, .= − ± −

La solution de l'équation du second degré présente normalement deux racines différentes, réelles ou complexes conjuguées, appelées également les zéros de l'équation. Dans beaucoup de problèmes, les équations à résoudre ne sont pas aussi simples et très souvent elles ne sont pas linéaires. Les exemples ci-après montrent quelques types d'équations légèrement différentes de celle du second degré.

x2 + 1/x – 2 = 0.

x2+ x0,5 – 2 = 0 .

x2 + ln x – 2 = 0 .

x2+ sin x – 2 = 0 .

Dans ces quatre équations, la solution consiste à trouver le ou les zéros, c'est-à-dire la ou les valeurs à donner à l'inconnue x de telle sorte que l'équation soit satisfaite. La forme générale de l'équation à une inconnue est :

f(x) = 0 .

La solution des équations transcendantes fait l'objet de ce premier sous-chapitre. Nous supposerons que la fonction : y = f(x) est continue dans le domaine d’investigation et se laisse suffisamment de fois dériver dans l'intervalle étudié [a,b] . Dans le second sous-chapitre, nous appliquerons les règles obtenues au cas des équations à plusieurs inconnues. La solution des équations polynomiales fera l'objet du chapitre 3 suivant.

2.1 ÉQUATION À UNE INCONNUE L'équation générale : f(x) = 0 est une expression mathématique dans laquelle x représente l'incon-nue à déterminer. Tous les zéros xi , réels ou complexes, dans le domaine d'étude [a,b] , qui satisfont cette équation sont à trouver. Pour les équations transcendantes, le ou les zéros ne peuvent se trou-ver que par approximations successives. 2.1.1 GÉNÉRALITÉS SUR LES MÉTHODES ITÉRATIVES En introduisant dans l'expression générale de la fonction : y = f(x) une valeur quelconque pour la variable indépendante x , l'évaluation de l'expression donne généralement un résultat non nul. Pour résoudre une équation à une inconnue par voie itérative, f(x) = 0, il est absolument nécessaire de choisir une valeur initiale pour l'inconnue, suffisamment proche de la valeur recherchée. Pour les zé-ros réels, cette valeur initiale à attribuer à l'inconnue x peut se trouver par une représentation gra-

37

phique de la fonction ou l’établissement d'une table numérique contenant les variables indépendantes xi et dépendantes yi de la fonction. 2.1.1.1 REPRÉSENTATION DE LA FONCTION : y = f(x) La fonction : y = f(x) est calculée dans un intervalle borné [a,b] en donnant à la variable indépen-dante x des valeurs successives x0, x1, x2, ... , xn , le pas du calcul étant habituellement constant, et en calculant les valeurs correspondantes de la variable dépendante y0, y1, y2, . . . , yn. Les divers points discrets sont reliés par une courbe continue représentant la fonction : y f(x) Le nombre de points à prendre en considération va dépendre de l'étendue du domaine [a,b] et des variations de la fonction. Il est recommandé, dans une première étude, de limiter le nombre de points à une vingtaine et d'ob-server l'allure graphique de la fonction.

Figure 2.1 Représentation de la fonction y = f(x) Représentation de deux fonctions partielles

Les zéros approximatifs seront trouvés aux abscisses des points d'intersection de la courbe avec l'axe Ox . Si l'étude se contente de dresser un tableau de valeurs, les zéros approximatifs seront situés aux valeurs de la variable x près d'un changement de signe de la fonction. Une valeur plus précise pourra se calculer en interpolant linéairement. Soit Pi(xi, yi) le point avant le changement de signe et Pj(xj, yj) le point après le changement de signe. La valeur approximative du zéro se trouve par , fig. 2.1 à gauche :

x x yx xy yi i i

j i

j i0 0= + − ⋅

−( ) .

Inconvénients de la méthode : 1. elle est incapable de trouver les zéros complexes ou imaginaires, cet inconvénient étant commun à toutes les méthodes proposées dans ce sous-chapitre. 2. si plusieurs zéros sont situés entre deux points de calcul, seul un point ou même aucun point n'est décelable. 2.1.1.2 REPRÉSENTATION DE DEUX FONCTIONS PARTIELLES Si la fonction à étudier n'est pas très simple ou si elle est décomposable en deux fonctions con-nues, il est plus efficace de séparer la fonction primitive en deux parties calculables aisément. Si la fonction à étudier est primitivement : y = f(x) ,

cette fonction est décomposée en deux fonctions partielles telles que , fig. 2.1 à droite :

y = f(x) = f1(x) + f2(x) ,

et l'équation à résoudre peut s'écrire : f(x) = f1(x) + f2(x) = 0 ,

38

ou encore : f1(x) = - f2(x) .

Il faut donc calculer les deux fonctions : y1 (x) = f1(x) et y2(x) = f2(x) entre les bornes [a,b], en prenant garde aux signes des termes de y2(x) . Les zéros réels sont trouvés, sur la représentation graphique des deux fonctions, aux abscisses des points d'intersection des deux courbes construites pour des mêmes valeurs de la variable indé-pendante x ou pour des valeurs différentes si c'est nécessaire. 2.1.1.3 VALEUR INITIALE APPROXIMATIVE DU ZERO En partant de la solution approximative x0 pour laquelle la fonction : y = f(x) est nulle, la méthode numérique adoptée doit permettre d'améliorer cette première valeur jusqu'à ce que l'erreur commise sur le résultat soit considérée comme satisfaisante. La répétition du même schéma de calcul appar-tient aux méthodes itératives des mathématiques numériques. La solution exacte sera désignée ici par x* et ne peut habituellement pas se trouver, en particulier si la valeur de x* n'est pas entière par suite des particularités du calcul numérique sur ordinateur. Le schéma de calcul, appelés également algo-rithme de la solution, prend la forme générale :

xi+1 = fonction de (xi,xi-1, ... )

dans laquelle xi+1, désigne la nouvelle valeur pour le calcul du zéro, xi étant la valeur précédente. La suite x1, x2, ... , xi-1, xi devrait converger vers la solution x* de l'équation f(x*) = 0 . Comme la solution exacte x* n'est pas connue au cours des calculs, le résultat est considéré comme satisfaisant si :

| xi+1 - xi | < eps,

avec eps l'erreur admissible sur le résultat. Les méthodes itératives simples donnent des résultats suffisamment précis, pour autant qu'elles soient convergentes, mais nécessitent toujours de nombreuses itérations et un long temps de calcul. Si la différence entre deux valeurs successives du zéro approximatif augmente, et non diminue, la mé-thode est divergente et n'atteint pas le but recherché. Les exigences posées à la solution ne doivent pas être placées trop hautes et l'erreur admissible ne doit pas être choisie trop petite, sinon il y a ris-ques d'erreurs d'arrondi d'où l'impossibilité d'atteindre la précision exigée. 2.1.2 MÉTHODE DE LA BIPARTITION Cette méthode simple, appelée également méthode de la dichotomie, consiste à choisir deux va-leurs initiales x1 = xmin et x2 = xmax encadrant le zéro approximatif telles que :

f(x1) • f(x2) < 0 .

L'intervalle [x1, x2] est ensuite divisé en deux parties égales. Le résultat est amélioré en calculant la valeur moyenne : xm = 0,5 (x1 + x2) . Si : f(x1) • f(xm) < 0 alors le zéro recherché se situe dans l'intervalle [x1,xml , f(x1) • f(xm) > 0 alors le zéro recherché se situe dans l'intervalle [xm,x2] , f(x1) • f(xm) = 0 alors le zéro vaut xm si x était différent de zéro, ce cas particulier étant vraiment exceptionne ! Les bornes du nouvel intervalle d'observation de la position du zéro sont à modifier en conséquence. Habituellement, le nombre de bipartitions des intervalles est introduit à moins que la précision exigée soit atteinte.

Avantages de la méthode : 1. Cette méthode est très simple à utiliser, car elle introduit seulement le calcul de la fonction et d'une moyenne arithmétique. 2. L'erreur absolue se trouve facilement à partir des bornes initiales et du nombre i de bipartitions par la relation :

39

l xi - x* l ≤ 2-i • (xmax - xmin) .

Inconvénients de la méthode : 1. La fonction analytique à discuter doit se calculer à chaque itération. 2. La convergence reste lente, donc médiocre.

Figure 2.2 Principe de la méthode de la bipartition Principe de la méthode de la sécante Donnons sous forme générale l'algorithme de la solution en utilisant la syntaxe proposée au chapitre No 1. Les variables introduites sont : f(xi) fonction y = f(x), x1,x2 valeurs inférieure et supérieure de la variable x, y1,y2 valeurs correspondantes de la fonction, xm valeur provisoire ou définitive du zéro approximatif, ym valeur correspondante de la fonction, n nombre d'itérations à prévoir, eps précision exigée ou erreur admissible i compteur lct variable logique de contrôle A L G 0 R I T H M E

Méthode de la bipartition Lis : x1,x2,n,eps y1 ⇐ f(x1) et y2 ⇐ f(x2) Si y1 * y2 > 0 , alors erreur ⇐i 0 Répète i ⇐ i+l xm ⇐ 0.5 (x1+x2) ym ⇐ f(xm) lct ⇐ (|x1-xm|<eps) ou (|x2-xm|<eps) si f(x1) * f(xm) < 0 alors x2 ⇐ xm sinon x1 ⇐ xm y1 ⇐ ym fin si jusqu'à ce que (i=n) ou lct Ecris : Zéro approximatif = xm Nombre d'itérations = i

40

Exemple Soit à résoudre l'équation transcendante

x - exp(x) • sin(x) = 0 ,

pour x compris dans l'intervalle [1,5] . La représentation de la fonction sous forme de courbe

y = x - exp(x) - sin(x)

dans ce domaine montre qu'un zéro réel est situé approximativement à x = 3 . Les conditions de dé-part sont : - borne inférieure : x1 = 1 - borne supérieure : x2 = 4 - nombre maximal d'itérations : 20 - précision exigée dans le résultat : 0,0001 Les valeurs moyennes calculées successivement sont :

i x(i) y(i)

1 2.500000 -4.79088328 2 3.250000 6.04038930 3 2.875000 -1.79469197 4 3.062500 1.37318708 5 2.968750 -0.37934765

6 3.015625 0.45244459 7 2.992187 -0.17948237 8 2.986328 -0.07755181 9 2.989258 -0.02608307 10 2.990723 -0.00022234

il 2.991455 0.01273968 12 2.991089 0.00625603 13 2.990906 0.00301618 14 2.990814 0.00139676

Après 14 itérations, la valeur du zéro est x = 2,990814, la nouvelle valeur calculée de la fonction étant : y = 0,00139676. 2.1.3 MÉTHODE DE LA SÉCANTE Dans cette méthode numérique, le zéro approximatif de la fonction est trouvé au point d'inter-section avec l'axe Ox de la sécante définie par deux points :

P1(x1,f(x1)) et P2(x2,f(x2)),

ces points devant être situés de part et d'autre du point pour lequel la fonction f(x*) = 0. La sécante coupe l'axe Ox en un point Pm(xm,0) définissant une nouvelle abscisse permettant de trouver une nouvelle valeur de la fonction et une nouvelle sécante. Si le produit f(x1) • f(x2) est plus petit que zéro, alors la borne supérieure est déplacée au point d'inter-section xm ; dans le cas contraire, la borne inférieure x1 est déplacée en xm . Pour obtenir la relation permettant de trouver l'abscisse du point d'intersection de la sécante avec l'axe Ox , écrivons l'équation de cette droite sous la forme :

(f(x2) - f(x1)) / (x2 – x1) = (f(x2) - f(xm)) / (x2 - xm),

avec f(xm) = 0 au point d'intersection recherché Pm. De cette relation, nous pouvons exprimer :

xm = x2 - (x2 – x1) • f(x2) / (f(x2) - f(x1)) .

Cette dernière relation est la formule recherchée permettant de trouver xm en fonction des deux abs-cisses connues x1 et x2 . Les variables utilisées dans l'algorithme sont :

f(xi) fonction y = f(x) à l’itération i, x1,x2 valeurs inférieure et supérieure de la variable x, y1,y2 valeurs correspondantes de la fonction,

41

xm valeur provisoire ou définitive du zéro approximatif, ym valeur correspondante de la fonction, n nombre d'itérations à prévoir, eps précision exigée ou erreur admissible i compteur lct variable logique de contrôle A L G 0 R I T H M E Méthode de la sécante Lis : x1,x2,n,eps Y1 ⇐ f(xl) et y2 ⇐ f(x2) Si y1 * y2 > 0 alors erreur i ⇐ 0 Répète i ⇐ i+1 xm ⇐ x2 -(x2-x1)*y2/(y2-y1) lct ⇐ |xl-xm|<eps ou |x2-xm|<eps ym ⇐ f(xm) si y1 * ym > 0 alors x1 ⇐ xm y1 ⇐ ym sinon x1 ⇐ xm y1 ⇐ ym fin si jusqu'à ce que (i=n) ou lct Ecris : Zéro approximatif = xm Nombre d'itérations = i Exemple : Pour résoudre la même équation transcendante que précédemment dans le même inter-valle, la programmation de l'algorithme donne le résultat suivant : - bornes initiales : x1 = 2 et x2 = 4, - erreur admissible eps = 0,0001 - zéro approximatif x = 2,990593 - nombre d'itérations 20. 2.1.4 MÉTHODE DE NEWTON-RAPHSON Cette méthode nécessite, à chaque itération, le calcul de la fonction : y = f(x) et de la fonction dérivée : y’ = f’(x) . Elle part d'une valeur approchée du zéro recherché et utilise la propriété géomé-trique de la tangente à une courbe. Il faut donc programmer deux fonctions analytiques : la fonction y(x) et la fonction y’(x) qu'il faut être capable de savoir trouver. Pour le point de départ de cette méthode itérative, la pente de la tangente à la courbe au premier point adopté, soit x0 , vaut y’ = f'(x0) et l'intersection de cette tangente avec l'axe Ox se trouve à l'ab-scisse x, tel que :

x1 = x0 - f(x0)/f’(x0) .

La formule de l'algorithme de la méthode de Newton-Raphson s'écrit facilement sous la forme générale :

x x xxi i

i

i

ff+ = −1

( )' ( )

.

avec : xi+1 nouvelle valeur approchée du zéro.

42

Cette formule est utilisée jusqu'à ce que l'erreur absolue | xi+1 – xi | soit plus petite que la valeur admissible fixée au départ des itérations. La méthode ne donne pas de résultat satisfaisant ou même ne converge pas vers la valeur du zéro recherché x* si : 1. f’(xi) = 0, car la tangente à la courbe est horizontale; 2. f"(xi) = 0, lorsque f(xi) = 0, 3. f’’’(xi) / f’(xi) < 0 lorsque f(xi) = 0. Les variables et entités nécessaires au calcul itératif sont : x variable indépendante eps erreur admissible sur le résultat n nombre maximal d'itérations i compteur fny(x) fonction y = f(x) fny1(x) fonction y’ = f'(x) dtx rapport correcteur A L G 0 R I T H M E

Méthode de Newton-Raphson Lis : x,eps,n ⇐i 0 Répète i ⇐ i+1 dtx ⇐ fny(x)/fnyl(x) x ⇐ x-dtx jusqu'à ce que (|dtx|<eps) ou (i=n) Ecris : zéro approché = x nombre d'itérations = i

Figure 2.3 Méthode de Newton-Raphson avec calcul analytique de la dérivée Méthode de Newton-Raphson avec calcul numérique de la dérivée Exemple : Soit à résoudre la même équation transcendante : x - exp(x) · sin(x) = 0 dans le même intervalle [1,5]. Les deux fonctions à programmer sont : y = x - exp(x) · sin(x) y’= 1 - exp(x) · (sin(x) + cos(x)) En introduisant les conditions initiales suivantes : - valeur approximative du zéro : 4.0 - erreur maximale sur le résultat 0.0001 - nombre maximal d'itération : 10 le calcul donne la table suivante :

43

Numéro x y 1 3.41903187 11.78369959 2 3.11483165 2.51198794 3 3.00522748 0.26042973 4 2.99096406 0.00404761 5 2.99073529 0.00000103 6 2.99073523 0.00000000

Il suffit donc de 6 itérations pour obtenir un résultat satisfaisant. 2.1.5 MÉTHODE DE NEWTON-RAPHSON SANS DÉRIVÉE ANALYTIQUE Une des difficultés majeures de la méthode de Newton-Raphson est le calcul de la fonction déri-vée car les règles simples du calcul différentiel sont malheureusement très vite oubliées dans la pra-tique industrielle courante. C'est une des raisons pour laquelle la méthode de Newton-Raphson n'est pas implémentée dans la plupart des calculateurs manuels. La méthode proposée ici introduit une détermination approximative de la valeur de la dérivée par une méthode numérique. Elle consiste à ajouter et retrancher à la variable indépendante, représentant le zéro approché, une valeur faible, à calculer la différence des fonctions en ces deux points, et à diviser ce résultat par la différence. La dérivée numérique sert alors de dénominateur dans le terme cor-recteur. L'inconvénient de cette méthode est le calcul de deux fonctions à chaque itération. Les iden-tificateurs de variables et entité sont :

x variable indépendante eps erreur admissible sur le résultat n nombre d'itérations i compteur fny(x) fonction : y = f(x) detx ajout pour calcul de la dérivée deltx terme correcteur y1 dérivée approximative A L G 0 R I T H M E

Méthode de Newton-Raphson sans fonction dérivée Lis : x,eps,n Si |x|<1.0 alors detx ⇐ 0.001 sinon detx ⇐ 0.0001*|x| i ⇐ 0 Répète i ⇐ i+l y1 ⇐ (fny(x+detx)-fny(x-detx))/(2*detx) deltx ⇐ fny(x)/y1 x ⇐ x-deltx jusqu'à ce que (|deltx|<eps) ou (i=n) Ecris : zéro approché = x nombre d'itérations = i Exemple : Cette méthode est introduite pour résoudre la même équation dans les mêmes conditions initiales que précédemment Le tableau des valeurs calculées est donné ci-après.

44

Numéro x y 1 3.41903186 11.78369936 2 3.11483166 2.51198803 3 3.00522749 0.26042984 4 2.99096406 0.00404762 5 2.99073529 0.00000103 6 2.99073523 0.00000000 Le résultat est très semblable à celui de la méthode avec programmation des deux fonctions : fonction fondamentale et fonction dérivée. 2.1.6 MÉTHODE ITÉRATIVE GÉNÉRALE Cette méthode, dite itérative générale, consiste à séparer l'équation à résoudre en deux parties, la partie gauche devant contenir la variable indépendante ou l'inconnue y2 = f2(x) , la partie droite le reste de l'équation y1 = f1(x) , compte tenu des changement de signes. La fonction à égaler à zéro : f(x) = 0 sera écrite :

f(x) = x – f1(x) = 0,

ou plus simplement :

x = f1(x) .

En partant d'une valeur approchée du zéro réel, la formule d'amélioration du résultat s'écrit sim-plement :

xi+1 = f1(xi) .

Cette formule montre que la fonction f1(xi) est tout d'abord évaluée au moyen de la valeur actuelle du zéro xi et le résultat du calcul est affecté à l'inconnue xi+1 utilisée au pas suivant. La substitution s'effectue jusqu'à ce que l'erreur absolue soit inférieure à l'erreur admissible.

Convergence Cette méthode ne conduit pas obligatoirement à une suite de valeurs approximatives de l'incon-nue xi tendant vers la valeur recherchée x* . Considérons les deux membres de la formule d'amé-lioration du résultat comme appartenant à deux fonctions différentes. Représentons graphiquement ces deux fonctions dépendantes :

y1 = f1(x) et y2 = f2(x) ,

en donnant des valeurs successives à la variable indépendante x . La première fonction est habituel-lement une courbe, la seconde est une droite passant par l'origine, de pente unitaire positive. L'abs-cisse du point d'intersection des deux courbes est la valeur exacte du zéro recherché. La qualité de la convergence dépend directement de la valeur de la dérivée y’1 = f'1(x) aux environs du zéro à trouver. Les conditions de convergences, visibles sur la fig. 2.4, peuvent se donner par les règles suivantes : 1. si | f'1(xi) | ≤ 0,1 alors la convergence est excellente. 2. si 0,1 < l f'1(xi) l ≤ 0,5 alors la convergence est satisfaisante 3. si 0,5 < l f'1(xi) l < 1,0 alors la convergence est médiocre. 4. si l f'1(xi) l ≥ 1,0 alors il n'y a pas de convergence du tout. Les valeurs successives des xi divergent.

45

Figure 2.4 Représentation graphique de la convergence avec pentes positives (sur la première ligne) et négatives (sur la seconde ligne) de la fonction y1 = f1(x) . Amélioration de la convergence Si la convergence est médiocre, voire même si elle n'existe pas du tout, le calcul itératif du zéro s'effectue au moyen de la transformation proposée ci-après. Soustrayons, de chaque côté de la for-mule de la méthode itérative générale, le produit k x , k étant une constante à choisir :

xi+1 – k xi+1 = f1(xi) - k xi ,

soit : xi+1 = (f(xi) - k xi) / (1 - k) .

La constante k est choisie égale à la valeur moyenne de la dérivée f’1(xi) calculée dans l'intervalle d'étude. Dans les calculs manuels, cette valeur peut être arrondie pour ne pas compliquer les opéra-tions arithmétiques. Dans les calculs par programme, la dérivée se trouve par une méthode numéri-que en évaluant le second membre de la relation de la méthode itérative. Dans l'algorithme proposé ci-après, le calcul de la constante k s'effectue au moyen de la pente de la sécante entre deux points situés de part et d'autre du zéro provisoire. Un cas particulier est repré-senté par k = 1,0 ou très près de zéro. Les variables utilisées dans l’algorithme sont : x valeur approchée du zéro xn nouvelle valeur de x detx incrément pour le calcul approximatif de y eps erreur admissible sur le résultat k facteur de correction

46

i compteur d'itérations lc variable logique de contrôle fnit expression du second membre, fonction A L G 0 R I T H M E

Méthode itérative générale

Lis : x,eps,n Si |x| < 1.0 alors detx ⇐ 0.001 sinon detx ⇐ 0.0001*|x| ⇐i 0 Répète i ⇐ i+l k ⇐ (fnit(x+detx)-fnit(x-detx))/(2*detx) si |l-k | < 0.03 alors si k < 1.0 alors k ⇐ 0.97 sinon k ⇐ 1.03 xn ⇐ (fnit(x) - k*x)/(1-k) lc ⇐ |xn-x| < eps x ⇐ xn jusqu'à ce que lc ou (i=n) Ecris : zéro approché = x nombre d'itérations = i Exemple : L'algorithme est utilisé pour résoudre la même équation transcendante, soit : x - exp(x)*sin(x) 0 . Les valeurs introduites sont : valeur approximative du zéro 4 erreur admise sur le résultat 0.0001 nombre d'itérations : 10 Le programme donne les résultats suivants :

Numéro k x (i) f (x(i)) 1 -77.0077 3.41903186 -11.78369937 2 -37.7367 3.11483166 -2.51198804 3 -21.9187 3.00522749 -0.26042984 4 -17.2586 2.99096406 -0.00404762 5 -16.6926 2.99073529 -0.00000103 6 -16.6836 2.99073523 0.00000000

Les résultats sont exactement les mêmes que ceux trouvés par la méthode de Newton-Raphson sans calcul de la fonction dérivée. 2.1.7 CONVERGENCES DES MÉTHODES Toutes les méthodes itératives proposées peuvent s'écrire sous la forme algorithmique suivante :

A partir d'une valeur initiale x0

calcule : xi+1 ⇐ g(xi)

où g(xi) est la formule d'amélioration du zéro. Cette fonction doit permettre d'obtenir une suite de valeurs numériques tendant vers la valeur du zéro exact de l'équation lorsque i augmente indéfini-ment. Cela signifie que :

x* = g(x*) dans l'intervalle [a,b]

doit être identique à f(x*) = 0 dans le même intervalle.

47

La fonction g(x) est dite contractante s'il existe une constante L , 0 ≤ L ≤ 1, telle que pour toute valeur prise dans l'intervalle [a,b], nous pouvons poser : | g(x1) - g(x2) | ≤ L | x1 – x2 |.

Si la fonction g(x) est dérivable, il suffit pour que cette fonction soit contractante que :

| g’(x) | < 1

pour n'importe quel x appartenant à l'intervalle [a,b] . Exemple : Méthode de Newton-Raphson : si la dérivée seconde existe au zéro recherché x*, soit y’ = f"(x*) # 0, alors : g'(x*) = (f(x*) ⋅ f’’(x*)) / (f’(x*))2

avec : f(x*) = 0 , donc g'(x*) = 0. Il en découle que la fonction g(x*) est toujours contractante pour les racines simples. Examinons de plus près la convergence de la méthode de Newton-Raphson en prenant une valeur quelconque de l'inconnue xi . La formule générale peut s'écrire :

xi+1 = xi - f(xi) / f’(xi) = g(xi) .

Comme cité ci-dessus, la convergence est assurée si | g'(xi) | < 1 pour toute valeur xi près du zéro recherché x*. Calculons cette dérivée et nous trouvons le résultat proposé pour g'(x) . Cette dérivée devant être, en module, inférieure à 1 , il en résulte l'inégalité :

| f(xi) . f’’(xi) ⎜ < (f’(xi))2.

Cette relation montre que f’(xi) ne doit pas être nulle, sinon l'inégalité n'a plus de sens. De plus, si f(xi) – f’(xi) > 0 , la convergence a lieu d'un seul côté du zéro x*. Il serait souhaitable que le point de départ soit choisi de telle sorte que les deux fonctions aient le même signe. Développons la fonction f(x) au point xi près de la solution x* par la formule de Taylor en limitant ce développement aux trois premiers termes de la série :

f(x) = f(xi) + f’(xi) . (x - xi) + 0,5 f’’(ζi) . (x - xi)2 ,

avec : ζ Œ (x,xi) . Pour x = x*, cette fonction f(x) devient nulle et nous pouvons écrire :

f(xi) + f’(xi) - (x* - xi) + 0,5 f’’’(ζ i) - (x* - xi)2 = 0

avec ζ Œ (x*,xi) . Divisons cette relation par f’(xi) # 0 , alors :

- f(xi) / f’(xi)= (x* - xi) + [0,5 f’’(ζi) - (x* - xi)]2 / f’(xi) .

Le membre à gauche du signe d'égalité représente exactement le terme correcteur de la formule de Newton-Raphson. L'égalité exprime la correction à apporter à la nouvelle valeur du zéro soit :

xi+1 - x* = [0,5 f’’(ζi) / f’(xi)] ⋅ (xi – x*)2.

Il en résulte que la méthode de Newton-Raphson converge environ proportionnellement au carré de l'erreur. C'est donc une méthode du deuxième ordre. Les autres méthodes proposées ici convergent proportionnellement à l'erreur.

2.2 SYSTÈME D'ÉQUATIONS À PLUSIEURS INCONNUES De nombreux problèmes font apparaître un système d'équations non linéaires à plusieurs inconnues. Dans le cas général, il n'existe malheureusement pas de solution ou de méthode unique pour ce genre de problème.

48

2.2.1 INTRODUCTION Écrivons la formule de récurrence de Newton-Raphson sous une forme légèrement différente de celle vue précédemment :

Dxi = xi+1 – xi = f(xi) / f’(xi) ,

ou encore : f’(xi) . Dxi = - f(xi) .

Introduisons le développement du système d'équations non linéaires dans l'étude dont il s'agit de trou- ver la solution.

.

fff

f

F X

1 n n

2 n n

3 n n

n n n

i

( , , , , ... ,( , , , , ... ,( , , , , ... ,

.......................................( , , , , ... ,

( )

F x x x x x xx x x x x xx x x x x x

x x x x x x

1 2 3 4 1

1 2 3 4 1

1 2 3 4 1

1 2 3 4 1

000

0

===

=H

GGGGG

I

K

JJJJJ=

n

Pour un système d'équations non linéaires, la méthode générale de résolution selon Newton-Raphson peut se mettre sous la forme générale suivante :

F’(Xi) . DXi = - F(Xi) ,

où : DXi = Xi+1 – Xi et F’(Xi) est une matrice carrée de forme :

F(X )

f f f ff f f ff f f f

f f f f

i

n

n

n

n n n n

=

∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂

∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂

F

H

GGGGG

I

K

JJJJJ

1 1 1 2 1 3 1

2 1 2 2 2 3 2

3 1 3 2 3 3 3

1 2 3

/ , / , / , ... // , / , / , ... // , / , / , ... /... ... ... ... .../ , / , / , ... /

.

x x xx x xx x x

x x x

xxx

x

La correction à apporter peut alors s'écrire simplement par :

DXi = Xi+1 – Xi = - F’-1 (Xi) . F(Xi) .

La méthode de Newton-Raphson linéarise le système d'équations non linéaire autour de la solution recherchée. À chaque itération, il faut résoudre un système d'équations linéaires dans lequel les DXi, sont les inconnues jusqu'à ce que Xi+1 soit suffisamment proche de la solution recherchée, compte tenu de l'erreur admise. 2.2.2 SYSTÈME DE DEUX ÉQUATIONS NON LINÉAIRES 2.2.2.1 PRINCIPE DE LA MÉTHODE DE RÉSOLUTION À part le cas général de n équations non linéaires à n inconnues, les applications fréquentes à la géométrie plane se résument très souvent à un système à deux équations non linéaires. Pour ce gen-re de système, nous pouvons écrire :

F Xff

( )( , )( , )

.=FHG

IKJ

1 1 2

2 1 2

x xx x

La formule de récurrence, pour ce cas particulier de deux équations non linéaires, s'écrit finalement sous la forme suivante :

49

xx

xx

x xx x

x xx x

1

2 1

1

2

1 1 1 2

2 1 2 2

11 1 2

2 1 2

FHGIKJ =FHGIKJ −

∂ ∂ ∂ ∂∂ ∂ ∂ ∂FHG

IKJ ⋅FHG

IKJ+

i i

f ff f

ff

/ // /

( ,( ,

.i

Cette relation matricielle montre que l'amélioration des valeurs initiales passe par la solution d'un système de deux équations linéaires. La méthode à introduire peut être par exemple la relation de Cramer car le déterminant se calcule très facilement dans cette relation. 2.2.2.2 MÉTHODE DE RÉSOLUTION Soit deux équations non linéaires, avec les deux variables x et y, de forme :

f1(x,y) = 0 , f2(x,y) = 0 .

Calculons les valeurs des dérivées partielles à introduire dans la matrice F’(Xi) par :

f f

xf f

y

f fx

f fy

111

121

212

222

=∂∂

=∂∂

=∂∂

=∂∂

, ,

, .

Le système d'équations linéarisées peut aussi s'écrire sous la forme simple suivante :

f ff f

ff

1

2

11 12

21 22

FHG

IKJ ⋅FHGIKJ = −FHGIKJ

ΔΔ

xy

.

avec : Δx la correction à apporter sur la valeur x, Δy la correction à apporter sur la valeur y. La solution du système d'équations, c'est-à-dire la détermination des deux corrections, s'effectue par la méthode de Cramer, soit : 1. Valeur du déterminant : det = f11 . f22 - f12 . f21 , 2. Valeur des numérateurs : xnum = - f1 ⋅ f22 + f12 - f2, ynum= - f11 ⋅ f22 + f21 ⋅ f1, 3. Valeur des corrections : deltax = xnum / det , deltay = ynum / det . 4. Nouvelle valeur des inconnues : xi+1 = xi + deltx , yi+1 = yi + delty . L'algorithme de la solution d'un système de deux équations non linéaires se laisse facilement écrire sous la forme suivante. A L G 0 R I T H M E Méthode itérative pour un système de 2 équations non linéaires

Lis : x,y,eps,n i ⇐ 0 Répète i ⇐ i+1 f1 ⇐ f1(x,y) f2 ⇐ f2(x,y) f11 ⇐ f11(x,y) f12 ⇐ f12(x,y)

50

f21 ⇐ f21(x,y) f22 ⇐ f22(x,y) det ⇐ f11*f22-f21*f12 xnu ⇐ f12*f2-f1*f22 ynu ⇐ f21*f1-f11*f2 deltx ⇐ xnu/det delty ⇐ ynu/det x ⇐ x+deltx ⇐ y y+delty jusqu'à ce que abs(deltx)<eps ET abs(delty)<eps OU i ≥ n Ecris : zéros approchés = x y nombre d'itérations i 2.2.2.3 EXEMPLE NUMÉRIQUE Soit à trouver le point d'intersection d'une circonférence de rayon R = 5 avec une ellipse de demi-axes a = 8 et b 3. Les équations paramétriques des deux courbes sont :

- Équation du cercle : x2 + y2 - 25 = 0 . - Équation de l'ellipse : x2/64 + y2/9 - 1 = 0 .

Ces deux équations sont de la forme proposée soit f1(x,y) = 0 et f2(x,y) = 0. La recherche des coordonnées du point d'intersection du cercle et de l'ellipse s'effectue par la métho-de de Newton-Raphson. Les valeurs initiales introduites dans le calcul sont : Coordonnées approximatives du point d'intersection : x = 4,5 et y = 2,5 . Les valeurs calculées successivement sont données dans le tableau ci-après.

Numéro i Delta x Delta y Abscisse x Ordonnées y

1 -0.1813132 2.63637E-02 4.318687 2.526364 2 -3.80564E-03 -1.37502E-04 4.314881 2.526226 3 -1.76816E-06 0.0 4.314879 2.526226

1. Coordonnées du point d'intersection : x = 4,314879 , y = 2,526226 . 2. Valeur numérique des fonctions : f1(x,y) = - 3.814697E-06, f2(x,y) = - 5,960465E-08 3. Nombre d'itérations : i = 3 . Remarque complémentaire : La méthode proposée ici convient aux intersections de courbes pour lesquelles l’angle formé par les deux tangentes au point d’intersection est suffisamment grand. Lorsque l’angle tend vers zéro, la solution devient très difficile.

51

52

2.3 EXERCICES SUR LES ÉQUATIONS TRANSCENDANTES

2.1 Représentation des diverses fonctions : y = f(x) dans un domaine borné [a,b] à partir d'un cal-cul numérique par tableau et détermination, sur la représentation graphique, de tous les zéros réels dans les limites proposées entre crochets. Etudiez les équations suivantes : 1. 2 x3 + 4 x2 - 7 x - 120 = 0 [-5,10] 2. 0,5 [exp(x)+exp(-x)] - 2 x = 0 [0,5] 3. x cos(x) - 2 sin(x) = 0 [0,2,pi] 4. x2 - 2 ln(x) - 4 = 0 [0,6] 5. x - 0,75 [1 - sin(2 x)] = 0 [0,2 pi]

2.2 Représentation de deux fonctions distinctes y1 = f1(x) et y2 = f2(x) dans un domaine borné [a,b] à partir d'un calcul numérique par tableau et détermination, sur la représentation graphique, de ou des abscisses des points d'intersection des deux courbes. Etudiez les équations suivantes : 1. 3 exp(- 0,2 x) - 0,8 x + 4 = 0 [0,10] 2. 4,4 cos (2 x) + 1,3 x - 2,1 = 0 [0,2 pi] 3. 5 exp (-0,3 x) cos(1,5 x) - 0,2 x = 0 [0,2 pi] 4. 3 ln (0,8 x) - 0,2 x2 = 0 [0,6] 5. x3 - 2,9 x2 - 3,5 x + 12 = 0 [-5,5]

2.3 Résoudre, par la méthode de la bipartition, les équations transcendantes à une inconnue don-nées ci-dessous. Calculez la valeur du ou des zéros avec une précision de 0,001. Le ou les zéros ap-proximatifs seront déterminés par l'une des méthodes graphiques. Etudiez les équations suivantes en calculant chaque fois la valeur de l'ordonnée moyenne xm et la va-leur prise par la fonction. 1. 0,8 x2 - 1,5 cos(2 x) = 0 [-2,pi,0] 2. 1 - x3 + 0,2 sin(x) = 0 [0,2,pi] 3. 1,8 x + 0,65 ln(x) = 0 [0,2] 4. 0,8 x exp(x) – 2 = 0 [-5,5] 5. 0,5 + 1,2 sin(x) - x = 0 [0,pi]

2.4 Résoudre, par la méthode de la sécante, les équations transcendantes à une inconnue don-nées ci-dessous. Calculez la valeur du ou des zéros avec une précision de 0,001. Le ou les zéros approximatifs seront déterminés par l'une des méthodes graphiques à disposition. Etudiez les équations suivantes en dressant une table contenant la valeur de l'ordonnée moyenne xm et la valeur de la fonction : 1. 0,8 x3 - 3 x2 - 3 x + 12 = 0 [-5,5] 2. 0,8 x2 - 2 ln(2 x) + sin(4 x) = 0 [0,8] 3. 2 x sin(0,65 x) - 0,65 cos(2 x) = 0 [0,8] 4. 12 exp(-0,2 x) cos(2,5 x) - 2,5 = 0 [0,pi] 5. 5,5 (1 - exp(- 0,5 x)) - 3 = 0 [0,10]

53

2.5 Résoudre, par la méthode de Newton-Raphson, les équations transcendantes à une inconnue données dans l'exercice 2.1. Les valeurs à donner à x0 pour partir dans l'amélioration du résultat par itérations sont - Exercice 2.1.1 x0 = 3,8 - Exercice 2.1.2 x0 = 0,4 et x0 = 2,3 - Exercice 2.1.3 x0 = 4,5 - Exercice 2.1.4 x0 = 2,1 - Exercice 2.1.5 x0 = 0,4

Indiquez pour chaque itération les valeurs de l'inconnue, de la dérivée et de la fonction. L'erreur ad-missible est 0,0001 sur la valeur du ou des zéros.

2.6 Résoudre, par la méthode itérative générale, les équations transcendantes à une inconnue données dans l'exercice 2.2. Les valeurs à donner à x0 pour commencer dans la recherche du ou des zéros sont les suivantes : - Exercice 2.2.1 x0 = 6,0 - Exercice 2.2.2 x0 = 0,8 et x0 = 4,2 - Exercice 2.2.3 x0 = 1,2 et x0 = 3,6 - Exercice 2.2.4 x0 = 4,0 - Exercice 2.2.5 x0 = -1,5

L'erreur admissible dans la valeur du ou des zéros est 0,001. Utilisez si possible la méthode fonda-mentale et introduisez l'amélioration de la convergence seulement pour les points où cette dernière est médiocre.

54

3. Polynômes algébriques et zéros

CHAPITRE 3

POLYNÔMES ALGÉBRIQUES ET ZÉROS En algèbre élémentaire, on étudie la solution de système d'équations linéaires à 1, 2 ou 3 incon-nues. Ensuite, on passe des équations du premier degré à celles du second degré. La recherche des racines ou zéros des équations algébriques à une inconnue d'ordre supérieur appartient aux mé-thodes de l'algèbre dite supérieure. On appelle polynôme algébrique Pn(x) de degré n d'une indé-terminée x, l'expression générale suivante :

Pn(x) = an xn + an-1 xn-1 +... + a4 x4 + a3 x3 + a2 x2 + a1 x + a0 .

Les coefficients : an, an-1, . . . , a4, a3, a2, a1, a0 sont des constantes réelles ou complexes. Les puissances sont entières et positives, le degré du polynôme étant n.

3.1 PRINCIPALES PROPRIÉTÉS DES POLYNÔMES Nous limiterons l'étude, dans ce sous-chapitre, aux polynômes algébriques à coefficients ai réels. Nous donnons en introduction les principales propriétés des polynômes. 3.1.1 DIVISION DE DEUX POLYNÔMES ALGÉBRIQUES Soit un premier polynôme algébrique de degré n, P1n(x) , et un second polynôme algébrique de degré m, P2m(x) , avec m ≤ n. Le quotient Q(x) et le reste R(x) sont le quotient et le reste de la division du premier polynôme par le second. Il est possible d'écrire :

P1n(x) = P2m(x) . Qn-m(x) + R(x).

Le reste de la division du polynôme Pn(x) par le binôme (x - u) est la valeur prise par ce polynôme pour x = u : R(x = u) = Pn(x = u). Cette propriété importante et générale se démontre facilement en partant de l'expression de la preuve d'une division de polynômes :.

Pn(x) = (x - u) – Qn-1(x) + R0,

et si x = u, alors :

Pn(x=u) = (u - u) . Qn-1(u) + R0 = R0 . 3.1.2 NOMBRE DE ZÉROS D'UN POLYNÔME ALGÉBRIQUE Soit à calculer toutes les racines ou zéros d'une équation polynomiale à coefficients réels. Cette équation s'écrit sous la forme générale :

f(x) = Pn(x) = 0.

ou encore sous la forme développée suivante :

f(x) = Pn(x) = an xn + an-1 xn-1 +. . . + a4 x4 + a3 x3 + a2 x2 + a1 x + a0 = 0 .

L'équation polynomiale est dite normée lorsque le coefficient de l'inconnue x au plus fort exposant est égal à 1. L'équation polynomiale normée s'écrit alors :

f(x) = Pn(x) = xn + an-1 xn-1 + - - . + a4 x4 + a3 x3 + a2 x2 + a1 x + a0 = 0 .

Si le polynôme Pn(x) est divisible exactement par (x - u), donc sans reste, alors u est un zéro de l'équation polynomiale f(x) = 0. Les zéros d'un polynôme à coefficients réels peuvent être réels ou complexes conjugués. Les zéros complexes sont conjugués si tous les coefficients du polynôme sont réels. Dans ce cas, ils prennent la forme générale :

55

3. Polynômes algébriques et zéros

x1 = b + c j et x2 = b – c j avec j = (-1)1/2 .

Une équation polynomiale de degré n possède exactement n zéros réels ou complexes. L'existence des zéros réels ou complexes n'est pas facile à démontrer et dépasse les limites de ce cours élémentaire. Un théorème général, valable pour les polynômes algébriques à coefficients complexe, dit que tout polynôme dont le degré est supérieur ou égal à un possède au moins un zéro. 3.1.3 RELATIONS DE VIETA Soient x1, x2, x3, . . . , xn les zéros réels ou complexes d'une équation polynomiale normée. Cette équation peut s'écrire sous deux formes différentes :

f(x) = Pn(x) = xn + an-1 xn-1 + - - . + a4 x4 + a3 x3 + a2 x2 + a1 x + a0 = 0 .

ou f(x) = Pn(x) = (x – x1) (x - x2) (x - x3) - - . (x – xn-1) (x - xn) = 0 .

En développant cette deuxième expression et en identifiant les coefficients de même puissance de x, les relations de Vieta deviennent :

an-1 = - (x1 + x2 + x3 + . . . + xn-1 + xn) ,

an-2 = x1 x2 + xI x3 + xI x4 + . . .+ xn-1 xn ,

an-3 = - (x1 x2 x3 + x1 x2 x4 + + xn-2 xn-1 xn) ,

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

a1 = (-1)n-1 (x1 x2 . . . xn-1 + x1 x2 . . . xn-1 xn + . . . + x2 x3 . . . xn) ,

a0 = (-1)n (x1 x2 x3 . . . xn-2 xn-1 xn) .

Le premier coefficient de l'équation polynomiale normée est égal à la somme de tous les zéros, changée de signe. Le dernier coefficient de l'équation polynomiale est égal au produit de tous les zé-ros multiplié par (-1) à la puissance n. Les formules de Vieta permettent de reconstituer assez facile-ment le polynôme algébrique. 3.1.4 LIMITE DES MODULES DES ZÉROS Soit de nouveau l'équation polynomiale normée :

Pn(x) = xn + an-1 xn-1 + - - . + a4 x4 + a3 x3 + a2 x2 + a1 x + a0 = 0 .

Si γ = max |ai|, chaque zéro xi, réel ou complexe de l'équation polynomiale, satisfait la condition sui-vante :

| xi | £ 1 + γ.

Cette expression signifie que la représentation des zéros réels et complexes dans le plan complexe est située à l'intérieur ou à la limite sur le pourtour d'un cercle de rayon 1 + γ. Il est donc toujours recommandé de normer l'équation polynomiale avant toute étude ou transformation de polynômes. 3.1.5 PROPRIÉTÉS DES ZÉROS COMPLEXES Si xi est un zéro complexe de l'équation polynomiale à coefficients réels, alors le nombre comple-xe conjugué est aussi un zéro de l'équation. Soient deux zéros complexes conjugués :

xi = b + c j et x2 = b – c j .

Le produit de ces deux nombres donne :

(x – b – c j) - (x – b + c j) = x2 – 2 b x + (b2 + c2) .

Tout polynôme algébrique Pn(x) à coefficients réels peut être mis sous forme de produits dont les fac-teurs sont : 1. le coefficient an du premier terme.

56

3. Polynômes algébriques et zéros

2. d'un ou de plusieurs binômes à coefficients réels de la forme x - xi . 3. d'un ou de plusieurs trinômes du second degré à coefficients réels correspondant aux couples de zéros complexes conjugués. 3.1.6 PLUS GRAND COMMUN DIVISEUR DE DEUX POLYNÔMES Soient deux polynômes algébriques P(x) et Q(x). Un polynôme T(x) est dit diviseur commun des deux premiers polynômes si P(x) et Q(x) sont divisibles exactement par T(x). Si les deux polynômes P(x) et Q(x) sont divisibles seulement par un polynôme de degré nul, alors ces deux polynômes sont dits premiers entre eux. Le plus grand commun diviseur de deux polynômes non nuls P(x) et Q(x) est un polynôme D(x) tel que D(x) soit le diviseur commun des deux polynômes donnés et que D(x) soit divisible par tout poly-nôme commun de P(x) et Q(x). La recherche du plus grand commun diviseur de deux polynômes algébriques peut s'effectuer au moyen de l'algorithme d'Euclide, dit aussi algorithme de la division successive. La méthode est la sui-vante : 1. soient les deux polynômes P(x) et Q(x), on divise P(x) par Q(x) ce qui fait apparaître habituelle-

ment un reste R1(x). 2. on divise ensuite Q(x) par le polynôme R1(x) ce qui donne un reste R2(x). 3. on continue la division successive tant qu'il y a un reste. 4. lorsque la division s'effectue sans reste, la procédure est arrêtée et le reste Rk(x) , diviseur du

reste précédent Rk-1(x) est le plus grand commun diviseur des deux polynômes. 3.2 CALCUL D'UN POLYNÔME PAR LE SCHÉMA DE HORNER

Nous avions cité dans l'introduction aux mathématiques numériques que l'évaluation d'un poly-nôme algébrique ne devait jamais s'effectuer en élevant les divers termes contenant la valeur x à la puissance i correspondante. 3.2.1 ÉVALUATION D'UN POLYNÔME PAR LA MÉTHODE DE HORNER Soit à calculer la valeur du polynôme Pn(x) pour une valeur bien déterminée de x. Pour effectuer cette opération, la méthode manuelle consisterait à évaluer les puissances successives, de multiplier les résultats par les coefficients correspondants du polynôme et enfin à sommer les résultats partiels. Comme nous l'avons déjà vu dans l'introduction, il est possible de trouver le même résultat par l'ex-pression :

Pn(x) = (( . . . (((an x + an-1) x + an-2) x + an-3) x . . .+ a1) x + a0 ,

expression ne contenant que des sommes et des produits. Ces mêmes opérations peuvent s'effectuer au moyen de la méthode de Horner dite schéma de Horner. Ce schéma a pour but de faciliter l'évaluation manuelle du polynôme par une disposition ap-propriée des coefficients et des produits partiels. Montrons le principe de ce calcul pour la valeur x = u.

S c h é m a d e H o r n e r an an-1 an-2 an-3 . . . . . . a2 a1 a0

x = u bn u bn-1u bn-2 u . . . . . . b3 u b2 u b1 u _______________________________________________________________________ bn bn-1 bn-2 bn-3 . . . . . . b2 b1 b0

57

3. Polynômes algébriques et zéros

Le dernier terme b0 est la valeur du polynôme pour x = u, soit b0 = Pn(x=u). La formule de récurence pour le schéma de Horner s'écrit comme suit :

bn = an, bn-1 = an-1 + b0 u, bn-2 = an-2 + bn-1 u . . . . . . . . . . . . . bi = ai + bi-1 u , . . . . . . . . . . . . . b0 = a0 + b1 u = Pn(x = u) . Tous les termes bi de ces formules, à part le premier, se calculent par les mêmes opérations algé-briques. 3.2.2 RESTE DE LA DIVISION D'UN POLYNÔME PAR (x - u) À partir de la relation générale de la division de deux polynômes algébriques et de sa justification, appliquées au cas particulier de la division du polynôme primitif Pn(x) par le binôme (x - u), nous pou-vons écrire :

Pn(x) = (x - u) Pn-1, (x) + R .

Le reste de la division du polynôme Pn(x) par (x - u) s'obtient en remplaçant x par u dans ce polynôme. Ce reste est égal à la constante b0 dans le schéma de Horner : reste = b0. Si le reste est nul, le polynôme est exactement divisible par (x - u). Les coefficients bn à b, sont les coefficients et constante du polynôme Pn-1,(x). 3.2.3 DÉRIVÉE PREMIÈRE D'UN POLYNÔME ALGÉBRIQUE Calculons la dérivée première, par rapport à la variable x , du polynôme donné Pn(x). En partant de l'expression générale du polynôme, pour x = u, nous obtenons :

P’n(x) = dPn(x) / dx = Pn-1(x) + (x - u) P'n-1(x) .

En introduisant la valeur particulière x = u dans cette relation, il vient :

P’n(x) = Pn-1(x=u).

Il en résulte que la dérivée du polynôme Pn(x) , pour x = u, se trouve en évaluant le polynôme algébrique Pn-1(x) pour x = u . Le terme c1 dans le schéma de Horner représente la valeur de la déri-vée première de ce polynôme.

S c h é m a d e H o r n e r Fonction fondamentale et dérivée première pour x = u

an an-1 an-2 an-3 . . . . . . a2 a1 a0

x = u bn u bn-1u bn-2 u b3 u b2 u b1 u _______________________________________________________________________ bn bn-1 bn-2 bn-3 b2 b1 b0

x = u cn u cn-1 u cn-2 u c3 u c2 u ____________________________________________________________

cn cn-1 cn-2 cn-3 c2 c1 = P’n(x=u) / 1! Le dernier terme de la cinquième ligne est égal à la dérivée du polynôme Pn(x) par rapport à x. L'évaluation de la valeur du polynôme et de sa dérivée par rapport à x , pour une même valeur de x = u , pour une indéterminée variant de xmin à xmax par incrément de deltx peut se trouver par l'algori-thme donné ci-après.

58

3. Polynômes algébriques et zéros

A L G 0 R I T H M E Calcul de la valeur d'un polynôme algébrique et de sa dérivée par la méthode de Horner

Lis : n, xmin, xmax, deltx Introduction des coefficients a(i) Pour i ⇐ n,0,-1 lis a(i) fin faire i m ⇐ entier ⎮(xmax-xmin)/deltx⎮ Calcul du polynôme et de la dérivée Pour i ⇐ 0,m,1 p ⇐ a(n) ; d ⇐ a(n) x ⇐ xmin+i*deltx Pour j ⇐ n-1,0,-1 p ⇐ a(j)+p*x si j ≥ 1 alors d ⇐ p+d*x fin faire j Écris : x,p,d fin faire i Cet algorithme écrit un tableau de valeurs, polynôme et dérivée, dans les limites proposées par l'utilisateur [xmin,xmax], l'incrément étant deltx. Le nombre de pas m doit être un nombre entier et l'incrément deltx devrait correspondre au désir de l'utilisateur. Donc la différence entre les limites devrait se diviser exactement par l'incrément. 3.2.4 SCHÉMA COMPLET DE HORNER Le schéma de Horner permet non seulement de trouver la valeur du polynôme et de sa dérivée première pour une valeur constante x = u , mais aussi de calculer toutes les dérivées successives. Le schéma de Horner est construit, pour une valeur constante de l'indéterminée, jusqu'à n'obtenir que le premier coefficient du polynôme, écrit en ordre des puissances décroissantes. Le dernier coefficient du schéma est égal à la dérivée du polynôme divisée par la factorielle de l'ordre de la dérivée.

S c h é m a d e H o r n e r Fonction fondamentale et toutes les dérivées pour x = u

an an-1 an-2 an-3 . . . . . . a2 a1 a0

x = u bn u bn-1u bn-2 u b3 u b2 u b1 u _______________________________________________________________________ bn bn-1 bn-2 bn-3 b2 b1 b0

x = u cn u cn-1 u cn-2 u c3 u c2 u ______________________________________________________________

cn cn-1 cn-2 cn-3 c2 c1 = P’n(x=u) / 1!

x = u dn u dn-1 u dn-2 u d3 u _____________________________________________________

dn dn-1 dn-2 dn-3 d2 d2 = P’’n(x=u) / 2! . . . . . . . . . . . . . . . . . . . . . . . . . . x = u mn u __________________________

nn = Pv’n(x=u) / n!

59

3. Polynômes algébriques et zéros

3.3 ZÉROS DES POLYNÔMES ALGÉBRIQUES La recherche des zéros d'une équation polynomiale à coefficients réels est une opération assez fréquente dans l'étude du comportement des systèmes linéaires physiques et techniques. Le calcul numérique des zéros devient difficile lorsque les zéros sont très rapprochés les uns des autres ou lorsque l'équation algébrique contient des racines confondues. Il n'existe pas de méthode absolument universelle et sûre pour effectuer cette recherche. 3.3.1 ZÉROS DU TRINÔME DU SECOND DEGRÉ La méthode de calcul des zéros du trinôme du second degré est étudiée en détail en algèbre élé-mentaire. Le trinôme du second degré :

a x2 + b x + c = 0 ,

s'écrit, après division par le premier coefficient a , avec a # 0 :

x2 + 2 B x + C = 0 .

Les deux zéros de l'équation du second degré sont alors calculables par :

x B B1 22

, .= − ± −C

Le signe du discriminant D = B2 - C impose la nature des racines de l'équation : - si D > 0 : les deux zéros sont réels et distincts. - si D = 0 : les deux zéros sont réels et confondus. - si D < 0 : les deux zéros sont complexes et conjugués. 3.3.2 MÉTHODE ITÉRATIVE POUR LES ZÉROS RÉELS 3.3.2.1 EXPOSÉ DE LA MÉTHODE Soit l'équation polynomiale Pn(x) = 0 . Pour trouver les zéros réels de cette équation, normons tout d'abord l'équation en la divisant par le premier coefficient an :

Pn(x) = xn + an-1 xn-1 + . . . + a4 x4 + a3 x3 + a2 x2 + a1 x + a0 = 0 .

S'il existe un ou plusieurs zéros réels dans cette équation à coefficient réels, le module de ces zéros ne dépasse par la valeur (| ai |max + 1) , ce qui permet de limiter l'étude de la fonction entre :

– (| ai |max + 1) ≤ x ≤ (| ai |max + 1) .

Pour démarrer dans le calcul du premier zéro réel, s'il existe, il faut connaître la valeur approximative de cette grandeur, par exemple en construisant la courbe y = Pn(x) dans le domaine d'étude. En utilisant la méthode de Newton-Raphson, nous pouvons écrire :

x x P xP xi i

n i

n i+ = −1

( )' ( )

.

Le quotient de la valeur numérique du polynôme par la valeur numérique de sa dérivée peut se trouver au moyen du schéma de Horner car ce rapport est égal à b0 / c1 . Le calcul est poursuivi jus-qu'à ce que l'erreur devienne inférieure à la précision exigée. Très souvent, les exposés de méthodes numériques itératives proposent de commencer le calcul avec l'approximation :

x0 = −aa

0

1

.

Cette valeur de départ n'est pas souvent recommandée et une vérification détaillée de la variation de la fonction s'impose presque toujours.

60

3. Polynômes algébriques et zéros

3.2.2.2 EXEMPLE DE CALCUL DES ZÉROS D'UN POLYNÔME Soit à résoudre l'équation polynomiale du quatrième degré par la méthode itérative proposée : x4 + 3 x3 + 4 x2 + x - 3 = 0 . Les modules des zéros réels et complexes sont compris entre 0 et 5. La représentation graphique de la fonction polynomiale dans le domaine [-5,5] fait apparaître deux zéros réels dont les valeurs appro-ximatives sont : - premier zéro x1 ≈ 1,6 . - second zéro x2 ≈ 0,6 . Proposons-nous d'améliorer la valeur du zéro positif en construisant le schéma de Horner en partant de la valeur x20 = u = 0,6 . Après utilisation des schémas de Horner, les valeurs améliorées du zéro valent successivement : x21 = 0,6 – (-0,1824) / 9,904 = 0,6184168 , x22 = 0,6184168 - 0,0039549 / 10,33532 = 0,6180341 , x23 = 0,6180341 - 0,000001149 / 10,32624 = 0,61180341 .

S c h é m a de H o r n e r Deuxième zéro x2

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __

1 3 4 1 -3 x = 0,6 0,6 2,16 3,696 2,8176 ----------------------------------------------------------------------------------- 1 3,6 6,16 4,696 -0,1824 x = 0,6 0,6 2,52 5,208 ------------------------------------------------------------------- 1 4,2 8,68 9,904 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

1 3 4 1 -3 x = 0,6184168 0,61842 2,23769 3,85749 3,00395 ----------------------------------------------------------------------------------- 1 3,61842 6,23769 4,85749 0,0039549 x = 0,6184168 0,61842 2,62013 5,47783 ------------------------------------------------------------------- 1 4,23684 8,85782 10,33532 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

1 3 4 1 -3 x = 0,6180341 0,618034 2,23607 3,85410 3,000001149 ----------------------------------------------------------------------------------- 3,61803 6,23607 4,85410 0,000001149 x = 0,6180341 1 0,61803 2,61803 5,47214 -------------------------------------------------------------------- 1 4,23606 8,85410 10,32624 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ Le polynôme vaut : Pn(x = 0,6180341) = 1,15 . 10-6 après trois itérations. Le deuxième zéro exact de l'équation polynomiale vaut : x2 = 0,5 (-1 + 50,5) = 0,618034 . Les coefficients bi de l'équation du troisième degré sont placés sur la troisième ligne de troisième schéma : x3 + 3,61803 x2 + 6,23607 x + 4,85410 = 0 .

Le second schéma de Horner permet d'améliorer le résultat de x1. La valeur initiale relevée sur le graphique de la fonction vaut x10 = - 1,6.

61

3. Polynômes algébriques et zéros

S c h é m a de H o r n e r Premier zéro x1

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __

1 3,61803 6,23607 4,85410 x = -1,6 -1,6 -3,22885 -4,81156 ------------------------------------------------------------------- 1 2,01803 3,00722 0,04254 x = -1,6 -1,6 -0,66885 ------------------------------------------------------------------- 1 0,41803 2,33837 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __

1 3,61803 6,23607 4,85410 x = -1,61819 -1,61819 -3,23612 -4,85449 ------------------------------------------------------------------- 1 1,99984 2,99995 -0,000387 x = -1,61819 -1,61819 -0,61758 ------------------------------------------------------------------- 1 0,38165 2,38237 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __

Valeurs des zéros : x12 = -1,6 – 0,04254 / 2,38237 = - 1,61819.

x22 = -1,61819 – 0,000387 / 2,38237 = 1,618355 .

La valeur exacte de ce premier zéro est x2 = 0,5 (-1 – 50,5) = - 1,618034. Le deuxième schéma de Horner permet de retenir les coefficients de l'équation algébrique du second degré. Cette dernière prend la forme suivante après arrondissement des coefficients : x2 + 2 x + 3 = 0 , dont les zéros sont : x3 = -1 + j 20,5, x4 = -1 - j 20,5 . Contrôlons la valeur des zéros obtenus par les relations de Vieta. - Coefficient a3 : a3 = -(0,618 - 1,618-1 - j . 21/2 - 1 + j 21/2 )= 3 . - Coefficient a0 : a0 = 0,618 . (- 1,618) . (- 1 + j . 21/2) . (-1 – j 21/2)=- - 3 . Finalement, la quatre zéros de l'équation du quatrième degré sont : x1 = - 1,618 x2 = 0,618 x3 = -1 + j . 21/2 x4= -1 - j . 21/2 . Cet exemple numérique montre le principe de la solution d'une équation polynomiale possédant au moins un zéro réel et des zéros complexes conjugués. 3.3.2.3 ALGORITHME DE LA SOLUTION ITÉRATIVE La méthode proposée dans l'algorithme se laisse programmer facilement en partant de valeurs approximatives pour les zéros réels successifs. Cet algorithme pourrait se compléter par une inspection de la fonction y = Pn(x) dans le domaine de définition afin de trouver la position des zéros réels. Le logiciel de mathématiques donne : Méthode de Ludwig Bairstow Trinôme du second degré x^2 + 1.00000E+0000*x - 1.00000E+0000 = 0 Trinôme du second degré x^2 + 2.00000E+0000*x + 3.00000E+0000 = 0 Zéro réel : 0.61803 Zéro réel : -1.61803 Zéro complexe : -1.00000 + 1.41421*j Zéro complexe : -1.00000 - 1.41421*j

62

3. Polynômes algébriques et zéros

A L G 0 R I T H M E Solution d'une équation polynomiale par la méthode itérative

Lis valeurs initiales : n , eps , max Introduction des coefficients a(i) Pour i ⇐ n,0,-1 lis a(i) a(i) ⇐ a(1)/a(n) fin faire i ⇐np n Calcul des zéros Pour i ⇐ np,1,-1 x0 ⇐ -a(0)/a(1) Pour j ⇐ 1,max,1 p(n) ⇐ 1 ; der ⇐ 1 p(n-1) ⇐ x0+a(n-1) Pour k ⇐ n-2,0,-1 p(k) ⇐ p(k+1)*x0+a(k) der ⇐ der*x0+p(k+1) fin faire k x1 ⇐ x0-p(0)/der si |x1-x0| < eps alors va à Sortie des résultats sinon x0 ⇐ x1 fin faire j Ecris : pas de convergence Sortie des résultats Ecris : le zéro vaut x1 n ⇐ n-1 Pour j ⇐ n,0,-1 a(j) ⇐ p(j+1) fin faire j fin faire i 3.3.3 ÉQUATION DU TROISIÈME DEGRÉ Au début du siècle passé, Abel démontra vers 1820 qu'il n'existe pas de solution analytique pour les équations algébriques de degré supérieur à 4 . Nous nous proposons de trouver un algorithme permettant de résoudre l'équation du troisième degré à coefficients réels. La voie suivie ici consiste à rechercher le premier zéro réel de l'équation de degré impair et de réduire ensuite le problème à la solution de l'équation du second degré à zéros réels distincts ou confondus, à zéro complexes conju-gués. 3.3.3.1 MISE EN ÉQUATION L'équation polynomiale du troisième degré à coefficients réels se compose de quatre termes et s'écrit sous la forme générale : a3 x3 + a2 x2 + a1 x+ a0 = 0 . Normons cette équation en la divisant par le coefficient a3 :

x3 + a x2 + b x + c = 0.

Transformons cette équation en posant :

63

3. Polynômes algébriques et zéros

x z a= −

3.

Après substitution dans l'équation normée et simplifications, l'équation normée en z prend la forme suivante : z3 + p z + q = 0 ,

avec : p = b – a3 / 3 , q = 2 a3 / 27 – a . b / 3 + c .

En calculant le premier zéro de l'équation incomplète du troisième degré, nous pouvons introduire la valeur de z dans la substitution et trouver ainsi le premier zéro de l'équation primitive en x . La re-présentation graphique de la fonction du troisième degré y = f(x) fait apparaître une courbe en S dont les caractéristiques sont le nombre d'intersections avec l'axe des z : 1. trois points d'intersections : l'équation du troisième degré possède trois zéros réels ; 2. un seul point d'intersection : l'équation possède un seul zéro réel et deux zéros complexes conju- gués ; 3. un point d'intersection et un point de tangence avec l'axe Oz : l'équation possède un zéro simple et deux zéros confondus, tous deux également réels. 3.3.3.2 SOLUTION DE CARDAN Après transformation de l'équation en z , Cardan (Cardano) a démontré que la solution générale de l'équation incomplète du troisième degré était donnée par l'expression :

z q q p q q p1 2 3

2 33

2 33

2 4 27 2 4 27, , .= − + + + − − +

Cette solution générale présente six variantes possibles dont trois seulement sont valables dans l'équation proposée. La recherche du premier zéro réel de l'équation en z consiste à appliquer la rela-tion de Cardan. Pour ce faire, il faut calculer la valeur du discriminant D :

D q p= +

2 3

4 27.

et en extraire la racine carrée de cette expression. 3.3.3.3 RECHERCHE DU PREMIER ZÉRO RÉEL Il faut distinguer trois solutions différentes selon la valeur du discriminant D.

1. Discriminant nul : D = 0 L'équation du troisième degré possède trois zéros réels dont deux sont confondus. Le premier zé-ro réel se trouve par l'expression : D = 0 :

z q1 2

2= − .

2. Discriminant plus grand que zéro : D > 0 L'équation du troisième degré possède un zéro réel et deux zéros complexes conjugués. Le zéro réel se trouve par l'expression :

z q D q D13 3

2 2= − + + − − .

64

3. Polynômes algébriques et zéros

3. Discriminant plus petit que zéro : D < 0 La recherche du premier zéro réel passe par l'extraction de la racine cubique de deux grandeurs complexes conjuguées. Cette opération s'effectue en transformant la forme algébrique des grandeurs complexes en forme trigonométrique et en introduisant la formule de Moivre. Indiquons brièvement le principe de ce calcul. Re = - q/2 et lm = [ | D | ] 1/2 . Mod = (Re2 + Im2)1/2 ; phi = arc tan (lm/Re) ; z1 = 2 . (Mod)1/3 . cos(phi/3) . Les termes trigonométriques imaginaires s'annulent dans ce cas de substitution. 3.3.3.4 RECHERCHE DES AUTRES ZÉROS Le premier zéro réel étant trouvé, le schéma de Horner se construit à partir de la valeur de l'incon-nue z1 et permet de trouver les deux autres zéros de l'équation du second degré :

x1 = z1 - a/3 .

Schéma de Horner Coefficients de l'équation du second degré

1 a b c x = x1 x1 d . x1 ------------------------------------------------------------------------- 1 d e 0

Les deux autres zéros, réels ou complexes conjugués, correspondent aux zéros de l'équation du se-cond degré : x2 + d x + e = 0 ,

soit : x d d e2 3

2

2 4, .= − ± −

3.3.3.5 ALGORITHME DE LA SOLUTION DE L'ÉQUATION DU 3 IÊME DEGRÉ La méthode de résolution proposée utilise exactement les diverses transformations proposées dans les deux paragraphes précédents. A L G 0 R I T H M E Solution de l'équation algébrique du troisième degré

Introduction des coefficients Pour i <-- 3,0,-1 lis a(i) fin faire i Normer l'équation an ⇐ a(2)/a(3); bn ⇐ a(1)/a(3) en ⇐ a(0)/a(3); p ⇐ bn-an*an/3 q ⇐ 2*an*an*an/27-an*bn/3+cn discr ⇐ q*q/4+p*p*p/27 disc2 ⇐ ⎜discr⎜^0.5 Recherche du premier zéro

65

3. Polynômes algébriques et zéros

Si discr > 0 alors r1 ⇐ -q/2+disc2; r2 ⇐ -q/2-disc2 x1 ⇐ r^(1/3)+r2^(1/3) sinon si discr = 0 alors x1 ⇐ 2*(q/2)^(1/3) sinon re ⇐ -q/2; ri ⇐ disc2 phi ⇐ arc tan(ri/re) x1 ⇐ 2*(re*re+ri*ri)^(1/3)*cos(phi/3) fin si x1 ⇐ x1-an/3 Recherche des autres zéros b ⇐ x1+an c ⇐ b*x1+bn discr ⇐ (b/2)*(b/2)-c disc2 ⇐ ⎜discr⎜^0.5 si discr ≤ 0 alors x2 ⇐ -b/2; x3 ⇐ -b/2 sinon x2 ⇐ -b/2+disc2; x3 ⇐ -b/2-disc2 fin si Affichage des zéros Ecris : zéro réel x1 Si discr < 0 alors écris x2 + j*disc2 x3 - j*disc2 sinon écris x2 écris x3 fin si Exemple numérique de solution : soit à résoudre l'équation algébrique :

2 x3 + 3 x2 + 4 x + 7 = 0 . Equation normée : x3+ 1,5 x2 + 2 x + 3,5 = 0 . z = x + a/3 = x + 0,5 ou x = z -1,5 / 3 = z - 0,5. p = 2 - 1,52 / 3 = 1,25 et q = 2 . 1,53 / 27 - 1,5 . 2/3+3,5 = 2,75. Discriminant : D = 2,752/4 + 1.253/27 = 1,9630 ⇒ plus grand que 0. z1 = [- 2,75/2 + (1.96391/2]1/3 + [- 2,75/2 - 1,9631/2]1/3 = - 1,1089 . Premier zéro : x1 = -1,1089 - 0,5 = - 1,6089.

S c h é m a de H o r n e r (valeurs arrondies) 1 1,5 2 3,5 x = - 1,6089 -1,6089 0,1752 -3,49997 ---------------------------------------------------------------------------- 1 -0,1089 2,1752 - - - - - -

Equation du 2ième degré : x2 - 0.1089 x + 2.1752 = 0 . x2 = 0,05448 + 1,4739 . j , x3 = 0,05448 - 1,4739 . j .

66

3. Polynômes algébriques et zéros

3.3.4 ÉQUATION DU QUATRIÈME DEGRÉ Donnons le principe de la résolution de ce type d'équation, proposé au 16ième siècle par Ferrari. La relation générale de l'équation du quatrième degré à coefficients réels s'écrit :

a4 x4 + a3 x3 + a2 x2 +a1 x + a0 = 0 .

Après division par le coefficient a4 de l'inconnue x au plus fort exposant, cette équation devient l'équation normée :

x4 + a x3 + b x2 + c x + d = 0.

La recherche des quatre zéros de cette équation algébrique à coefficients réels s'effectue par des transformations successives. Posons :

z = x – a / 4,

et écrivons l'équation simplifiée suivante :

x4 + p x2 + q x + r = 0 .

En introduisant un paramètre auxiliaire w, il est possible d'écrire :

x4 + p x2 + q x + r = (x2 + p / 2 + w)2 + q x + r - p2 / 4 - w2 - 2 w x2 + p w,

ou encore: x p w w x q x w p w r p22

2 22

22

40+ +F

HGIKJ − ⋅ − ⋅ + + ⋅ − +

FHG

IKJ

LNM

OQP= .

Choisissons w de sorte que le polynôme entre les crochets soit le carré d'un binôme. Pour cela, ce polynôme doit avoir un zéro double, donc remplir l'égalité :

q2 – 4 . 2 vv (w + p – w - r + p2 / 4) = 0 .

Cette relation est une équation de troisième degré en w à coefficients complexes. D'après la relation de Cardan w0 s'exprime par les coefficients de l'équation, fonction de p, q et r. Le polynôme entre les crochets possède le zéro double q / (4 w0) et prend la forme :

(x2 + p / 2 + w0)2 - 2 w0 [x – q / (4 w0)]2 = 0 .

Cette expression se décompose en deux équations du second degré :

x2 - (2 w0)1/2 . x + [p / 2 + w0 + q / (2 w0)1/2] = 0 ,

et x2 + (2 w0)1/2 . x + [p / 2 + w0 - q / (2 w0)1/2] = 0 .

Les zéros de ces deux équations sont les zéros de l'équation simplifiée. 3.3.5 MÉTHODE DE BAIRSTOW Cette méthode itérative, due à Ludwig Bairstow, permet de trouver tous les zéros réels ou com-plexes conjugués d'une équation polynomiale à coefficients réels. Attention ! La méthode n'est pas absolument sûre pour tous les genres de polynômes rencontrés dans les problèmes réels. 3.3.5.1 PRINCIPE DE LA MÉTHODE DE BAIRSTOW Le principe de la méthode de Bairstow consiste à rechercher le trinôme du second degré qui divi-se exactement le polynôme primitif et ses quotients successifs tant que le degré du polynôme quotient est supérieur à 1. Soit un polynôme Pn(x) normé de degré n et soit Pn-2(x) le polynôme quotient restant après la division par le trinôme :

P2(x) = x2 + p x + q .

Les règles de la division algébrique d'un premier polynôme par un polynôme diviseur permettent d'écrire successivement :

67

3. Polynômes algébriques et zéros

Pn(x) = Pn-2(x) . P2(x) + R1(x) ,

avec : Pn(x) = xn + an-1 xn-1 + . . . + a2 x2 + a1 x + a0 ,

Pn-2(x) = xn-2 + bn-1 xn-3 + . . . + b4 x2 + b3 x + b2 ,

R1(x) = r x + s .

Pour p et q connus ou donnés arbitrairement, les coefficients bi peuvent se trouver en identifiant les coefficients des termes de même degré en x. bn = 1 , bn-1 = an-1 - p bn , bn-2 = an-2 - p bn-1 – q , bn-3 = an-3 - p bn-2 - q bn-1 . D'une manière générale, pour k = n - 2 , ..., 0, il est possible d'écrire : bk = ak - p bk+1 - q bk+2 . Les dernier termes de la comparaison deviennent dans ces conditions : b2= a2 – p b3 – q b4 , r = a1 – p b2 – q b3 , s = a0 – q b2 . On voit que le terme r se trouve par la même formule de récurrence que les coefficients précédents bk , ce qui permet d'écrire : b1 = r = a1 – p b2 – q b3 . En posant : s = b0 + p b, nous pouvons également écrire :

b0 = a0 – p b1- q b2 . Dans ces conditions, le reste de la division : R1(x) = r x + s devient :

R1(x) = (x + p) b1 + b0 . 3.3.5.2 COEFFICIENT ET CONSTANTE DU BINÔME R1(x) Pour que la division du polynôme primitif par le trinôme du second degré s'effectue sans reste, il faut évidemment que les coefficients b1 et b0 soient nuls dans la dernière relation. Ces coefficients dépendent directement de p et q . Admettons que p* et q* sont les valeurs numériques permettant de supprimer le reste de la division. alors, les racines du trinôme :

x2 + p* x + q* = 0

sont les deux zéros recherchés du polynôme primitif. Il faut donc résoudre un système de deux équa-tions non linéaires :

b1 = f(p,q) = a1 - p b2 - q b3 = 0 . et : b0 = g(p,q) = a0 - p b1 - q b2 = 0 .

La solution numérique de ce genre de problème a été traitée au sous-chapitre 2.2, soit :

Xi+1 = Xi - F(Xi) / F’(Xi) ,

jusqu'à ce que la solution atteigne la précision voulue. 3.3.5.3 MATRICE DES DÉRIVÉES PARTIELLES Pour calculer les valeurs de p* et q* à partir de valeurs initiales, nous pouvons introduire la mé-thode de Newton-Raphson à deux équations simultanées non linéaires, sous-chapitre 2.2. Il faut donc

68

3. Polynômes algébriques et zéros

créer une matrice [2,2] des dérivées partielles. Les quatre éléments de cette matrice se trouvent par récurrence. 1. Éléments de la matrice carrée Les deux fonctions présentent la configuration suivante :

b1 = r = a1 - p b2 - q b3, et : b0 = s = a0 - p b1 - q b2.

Calculons les dérivées partielles de ces deux expressions par rapport à p et q :

∂b1 / ∂p = - b2 - p ∂b2 / ∂p – q ∂b3 / ∂p , ∂b1 / ∂q = - b3 - p ∂b2 / ∂q – q ∂b3 / ∂q , ∂b0 / ∂p = - b1 - p ∂b1 / ∂p – q ∂b2 / ∂p , ∂b0 / ∂q = - b2 - p ∂b1 / ∂q – q ∂b2 / ∂q .

Ces diverses dérivées partielles dépendent des coefficients bk précédents du polynôme Pn-2(x) et des valeurs de p et q .

2. Formule de récurrence pour calculer ck Soit à trouver les dérivées partielles, par rapport à p et q , des valeurs successives des grandeurs bk. Déterminons tout d'abord les dérivées partielles des coefficients bk par rapport à p :

bn = an = 1 si équation normée fi ∂bn / ∂p = 0 . bn-1 = an-1 - p bn => ∂bn-1 / ∂p = - bn - p ∂bn / ∂p .

et avec les valeurs précédentes => ∂bn-1 / ∂p = - bn .

bn-2 = an-2 - p bn-1 - q bn => ∂bn-2 / ∂p = - bn-1 - p ∂bn-1/ ∂p .

bn-3 = an-3 - p bn-2 - q bn-1 => ∂bn-3 / ∂p = - bn-2 - p ∂bn-2 / ∂p – q ∂bn-1 / ∂p .

bn-4 = an-4 - p bn-3 - q bn-2 => ∂bn-4 / ∂p = - bn-3 - p ∂bn-3 / ∂p – q ∂bn-3 / ∂p . et ainsi de suite. La formule de récurrence par la dérivée partielle de l'élément bk devient :

∂bk / ∂p = - bk+1 - p ∂bk+1 / (∂p - q ∂bk+2/∂p .

Simplifions l'écriture des dérivées partielles par rapport à p en introduisant la notation : ∂bk / ∂p = ck+1 . La formule de récurrence s'écrit alors plus simplement sous la forme : ck = - (bk + p ck+1 + q ck+2) . Les valeurs particulières de départ du calcul sont : cn = - bn , cn-1 = - (bn-1 + p cn) . Les valeurs finales s'expriment par :

c2 = ∂b1 / ∂p = - (b2 + p c3 + q c4) , c1 = ∂b0 / ∂p = - (b1 + p c2 + q c3) .

Déterminons maintenant les dérivées partielles des coefficients bk du polynôme Pn-2(x) par rapport à q : bn = an = 1 si l’équation est normée => ∂bn / ∂q = 0 , bn-1 = an-1 - p bn => ∂bn-1 / ∂q = - p ∂bn / ∂q = 0, et avec les valeurs précédentes : => ∂bn-1 / ∂q = 0 .

bn-2 = an-2 - p bn-1 - q bn => ∂bn-2 / ∂q = - bn – p ∂bn-1 / ∂q – q ∂bn / ∂q = - bn = cn ,

bn-3 = an-3 - p bn-2 - q bn-1 => ∂bn-3 / ∂q = - bn-1 - p cn – q 0 = - bn-1 - p cn = cn-1, etc. La formule de récurrence par la dérivée partielle de l'élément b devient : k

69

3. Polynômes algébriques et zéros

∂bk / ∂q = - (bk+2 + p ck+3 + q ck+4) .

Les valeurs particulières finales du calcul par récurrence sont données par les deux expressions suivantes :

c3 = ∂b1 / ∂q = - (b3 + p c4 + q c5) .

c2 = ∂b0 / ∂q = - (b2 + p c3 + q c4) .

3. Matrice des coefficients de la solution Les quatre dérivées partielles sont connues maintenant et servent d'éléments dans la matrice des coefficients de la solution :

f ff f

b p b pb q b q

11 12

21 22

1 0

1 0

FHG

IKJ =

∂ ∂ ∂ ∂∂ ∂ ∂ ∂FHG

IKJ

/ // /

.

Toutes les grandeurs sont déterminées. Le problème peut se résoudre relativement facilement en solutionnant le système d'équations non linéaires. La convergence de la solution dépend essentiel-lement des valeurs initiales attribuées aux deux grandeurs p et q . 3.3.5.4 ALGORITHME DE LA SOLUTION SELON BAIRSTOW Les grandeurs introduites initialement dans la recherche des zéros de l'équation polynomiale sont donc : - tous les coefficients du polynôme, - la précision exigée sur le résultat eps , - les valeurs initiales pin et qin données pour les grandeurs p et q . - sous-programmes : premier solution d'une équation du premier degré, second solution d'une équation du second degré. A L G 0 R I T H M E

Solution d'une équation polynomiale Pn(x) = 0 par la méthode de Bairstow

1. Lis : n, eps pin, qin, max Pour i ⇐ n,0,-1 lis a(i) fin faire i Pour i ⇐ 0,n,1 a(i) ⇐ a(i)/a(n) fin faire i 2. Test équation lier ou 2iême degré b ⇐ a(n-1) Si n = 1 alors appelle premier Si n = 2 alors c ⇐ a(n-2) appelle second fin faire si 3. Formules de récurrence p ⇐ pin; q ⇐ qin Pour i ⇐ 1,max,1 b(n) ⇐ 1; b(n-1) ⇐ a(n-1)-p c(n) ⇐ -b(n)

70

3. Polynômes algébriques et zéros

c(n-1) ⇐ -(b(n-1)+p*c(n)) Pour j ⇐ n-2,0,-1 b(j) ⇐ a(j)-p*b(j+1)-q*b(j+2) c(j) ⇐ -(b(j)+p*c(j+1)+q*c(j+2)) fin faire j 4. Amélioration du résultat den ⇐ c(2)*c(2)-c(1)*c(3) deltp ⇐ (b(0)*c(3)-b(1)*c(2))/den deltq ⇐ (b(1)*c(1)-b(0)*c(2))/den p ⇐ p+deltp; q ⇐ q+deltq 5. Test de l'amélioration si |deltp|>eps ET deltqi>eps alors fin faire i sinon b ⇐ p; c ⇐ q appelle second pour j ⇐ n,2,-1 a(j-2) ⇐ b(j) fin faire j n ⇐ n-2 va au point 2 3.3.5.5 EXEMPLE DE DÉTERMINATION DES ZÉROS Soit à trouver tous les zéros réels et complexes conjugués de l'équation polynomiale du sixième degré : P6(x) = 3 x6 - x5 – 9 x4 – 14 x3 - 11 x2 – 3 x - 1 = 0 .

La représentation graphique de la fonction y = P6(x) fait apparaître deux zéros réels. Sans normer l’équation et avec un premier zéro réel valant x1 = -1 , le schéma de Horner se présente sous la forme suivante :

S c h é m a de H o r n e r (simplifié) 3 -1 -9 -14 -11 -3 -1 x = -1 -3 4 5 9 2 1 ------------------------------------------------------------------------------------- 3 -4 -5 -9 -2 -1 0 Le polynôme du cinquième degré et l'équation polynomiale correspondante s'écrivent :

P5(x) = 3 x5 – 4 x4 – 5 x3 – 9 x2 – 2 x – 1 = 0 .

Le deuxième zéro réel peut s'exprimer sous forme d'une somme exacte de trois termes contenant des fractions numériques ou sous la forme approximative x2 = 2,51826. Un nouveau schéma de Horner permet de trouver le polynôme du quatrième degré. Ce polynôme du quatrième degré prend la forme donnée ci-après.

P4(x) = 3 x4 + 3,5547 x3 + 3,9515 x2 + 0,9509 x + 0,3945 = 0 .

Les zéros de ce polynôme sont alors complexes conjuguées. Zéro 3 : x3 = - 0,5 + 0,5 ⋅ (-3)1/2, Zéro 4 : x4 = - 0,5 - 0,5 ⋅ (-3)1/2, Zéro 5: x5 = - 0,0925 + 0,352 j , Zéro 6 x6 = - 0,0925 - 0,352 j , et Zéro 1 x1 = - 1 ,

71

3. Polynômes algébriques et zéros

Zéro 2 x2 = 2,51826 . Justification informatique Contrôle des résultats au moyen du logiciel développé à l ‘ EIAF : la représentation des valeurs numériques s’effectue en type extended sur 10 octets et la précision exigée des résultats est 10-6. Equation polynômiale P(x) = +3*x^6 -1*x^5 -9*x^4 -14*x^3 -11*x^2 -3*x^1 -1*x^0 = 0 Méthode de Ludwig Bairstow Trinôme du second degré x^2 + 1.84929E-0001*x + 1.32366E-0001 = 0 Trinôme du second degré x^2 - 1.51826E+0000*x - 2.51826E+0000 = 0 Trinôme du second degré x^2 + 1.00000E+0000*x + 1.00000E+0000 = 0 Zéro complexe : -0.09246 + 0.35188*j Zéro complexe : -0.09246 -0.35188*j Zéro réel : 2.51826 Zéro réel : -1.00000 Zéro complexe : -0.50000 + 0.86603*j Zéro complexe : -0.50000 -0.86603*j

72

3. Polynômes algébriques et zéros

3.4 EXERICES SUR LES POLYNÔMES ET LES ZÉROS 3.1 Soit un premier polynôme Pm(x) de degré m et un second polynôme Pn(x) de degré n. Les de-grés des deux polynômes sont quelconques. Ecrivez les algorithmes permettant d'effectuer la somme, la différence et le produit de ces deux polynômes soit :

1. Somme des deux polynômes : Pm(x) + Pn(x)

2. Différence de deux polynômes : Pm(x) - Pn(x)

3. Produit des deux polynômes : Pm(x) * Pn(x) .

Appliquez manuellement ces divers algorithmes sur les deux polynômes suivants. Ensuite, program-mez ces algorithme dans un langage connu.

Pm(x) = 4 x4 + 2 x3 - 5 x2 + 7 x – 12 ,

Pn(x) = 3 x3 – 7 x2 + 5 x - 11 . 3.2 Calculer la valeur du polynôme et la valeur de sa dérivée première au moyen du schéma de Horner. Les valeurs de l'indéterminée x à choisir sont fixées dans chaque problème.

1. Pn(x) = 4 x5 + 3 x4 – 7x3 + 2 x2 – 10 x + 7, pour x = -1 ; 3 ; -5

2. Pn(x) = 2 x6 + 4 x4 – 5 x2 + 1 , pour x = -3; 2; 4 -

3. Pn(x) = 3 x4 – 6 x3 + 9 x2 – 12 x + 7, pour x = 0,5 ; - 1,5.

4. Pn(x) = 10 x3 – 7 x2 + 2 x - 1, pour x = 0,25; 2,75; -1,25.

5. Pn(x) = 7 x4 – 5 x2 + 3 x + 17, pour x = 0,675; -0,375.

3.3 Calculer la valeur du polynôme et les valeurs de toutes ses dérivées successives au moyen du schéma complet de Horner.

1. Pn(x) = 2 x3 – 5 x2 + 7 x - 12, pour x = 2;-3.

2. Pn(x) = x5 – 3 x3 – 8 x2 + 6 x + 19, pour x = 1 - 1,5.

3. Pn(x) = 2 x4 + 6x3 – 2 x2 – 9 x + 4, pour x = -1 ; 0,35.

4. Pn(x) = 0,5 x6 – 3 x5 + 5,5 x4 - 0,5 x3 – 9 x2 + 10 x - 4, pour x = 1 ;2;-3.

5. Pn(x) = x4 - 1,75 x3 + 2,75 x2 - 1,25 x + 0,25, pour x = 0,5;-0,5. 3.4 Rechercher l'algorithme permettant de calculer les valeurs du polynôme algébrique et de toutes ses dérivées au moyen du schéma complet de Horner. Tous les coefficients du polynôme et les valeurs particulières de l'inconnue x sont introduits au début du calcul. Appliquez ce travail à l'un des polynômes du problème précédent. 3.5 Trouvez les zéros réels de équations polynomiales suivantes en assurant la valeur numérique du résultat avec une précision de 0,0001 .

1. Pn(x) =24 x5 + 10 x4 - x3 –19 x2 – 5 x + 6 = 0 . (-2/3 ; 1/2 ; 3/4)

2. Pn(x) =24 x4 – 49 x3 - 77x2 + 56 x + 60 = 0 . (1,0899 ; -1 2,7776 ; -0.8258 ; -1)

3. Pn(x) = x5 – 7 x3 – 12 x2 + 6 x + 36 = 0 . (-2 ; 3 ; 1,5377)

73

3. Polynômes algébriques et zéros

4. Pn(x) = x4 - 1,3 x3 + 1,5 x2 - 1,8 x - 2,4 = 0 . (-0,6593 ; -1 1,6219)

5. Pn(x) = x4 + 2 x3 – 13 x2 – 38 x – 24 = 0 . (-1 ; 4 ; -2 ; -1-3)

6. Pn(x) = x5 + x4 – 6 x3 – 14 x2 - 11x – 3 = 0 . (-1 ; -1 ; -1 ; -1 ; 3)

Contrôlez le polynôme restant en utilisant les résultats du calcul donnés entre parenthèses. 3.6 Calculez tous les zéros réels et complexes conjugués des équations du troisième degré en introduisant la formule de Cardan et le schéma de Horner.

1. 2 x3 – 8 x + 17 =0 . (2,6784 ; 1,3392±1,17482 j)

2. 3 x3 + 5 x2 – 7 x + 11 = 0 . (-2,9046 ; 0, 6189±0, 9377 j)

3. 5 x3 – 3 x2 + 7 x – 3 = 0 . (0,4503 ; 0,07487±1,1519 j)

4. 6 x3 + 5 x2 + 4 x + 3 = 0 . (0,7903 ; -0,02151±0,7951 j)

5. x3 – 6 x2 + 57 x – 196 = 0 . (4 ; 1±6,9282 j)

6. 2 x3 + 3 x2 - 1,5 x + 1,25 = 0 . (-2,0233 ; 0,2617±0,4903 j) 3.7 Calculez tous les zéros réels et complexes conjugués des équations algébriques du quatrième degré données ci-après. 1. x4 - 2 x3 + 2 x2 + 4 x - 8 = 0 . (1,4142; -1,4142; 1±1.7321 j) 2. x4 + 2 x3 – 2 x2 + 6 x = 0 . (-3.2070 ; 0 ; 0,6035±1,2275 j) 3. x4 - x3 – 3 x2 + 5 x - 10 = 0 . (-2,2361; 2,2361; 0,5±1,3229 j) 4. x4 – 6 x3 + 6 x2 + 27 x - 56 = 0 . (-2,1926; 3,1926; 2,5±1,3229 j) 5. x4 - x3 – 3 x2+ x + 1 = 0 . (-1,3557 ; -0,4773; 0,7376; 2,0953) 6. x4 - x3 - 1,5 x2 + 0,5 x + 0,25 = 0 . (-0,9134 ; -1-0,3001; 0,5474 ; 1,6661) 3.8 Calculez tous les zéros réels et complexes conjugués des équations polynomiales de degrés compris entre 4 et 6 . 1. 3 x5 – 4 x4 + 2 x3 – 3 x2 + 10 = 0 . (-0,945 ; -0,177±1,284 j ; 1,319±0,591 j) 2. x6 - 3 x4 + 2 x2 - 7 = 0 . (-0,855±0,880 j ; -0,855±0,880 j ; ± 1,7569) 3. 2 x7 - 3 x6 + 4 x5 - 5 x4 + 6 x3 - 7 x2 + 8 x - 9 = 0 . (1,2546;-0,812±0,904j;0, 037±1,244j; 0, 898±0,874 j ) 4. x5 + x4 + x3 - x2 – x -1 = 0 . (1 ; -0, 5±0,866 j ; -0, 5±0,866 j) 5. x5 + 2 x4 + 4 x3 + 4 x2 + 2 x + 1 = 0 . (-1 ;-0,352±1,499 j ; -0,148±0,633 j) 6. x4 - 2 x3 + 3 x2 - 2 x - 2 = 0 . (-0,4910 ;1,4910 ; 0,5±1,5755j)

74

4. Solution des systèmes d’équations linéaires

CHAPITRE 4

SOLUTION DES SYSTÈMES D'ÉQUATIONS LINÉAIRES De nombreux problèmes physiques et surtout techniques se ramènent à la résolution de systèmes d'équations linéaires : réseaux hydrauliques et électriques, structures élastiques ou élastoplastiques en résistance des matériaux comme par exemple les charpentes triangulées ou la déformation des structures, méthode des éléments finis, transmission de chaleur dans les corps, etc. La solution des systèmes physiques régis par un système d'équations différentielles aux dérivées partielles fait aussi intervenir ce genre d'opérations. Après un rappel très condensé des particularités du calcul matriciel nécessaires à la compréhension des méthodes proposées, nous traiterons plusieurs méthodes utili-sées dans la solution numérique des systèmes d'équations linéaires. 4.1 NOTIONS DE CALCUL MATRICIEL Ce rappel des définitions et opérations fondamentales sur les entités matricielles traite des vec-teurs et des matrices. 4.1.1 VECTEURS Soient deux vecteurs u et v ayant respectivement comme composantes scalaires : pour u : u1 , u2 , u3 et pour v : v1, v2 , v3 . L'écriture usuelle de ces deux vecteurs, des composantes scalaires et des vecteurs unitaires des axes i , j , k , devient :

u = u1 i + u2 j + u3 k ,

v = v1 i + v2 j + v3 k .

L'écriture de ces deux vecteurs, définis dans le calcul vectoriel et espace à trois dimensions, est un cas particulier de la définition général des vecteurs en calcul matriciel. Dans le cas général, les vecteurs intervenant dans les opérations matricielles possèdent n composantes scalaires appelées éléments. Dans ce cours, les vecteurs seront écrits en gras encadrés d'une accolade d'ouverture et d'une accolade de fermeture. Avec ces définitions, le vecteur {u} à n éléments peut s'écrire :

{u} = { u1, u2, u3, u4, . . . un-1, un )T ,

le vecteur étant écrit dans la forme dite transposée afin d'économiser de la place sur une ligne. 4.1.1.1 SOMME DE DEUX VECTEURS La somme vectorielle de deux vecteurs : {w} = {u} + {v} est également un vecteur dont les élé-ments composants sont : w1 = u1 + v1 , w2 = u2 + v2 , w3 = u3 + v3 , . . . . . . . . . . . . wn = un + vn .

Il en résulte que le vecteur somme peut s'écrire sous la forme transposée :

{w} = { w1 w2 w3 . . . . wn-1 wm }T,

{w} = { u1 + v1 u2 + v2 u3 + v3 . . . . un-1 + vn-1 un + vn}T .

75

4. Solution des systèmes d’équations linéaires

4.1.1.2 PRODUIT D'UN VECTEUR PAR UN SCALAIRE Le produit d'un vecteur par un scalaire : {w} = s . {v} est également un vecteur dont les éléments composants sont : w1 = s v1 ,

w2 = s v2 , w3 = s v3 , . . . . . . . . . wn = s vn .

Il en résulte que le nouveau vecteur peut s'écrire sous la forme transposée :

{w} = { w1 w2 w3 . . . . wn-1 wn }T,

{w} = { s v1 s v2 s v3 . . . . . s vn-1 s vn}T . 4.1.1.3 PRODUIT SCALAIRE DE DEUX VECTEURS Le produit scalaire de deux vecteurs {u} et {v} est un nombre égal à : {u} {v} = u1 v1 + u2 v2 + u3 v3 + . . . . . + un vn ,

ou encore sous la forme générale :

{u} {v} = Σ ui vi .

Propriété particulière : Si le produit scalaire est : {u} {u} = Σ ui ui = Σ ui

2 , alors cette expression est le carré de la norme euclidienne. 4.1.2 MATRICES QUELCONQUES Une matrice [A] est un tableau rectangulaire d'éléments de m lignes et de n colonnes où pour chaque élément ai j ; l'indice i désigne la ligne (1 ≤ i ≤ m) et l'indice j la colonne (1 ≤ j ≤ n). La matrice [A] , écrite en gras encadrée de crochets, est représentée sous la forme générale suivante :

A = =

F

H

GGGGG

I

K

JJJJJa

a a a aa a a a

a a a aa a a a

i j

n

n

i i i in

m m m mn

....

........ .... .... .... ....

....

....

d i

11 12 13 1

21 22 23 2

1 2 3

1 2 3

.

Si m = n , la matrice est dite matrice carrée . Si m = 1 , la matrice est un "vecteur ligne" ou un vecteur transposé. Si n = 1 , la matrice est un vecteur. 4.1.2.1 ÉGALITÉ DE DEUX MATRICES Deux matrices [A] et [B] sont égales : [A] = [B] , lorsque : 1. elles ont le même nombre de lignes m et le même nombre de colonnes n , c'est-à-dire mêmes di- mensions. 2. chaque élément de la première matrice est égal à l'élément correspondant de la seconde matrice.

76

4. Solution des systèmes d’équations linéaires

Il en résulte : si [A] = [B] , alors ⇒ ai,j = bi,j . 4.1.2.2 SOMME OU DIFFÉRENCE DE DEUX MATRICES La somme ou la différence de deux matrices n'est définie que si les deux matrices ont les mêmes dimensions. La somme ou la différence de deux matrices est donnée par : - somme : [C] = [A] + [B] , ⇒ ci j = ai j + bi j ,

- différence : [C] = [A] - [B] , ⇒ ci j = ai j - bi j .

L'addition ou la soustraction sont commutatives comme par exemple :

[A] - [B] = - [B] + [A] .

Ces deux opérations sont également associatives comme par exemple :

( [A] + [B] ) – [C] = [A] + ( [B] - [C]) . 4.1.2.3 PRODUIT D'UNE MATRICE PAR UN SCALAIRE Le produit d'une matrice par un scalaire est obtenu en multipliant chaque élément de matrice par le scalaire. Le scalaire peut être considéré comme une matrice d'ordre 1x1 . La règle applicable au produit s [A] est :

s s a

sa sa sa sasa sa sa sa

sa sa sa sasa sa sa sa

A = =

F

H

GGGGG

I

K

JJJJJi j

n

n

i i i in

m m m mn

....

........ .... .... .... ....

....

....

d i

11 12 13 1

21 22 23 2

1 2 3

1 2 3

.

4.1.2.4 PRODUIT DE DEUX MATRICES Soient une matrice [A] , dimensions m et n, et une seconde matrice [B] , dimensions n et p. La matrice [C] , produit de la matrice multiplicande [A] par la matrice multiplicatrice [B] , est définie par :

[C] = [A] . [B] ,

avec :

ci,j = ai,k bk,j pour ( i = 1,2, ... m; j = 1,2, .... p ) . k

n

=∑

1

ci,j = ai1 b1j + ai2 b2j + ai3 b3j + . . . . . . + ani, bnj .

La matrice produit possède les dimensions m et p , soit le même nombre de lignes que la matrice [A] et le même nombre de colonnes que la matrice [B] . Si le produit matriciel est calculable, ce produit n'est généralement pas commutatif. Les opérations manuelles de multiplication et d'addition des produits partiels sont facilitées par la représentation des trois matrices selon S. Falk. Cette représentation permet aussi de se rappeler de la définition du pro-duit et de programmer correctement cette opération. La multiplication matricielle peut donc s'expliquer sur un exemple numérique simple en choisissant une matrice [A] de dimensions 3 x 5 , une matrice [B] de dimensions 5 x 4 et une matrice produit [C] de dimensions 3 x 4 . Ecrivons ces matrices en disposant les éléments correctement.

77

4. Solution des systèmes d’équations linéaires

A B= −F

HGG

I

KJJ =

−−

F

H

GGGGG

I

K

JJJJJ

1 2 3 0 10 0 1 1 21 1 2 1 2

1 0 2 11 2 0 12 4 1 21 0 2 12 1 1 2

.

La disposition devient :

Colonne j

ligne i

B

−−

F

H

GGGGG

I

K

JJJJJ

→ −F

HGG

I

KJJ

−− −

F

HGG

I

KJJ

B

A C

1 0 2 11 2 0 12 4 1 21 0 2 12 1 1 2

1 2 3 0 10 0 1 1 21 1 2 1 2

11 17 4 53 2 1 7

11 12 4 1

L'élément c23 est égal à la somme des produits des éléments situés sur la seconde ligne de la matrice [A] par les éléments situés dans la troisième colonne de la matrice [B] :

c23 = somme a2k bk3 pour (k = 1,2, . . . . , 5) = 0 ⋅ 2 + 0 ⋅ 0 + (-1) ⋅ 1 + 1 ⋅ 2 + 2 ⋅ (-1) = -1 .

Dans le cas général, l'élément ci j situé sur la ligne i et dans la colonne j est égal à la somme des produits des éléments de la ligne i de la matrice [A] par les éléments correspondants de la colonne j de la matrice [B] . L'algorithme de la multiplication matricielle [C] = [A] [B] peut se donner par les instructions symboli-ques suivantes. Les variables introduites sont : a,b,c tableaux bidimensionnels d'éléments. i,j,k compteurs. m,n,p dimensions des tableaux. A L G 0 R I T H M E Multiplication matricielle : [C] = [A]⋅[B] Si [A] matrice de dimensions m x n Si [B] matrice de dimensions n x p Pour i ⇐ 1,m,1 pour j ⇐ 1,p,1 c(i,j) ⇐ 0 pour k ⇐ 1,n,1 c(i,j) ⇐ c(i,j)+a(i,k)*b(k,j) fin faire k fin faire j fin faire i

78

4. Solution des systèmes d’équations linéaires

Remarques sur le produit matriciel 1. Généralement, le produit matriciel n'est pas commutatif, contrairement au produit algébrique de

deux termes. Ainsi : [A] . [B] ≠ [B] . [A] .

2. Deux matrices ne peuvent être multipliées que si le nombre de colonnes de la matrice [A] est égal au nombre de lignes de la matrice [B] .

3. La multiplication matricielle est associative comme par exemple :

[A] . [B] . [C] = ( [A] . [B] ) . [C] = [A] . ( [B] . [C] ) . 4.1.2.5 TRANSPOSÉE D'UNE MATRICE La transposée d'une matrice [A] est une matrice notée [A]T obtenue en échangeant les ligne et les colonnes de la matrice. La première ligne notée de [A] devient la première colonne de la matrice transposée, la seconde ligne devient la seconde colonne, etc. Les éléments primitifs ai j de la matrice [A] deviennent aj i dans de la matrice transposée. Exemple : matrice [A] de dimension 3x4 devient une matrice [A]T de dimensions 4x3 .

A A=F

HGG

I

KJJ =

F

H

GGGG

I

K

JJJJ

a a a aa a a aa a a a

a a aa a aa a aa a a

11 12 13 14

21 22 23 24

31 32 33 34

11 21 31

12 22 32

13 23 33

14 24 34

T .

La définition de la transposée d'une matrice permet d'écrire les relations :

([A]T)T = [A] .

[A]T + [B]T = ([A] + [B])T.

Si la matrice [A] est de dimensions m x n et la matrice [B] de dimensions n x p, nous pouvons multiplier ces deux matrices [A] [B] . En transposant les deux matrices primitives, les dimension de-viennent : pour [A]T n x m et pour [B]T p x n . Nous ne pouvons pas calculer le produit [A]T [B]T car les dimensions sont incompatibles; par contre, le produit [B]T [A]T est compatible. De cette comparaison, nous pouvons dire que :

([A] . [B])T ≠ [A]T . [B]T.

Exprimons par [C] = [A] [B] et par [D] = [B]T [A]T et en observant l'élément ci j de la première matrice produit et dj i de la seconde matrice produit, nous pouvons affirmer :

[C]T = [D] .

Ainsi, nous pouvons donner une relation générale entre ces produits :

([A] . [ B])T = [B]T . [A]T.

Cette écriture des produits peut être généralisée au produit de plus de deux matrices. Par exemple, la transposée du produit de quatre matrices s'écrit :

( [A] [B] [C] [D] )T = [D]T ( [A] [B] [C] )T ,

= [D]T [C]T ( [A] [B] )T ,

= [D]T [C]T [B]T [A]T .

79

4. Solution des systèmes d’équations linéaires

Figure 4.1 Multiplication de deux matrices [C] = [A] [B] par le schéma de Falk Multiplication des mêmes matrices [D] = [B]T [A]T transposées 4.1.3 MATRICES CARRÉES Une matrice est dite carrée si le nombre de lignes est égal au nombre de colonnes : m = n . Les éléments ai i (i = 1,2,... , m) définissent la diagonale principale. Lorsque : ai j = ai i , la matrice est symétrique. Pour une matrice symétrique :

si : ai,j = aj,i alors [A] = [A]T.

Une matrice est dite antisymétrique si : ai j = - aj i pour i = j . Une matrice carrée est dite matrice nulle si tous ses éléments sont nuls. 4.1.3.1 MATRICE DIAGONALE Une matrice est dite diagonale si tous les éléments non situés sur la diagonale principale sont nuls. De cette définition, nous pouvons écrire que tous les éléments ai j = 0 pour i ≠ j et ai j ≠ 0 pour i = j. Si la matrice [A] , dimensions par exemple 5x5, est diagonale, alors nous pouvons écrire :

A =

F

H

GGGGG

I

K

JJJJJ

aa

aa

a

11

22

33

44

55

0 0 0 00 0 00 0 0 00 0 0 00 0 0 0

0.

Si [A] est une matrice diagonale, alors la relation matricielle :

[A] {x} = {c}

permet d'exprimer la valeur des éléments du vecteur {x} en fonction des autres éléments par :

xi =ci / ai,j .

80

4. Solution des systèmes d’équations linéaires

4.1.3.2 MATRICE UNITĖ Une matrice unité [E] est une matrice diagonale pour laquelle tous les éléments de la diagonale principale valent 1, les autres éléments étant nuls. Si la matrice unité est par exemple de dimensions 5x5 , cette matrice peut s'écrire :

E =

F

H

GGGGG

I

K

JJJJJ

1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 1

.

Les matrices carrées [A] et unité [E], de mêmes dimensions, possèdent les propriétés suivantes :

[A] . [E] = [A] et [E] . [A] = [A] . 4.1.3.3 MATRICE SCALAIRE La matrice scalaire est une forme particulière de la matrice diagonale dans laquelle tous les éléments de la diagonale principale ont même valeur scalaire. Si par exemple la matrice [A] , de dimensions 5x5, est une matrice scalaire de valeur 6 , l'écriture est :

A E=

F

H

GGGGG

I

K

JJJJJ=

6 0 0 0 00 6 0 0 00 0 6 0 00 0 0 6 00 0 0 0 6

6 .

4.1.3.4 MATRICES TRIANGULAIRES Une matrice [A] , dont tous les éléments situés en dessus de la diagonale principale sont nuls, est nommée matrice triangulaire inférieure, soit ai j = 0 pour i < j. Cette matrice, de dimensions 5x5 par exemple, peut s'écrire :

A =

F

H

GGGGG

I

K

JJJJJ

aa aa a aa a a aa a a a a

11

21 22

31 32 33

41 42 43 44

51 52 53 54 55

0 0 0 00 0 0

0 00

.

Une matrice [B] , dont tous les éléments situés en dessous de la diagonale principale sont nuls, est nommée matrice triangulaire supérieure, soit ai j = 0 pour i > j. Très souvent, la matrice triangulaire inférieure est notée [L] , la matrice triangulaire supérieure [R]. Dans le sous-chapitre 4.2 , nous traiterons le cas particulier des systèmes d'équations linéaires à matrices triangulaires inférieure et supérieure avant d'étudier le cas général des systèmes d'équations linéaires. Cette matrice triangulaire supérieure de dimensions 5x5 par exemple, peut s'écrire :

81

4. Solution des systèmes d’équations linéaires

B =

F

H

GGGGG

I

K

JJJJJ

b b b b bb b b b

b b bb b

b

11 12 13 14 15

22 23 24 25

33 34 35

44 45

55

00 00 0 00 0 0 0

.

4.1.3.5 MATRICE INVERSE Par matrice inverse, notée [A]-1 , d'une matrice [A], on définit une matrice carrée possédant les propriétés suivantes :

[A] . [A]-1 = [A]-1 . [A] = [E] .

Quelques méthodes numériques, pour résoudre cette opération d'inversion, seront proposées au sous-chapitre 4.3 . 4.1.4 PARTITION DE MATRICES Le tableau des éléments constituant une matrice peut se diviser en sous-tableaux en procédant à une séparation horizontale et verticale du tableau primitif. Une matrice de ce type est appelée matrice partitionnée et les sous-tableaux sont nommés sous-matrice. Exemple de partition d'une matrice [A].

AA AA A

=↔ ↔ ↔ ↔ ↔

F

H

GGGG

I

K

JJJJ=FHG

IKJ

a a a a aa a a a a

a a a a a

11 12 13 14 15

21 22 23 24 25

31 32 33 34 35

11 12

21 22

????

.

Sous matrice de la matrice primitive :

A A

A A

1111 12 13

21 22 2312

14 15

24 25

21 31 32 33 22 34 35

=FHG

IKJ =

FHG

IKJ

= =

a a aa a a

a aa a

a a a a a

b g

b g b g b g b g

,

.

4.1.5 MATRICE ORTHOGONALE Si la transposée d'une matrice carrée est égale à sa matrice inverse, alors la matrice est dite or-thogonale. Cette matrice particulière présente l'énorme avantage d'une simplification dans le calcul de la matrice inverse à partir de la transposée de la matrice primitive. Considérons une matrice [A] , de dimensions 3x3, et écrivons les éléments de cette matrice et de sa transposée.

A A=F

HGG

I

KJJ =

F

HGG

I

KJJ

a a aa a aa a a

a a aa a aa a a

11 12 13

21 22 23

31 32 33

11 21 31

12 22 32

13 23 33

T .

Effectuons l'opération de vérification de l'orthogonalité de la matrice primitive par le produit :

[A] . [A]T = [E] :

82

4. Solution des systèmes d’équations linéaires

a a aa a aa a a

a a aa a aa a a

11 12 13

21 22 23

31 32 33

11 21 31

12 22 32

13 23 33

1 0 00 1 00 0 1

F

HGG

I

KJJ ⋅F

HGG

I

KJJ =F

HGG

I

KJJ .

En effectuant les produits et en écrivant les lignes correspondantes, égalées aux éléments unitaires de la matrice unitaire, nous obtenons le résultat de gauche :

a211 + a212 + a213 = 1 , a11 a21 + a12 a22 + a13 a23 = 0 ,

a221 + a222 + a223 = 1 , a21 a31 + a22 a32 + a23 a33 = 0 ,

a231 + a232 + a233 = 1 , a31 a11 + a32 a12 + a33 a13 = 0 .

En évaluant les trois élément, en dessus ou en dessous de la diagonale, nous obtenons les relations de droite. Cette collection de relations entre les éléments de la matrice [A] permet d'exprimer les conditions d'orthogonalité à remplir par une matrice : 1. la somme des carrés de tous les éléments de chaque ligne (ou de chaque colonne) doit à égale à

la valeur 1. 2. la somme des produits des éléments correspondants de deux lignes (ou de deux colonnes doit être égale à la valeur zéro. 4.1.6 DÉTERMINANT A chaque matrice carrée [A]nxn , de dimensions n x n , est associé un scalaire appelé déterminant, noté det [A] ou |A| .

det [A] = | A | =

a a a aa a a a

a a a a

11 12 13 1

21 22 23 2

1 2 3

....

........ .... .... .... ....

....

.

n

n

n n n nn

4.1.6.1 MINEUR ET COFACTEUR Le premier mineur du déterminant det [A] , correspondant à l'élément ai,j, est défini comme le dé-terminant obtenu en éliminant la i ième ligne et la j ième colonne de det [A] . Exemple d'une matrice carrée de dimensions 5 x 5 dont le déterminant est écrit :

| A | =

1 2 4 3 72 4 1 8 91 2 2 3 11 6 3 7 32 1 5 3 2

.

Le premier mineur pour a23 est défini par :

M23 =

1 2 3 71 2 3 11 6 7 32 1 3 2

.

83

4. Solution des systèmes d’équations linéaires

Si le premier mineur Mi j est multiplié par (-1)i+j , il devient le cofacteur du terme ai j . Pour l'exemple proposé, nous pouvons écrire :

A23 = (-1)2+3 M23 = -

1 2 3 71 2 3 11 6 7 32 1 3 2

.

A chaque élément ai j d'une matrice [A] correspond une valeur dénommée cofacteur qui est égale à:

(-1)i+j fois le mineur Mi j d'ordre n-1,

soit (-1)i+j fois le déterminant de la sous-matrice obtenue en supprimant la i ième ligne et la j ième colonne. 4.1.6.2 CALCUL DU DÉTERMINANT La valeur du déterminant de la matrice [A] peut se trouver en utilisant la formule de Laplace :

det [A] = ai k Ai k , k=1

n

∑i pouvant être toute ligne restant constante dans la somme pendant le développement ou :

det [A] = ak j Ak j , k=1

n

∑j pouvant être toute colonne restant constante dans la somme pendant le développement. Le déterminant det[A] est écrit comme somme des produits des éléments de la i ième ligne (ou de la j ième colonne) par les cofacteurs correspondants. Par exemple, pour une matrice 3x3 , le calcul du déterminant se fait ici en développant toujours la première ligne :

det [A] =

a a aa a aa a a

a a a aa aa a

11 12 13

21 22 23

31 32 33

11 11 12 12 13 13 111 1 22 23

32 33

1= ⋅ + ⋅ + ⋅ = ⋅ − ⋅+A A A b g +

+ ⋅ − + ⋅ − =+ +aa aa a

aa aa a12

1 2 21 23

31 3312

1 3 21 22

31 32

1 1( ) ( )

det[A] = a11 a22 (-1)1+1 a33 + a11 a23 (-1)1+2 a32 – a12 a21 (-1)1+1 a33 –

- a12 a23 (-1)1+2 a31 + a13 a21 (-1)

1+1 a32 + a13 a22 (-1)1+2 a31 ,

det[A] = a11 a22 a33 + a12 a23 a31 + a13 a21 a32 – a13 a22 a31 – a11 a23 a32 - a12 a21 a33 .

soit le même résultat qu'en appliquant la règle de Sarrus. 4.1.6.3 PROPRIÉTÉS DU DÉTERMINANT 1. le déterminant d'une matrice et le déterminant de la matrice transposée sont égaux : IAI = IATI. 2. l'échange de deux lignes ou de deux colonnes dans le tableau change le signe du déterminant. 3. si tous les éléments d'une ligne ou tous les éléments d'une colonne sont nuls, le déterminant est également nul. 4. si deux lignes ou deux colonnes de la matrice sont identiques, le déterminant est nul. 5. det [A*B] = det [A] * det [B] ;

84

4. Solution des systèmes d’équations linéaires

6. pour une matrice diagonale : det [D] = d11 * d22 * d33 * . . . . . * dnn . 7. si une matrice [B] est obtenue à partir de la matrice [A] par addition d'une ligne et d'un multiple d'une autre ligne de [A] , (ou de colonnes) , les déterminants sont alors égaux : IAI = IBI . Exemple :

A B= = = = =1 2 11 1 22 1 1

41 2 12 3 32 1 1

4et .A

Valeurs particulières : 1. matrice d'ordre 1 : det [A] = a11 , 2. matrice d'ordre 2 : det [A] = a11 . a22 - a21

. a22 , 3. matrice d'ordre 3 : det [A] = (règle de Sarrus, voir ci-dessus).

4.2 SOLUTION PAR ÉLIMINATION Les algorithmes utilisés dans la solution des systèmes d'équations linéaires sont très nombreux et plus ou moins performants. Il existe une collection de méthodes classiques comme la méthode de Gauss ou la méthode d'inversion de la matrice des coefficients. Très souvent, les problèmes rencon-trés en technique font intervenir des cas particuliers comme des matrices symétriques ou des matrices bande plus ou moins larges. Il vaut mieux alors introduire des méthodes de calcul particulières afin d'obtenir de meilleurs résultats numériques et économiser du temps et de la place en mémoire. 4.2.1 ÉCRITURE MATRICIELLE DU SYSTEME LINÉAIRE 4.2.1.1 ÉCRITURE ALGÉBRIQUE DU SYSTEME D'ÉQUATIONS LINÉAIRES Les n inconnues du système d'équations linéaires sont notées par la lettre x suivie de l'indice i : i = 1,2,3,... , n . Le coefficient de xi dans la i ième équation sera noté : ai j ; le second membre de la i ième équation, c'est-à-dire la constante, sera désignée par bi . Avec ces conventions, un système d'équa-tions linéaires à n inconnues s'écrit : a11 x1 + a12 x2 + a13 x3 + . . . . . . + a1n xn = b1 ,

a21 x1 + a22 x2 + a23 x3 + . . . . . . + a2n xn = b2 ,

a31 x1 + a32 x2 + a33 x3 + . . . . . . + a3n xn = b3 ,

. . . . . . . . . . . . . . . . . . . . . . . . an1 x1 + an2 x2 + an3 x3 + . . . . . . + ann xn = bn .

Le système d'équations linéaires à n inconnues comprend exactement n équations du premier degré. 4.2.1.2 ÉCRITURE MATRICIELLE DU SYSTÈME D'ÉQUATIONS LINÉAIRES Le système de n équations à n inconnues avec second membre peut s'écrire sous une forme gé-nérale au moyen de la notation matricielle indépendamment du nombre d'inconnues. Définissons : - la matrice des coefficients du système par [A] , - les deux vecteurs {x} pour les inconnues, {b} pour les constantes.

85

4. Solution des systèmes d’équations linéaires

A =

F

H

GGGGG

I

K

JJJJJ

a a a aa a a aa a a a

a a a a

11 12 13 1

21 22 23 2

31 32 33 3

1 2 3

.....

.....

.......... ..... ..... ..... .....

.....

.

n

n

n

n n n nn

Inconnues : xl q =

F

H

GGGGG

I

K

JJJJJ

xxx

x

1

2

3

....

n

Constantes : bl q =

F

H

GGGGG

I

K

JJJJJ

bbb

b

1

2

3

....

n

Finalement, le système d'équations linéaires à n inconnues s'écrit simplement :

[A] . {x} = {b} .

Pour pouvoir résoudre numériquement un système d'équations linéaires, il est nécessaire de placer les coefficients ai j dans la matrice [A] et les constantes b, dans le vecteur {b} . L'algorithme de l'introduction des valeurs de ces éléments consiste à écrire une double boucle de lecture, ligne après ligne pour les coefficients ai j et une boucle simple pour les constantes bi . 4.2.1.3 SOLUTION DU SYSTÈME D'ÉQUATIONS LINÉAIRES On appelle solution du système d'équations linéaires une suite de nombres :

k1 , k2 , k3, . . . . . , kn ,

si après substitution de ces nombres aux inconnues xi , toutes les équations de ce système sont véri-fiées. Le système est dit compatible s'il y a des solutions; il est dit déterminé s'il n'y a qu'une et seulement une solution. Par contre, il est dit indéterminé s'il a plus d'une solution. La théorie des systèmes d'équations linéaires, vue en algèbre supérieure, étudie les diverses mé-thodes permettant de savoir si un système est compatible ou non et discute du nombre de solutions (voir par exemple A. Kurosh : Cours d'algèbre supérieur). 4.2.2 SYSTÈMES SIMPLES D'ÉQUATIONS LINÉAIRES Certains systèmes d'équations linéaires simples possèdent une configuration particulière avec un certain nombre de coefficients nuls. La solution de ces systèmes est relativement élémentaire, donc plus rapide que les solutions générales. Elle permet également d'introduire les notions de base sur les principes employées dans les systèmes linéaires. 4.2.2.1 SYSTÈME À MATRICE TRIANGULAIRE INFÉRIEURE 1. Propriétés La solution est fortement simplifiée lorsque la matrice des coefficients est triangulaire inférieure. Le système d'équations s'écrit dans ce cas comme suit :

a11 x1 + 0 x2 + 0 x3 + ... + 0 xn = b1,

a21 x1 + a22 x2 + 0 x3 + ... + 0 xn = b2,

a31 x1 + a32 x2 + a33 x3 + ... + 0 xn = b3,

............................................

86

4. Solution des systèmes d’équations linéaires

an1 x1 + an2 x2 + an3 x3 + ... + ann xn = bn.

Ce système particulier d'équations linéaires présente des coefficients ai,j avec les caractéristiques suivantes : ai,j = 0 pour tout j > i;

ai,j ≠ 0 pour tout j ≤ i.

La matrice des coefficients [A] est dite triangulaire inférieure; elle est souvent notée [L] (left). Cette matrice peut aussi s'écrire :

A =

F

H

GGGGG

I

K

JJJJJ

aa aa a a

a a a a

11

21 22

31 32 33

1 2 3

0 0 00 0

00

....

....

........ .... .... ....

....

.

n n n nn

2. Solution La première inconnue x1 du système linéaire se trouve immédiatement à partir de la première équation sur la première ligne par :

x1 = b1/a11 .

En reportant cette valeur dans la seconde équation de la deuxième ligne et en passant le terme a21.x1

= b1.a21/a11 maintenant connu dans le membre de droite, la deuxième inconnue x2 se trouve par :

x2 = (b2 - (a21/a11).b1)/a22 .

Pour l'inconnue xi, la valeur de cette inconnue se trouve par l'expression générale :

xi = (bi - aa

bij

jjj

j

i

⋅=

∑1

1

)/aii.

En conservant la valeur de l'inconnue trouvée à la ligne précédente, cette expression peut encore se simplifier. 3. Algorithme de la solution La matrice des coefficients [A] peut être mise à zéro pour tous les éléments situés en dessus de la diagonale principale. Après l'introduction des autres coefficients non nuls ai j dans la matrice [A] et des constantes b, dans le vecteur {b} , la solution prend la forme proposée. Les variables introduites dans cet algorithme sont les suivantes : a matrice des coefficients, b vecteur des constantes, x vecteur des inconnues, s somme provisoire, n nombre d'inconnues, i,j compteurs.

87

4. Solution des systèmes d’équations linéaires

A L G O R I T H M E Matrice triangulaire inférieure

Introduction des coefficients a(i,j) introduction des constantes b(i) Recherche des inconnues x(1) ⇐ b(1)/a(1,1) Pour i ⇐ 2,n,1 s ⇐ 0 pour j ⇐ 1,i-1,1 s ⇐ s+a(i,j)*x(j) fin faire j x(i) ⇐ (b(i)-s)/a(i,i) fin faire i Affichage des inconnues Pour i écris x(i)

⇐ 1,n,1

fin faire i 4.2.2.2 SYSTÈME À MATRICE TRIANGULAIRE SUPÉRIEURE 1. Propriétés Dans le cas particulier, le système d'équations linéaires à matrice triangulaire supérieure s'écrit sous la forme suivante :

a11 x1 + a12 x2 + a13 x3 + ... + a1n xn = b1,

0 x1 + a22 x2 + a23 x3 + ... + a2n xn = b2,

0 x1 + 0 x2 + a33 x3 + ... + a3n xn = b3,

............................................. 0 x1 + 0 x2 + 0 x3 + ... + ann xn = bn.

Ce système particulier d'équations présente des coefficients ai,j avec les caractéristiques suivantes :

ai,j = 0 pour tout j < i, ai,j ≠ 0 pour tout j ≥ i. La matrice des coefficients [A] est dite triangulaire supérieure. Elle est souvent notée par [R] (right). La matrice [A] peut s'écrire :

A =

F

H

GGGGG

I

K

JJJJJ

a a a aa a a

a a

a

11 13 13 1

22 23 2

33 3

00 00 0 00 0 0

....

....

....

.... ....

....

.

n

n

n

nn

2. Solution La solution de ce système linéaire consiste à remonter de la dernière ligne vers la première. L'in-connue xn est déterminée immédiatement à partir de la dernière ligne par :

xn = bn/ann.

En reportant cette valeur dans l'avant dernière équation, l'avant dernière inconnue xn-1 se trouve par l'expression :

88

4. Solution des systèmes d’équations linéaires

xn-1 = (bn-1 - (an-1,n/ann) bn)/an-1,n-1.

Les valeurs successives de toutes les inconnues se trouvent en remontant progressivement vers la première ligne. L'expression générale des inconnues devient :

xi = (bi - aa

bij

jjj

j i

n

⋅= +∑

1

)/aii.

3. Algorithme de la solution La matrice des coefficients [A] peut être mise à zéro pour tous les éléments situés en dessous de la diagonale principale. Après l'introduction des autres coefficients non nuls ai j dans la matrice [A] et des constantes bi, dans le vecteur {b} , la solution prend la forme proposée. Les variables introduites dans cet algorithme sont les suivantes : a matrice des coefficients, b vecteur des constantes, x vecteur des inconnues, s somme provisoire, n nombre d'inconnues, i,j compteurs. A L G O R I T H M E

Matrice triangulaire supérieure

Introduction des coefficients a(i,j) introduction des constantes b(i) Recherche des inconnues x(n) ⇐ b(n)/a(n,n) Pour i ⇐ n-1,1,-1 s ⇐ 0 pour j ⇐ i+1,n,1 s ⇐ s+a(i,j)*x(j) fin faire j x(i) ⇐ (b(i)-s)/a(i,i) fin faire i Affichage des inconnues Pou ⇐ 1,n,1 r i écris x(i) fin faire i 4.2.3 SYSTÈME À MATRICE TRIDIAGONALE La matrice des coefficients ai,j se réduit aux éléments placés sur la diagonale principale et aux éléments situés de part et d'autre de cette diagonale. Cette matrice est assez fréquente en technique ou en mathématique numérique : équation des trois moments pour les poutres continues en résis-tance des matériaux, recherche des coefficients des polynômes dans les fonctions spline cubiques en interpolation de courbes, etc. 4.2.3.1 CONFIGURATION DU SYSTÈME L'écriture algébrique du système d'équations linéaires à matrice tridiagonale prend la forme sui-vante : a11 x1 + a12 x2 + 0 x3 + 0 x4 + ... + 0 xn = b1,

a21 x1 + a22 x2 + a23 x3 + 0 x4 + ... + 0 xn = b2,

89

4. Solution des systèmes d’équations linéaires

0 x1 + a32 x2 + a33 x3 + 0 x4 + ... + 0 xn = b3,

0 x1 + 0 x2 + a43 x3 + a44 x4 + ... + 0 xn = b4,

...................................................... 0 x1 + 0 x2 + 0 x3 + 0 x4 + ... + ann xn = bn. Les caractéristiques des coefficients de la matrice [A] sont :

ai,j = 0 pour tout coefficient dont j < i-1 ou j > i+1,

ai,j ≠ 0 pour tout coefficient dont j = i-1,i ou i+1.

La matrice des coefficients [A] et le vecteur des constantes {b} s'écrivent :

A b=

F

H

GGGGGG

I

K

JJJJJJ

=

F

H

GGGGG

I

K

JJJJJ−

a aa a a

a a a

a a

bbb

b

11 12

21 22 23

32 33 34

1

2

3

0 0 0 00 0 0

0 0 0

0 0 0 0 0

....

....

........ .... .... .... .... .... ....

.

n,n 1 nn n

....l q

4.2.3.2 SOLUTION DU SYSTÈME À MATRICE TRIDIAGONALE La solution du système linéaire doit permettre de supprimer toutes les opérations inutiles en limi-tant le nombre de multiplications ou de division, en économisant de la place en mémoire, en évitant d'introduire des zéros de la matrice complète des coefficients [A]. Ecrivons la matrice des coefficients d'une manière légèrement différente, non conforme aux règles du calcul matriciel. Déplaçons les coef-ficients ai,j de telle sorte que tous les coefficients de la diagonale principale se trouvent dans la deuxième colonne. La première colonne contient les coefficients ai,j-1 et la troisième colonne les coefficients ai,j+1. Pour un système à 7 inconnues, cette nouvelle écriture devient par exemple :ai,j

0

0

11 12

21 22 23

32 33 34

43 44 45

54 55 56

65 66 67

76 77

1

2

3

4

5

6

7

1

2

3

4

4

6

7

a aa a aa a aa a aa a aa a aa a

zzzzzzz

bbbbbbb

F

H

GGGGGGGGG

I

K

JJJJJJJJJ

F

H

GGGGGGGGG

I

K

JJJJJJJJJ

=

F

H

GGGGGGGGG

I

K

JJJJJJJJJ

* .

Transformons ce système en utilisant la méthode classique de substitution et introduisons dans ce but la recherche de l'inconnue xi par l'expression linéaire générale :

xi = Bi – Ci . xi+1 (pour i = 1,2, .... n-1 , n) .

Partons de la première équation contenant les deux inconnues x1 et x2 et calculons l'expression de x1 en fonction des coefficients, de la constante b1 et de la seconde inconnue x2 :

a11 . x1 = b1 – a12 . x2 ,

x1 = b1 / a11 - (a12 / a11) . x2 ,

et posons : B1 = b1 / a11, C1 = a12 / a11 .

La valeur de la première inconnue devient :

x1 = B1 - C1 . x2 .

90

4. Solution des systèmes d’équations linéaires

Remplaçons l'expression de l'inconnue x1 dans la seconde équation :

a2l . (B1 - C1 . x2) + a22 . x2 = b2 - a23 . x3 .

Isolons la seconde inconnue x2 de cette équation en introduisant la formule générale de substitution :

x2 = (b2 - a21 . B1) / (a22 - a21 . C1) - (a23 / (a22 - a21 . C1)) . x3 = B2 - C2 . x3 ,

avec : B2 = (b2 - a21 . B1) / (a22 - a21 . C1) , C2 = a23 / (a22 - a21 . C1) .

Les deux dénominateurs de ces deux dernières expressions sont identiques. L'algorithme de la trans-formation consiste à calculer successivement :

1. dénominateur D = ai,j – ai,j-1 . Ci-1 , 2. constante Bi = (bi – ai,j-1 . Bi-1) / D , 3. coefficient Ci = ai,i+1 / D .

En conservant la matrice des coefficients initiaux, ce calcul demande la réservation en mémoire pour : un tableau à 3 colonnes a(n,3) contenant la matrice [A] primitive mais compactée, trois vecteurs b(n), c(n) et x(n). Le premier élément a(1,0) et le dernier élément a(n,n+1) doivent être nuls. Tous les coefficients b(i) et c(i) étant connus après transformation, la dernière inconnue du système se trouve par :

xn = bn .

Les autres inconnues se trouvent en remontant dans les deux vecteurs {b} et {c} au moyen de la relation :

xi = Bi – C . xi+1 . 4.2.3.3 ALGORITHME DE LA SOLUTION A partir de l'exposé de la méthode, il est possible de donner l'algorithme de la solution d'un sys-tème d'équations linéaires particulier à matrice avec coefficients tridiagonaux. Les variables utilisées sont : a tableau de dimensions n x 3 b,c vecteurs de n lignes, d variable auxiliaire, sert de dénominateur, n nombre d'inconnues, i,j compteurs. A L G O R I T H M E Système à matrice tridiagonale

Initialisation : lis n Pour i ⇐ i,n,1 pour j ⇐ 1,3,1 lis a(i,j) fin faire j lis b(i) fin faire i Transformation des vecteurs b(1) ⇐ b(i)/a(1,2) c(1) ⇐ a(1,3)/a(1,2) pour i ⇐ 2,n,1 d ⇐ a(i,2)-a(i,1)*c(i-1) b(i) ⇐ (b(i)-a(i,1)*b(i-1))/d c(i) ⇐ a(i,3)/d fin faire i Calculer les inconnues

91

4. Solution des systèmes d’équations linéaires

x(n) ⇐ b(n) pour i ⇐ n-1,1,-1 x(i) ⇐ b(i)-c(i)*x(i+1) fin faire i Affichage des inconnues pou ⇐ 1,n,1 r i écris x(i) fin faire i 4.2.3.4 EXEMPLE D'UTILISATION DE LA SOLUTION Soit à résoudre le système suivant composé de sept équations linéaires à matrice tridigonale. Les coefficients et constantes sont donnés dans le tableau compacté [A] et dans le vecteur jb) .

A b=

−−−

− −

F

H

GGGGGGGGG

I

K

JJJJJJJJJ

=

F

H

GGGGGGGGG

I

K

JJJJJJJJJ

0 1 33 2 4

1 4 36 2 44 3 11 4 37 2 0

11 0211 5017 9313 24111115 129 56

l q

,,,,,,,

.

Donnons sous forme d'un tableau de valeurs les diverses grandeurs introduites et calculées succes-sivement.

Tableau des valeurs numériques introduites et calculées Ligne Système linéaire [A].{x} = b Constantes Inconnues i a(i,1) a(1,2) a(i,3) b(i) B(i) C(i) x(i)

1 0 1 3 11,02 11,0200 3,00000 -8,28550 2 -3 2 4 11,50 4,05091 0.36364 6,43517 3 1 4 -3 17,93 3,81675 -0.82500 -6,55671 4 6 2 -4 13,24 -1,39000 -0,57554 -12,57389 5 4 -3 -1 11,11 -23,88794 1,43299 -19,43200 6 1 4 3 15,12 15,19586 1,16867 -3,10954 7 7 2 0 9,56 15,66339 0,00000 15,66339 Cet exemple montre le principe de la solution numérique en introduisant un tableau de valeurs des coefficients et constantes.

92

4. Solution des systèmes d’équations linéaires

4.2.4 SOLUTION PAR LA MÉTHODE DE GAUSS Cette méthode de résolution des systèmes d'équations linéaires utilise systématiquement la méthode d'élimination des inconnues ligne après ligne, transformant la matrice primitive des coef-ficients [A] en une matrice triangulaire supérieure. 4.2.4.1 PRINCIPE DE LA MÉTHODE D'ÉLIMINATION Choisissons, pour simplifier les explications, un système d'équations linéaires à quatre inconnues et écrivons ce système sous la forme algébrique usuelle : a11 x1 + a12 x2 + a13 x3 + a14 x4 = b1 , ligne 1 a21 x1 + a22 x2 + a23 x3 + a24 x4 = b2 , ligne 2

a31 x1 + a32 x2 + a33 x3 + a34 x4 = b3 , ligne 3

a41 x1 + a42 x2 + a43 x3 + a44 x4 = b4 , ligne 4

Éliminons la première inconnue xi des équations des lignes 2 à 4 en isolant cette inconnue dans la première équation. Dans ce but, passons dans le membre de droite tous les autres termes de gauche et isolons x1 :

x1 = (b1 – a12 . x2 – a13 . x3 – a14 . x4) / a11 .

Substituons cette expression dans la seconde équation, où x1 multiplie le coefficient a21. La seconde ligne devient :

a21 (b1 – a12 . x2 – a13

. x3 – a14 . x4) / a11 + a22

. x2 + a23 . x3 + a24

. x4 = b2 .

Ordonnons ces termes de manière à ne retenir que les coefficients des inconnues à gauche et les ter-mes constants à droite :

(a22 - a21 / a11 . a12) . x2 + (a23 - a21 / a11

. a13) . x3 + (a24 - a21 / a11 . a14) , x4 = b2 - a21/a11

. b1 .

Cette dernière expression revient à multiplier la première ligne par a21 / a11 et à soustraire cette ligne de la seconde. L'inconnue x1 disparaît de la seconde équation. Procédons de façon semblable avec les lignes 3 et 4 en multipliant la première ligne une fois par a31 / a11, la seconde fois par a41 / a11. Le système linéaire s'écrit comme suit, en introduisant la désignation a’i j pour les nouvelles valeurs des coefficients modifiés et b’i pour les constantes modifiées :

a a a aa a aa a aa a a

xxxx

bbbb

11 12 13 14

22 23 24

32 33 34

42 43 44

1

2

3

4

1

2

3

4

000

' ' '' ' '' ' '

*'''

F

H

GGGG

I

K

JJJJ

F

H

GGGG

I

K

JJJJ=

F

H

GGGG

I

K

JJJJ

Par exemple, la quatrième ligne s’écrit : a’42 = a42 – a41/a11

. a12 ,

a’43 = a43 – a41/a11 . a13 ,

a’44 = a44 – a41/a11 . a14 ,

b’4 = b4 – a41/a11 . b1 .

La ligne primitive 1 est conservée, les trois autres sont modifiées. Les système restant est un sys-tème à trois inconnues et matrice des coefficients de dimensions 3 x 3 . Eliminons l'inconnue x2 de la troisième et de la quatrième ligne en multipliant la seconde par a’32 / a’22 , par a’42 / a’22 et sous-trayons la première ligne modifiée de la troisième, la seconde de la quatrième. Le système devient :

93

4. Solution des systèmes d’équations linéaires

a a a aa a a

a aa a

xxxx

bbbb

11 12 13 14

22 23 24

33 34

43 44

1

2

3

4

1

2

3

4

00 00 0

' ' '' ' ' '' ' ' '

*'' '' '

.

F

H

GGGG

I

K

JJJJ

F

H

GGGG

I

K

JJJJ=

F

H

GGGG

I

K

JJJJ

avec par exemple la troisième ligne : a’’33 = a’33 – a’32/a’22

. a’23 ,

a’’34 = a’34 – a’32/a’22 . a’24 ,

b’’3 = b’3 – a’32/a’22 . b’2 .

Après cette nouvelle transformation, il reste un tableau carré de coefficients sur les deux dernières lignes. Eliminons la troisième inconnue x3 pour obtenir une matrice triangulaire supérieure de coeffi-cients transformés :

a a a aa a a

a aa

xxxx

bbbb

11 12 13 14

22 23 24

33 34

44

1

2

3

4

1

2

3

4

00 00 0 0

' ' '' ' ' '

' ' '

*'' '' ' '

.

F

H

GGGG

I

K

JJJJ

F

H

GGGG

I

K

JJJJ=

F

H

GGGG

I

K

JJJJ

avec sur la quatrième ligne :

a’’’44 = a’’44 – a’’43/a’’33 . a’’34 ,

b’’’4 = b’’4 - a’’43/a’’33 . b’’3 .

4.2.4.2 RECHERCHE DES INCONNUES La matrice primitive des coefficients [A] et le vecteur des constantes {b} sont transformés en une matrice triangulaire supérieure et un nouveau vecteur des constantes. La solution de ce système linéaire est identique à celle du système discuté sous 4.2.2.2 . Le déterminant du système peut se trouver par la multiplication des éléments de la diagonale principale. Si le produit est différent de zéro, alors la matrice des coefficients est dite régulière, s'il est égal à zéro la matrice est singulière et pro-voquera une erreur numérique par une division par zéro. 4.2.4.3 CHOIX DU PIVOT La méthode de Gauss est utilisable tant que les coefficients situés sur la diagonale principale pen-dant les transformations successives de la matrice [A], sont différents de zéro. Pour être sûr de ne pas avoir de division par zéro, il faut tester le coefficient ai,i intervenant au dénominateur lors de la multiplication des coefficients et constantes. Cet élément est appelé pivot. Pour augmenter la précision des calculs, il faudrait choisir, parmi tous les éléments restant à trans-former, l'élément dont le module est maximal. Ceci nécessiterait généralement une permutation des lignes et des colonnes pour placer ce coefficient sur la diagonale principale d'où une modification de la position des inconnues. Généralement, la méthode simple se contente seulement d'une permu-tation des lignes, la position des inconnues restant alors inchangée.

Inconvénient La méthode de Gauss détruit la matrice originale des coefficients [A] et le vecteur des constantes {b}. Si ces deux grandeurs sont employées par la suite, il est nécessaire de prévoir une copie de tous les éléments primitifs des deux tableaux supplémentaires.

94

4. Solution des systèmes d’équations linéaires

4.2.4.4 ALGORITHME DE GAUSS AVEC PERMUTATION DES LIGNES La méthode de Gauss, sous la forme proposée ici, est utilisée lorsque le nombre d'inconnues ne dépasse pas environ 40 inconnues. Il est possible d'améliorer le résultat, voir sous 4.2.4. Les trans-formations à prévoir peuvent s'exprimer sous les formes générales suivantes : - coefficient ai j : ai j = ai j - ai k / akk

. ak j , - constante bi : bi = bi - ai k / akk

. bk . La transformation des constantes bi est tout à fait semblable à celle des coefficients. L'algorithme proposé fait intervenir une matrice rectangulaire [A] , dimensions n lignes et n+1 colonnes, la dernière colonne de cette matrice contenant les constantes bi, (sans changement de signe !). Il comprend la permutation des lignes avec choix du pivot. Le vecteur {x} contient les inconnues. Les variables utilisées sont : a matrice primitive [A], modifiée par adjonction d'une colonne des b(i), x vecteur des inconnues, n nombre d'inconnues, i,j,k compteurs, amax valeur maximale, piv pivot, prov valeur provisoire, s somme. A L G O R I T H M E Méthode de Gauss avec pivotisation Formation de la matrice triangulaire Pour i ⇐ 1,n-1,1 amax ⇐ |a(i,i)| piv ⇐ i pour j ⇐ i+1,n,1 si |a(j,i)| > amax alors amax ⇐ |a(j,i)| piv ⇐ j fin si fin faire j si piv <> i alors pour j ⇐ i,n+1,1 prov ⇐ a(i,j) a(i,j) ⇐ a(piv,j) a(piv,j) ⇐ prov fin faire j fin si pour j ⇐ i+1,n,1 pour k ⇐ i+1,n+1,1 a(j,k) ⇐ a(j,k)-a(i,k)/a(i,i)*a(j,i) fin faire k fin faire j fin faire i

Solution du système triangulaire x(n) ⇐ a(n,n+1)(a(n,n) pour i ⇐ n-1,1,-1 s ⇐ 0 pour j ⇐ i+1,n,1 s ⇐ s+a(i,j)*x(j) fin faire j x(i) ⇐ (a(i,n+1)-s)/a(i,i)

95

4. Solution des systèmes d’équations linéaires

fin faire i Affichage des inconnues pou ⇐ 1,n,1 r i écris x(i) fin faire i 4.2.4.5 AMÉLIORATION DE LA PRÉCISION La méthode de Gauss nécessite de nombreuses opérations essentielles comme des multiplica-tions par les coefficients et des divisions par les pivots. Si le système possède beaucoup d'inconnues, que la précision exigée dans les calculs est élevée, il est nécessaire de prévoir une amélioration des résultats par une méthode itérative adéquate. Montrons le principe d'une amélioration par voie itéra-tive. Si {x}0 est le premier vecteur des inconnues trouvé par la méthode de Gauss lors du premier calcul, nous pouvons récrire le système linéaire sous la forme :

[A] . {x}0 = {b}0 ,

le vecteur {b}0 étant le vecteur des constantes calculées à partir des inconnues xi . La solution exac-te et recherchée doit remplir la condition fondamentale posée par le problème, soit :

[A] . {x} = {b} .

Soustrayons de cette dernière relation matricielle la première et écrivons le résultat sous la forme :

[A] . {x} - [A] . {x}0 = [A] . Δ {x} = {b} - {b}0 = Δ {b} ,

ou : [A] . Δ {x} = Δ {b} ,

avec : Δ {x} = {x} - {x}0 ,

et : Δ {b} = {b} - {b}0 .

La correction à introduire, pour chaque inconnue provisoire xi, dans le vecteur {x} est :

Δ xi = xi – xi,0 ,

et la nouvelle valeur de l'inconnue xi est :

xi = xi,0 + Δ xi .

En utilisant une seconde fois la méthode de Gauss à partir de la matrice primitive des coefficients [A] , dont les éléments doivent être conservés par exemple par copie, nous pouvons calculer les nouvelles valeurs des inconnues du vecteur {x}1 par :

{x}1 = {x}0 + Δ {x}1,

avec : xi,1 = xi,0 + Δ xi,1 (i = 1,2,3,...,n).

Le résultat est répété jusqu'à ce que l'erreur entre deux vecteurs successifs des inconnues soit infé-rieure à l'erreur admissible. 4.2.4.6 EXEMPLE NUMÉRIQUE Soit à résoudre par la méthode de Gauss un système d’équations linéaires à quatre inconnues dont la configuration est :

-3,12 x1 + 2,37 x2 + 7,23 x3 – 1,41 x4 = 10,2429 ,

2,63 x1 + 5,45 x2 + 2,86 x3 + 12,04 x4 = -42,7484 ,

96

4. Solution des systèmes d’équations linéaires

5,39 x1 – 3,76 x2 + 6,60 x3 - 5,11 x4 = 81,1499 ,

0,78 x1 + 2,44 x2 – 5,09 x3 - 0,93 x4 = -36,4800 .

Ce même système d’équations linéaires s’écrit sous forme matricielle suivante :

− −

− −− −

F

H

GGGG

I

K

JJJJ

F

H

GGGG

I

K

JJJJ=

F

H

GGGG

I

K

JJJJ

3 12 2 37 7 23 1 412 63 5 45 2 86 12 045 39 3 76 6 60 5 110 78 2 44 5 09 0 93

10 242942 748481149936 4800

1

2

3

4

, , , ,, , , ,, , , ,, , , ,

*

,,

,,

.

xxxx

Après permutation et transformation des diverses lignes, élimination des inconnues, introduction des zéros dans le éléments situés en dessous de la diagonale principale, la matrice des coefficients et constantes devient :

5 39 3 76 6 60 5 11 8114990 0 19352 11 0504 4 3679 57 21650 0 416 3195 178 9506 2236 0870 0 0 8 6790 17 18445

, , , , ,, , , ,

, , ,, ,

.

− −−

− −−

F

H

GGGG

I

K

JJJJ

Finalement, les inconnues valent : x1 = 2,67 ,

x2 = -7,13 , x3 = 4,52 ,

x4 = -1,98 . 4.2.4.7 MÉTHODE DE GAUSS-JORDAN La méthode de Gauss-Jordan est une modification de l'algorithme de Gauss qui évite le calcul ré-cursif des inconnues xi après transformation de la matrice primitive [A] des coefficients en une ma-trice triangulaire supérieure. L'idée de la méthode est de transformer la matrice [A] et le vecteur {b} en une matrice diagonale [D] et un nouveau vecteur des constantes modifiées {bm} de telle sorte que les éléments de la matrice des coefficients ne contienne que les éléments ai,i , tous les autres élé-ments étant nuls. Chaque ligne ne contient plus qu'un seul coefficient ai,i, donc une seule inconnue. La solution est directe et très simple :

[A] . {x} = {b} ⇒ [D] . {x} = {bm} .

Les constantes bi sont placés aussi dans la colonne n+1 de la matrice [A] , cette dernière compre-nant donc n lignes et n+1 colonnes. 1. Premier pas des transformations Le premier pas de la méthode est en principe identique à celui de la méthode d'élimination de Gauss. Il consiste, après permutation éventuelle des lignes, d'éliminer tous les coefficients ai,1 pour i = 2 ... n, en les rendant nuls. Les éléments de la première ligne et la constante b1 ne sont pas modifiés donc conservés. Tous les autres éléments, de la ligne 2 à la ligne n subissent les transformations sui-vantes : 1. calcul du rapport –ai,1 / a1,1 pour chaque ligne i , avec i = 2 ... n. 2. multiplication de la première ligne par ce rapport et sommation aux éléments de même colonne

des lignes i , avec i = 2 ... n . Les coefficients de la première colonne deviennent nuls. Par exemple, l'élément a31 de la ligne 3 est transformé en :

a31(1) = a31(0) - a11 . a31/a11 = 0 ,

97

4. Solution des systèmes d’équations linéaires

et le second élément a32 de la même ligne est transformé en :

a32(1) = a32(0) - a12 . a31 / a11 = 0.

Le système d'équations linéaire peut alors s'écrire sous la forme de la matrice [A] étendue à la colon-ne n+1 pour les constantes de chaque ligne. Pour distinguer les divers niveaux de transforma-tions les uns des autres, les indices sont suivis d'un suffixe entre parenthèses donnant le numéro du dernier pas.

a a a a ba a a ba a a b

a a a b

11 0 12 0 13 0 1 0 1 0

22 1 23 1 2 1

32 1 33 1 3 1 3 1

2 1 3 1 1 1

( ) ( ) ( ) ( ) ( )

( ) ( ) ( )

( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

.....

.....

.......... ..... ..... ..... .....

.....

n

n 2(1)

n

n n nn n

F

H

GGGGGG

I

K

JJJJJJ

2. Second pas de la transformation Le second pas consiste à éliminer les coefficients ai,2 , sauf l'élément a22 situé sur la ligne 2, de toutes les lignes sauf la seconde. Les lignes 2 à n sont oscultées de manière à déterminer le plus grand élément ai,2 et à permuter les lignes si c'est nécessaire. Les éléments restants de la seconde ligne sont alors multipliés par – a12 / a22 et sont additionnés aux éléments de la ligne 1 (les éléments de la ligne 2 étant conservés !). Tous les éléments de la seconde ligne sont multipliés par – ai,2 / a22 et sont additionnés aux éléments de la ligne i pour i = 3 à n . Le système d'équations linéaire devient :

a a aa a a b

a a b

a a b

11 0 13 2 1 2 1 2

22 1 23 1 2 1

33 2 3 2 3 2

3 2 2 2

( ) ( ) ( ) ( )

( ) ( ) ( )

( ) ( ) ( )

( ) ( ) ( )

.....

.....

.......... ..... ..... .....

.....

n

n 2(1)

n

n nn

b

n

F

H

GGGGGG

I

K

JJJJJJ

Après cette transformation, les éléments a11(2) = a11(0) et a22(1) restent inchangés, les valeurs entre parenthèses indiquant le numéro du pas. Si la valeur de l'élément n'est pas modifiée, l'indice précé-dent est conservé. 3. Troisième pas et pas suivants Dans le troisième pas de la méthode de Gauss-Jordan, il faut multiplier les éléments de la troisiè-me ligne par - ai,3 / a33 et les additionner aux éléments des ligne i = 1 à n sauf à ceux de la troisième ligne. Les coefficients de x3 sont tous nuls sauf a33. Les éléments ai,j intervenant dans les transforma-tions suivantes doivent être différents de zéro. Après n pas de transformation selon Gauss-Jordan, la matrice primitive [A] est remplacée par une matrice diagonale [D] et la solution du système s'effectue ligne après ligne. 4. Algorithme de la solution

L'algorithme de Gauss-Jordan est semblable à celui de Gauss. Les variables utilisées dans le pseudo-code sont les suivantes : a matrice primitive et modifiée par adjonction des bi, x vecteur des inconnues, n nombre d'inconnues, i,j,l compteurs, piv ligne du pivot, amax valeur maximale, prov valeur provisoire.

98

4. Solution des systèmes d’équations linéaires

A L G O R I T H M E Méthode de Gauss - Jordan

Formation de la matrice diagonale Pour i ⇐ 1,n-1,1 Recherche de l'élément pivot amax ⇐ |a(i,i)| piv ⇐ i pour j ⇐ i+1,n,1 si |a(j,i)| > amax alors amax ⇐ |a(j,i)| piv ⇐ j fin si fin faire j si piv <> i alors pour j ⇐ i,n+1,1 prov ⇐ a(i,j) a(i,j) ⇐ a(piv,j) a(piv,j) ⇐ prov fin faire j fin si Algorithme de Gauss-Jordan pour l ⇐ 1,n,1 si l <> i alors prov ⇐ a(l,i)/a(i,i) pour j ⇐ 1,n+1,1 a(l,j) ⇐ a(l,j)-a(i,j)*prov fin faire j fin si fin faire i Solution du système diagonal Pour i ⇐ 1,n,1 ⇐ a(i,n+1)/a(i,i) x(i) écris x(i) fin faire i 5. Exemple numérique Le même système d'équations linéaires que sous 4.2.4.6 est adopté pour tester cette méthode. Après transformation de la matrice primitive [A], les équations à une inconnue sont :

5.39 x1 = 14.39834 ⇒ x1 = 2.671

7.28466 x2 = -51.96407 ⇒ x2 = -7.133

11.04808 x3 = 49.91846 ⇒ x3 = 4.518

-8.68410 x4 = 17.18026 ⇒ x4 = -1.978

4.2.5 MÉTHODE ITÉRATIVE DE GAUSS-SEIDEL La méthode itérative est intéressante lorsque le système comprend un très grand nombre d’incon-nues et que la majorité des coefficients sont nuls, comme par exemple dans une matrice bande. Elle permet d'obtenir un résultat avec une précision fixée au départ du calcul. Plusieurs méthodes existent, mais pratiquement seule la méthode dite de Gauss-Seidel est introduite dans la solution usuelle des systèmes d'équations linéaires.

99

4. Solution des systèmes d’équations linéaires

4.2.5.1 PRINCIPE DES MÉTHODES ITÉRATIVES Le système d'équations linéaires : [A] . {x} = {b} est remplacé par la relation matricielle :

([F] - [G]) . {x} = {b} ,

ou encore, en développant le produit et en passant le terme négatif à droite, par :

[F] . {x} = [G] . {x} + {b} .

La solution du système consiste à améliorer progressivement la valeur des inconnues à partir d'un vecteur {x}0 dans lequel les inconnues xi,0 sont arbitraires, en introduisant une relation itérative dont la forme générale au pas p+1 est :

[F] . {x}p+1 = [G] . {x}p + {b} .

En isolant le vecteur {x}p+1 des inconnues, les nouvelles valeurs des xi,p+1, placées dans ce vec-teur, se trouvent par :

{x}p+1 = [F]-1 . [G] . {x}p + [F]-1 . {b} ,

{x}p+1 est une meilleure approximation de la solution à partir du vecteur {x}p calculée au pas précé-dent, pour autant que la méthode soit convergente. Le calcul itératif est commencé en donnant par exemple une valeur égale à zéro à toutes les inconnues du système. 4.2.5.2 MÉTHODE PARTICULIÈRE DE GAUSS-SEIDEL Afin de décrire cette méthode, l'algorithme de la solution étant finalement relativement simple, la matrice [A] des coefficients est décomposée en trois matrices composantes :

[A] = [D] + [F] - [G] ,

avec : [D] matrice diagonale dans laquelle tous les éléments de la diagonale principale correspondent exactement à ceux de la matrice [A] , tous les autres éléments étant nuls, donc : di,i = ai,i ; [F] matrice triangulaire inférieure dans laquelle tous les éléments situés en dessous de la diagonale principale sont exactement égaux à ceux de la matrice primitive [A] , tous les autres éléments de la matrice étant nuls; [G] matrice triangulaire supérieure dans laquelle tous les éléments situés en dessus de la diagonale

principale sont exactement égaux à ceux de la matrice primitive [A] mais changés de signe, tous les autres éléments étant nuls.

Le système d'équation linéaire s'écrit alors :

([D] + [F] - [G]) . {x} = {b} .

ou encore, au pas p+1 , en séparant les composantes de la matrice [A] et en introduisant une métho-de semblable à la méthode générale, au moyen de la formule itérative :

([D] + [F]) . {x}p+1 = [G] . {x}p + {b} .

Le vecteur {x}p+1 est le nouveau vecteur des inconnues. 4.2.5.3 RECHERCHE DE LA NOUVELLE VALEUR DES INCONNUES Développons une ligne i quelconque de l'équation matricielle précédente contenant les diverses inconnues, calculées au pas p ou à trouver au pas p+1 . Le niveau d'itération est désigné entre paren-thèses. ai,i

. xip+1) + ai,1

. x1(p+1) + ai2 . x2(p+1) +...+ ai,i-1(p+1)

. xi-1(p+1) =

- ai,i+1(p) . xi+1(p) - ai,i+2(p)

. xi+2(p) - ... - ai,n

. xn(p) + bi .

Séparons les termes connus au pas p et les termes inconnus au pas p+1; les inconnues recherchées :

100

4. Solution des systèmes d’équations linéaires

xj(p+1) pour j < i sont trouvées aux lignes précédentes de telle sorte qu'elles sont connues à la ligne i . Il reste :

aii . xi(p+1) =

k

i-1

=∑

1

-aik . xk(p+1) +

k i

n

= +∑

1

-aik . xk(p) + bi .

Finalement, la nouvelle valeur de l'inconnue se trouve par :

xi(p+1) = 1/aii . (

k

i-1

=∑

1

-aik . xk(p+1) +

k i

n

= +∑

1

-aik . xk(p) + bi).

Ce calcul est répété pour i = 1,2, .., n fois jusqu'à ce que le résultat soit satisfaisant, c'est-à-dire que l'erreur sur le résultat soit plus petite que l'erreur admissible. La correction peut s'écrire sous la forme : {x}p+1 = {x}p + {r} ,

{r} étant le vecteur des résidus. S'il y a convergence, le vecteur {r} diminue à chaque itération. L'amélioration est trouvée par la recherche de la norme de {r} par :

║ {r} ║ = max | xp+1 – xp | i ,

Pour ║ {r} ║ < eps , alors la solution du système est trouvée. 4.2.5.4 ALGORITHME DE LA MÉTHODE DE GAUSS-SEIDEL Le calcul de la solution nécessite un dimensionnement de la matrice des coefficients [A] , dimen-sions (n,n), des deux vecteurs {b} et {x} , dimension n , n étant le nombre d'inconnues du système. Le nombre maximal d'itérations est identifié par itmax et l'erreur maximale admissible eps. Les variables utilisées dans cet algorithme sont : a matrice des coefficients b vecteur des constantes x vecteur des inconnues eps erreur maximale admissible resl valeur absolue de l'erreur entre deux itérations xp valeur provisoire i,j,k compteurs itmax nombre maximal d'itérations A L G 0 R I T H M E Méthode de Gauss-Seidel : [A]{x}={b}

Initialisation donnez n,itmax,eps Affectation des coefficients pour i ⇐ 1,n,1 pour j ⇐ 1,n,1 lis a(i,j) fin faire j lis b(i) x(i) ⇐ 0 fin faire i Solution Gauss-Seidel i ⇐ 0 Répète i ⇐ i+l res1 ⇐ 0 pour j ⇐ 1,n,1

101

4. Solution des systèmes d’équations linéaires

xp ⇐ x(j) x(j) ⇐ b(j) pour k ⇐ 1,n,1 si k <> j alors x(j) ⇐ x(j)-a(j,k)*x(k) fin faire k x(j) ⇐ x(j)/a(j,j) si lx(j)-xpl > resl alors resl ⇐ lx(j)-xpl fin faire j jusqu'à ce que i = itmax ou resl <= eps Affichage des résultats Si resl > eps alors écris pas de convergence sinon pour i ⇐ 1,n,1 écris x(i) fin faire i fin si 4.2.5.5 CONVERGENCE DE LA MÉTHODE Pour qu'il y ait sûrement convergence dans cette méthode itérative, il faut que la matrice des coefficients soit à diagonale strictement dominante. Cette condition est remplie par la condition à remplir entre les divers coefficients :

| ai,i | = | ai,j | (pour tout j ≠ i) j

n

=∑

1

La solution est très souvent convergente lorsque :

| ai,i | > | ai,j | (pour tout j ≠ i)

Dans la pratique, certains problèmes font apparaître un type de matrice symétrique et la convergence est alors assurée. Un exemple classique est celui des rigidités de systèmes pour lesquels l'élément situé sur la diagonale principale est égal à la somme des rigidités des éléments intervenant sur la même ligne, les rigidités étant toutes positives. La méthode n'est pas utilisable dans la solution de n'importe quel problème à équations linéaires, un contrôle de la valeur des éléments sur chaque ligne est recommandé avant d'utiliser la méthode de Gauss-Seidel. 4.2.6 MÉTHODE DE CROUT Le principe de la méthode de Crout est la décomposition de la matrice des coefficients [A] en deux matrices triangulaires [L] et [R] dont le produit est égal à la matrice [A] . Cette méthode s'intro-duit avantageusement lorsque le système d'équations comprend la même matrice des coefficients, mais des vecteurs des constantes {b} différents. 4.2.6.1 FACTORISATION DE LA MATRICE [A] Le terme de gauche du système d'équations linéaires fondamental est remplacé par le produit de deux matrices triangulaires, soit : [A] . {x} = [L] . [R] . {x} = {b} ,

avec : [L] matrice triangulaire inférieure dans laquelle les éléments de la diagonale principale valent un d'où

a(i,i) = 1, les éléments situés en dessous de la diagonale principale sont à déterminer.

102

4. Solution des systèmes d’équations linéaires

[R] matrice triangulaire supérieure dans laquelle tous les éléments sont à trouver pour satisfaire l'éga-lité matricielle.

Le système d'équations linéaires se résout par des opérations matricielles connues pour les deux sys-tèmes à matrices triangulaires inférieure ou supérieure : 1. Calcul du vecteur {y} à partir de la matrice [L] et du vecteur {b} dont tous les éléments sont con-

nus par :

[L] . {y} = {b} .

2. Calcul du vecteur {x} à partir de la matrice [R] et du nouveau vecteur {y} dont tous les éléments sont connus par :

[R] . {x} = {y} .

voir algorithme sous 4.2.2.2 . 4.2.6.2 RECHERCHE DES ÉLÉMENTS DES MATRICES [L] ET [R] La solution du système d'équations linéaire passe par la recherche des valeurs des éléments in-connus dans les deux matrices triangulaires [L] et [R]. Les éléments se trouvent à partir de l'égalité matricielle : [L] . [R] = [A] .

Pour trouver les transformations à effectuer, discutons ces opérations sur des matrices carrées de dimensions 4 x 4:

1 0 0 01 0 0

1 01

00 00 0 0

21

31 32

41 42 43

11 12 13 14

22 23 24

33 34

44

11 12 13 14

21 22 23 24

31 32 33 34

41 42 43 44

ll ll l l

r r r rr r r

r rr

a a a aa a a aa a a aa a a a

F

H

GGGG

I

K

JJJJ

F

H

GGGG

I

K

JJJJ=

F

H

GGGG

I

K

JJJJ* .

Commençons à effectuer le produit matriciel entre [L] et [R] colonne après colonne sur la premièrre ligne et sur les suivantes. r11 = a11, r12 = al2, r13 = a13, r14 = a14. l21 r11 = a21, l21 r12 + r22 = a22, l21 r13 + r23 = a23, l21 r14 + r24 = a24. l31 r11 = a31, l31 r12 + l32 r22 = a32, l31 r13 + l32 r23 + r33 = a34, l31 r14 + l32 r24 + r34 = a34, l41 r11 = a41, l41 r12 + l42 r22 = a42, l41 r13 + l42 r23 + l43 r33 = a43, l41 r14 + l42 r24 + l43 r34 + r44 = a44. Les coefficients indéterminés li,j et ri,j peuvent tous être trouvés successivement car chaque équation ne contient qu'une seule inconnue à ce niveau. Les inconnues doivent se trouver dans l’or-dre proposé :

r11 r12 r13 r14

l21 l31 l41

r22 r23 r24

l32 l42

r33 r34

143

r44

Pour des matrices carrées de dimensions quelconques n x n , les règles à appliquer sont :

103

4. Solution des systèmes d’équations linéaires

l i,j = 1. r i,i = a i,j pour i = 1 à n, l i,1 = a i,1 / r 1,1 pour i = 2 à n,

Eléments restants : pour k = 2 à n

pour j = k à n : r a l rk, j k, j k,i i, ji

k-1

= − ⋅=∑ .

1

pour i = k+1 à n : l a l r ri,k i,k i, j j,k k,kj

k-1

= − ⋅=∑( )

1

/ .

et k < n Inconvénient de la méthode de Crout Cette méthode nécessite la présence de deux matrices carrées supplémentaires [L] et [R] de dimensions n x n en mémoire et du vecteur provisoire {y} . 4.2.6.3 ALGORITHME DE LA METHODE DE CROUT Les relations générales précédentes permettent d'écrire l'algorithme de la solution du système d'équations linéaires. Les variables utilisées dans le pseudo-code de la méthode de Crout sont : a matrice carrée de dimensions n x n, l matrice carrée de dimensions n x n, r matrice carrée de dimensions n x n, b,y vecteurs de dimension n, i,j,k compteurs, som1 somme 1, som2 somme 2. A L G O R I T H M E

Méthode de Crout : [A] . {x} = [L] . [R] . {x} = {b}

Initialisation des matrices [L] et [R] Pour i ⇐ 1,n,1 pour j ⇐ 1,n,1 l(i,j) ⇐ 0 r(i,j) ⇐ 0 fin faire j l(i,i) ⇐ 1 r(l,I) ⇐ a(1,i) fin faire i Factorisation de la matrice [A] Pour i ⇐ 2,n,1 l(i,1) ⇐ a(i,i)(a(1,1) fin faire i pour k ⇐ 2,n,1 pour j ⇐ 2,n,1 som1 ⇐ 0 pour i ⇐ 1,k-1,1 som1 ⇐ som1+r(i,j)*l(k,i) fin faire i r(k,j) ⇐ a(k,j)-som1 fin faire j si k <> n alors pour i ⇐ k+1,n,1

104

4. Solution des systèmes d’équations linéaires

som2 ⇐ 0 pour j ⇐ 1,k-1,1 som2 ⇐ som2+1(i,j)*r(j,k) fin faire j l(i,k) ⇐ (a(i,k)-som2)/r(k,k) fin faire i fin si fin fair Solution : [L]{y} = {b} ==> vecteur {y}

e k

Solution : [R]{x} = {y} ==> vecteur {x} Affichage des inconnues pour i ⇐ 1,n,1 écris x(i) fin faire i

4.3 SOLUTION PAR INVERSION ET OPÉRATION D’ÉCHANGE Dans ce sous-chapitre, nous voulons étudier la solution de systèmes linéaires par inversion de la matrice des coefficients [A] et par des opérations d'échange entre lignes et colonnes. 4.3.1 INVERSION DE LA MATRICE La matrice inverse [A]-1 d'une matrice [A] carrée d'ordre n est définie par la relation matricielle entre ces deux matrices et la matrice unité [E] :

[A] . [A]-1 = [A]-1 . [A] = [E] .

Ecrivons le système d'équations linéaires sous la forme matricielle générale :

[A] . {x} = {b} ,

et prémultiplions cette égalité par la matrice inverse [A]-1 :

[A]-1 . [A] . {x} = [A]-1 . {b} .

En appliquant la propriété fondamentale du produit de l'inverse de la matrice par cette matrice, nous obtenons la matrice unité et la solution du système d'équations linéaire sous la forme :

{x} = [A]-1 . {b} .

Le vecteur des inconnues (x} est égal au produit de la matrice inverse [A]-1 par le vecteur des constantes {b} . Le problème fondamental à résoudre consiste à trouver tous les coefficients de la matrice inverse [A]-1 à partir de la matrice carrée primitive [A] des coefficients. 4.3.1.1 RECHERCHE DES COEFFICIENTS DE LA MATRICE [A]-1 PAR COLONNE Afin de mettre en évidence la méthode proposée, choisissons une matrice carrée primitive [A] d'ordre 3 et désignons par si j les éléments de la matrice inverse [S] = [A]-1. Ecrivons la propriété générale de la matrice inverse par une égalité matricielle sous la forme développée.

a a aa a aa a a

s s ss s ss s s

11 12 13

21 22 23

31 32 33

11 12 13

21 22 23

31 32 33

1 0 00 1 00 0 1

F

HGG

I

KJJF

HGG

I

KJJ =F

HGG

I

KJJ* .

105

4. Solution des systèmes d’équations linéaires

La multiplication matricielle des deux matrices fait apparaître un système de neuf équations à neuf inconnues, les valeurs des éléments ai j étant connus, celles des éléments si j étant les inconnues du système. Les éléments de la matrice unité sont les constantes bi du système, soit des 1 ou des 0. Ecrivons par exemple les trois équations permettant de retenir la première colonne de la matrice unité :

a11 sll + a12 s21 + a13 s31 = 1 , a21 s11 + a22 s21 + a23 s31 = 0 , a31 sll + a32 s21 + a33 s31 = 0 .

Ce système d'équations linéaires peut s'écrire sous la forme matricielle suivante :

[A] . {s1} = {e1} .

avec : [A] la matrice des coefficients primitifs, {s1} le vecteur des inconnues de la première colonne de la matrice [A]-1, {e1} le vecteur de la première colonne de la matrice unité [E]. 4.3.1.2 PRINCIPE DE LA MÉTHODE D'INVERSION Pour calculer la matrice inverse d'une matrice carrée régulière, il suffit de résoudre un système d'équations linéaires. Nous pouvons écrire pour chaque colonne de la matrice des inconnue une rela-tion matricielle semblable contenant la colonne correspondante de la matrice unité. Ces derniers vecteurs contiennent un seul élément valant toujours 1, tous les autres étant nuls. La transformation pour une matrice de dimensions 3 x 3 devient :

[A] . {s1} = {e1}, [A] . {s2} = {e2}, [A] . {s3} = {e3}.

Chaque vecteur {si} est introduit dans la colonne correspondante de la matrice inverse. Bien que cette méthode d'inversion paraisse simple, elle n'est pas employée souvent dans le calcul numérique car le nombre d'opérations essentielles est trop grand. Si cette méthode était retenue, il faudrait utiliser une solution de systèmes d'équations linéaires avec conservation de la matrice des coefficients. 4.3.2 OPÉRATIONS D'ÉCHANGE La recherche de la valeur des inconnues d'un système d'équations linéaires peut se résoudre en utilisant le calcul du déterminant de la matrice des coefficients et d'une matrice modifiée. C’est la mé-thode de Cramer. Ce procédé n'est pas recommandé dès que le nombre d'inconnues dépasse 3 à 5. Par contre, la formule de Cramer permet de tirer la propriété suivante : un système de n équations linéaires à n inconnues possède une solution unique si le déterminant de la matrice des coefficients est différent de zéro (voir démonstration sous 4.3.6.1). La solution du système d'équations se trouve à partir de la recherche de la valeur de chaque incon-nue par l'expression :

xi = ⏐D⏐i / ⏐D⏐ .

avec : ⏐D⏐ le déterminant de la matrice des coefficients du système d'équations linéaires, ⏐D⏐i le déterminant de la matrice modifiée en remplaçant dans la matrice [A] primitive les coeffi-

cients de l'inconnue xi par les constantes bi dans la même colonne. 4.3.3.1 PRINCIPE DE L'OPÉRATION D'ÉCHANGE Introduisons, pour simplifier les explications, un système de trois fonctions linéaires yi (i = 1, 2, 3) , à quatre variables indépendantes xi (i = 1, .... 4) : y1 = a11 x1 + a12 x2 + a13 x3 + a14 x4 ,

106

4. Solution des systèmes d’équations linéaires

y2 = a21 x1 + a22 x2 + a23 x3 + a24 x4 , y3 = a31 x1 + a32 x2 + a33 x3 + a34 x4 .

Ecrivons ces trois lignes de fonctions linéaires dans un tableau en remarquant que chaque ligne cor-respond exactement à l'écriture primitive : x1 x2 x3 x4

y1 a11 a12 a13 a14 y2 a21 a22 a23 a24 y3 a31 a32 a33 a34

Extrayons ensuite la valeur d'une des variables indépendantes comme par exemple x2 de la troisième relation : x2 = - x1*a31/a32 + y3*1/a32 - x3*a33/a32 - x4*a34/a32 .

Remplaçons x2 dans les deux premières fonctions : y1 = xl*(a11-al2*a31/a32) + y3*a12/a32 + x3*(a13-al2*a33/a32) + + x4*(a14-al2*a34/a32).

y2 = xl*(a21-a22*a31/a32) + y3*a22/a32 + x3*(a23-a22*a33/a32) + + x4*(a24-a22*a34/a32).

Ces nouvelles valeurs sont aussi représentables dans un tableau : x1 y3 x3 x4

y1 a11-al2*a31/a32 a12/a32 a13-al2*a33/a32 a14-al2*a34/a32 y2 a21-a22*a31/a32 a22/a32 a23-a22*a33/a32 a24-a22*a34/a32 x2 -a21/a32 1/a32 -a33/a32 -a34/a32 Le nouveau tableau est le résultat d'un échange entre la colonne x2 et la ligne y3. 4.3.3.2 REGLES POUR L'OPÉRATION D'ÉCHANGE 1. Vocabulaire L'élément à l'intersection de la ligne et de la colonne échangées est le nombre pivot ou par sim-plification du langage le pivot. Dans cet exemple, le nombre pivot est l'élément a32 . Tous les éléments placées dans la colonne du pivot forment la colonne pivot . La ligne de base est obtenue en divisant chaque élément de la ligne pivot par le pivot changé de signe. 2. Règles d'échange Il y a quatre règles à observer successivement dans l'opération d'échange : 1. Le pivot est transformé en son inverse : par exemple l'élément a32 devient 1/a32. 2. Les autres éléments de la colonne pivot sont divisés par l'élément pivot. 3. Les autres éléments de la ligne pivot sont divisés par l'élément pivot changé de signe. Ces élé- ments forment la ligne de base facilitant le calcul manuel. 4. Chaque élément restant de la matrice est transformé en y additionnant le produit formé pas l’élé-

ment de la ligne de base situé sur sa colonne et l'élément de la colonne pivot situé sur sa ligne. 3. Remarque importante sur le choix du pivot Dans les calculs manuels, on choisit un élément pivot si possible égal à l'unité si l'opération d'échange n'est pas imposée en ligne et en colonne, ceci afin de faciliter le calcul des termes. Par contre, dans un calcul numérique au moyen d'un programme, il faut adopter le plus grand élément du tableau, en valeur absolue, comme élément pivot.

107

4. Solution des systèmes d’équations linéaires

4.3.3.3 EXEMPLE NUMÉRIQUE MANUEL Soit à échanger la ligne y3 avec la colonne x2 d'un système composé de trois fonction linéaires selon tableau. x1 x2 x3 x4

y1 6 -3 -2 4 y2 2 4 1 6 y3 3 1 5 2

----------------------------------------------- ligne de base -3 -5 -2 En appliquant les 4 règles proposées précédemment, nous obtenons le tableau modifié suivant : x1 x2 x3 x4

y1 15 -3 13 10 y2 -10 4 -19 -2 y3 -3 1 -5 -2

4.3.4 INVERSION D'UNE MATRICE CARRÉE L'opération d'échange permet d'inverser une matrice carrée non singulière en procédant à l'échan-ge de toutes les lignes avec toutes les colonnes. L'ordre dans lequel s'effectue les échanges n'influe pas directement sur le résultat, à part sur les erreurs numériques qui peuvent être minimisées pas le choix correct du pivot. Cette méthode porte le nom d'inversion de matrice par opérations d'échange. 4.3.4.1 EXEMPLE NUMÉRIQUE MANUEL ET SIMPLE Soit à inverser la matrice [A] d'ordre 3 donnée par les éléments :

A =F

HGG

I

KJJ

3 5 12 4 51 2 2

.

A partir des éléments de cette matrice à 9 éléments, les opérations d'échange sont effectuées ma-nuellement en choisissant si possible un élément valant 1 afin de faciliter le calcul. Tableau primitif :

x x xyyy

1 2

1

2

3

3 5 12 4 51 2 2

2 2lignede base − −

3

3

5

2

Première opération d'échange entre x1 et y3 :

y x xyyx

3 2

1

2

1

3 12 0 11 22 0

− −

− −−lignede base

Seconde opération d'échange entre x3 et y2 :

108

4. Solution des systèmes d’équations linéaires

y x yyxx

3 2

1

3

1

13 1 52 0 1

5 213 5

− −−

− −−lignede base

2

2

2

1

Troisième opération d'échange entre x2 et y1

y y yxxx

3 1

2

3

1

13 1 52 0 121 2 8

− −−−

Après la dernière opération d'échange, les lignes et colonnes doivent être ordonnées en indice crois-sant pour les deux types de variables.

y y yxxx

1 2 3

1

2

3

2 8 21 5 13

0 1 2

−− −

−Contrôlons le résultat de l'inversion de matrice en multipliant la matrice primitive par son inverse et utilisons dans ce but le schéma de Falk :

2 8 211 5 13

0 1 2

3 5 12 4 51 2 2

1 0 00 1 00 0 1

−− −

F

HGG

I

KJJ

F

HGG

I

KJJF

HGG

I

KJJ

L'inversion de la matrice carrée [A] peut servir à résoudre un système d'équations linéaires en multi-pliant l'équation matricielle primitive à gauche par la matrice inverse. Cette méthode est très avanta-geuse lorsqu'il s'agit de résoudre plusieurs systèmes d'équations linéaires avec matrice des coeffi-cients constante et vecteur des constantes bi variable. 4.3.4.2 ALGORITHME DE LA MÉTHODE PAR OPÉRATIONS D'ÉCHANGE Nous donnons ci-après l'algorithme complet de l'inversion d'une matrice carrée d'ordre n avec choix du pivot, ce dernier étant choisi parmi le plus grand en module de tous les éléments restants. La méthode introduit la permutation des lignes et des colonnes, ce qui augmente évidemment le nombre d'opérations nécessaire à la solution. L'algorithme décrit seulement les diverses opérations pour l'in-version de matrice, les éléments étant placés dans la matrice carrée [A] . Cette méthode nécessite la conservation de la trace des lignes et colonnes échangées; ces valeurs sont placées dans les vec-teurs {l} et {m}. La matrice primitive [A] est remplacée par son inverse. Les variables utilisées sont : a matrice des coefficients [A] remplacée par la matrice inverse [A]' I,m vecteur retenant la ligne ou la colonne échangée i,j,k compteurs pivo élément pivot prou valeur provisoire

109

4. Solution des systèmes d’équations linéaires

A L G 0 R I T H M E

Inversion d'une matrice carrée : [A] ⇒ [A]-1

Recherche du pivot Pour k ⇐ 1,n,1 l(k) ⇐ k ; m(k) ⇐ k pivo ⇐ a(k,k) pour i ⇐ k,n,1 pour j ⇐ k,n,1 si |pivo| < |a(i,j) | alors pivo ⇐ a(i,j)

l(k) ⇐ i ; m(k) ⇐ j fin si fin faire j fin faire i Permutation des lignes j ⇐ l(k) si j > k alors pour i ⇐ 1,n,1 aprov ⇐ -a (k,i) a(k,i) ⇐ a(j,i) a(j,i) ⇐ aprov fin faire i fin si Permutation des colonnes i ⇐ m(k) si i > k alors pour j ⇐ 1,n,1 aprov ⇐ -a(j,k) a(j,k) ⇐ a(j,i) a(j,i) ⇐ aprov fin faire j fin si Division de la colonne par -pivo pour i ⇐ 1,n,1 si i <> k alors a(i,k) ⇐ a(i,k)/(-pivo) fin faire i Réduction de la matrice pour i ⇐ 1,n,1 aprov ⇐ a(i,k) pour j ⇐ 1,n,1 si (i-k <> 0) ET (j-k <> 0) alors a(i,j) ⇐ aprov*a(k,j)+a(i,j) fin faire j fin faire i Division de la ligne par pivo pour j ⇐ 1,n,1 si j-k <> 0 alors a(k,j) ⇐ a(k,j)/pivo fin faire j a(k,k) ⇐ 1/pivo fin faire k Arrangement final des lignes et des colonnes Pour k ⇐ n-1,1,-1 i ⇐ l(k)

110

4. Solution des systèmes d’équations linéaires

si i-k > 0 alors pour j ⇐ 1,n,1 aprov ⇐ a(j,k) a(j,k) ⇐ -a(j,i) a(j,i) ⇐ aprov fin faire j fin si j ⇐ m(k) si j-k > 0 alors pour i ⇐ 1,n,1 aprov ⇐ a(k,i) a (k, i) ⇐ -a (j,i) a(j,i) ⇐ aprov fin faire i fin si fin faire k

4.3.4.3 EXEMPLE NUMÉRIQUE D'INVERSION D'UNE MATRICE Résolvons le même système d'équations linéaires que sous 4.2.4.6 en écrivant les éléments de la matrice primitive [A] dans un tableau carré 4 x 4 .

-3,12 2,37 7,23 -1,41

2,63 5,45 2,86 12,04

5,39 -3,76 6,60 -5,11

0,78 2,44 -5,09 -0,93

La matrice inverse [A]-1 se présente aussi sous la forme d'un tableau carré de dimensions 4 x 4

-4.891E-02 5.1976E-02 1.1593E-01 1.1006E-01

1.2574E-01 4.0772E-02 1.9980E-02 2.2742E-01

6.4007E-02 1.8588E-02 3.5148E-02 -4.953E-02

-6.144E-02 4.8832E-02 -4.272E-02 -1.152E-01

Le déterminant de la matrice primitive vaut : [A] = 3768,96 . En introduisant les constantes dans la solution et en effectuant le produit matriciel, les inconnues du système linéaire valent :

x1=2,67, x2=-7,13, x3=4,52, x4=-1,98.

Finalement, la qualité de l'inversion de la matrice peut s'effectuer au moyen du produit matriciel entre la matrice primitive et la matrice inverse. Le résultat numérique dépend non seulement de la méthode, mais surtout de la représentation interne des nombres si les dimensions de la matrice sont petites. La représentation utilisée ici est définie sur 6 octets et 11 chiffres significatifs. Les résultats sont donnés en exposant de 10, symbole usuel E .

1.0000E+00 3.4106E-13 1.1369E-13 -6.821E-13

1.8190E-12 1.0000E+00 0.0000E+00 1.8190E-12

-9.095E-13 -2.274E-13 1.0000E+00 0.0000E+00

2.2737E-13 5.6843E-14 1.4211E-12 1.0000E+00

L'erreur maximale sur l'inversion vaut ici 1,82.10-12, soit la précision de la représentation numérique. 4.3.5 SOLUTION SELON STIEFEL La méthode de Stiefel permet de résoudre un système d'équations linéaires aux moyen d'opéra-tions d'échange sans devoir inverser la matrice des coefficients.

111

4. Solution des systèmes d’équations linéaires

4.3.5.1 ÉCRITURE DU SYSTEME LINÉAIRE Dans cette méthode, le système d'équations linéaires est tout d'abord écrit sous la forme d'un en-semble de n lignes comprenant chacune une fonction contenant les produits des coefficients ai,j par les inconnues xi et le terme constant passé à gauche du signe d'égalité. La configuration d'une ligne est : yi = ai1 x1 + ai2 x2 + ai3 x3 + . . . + ain xn - bi = 0 .

Attention : les constantes bi sont passées à gauche du signe d'égalité en changeant leur signe. Toutes les fonctions sont alors portées dans un tableau qui contient seulement les coefficients et les constan-tes du système linéaire. La solution du problème consiste à trouver les valeurs des inconnues xi qui annulent les fonctions yi. Le tableau de départ aura la forme suivante : x1 x2 x3 - - - xn 1

y1 = a11 a12 a13 - - - a1n - b1 y2 = a21 a22 a23 - - - - - - - - y3 = a31 a32 a33 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - yn = an1 an2 an3 - - - ann - bn

Pour éviter toute écriture inutile pendant le travail manuel, nous supprimerons immédiatement la ligne et la colonne échangées. Nous indiquerons sur la ligne de base l'expression de l'inconnue éliminée en fonction des inconnues restantes et de la constante modifiée. 4.3.5.2 RÈGLES D'ÉCHANGE Formulons les deux règles d'échange dans la solution du système d'équations linéaires selon Stiefel : 1. La ligne de base est obtenue en divisant chaque élément de la ligne pivot par le pivot changé de

signe. 2. Tous les éléments du schéma restant, qui n'appartiennent ni à la ligne pivot, ni à la colonne pivot,

sont transformés en y additionnant le produit formé par les éléments de la ligne de base situés sur leur colonne et l'élément de la colonne pivot situé sur leur ligne.

Montrons l'application de ces deux règles par un exemple commenté d'un système linéaire à trois inconnues. 4.3.5.3 EXEMPLE COMMENTÉ Soit à résoudre un système de trois équations linéaires : x1 + x2 + x3 = 11 , 2 x1 - x2 + x3 = 5 , 3 x1 + 2 x2 + x3 = 24 .

Pour faciliter le calcul manuel, le pivot est choisi égal à l'unité dans la mesure du possible. Dans le calcul par programme, le pivot est l'élément à la plus grande valeur absolue. Schéma de départ : x1 x2 x3 1

1 1 1 -11 2 1 1 -5

112

4. Solution des systèmes d’équations linéaires

3 2 1 -24

ligne de base x3 = -1 -1 11

Second schéma : x1 x2 1

1 -2 6 2 1 -13 ligne de base x1 = 2 -6

Troisième schéma x2 1

5 -25 ligne de base x2 = 5

La détermination des inconnues s'effectue à partir des expressions écrites sur les lignes de base. Dans le cas de l'exemple numérique, les lignes de base signifient successivement : x3 = -x1 - x2 + 11 ,

xl = 2 x2 – 6 ,

x2 = 5 .

Les équations de la ligne de base permettent de retrouver la valeur des inconnues en remontant de la dernière relation vers la première. Dans cet exemple, nous trouvons évidemment : x2 = 5, x1 = 4, x3 = 2.

Le nombre d'opérations essentielles, soit de multiplications et de divisions, est proportionnel au cube du nombre d'inconnues dans la solution par l'inversion de la matrice des coefficients. Dans la méthode de Stiefel, le nombre des opérations essentielles est donné par l'expression :

nombre d'opérations = n3/3 - n2 + n/6 ,

soit approximativement proportionnel au tiers du cube du nombre d'inconnues lorsque n est très grand. 4.3.5.4 ALGORITHME DE LA MÉTHODE DE STIEFEL L'algorithme de la méthode de Stiefel, proposé ci-après, utilise une seule matrice des coefficients, constantes et inconnues, [A](n,n+1), n étant le nombre des inconnues. Les constantes bi sont placées dans la dernière colonne et sont remplacées, en cours de calcul, par les inconnues du système xi . Les variables utilisées dans l'algorithme sont : a matrice des coefficients a(i,j) et des constantes b(i) i,j,k compteurs i1 numéro de ligne pivo valeur du pivo prov valeur provisoire

113

4. Solution des systèmes d’équations linéaires

A L G 0 R I T H M E

Méthode de Stiefel : [Allxl=fbl

Initialisation et coefficients Donnez n Pour i ⇐ 1,n,1 pour j ⇐ 1,n,1 lis a(i,j) fin faire j lis b(i) a(i,n+l) ⇐ -b fin faire i Recherche du pivot Pour k ⇐ 1,n,1 pivo:=0 pour i ⇐ k,n,1 si pivo < |a(i,k)| alors i1 ⇐ i pivo:=|a(i,k)| fin i pivo ⇐ -a(i1,k) pour j ⇐ k,n+1,1 aprov ⇐ a(i1,j)/pivo a(i1,j) ⇐ a(k,j) a(k,j) ⇐ aprov fin faire j Transposition des lignes et colonnes pour i ⇐ k+1,n,1 pour j ⇐ k+1,n+1,1 a(i,j) ⇐ a(i,j)+a(k,j)*a(i,k) fin faire j fin faire i fin faire k Recherche des inconnues Pour k ⇐ 1,n-1,1 i ⇐ n-k pour j ⇐ i+1,n,1 a(i,n+1) ⇐ a(i,n+1)+a(i,j)*a(j,n+1) fin faire j fin faire k Affichage des inconnues Pour i ⇐ 1,n,1 écris -a(i,n+1) fin faire i 4.3.6 SYSTEME D'EQUATIONS LINEAIRES HOMOGENES Le système d'équations linéaires homogènes se présente sous la forme générale suivante : [A] {x} = {0}, le vecteur des constantes {b} = {0} étant un vecteur de n lignes dont tous les éléments sont nuls. Sous forme développée, le système s'écrit :

a11 x1 + a12 x2 + a13 x3 + .. + a1n xn = 0 a21 x1 + a22 x2 + a23 x3 + .. + a2n xn = 0 a31 x1 + a32 x2 + a33 x3 + .. + a3n xn = 0 . . . . . . . . . . . . . . . . . . . . . an1 x1 + an2 x2 + an3 x3 + .. + ann xn = 0

La solution d'un système d'équations linéaires homogènes n'a de sens que si le vecteur des incon-nues est différent de zéro.

114

4. Solution des systèmes d’équations linéaires

4.3.6.1 SOLUTION D'UN SYSTEME LINEAIRE PAR LA METHODE DE CRAMER Dans beaucoup d'applications pratiques, en particulier en technique, il arrive très souvent que les système d'équations linéaires à résoudre ne comprennent que 2, 3 ou 4 inconnues après opérations sur des entités matricielles. L'utilisation des méthodes décrites précédemment est sans autre possible, mais il est préférable d'introduire une méthode simple comme par exemple la méthode de Cramer. Cette méthode convient également au calcul manuel par calculette. Démontrons le principe de cette méthode sur un système à deux inconnues. Le système s'écrit :

a11 x1 + al2 x2 = b1 , x1 = b1/a11 – x2 a12/a11 , a21 x1 + a22 x2 = b2 , x2 = b2/a22 – x1 a21/a22 .

Remplaçons l'expression de x1 dans la seconde équation et la valeur de x2 dans la première :

a11 x1 + a12*(b2/a22 – x1 a21/a22) = b1 , a2l*(b1/a11 - x2 a12/a11) + a22 x2 = b2 .

Tirons finalement les valeurs des deux inconnues x1 et x2 de ces deux expressions :

x1 = (b1*a22 - b2*a12) / (a11*a22 – a12*a21) , x2 = (b2*a11 – b1*a21) / (a11*a22 - a12*a21) .

Les deux expressions ont même dénominateur et ce dénominateur est le déterminant de la matrice des coefficients [A]. Le numérateur de chaque expression est également un déterminant calculable en remplaçant la colonne des coefficients de xi par le vecteur des constantes.

det det det .A D D= = =a aa a

b ab a

a ba b

11 12

21 22

1 12

2 22

11 1

21 2

1 2

Les inconnues d'un système d'équations linéaires à deux inconnues se trouvent par :

x1 = det[D1] / det[A] et x2 = det[D2] / det[A] .

Cette règle est applicable à tout système d'équations linéaires, le seul problème à résoudre étant la recherche des déterminants par une méthode numérique efficace. D'une façon générale, la méthode de Cramer s'écrit :

xi = det[Di] / det[A] ,

pour i = 1, ... , n . 4.3.6.2 PROPRIETES DE LA MATRICE DES COEFFICIENTS Posons toutes les inconnues égales à zéro dans le système d'équations linéaires homogènes, alors toutes les équations sont satisfaites. Cette solution est appelée solution triviale ou solution nulle. Il est donc très important de savoir si la solution triviale est la seule solution possible d'un système homogène ou non. Dans le cas d'un système d'équations linéaires homogènes, la formule de Cramer nous permet de tirer la condition essentielle pour que la solution triviale ne soit pas la seule solution du système. Pour que l'inconnue xi soit différente de zéro, il faut que le rapport des déterminants : det[Di] / det[A] le soit aussi. Le déterminant de [Di] est nul car les éléments de la colonne i sont tous nuls. Ainsi, un système de n équations linéaires homogènes à n inconnues possède des solutions non nulles si le rapport des déterminants est indéterminé, donc le déterminant de la matrice des coefficients det[A] doit être aussi nul. De plus, si le nombre d'équations est inférieur à celui des inconnues, le système possède égale-ment des solutions non nulles. Si r est le rang de la matrice des coefficients du système et si n est le nombre d'inconnues, alors : 1. si r = n, alors la solution triviale est la solution unique du système d'équations homogènes; 2. si r < n , le système d'équations linéaires homogène possède d'autres solutions non nulles. La méthode d'échange des lignes et colonnes permet de savoir si le système présente des solutions différentes de la solution triviale ou non et de déterminer le rang de la matrice des coefficients.

115

4. Solution des systèmes d’équations linéaires

4.3.6.3 EXEMPLE NUMERIQUE Montrons dans exemple numérique le principe de la solution d'un système d'équations linéaires homogènes. Soit à résoudre le système suivant :

3 x1 + 3 x2 - 2 x3 - x4 = 0 , x1 + 2 x2 - x3 - x4 = 0 , 2 x1 + x2 + 4 x3 + x4 = 0 , x1 — x2 + 0 x3 + x4 = 0 .

Dans ce calcul manuel, l'élément pivot est choisi si possible égal à l'unité afin de faciliter le calcul mental. Le premier tableau se présente comme suit : x1 x2 x3 x4 1 3 3 -2 -1 0 1 2 -1 -1 0 2 1 4 1 0 1 -1 0 1 0 ligne de base x1 = -2 1 1 0 Pour résoudre un système d'équations linéaires homogènes, il est inutile d'écrire la dernière colonne contenant les constantes bi toujours nulles. La suite des tableaux devient : x2 x3 x4 -3 1 2 -3 6 3 -3 1 2 ligne de base x3 = 3 -2

et finalement : x2 x4 0 0 15 -9 ligne de base x2 = 9/15

Dans cet exemple, la transformation finale n'est plus possible car le dernier pivot est nul. La valeur de l'inconnue x2 est donc une fonction de la valeur de l'inconnue x4 ; il en découle que les lignes de la matrice des coefficients sont linéairement dépendantes. En effet, la quatrième équation du système primitif est obtenue en soustrayant de la première le double de la seconde. Dans ce cas le rang de la matrice est 3.

116

4. Solution des systèmes d’équations linéaires

4.4 EXERCICES SUR LES SYSTÈMES LINÉAIRES 4.1 Calculez manuellement le produit des matrices suivantes en introduisant le schéma de Falk. Vérifiez par programmation le résultat de vos opérations.

1 2 3

3 1 12 1 26 0 2

1 1 12 1 12 1 4

1 2 32 5 32 7 2

3 2 17 1 23 3 3

1 2 12 3 44 4 3

2 2 22 1 12 7 1

F

HGG

I

KJJ

F

HGG

I

KJJ

F

HGG

I

KJJ −

F

HGG

I

KJJ −

− −

F

HGG

I

KJJ

F

HGG

I

KJJ

4 5

1 2 30 2 11 4 1

4 5 62 4 21 3 1

5 4 34 3 11 6 1 1 1

211 1

F

HGG

I

KJJF

HGG

I

KJJF

HGG

I

KJJF

HGG

I

KJJF

HGG

I

KJJ

a b cc a b

a

a ca cb

4.2 Soient deux matrices A et B dont les dimensions et les éléments sont connus par définition de tous les éléments. Écrire les algorithmes nécessaires aux calculs 1. de la somme des deux matrices C = A + B, 2. de la différence des deux matrices C = A - B, 3. du produit de deux matrices C = A * B, 4. de la transposition de la matrice A. Les algorithmes doivent contenir l'introduction de tous les éléments, le contrôle des dimensions des deux matrices, les opérations matricielles et la sortie des résultats. 4.3 Résoudre par la méthode de Cramer les systèmes d'équations linéaires donnés ci-dessous sous forme matricielle : matrice carrée des coefficients, vecteur des constantes. Donnez le résultat avec une précision de 0,0001.

1 2

A B A B=− −

−−

F

HGG

I

KJJ =F

HGGI

KJJ =

F

HGG

I

KJJ =F

HGGI

KJJ

2 1 13 4 23 2 4

41111

3 2 12 3 12 1 3

5111

, . , .

3 4

A B A B= −F

HGG

I

KJJ =

−−−

F

HGGI

KJJ = −

F

HGG

I

KJJ =

−−F

HGGI

KJJ

1 1 22 1 24 1 4

142

1 2 31 3 2

4 2 4

23

1, . , .

5 6

A B A B= −F

HGG

I

KJJ = −

F

HGGI

KJJ = − −

F

HGG

I

KJJ = −

F

HGGI

KJJ

2 1 32 2 1

3 5 0

1444

3 2 13 3 3

1 4 1

8106

, . , .

4.4 Résoudre directement par la méthode de substitution les systèmes d'équations linéaires don-nées par la matrice des coefficients [A] et par le vecteur des constantes [B]. Contrôlez les résultats de l'opération manuelle en programmant la méthode de Gauss sans échange des lignes ou en utilisant les cas particuliers de matrices.

117

4. Solution des systèmes d’équations linéaires

1 2

A B A=−

B

F

H

GGGG

I

K

JJJJ=

F

H

GGGG

I

K

JJJJ=

−−

F

H

GGGG

I

K

JJJJ=

F

H

GGGG

I

K

JJJJ

2 0 0 01 3 0 03 1 4 02 5 3 6

67

129

1 0 0 02 2 0 0

1 7 2 02 1 4 5

10151620

, . , .

3 4

A B A B=−

F

H

GGGGG

I

K

JJJJJ=

F

H

GGGGG

I

K

JJJJJ=

F

H

GGGGG

I

K

JJJJJ=

−−F

H

GGGGG

I

K

JJJJJ

1 0 0 0 02 1 0 0 03 2 1 0 02 1 3 2 03 2 4 1 6

376

1020

2 0 0 0 04 1 0 0 01 3 2 0 03 1 5 2 04 2 1 3 1

58

41012

, . , .

B

4.5 Résoudre directement par la méthode algébrique dite de substitution les systèmes linéaires donnés par la matrice des coefficients [A] et le vecteur des constantes [B].

A B A=

−−

F

H

GGGGG

I

K

JJJJJ=

−F

H

GGGGG

I

K

JJJJJ=

−−

−−−

F

H

GGGGG

I

K

JJJJJ=

F

H

GGGGG

I

K

JJJJJ

2 1 3 2 50 9 2 7 30 0 1 8 30 0 0 2 10 0 0 0 2

24101558

1 2 9 3 20 1 4 2 30 0 1 3 50 0 0 2 10 0 0 0 3

1510251015

, . , .

4.6 Résoudre, en utilisant la méthode d'élimination successives des inconnues selon Gauss, les systèmes d'équations linéaires à 4 et 5 inconnues données par la matrice des coefficients [A] le vecteur des constantes B.

1 2

A B A= B

F

H

GGGG

I

K

JJJJ=

F

H

GGGG

I

K

JJJJ=

−− −

− −

F

H

GGGG

I

K

JJJJ=

F

H

GGGG

I

K

JJJJ

3 5 7 11 3 5 77 1 3 55 7 1 3

012164

2 1 3 33 1 3 13 3 3 23 1 1 2

2333

, . , .

B

3 4

A B A=

F

H

GGGGG

I

K

JJJJJ= −

F

H

GGGGG

I

K

JJJJJ=

− − −

− −− −

− −

F

H

GGGGG

I

K

JJJJJ=

−−−

F

H

GGGGG

I

K

JJJJJ

1 2 1 1 11 1 3 1 11 1 4 4 11 1 0 1 52 1 1 1 1

032

52

1 1 1 3 34 3 4 2 21 2 3 4 13 1 1 2 12 1 3 4 2

321

38

, . , .

4.7 Calculez les matrices inverses de quatre matrices carrées du problème précédent en utilisant la méthode de Stiefel ou les opérations d'échange. Contrôlez la précision de l'inversion en multipliant la matrice primitive par la matrice inverse. 4.8 Trouvez les valeurs des inconnues du problème 4.6 en introduisant la méthode de Stiefel. Contrôlez le résultat de l'investigation au moyen d'un calcul programmé.

118

5. Valeurs propres d’une matrice

CHAPITRE 5

VALEURS PROPRES D'UNE MATRICE Dans ce chapitre, nous commencerons par donner quelques compléments de calcul matriciel et nous étudierons les méthodes usuelles de recherche des valeurs propres et des vecteurs propres d'une matrice. Le calcul des valeurs propres d'une matrice [A] intervient par exemple dans la recherche des vitesses critiques de flexion ou des fréquences propres de torsion d'une ligne d'arbre. Les valeurs propres sont trouvées à partir de l'équation caractéristique de la matrice [A] et de son déterminant : det |[A] - l [E]I = 0 .

Si l'équation caractéristique est connue, les valeurs et vecteurs propres se trouvent assez facilement. Il est à remarquer que la recherche des valeurs propres n’est pas très facile et demande de nom-breuses opérations.

5.1 COMPLÉMENTS DE CALCUL MATRICIEL 5.1.1 NORME D'UN VECTEUR ET D'UNE MATRICE La notion de norme d'un vecteur a déjà été utilisée comme critère de fin de calcul dans la mé-thode itérative de Gauss-Seidel, voir chapitre précédent. Si la fin d'une procédure itérative est rela-tivement simple à choisir dans les problèmes à une inconnue, comme par exemple lorsque la valeur absolue du terme correctif devient inférieure à la borne adoptée, il n'en va pas de même dans le calcul matriciel, car tous les éléments ou seulement une partie de ces éléments peuvent intervenir dans le choix de l'abandon de la procédure. La norme d'un vecteur ou d'une matrice définit d'une manière univoque le critère d'interruption et facilite ce choix. 5.1.1.1 NORME D'UN VECTEUR La norme d'un vecteur {v} , notée ll {v}ll, est un nombre réel positif possédant les propriétés sui-vantes : 1. ll {v} ll ≥ 0 , pour {v} ≠ {0} , 2. ll c {v} ll = l c l . ll {v} ll, c un nombre réel et {v} un vecteur quelconque, 3. ll {x} + {w} ll ≤ ll {x} ll + ll {w} ll. Les relations proposées ci-après sur les vecteurs n'ont de sens que si ces opérations peuvent vrai-ment s'effectuer. Les normes utilisées habituellement se définissent par les relations suivantes : 1. Norme euclidienne : ÍÍ{v}ÍÍe = ( v 1

2 + v22 + . . . + vn

2 )1/2 .

2. Norme absolue : ÍÍ{v}ÍÍi = = Ív1Í + Ív2Í + . . . + ÍvnÍ .

3. Norme de Tchébychev : ÍÍ{v}ÍÍ = max ÍviÍ . 5.1.1.2 NORME D'UNE MATRICE La norme d'une matrice [A], notée ÍÍ[A]ÍÍ , est un nombre réel positif pssédant les propriétés suivantes :

119

5. Valeurs propres d’une matrice

1. ÍÍ[A]ÍÍ ≥ 0 , pour [A] ≠ [0] , et ÍÍ[A]ÍÍ = 0 pour une matrice [A] = [0] , 2. ÍÍc [A]ÍÍ = Íc Í. ÍÍ[A] ÍÍ, c étant un nombre réel positif et [A] une matrice quelconque, 3. ÍÍ[A] + [B] ÍÍ ≤ ÍÍ[A]ÍÍ + ÍÍ[B]Í, 4. ÍÍ[A] . [B]ÍÍ ≤ ÍÍ[A]ÍÍ . ÍÍ[B]ÍÍ. Les relations proposées ci-après n'ont de sens que si les opérations proposées peuvent vraiment s'ef-fectuer. Les normes introduites dans le calcul matriciel se définissent par les relations suivantes :

1. norme euclidienne : Ae ij

ji

n

===∑∑ a

2

11

.

2. norme absolue l-norme A al i j

i

n

==∑max. ,

1

m-norme A am i j

j

n

==∑max. ,

1

3. norme spectrale : A A AH

T= λ max

,,e je j

0 5

où : IλImax. est la valeur absolue de la plus grande valeur propre de la matrice, [A]T est la matrice transposée de la matrice [A] . 5.1.2 VALEURS PROPRES D'UNE MATRICE Il arrive assez souvent que pour résoudre des problèmes physiques et techniques, la mise en équation des systèmes fasse apparaître la recherche des valeurs propres de la matrice caractérisant le système. 5.1.2.1 POLYNÔME CARACTÉRISTIQUE Soient une matrice carrée [A] , d'ordre n , un vecteur {x} , {x} ≠ {0} et un scalaire lambda appelé valeur propre de la matrice. Ces grandeurs sont reliées par l'expression matricielle :

{y} = [A] {x} = λ {x} .

Selon cette relation, le vecteur non nul {y} s'appelle vecteur propre de la matrice donnée et ne se dis-tingue du vecteur initial {x} que par un scalaire lambda. Le nombre lambda est la valeur propre de la matrice [A]. Cette définition peut également s'écrire sous une forme plus courante :

([A] - λ [E]) {x} = {0} ,

avec : [E] une matrice unitaire d'ordre n Ecrite sous cette forme, cette équation correspond exactement à un système d'équations linéaires ho-mogènes dans lequel il faut calculer tous les éléments du vecteur {x} . Ce système d'équations pos-sède une ou plusieurs solutions non triviales pour autant que : 1. le vecteur propre {x} soit différent du vecteur nul, 2. det ⎜[A] - λ [E] ⎜ = 0 .

Cette dernière relation représente le polynôme caractéristiques de la matrice [A]. Comme det ⎜[A] - λ [E] ⎜ est donné par un polynôme algébrique en lambda de puissance n, ce polynôme à coefficients réels possède exactement n zéros réels et/ou complexes conjugués. Le déterminant porte le nom de déterminant caractéristique de la matrice [A] et l'équation est dite équation caractéristique de la ma-trice [A]. Cette équation s'écrit sous la forme développée :

120

5. Valeurs propres d’une matrice

a11-λ a12 a13 . . . a1n

a21 a22-λ a23 . . . a2n

a31 a32 a33-λ . . . a3n = 0 . . . . . . . . . . . . . . . . . . . . . an1 an2 an3 . . . an,n-1

Le développement de cette relation donne :

λn - αn-1. λn-1 + αn-2

. λn-2 + αn-3. λn-3 + . . . + (-1)n-1. α1

.λ + (-1)n. α0 = 0 .

Le polynôme du premier membre de cette équation est le polynôme caractéristique de la matrice [A]. La détermination des coefficients de ce polynôme fait l'objet du sous-chapitre 5.2 . Le coefficient an-1 est appelé trace de la matrice [A] et peut se trouver facilement par :

α n a−=

= ∑1 ii 1

n

. i

En se servant des règles du calcul des déterminants, tout coefficient alphak peut se trouver, en prin-cipe, par la somme de tous les mineurs diagonaux d'ordre k de la matrice [A]. Finalement, le terme constant alpha0 du polynôme est égal au déterminant de la matrice. 5.1.2.2 VALEURS PROPRES L'équation caractéristique est donc une équation algébrique de degré n en lambda à coefficients réels alphak. Les zéros de cette équation sont les valeurs propres de la matrice [A]. Ces zéros peu-vent se trouver par une solution analytique si le degré du polynôme ne dépasse pas 4 et par une mé-thode numérique, comme par exemple la méthode de Bairstow ou celle de Newton-Raphson, si le degré du polynôme est supérieur à quatre. Les valeurs propres d'une matrice obéissent aux règles suivantes :

λ ⇐=∑max ,( )aijj 1

n

pour i λ ⇐=∑max ,( )aiji 1

n

pour j

λ − ⇐=

≠∑a ai i ijj 1

n

pour i j( ) , λ − ⇐=

≠∑a ai i iji 1

n

pour i j( ) ,

5.1.2.3 VECTEURS PROPRES En introduisant la valeur propre λi dans l'équation matricielle :

([A] - λ [E]) {x} = {0} ,

il est possible de trouver le vecteur propre {x}(i) correspondant. Chaque vecteur propre : {x}1

(i), {x}2(i), {x}3

(i), . . . , {x}n(i) est déterminé à un facteur constant près.

Le facteur est choisi habituellement de telle sorte que la norme euclidienne soit égale à 1, donc cha-que élément est divisé par la racine carrée de la somme des carrés des éléments avant normalisation. 5.1.3 COMPLÉMENTS 5.1.3.1 PUISSANCE D'UNE MATRICE Par définition, la p-ième puissance d'une matrice carrée [A] est égale aux produits successifs de cette matrice par elle-même :

121

5. Valeurs propres d’une matrice

[A]p = [A] [A] . . . [A] (p fois [A] à droite).

La multiplication s'effectue suivant les règles usuelles du calcul matriciel. 5.1.3.2 RÉDUCTION À UNE MATRICE DIAGONALE Si tous les zéros du polynôme caractéristique de la matrice [A] sont distincts, la matrice [A] peut être réduite à la forme diagonale [D]. Il est alors possible d'écrire :

[D] = [S]-1 [A] [S] .

La détermination du polynôme caractéristique de la matrice diagonale est très simple dans ces condi-tions. Toute matrice symétrique réelle peut être ramenée à une matrice diagonale et cette matrice possède seulement des valeurs propres réelles. Les vecteurs propres sont orthogonaux. Une matrice symé-trique réelle est dite définie positive si et seulement si toutes ses valeurs propres sont positives. 5.1.3.3 CAS DES MATRICES ORTHOGONALES Une matrice carrée, dimensions (n,n), est dite orthogonale si (voir aussi sous 4.1) :

[A]T [A] = [E] .

Comme : [A]T [A] = [E] et que [A]-1 [A] = [E] , il s'ensuit que pour une matrice orthogonale :

[A]T = [A]-1 .

En partant de la valeur des déterminants de chacune des matrices, nous pouvons écrire encore :

det I[A]TI det I [A]I = det I[E]I = 1 et det I [A]TI = det I [A]I ,

d'où : IdetI [A]II = 1 .

Le module des valeurs propres d'une matrice orthogonale est égal à 1.

5.2 POLYNOME CARACTÉRISTIQUE Les algorithmes de calcul des valeurs et vecteurs propres d'une matrice carrée [A] sont très nombreux et peuvent se classer en : 1. méthodes par transformation de la matrice primitive, 2. méthodes par itérations, 3. méthodes de recherche partielle d'une valeur propre, comme la plus grande ou la plus petite

valeur propre, 4. méthode passant par le polynôme caractéristique. Dans ce sous-chapitre, deux algorithmes sont présentés permettant de trouver le polynôme carac-téristique par opérations matricielles à partir de la matrice carrée donnée, sans devoir calculer le déterminant. Une méthode décrite assez souvent est celle de Danilevski consistant à ramener le déterminant à la forme normale de Frobenius. Elle convient seulement pour des matrices de petites dimensions. 5.2.1 MÉTHODE DE LEVERRIER Cette méthode utilise les éléments diagonaux des puissances successives de la matrice [A] pour aboutir au calcul des coefficients du polynôme caractéristique. Elle introduit la formule de Newton pour les sommes des puissances des racines d'une équation algébrique.

122

5. Valeurs propres d’une matrice

5.2.1.1 PUISSANCES DE LA MATRICE [A] ET SOMMES Rappelons la définition du polynôme caractéristique de la matrice [A] à partir de son déterminant :

det I[A] - λ [E]I = λn + αn-1 λn-1 + αn-2 λn-2 + . - - + α2 λ2 + α1 λ + α0 .

Dans cette expression générale du polynôme caractéristique,

λ1, λ2, λ3, . . . , λn-1, λn

forment l'ensemble des zéros du polynôme. Écrivons l'expression générale de la somme des zéros λi à la puissance k :

sk = λ1k + λ2

k + λ3k + ... + λn

k (k = 1,2,3,. . .,n)

Pour k ≤ n, les formules de Newton deviennent :

sk = αn-1 sk-1 + αn-2 sk-2 + . . . . + αn-k+1 s1 = - k αn-k (k = 1,2,3,. . .,n)

Il en résulte : αn-1 = - s1, αn-2 = -(s1 + αn-1 s1)/2, . . . . . . . . . . . . . . . . . . . . . α0 = - (sn + αn-1 sn-1 + αn-2 sn-2 + . . . . . + α1 s1) / n .

Si les sommes s1, s2, s3, . . . sn sont connues, les relations ci-dessus permettent de trouver succes-sivement les coefficients :

αn-1, αn-2, αn-3, . . . , et la constante α0, du polynôme caractéristique.

Ces sommes se calculent comme suit :

pour s1 on obtient : s1 = λ1 + λ2 + λ3 + . . . + λn = somme des éléments diagonaux de [A] ,

soit : s11

==∑α i ii

n

.

Les valeurs propres de la matrice [A]k sont λ1k, λ2

k, λ3k . . . λn

k et la somme sk se trouve par :

sk = λ1k + λ2

k + λ3k + ... + λn

k = somme des éléments diagonaux de [A]k ,

avec :

[A]k = [A] . [A] . [A] . . . . . [A] (k fois) , donc :

sk i i(k)

i

n

==∑α .

1

Les puissances de la matrice [A], [A]k = [A]k-1 [A] , se trouvent par multiplication successive. 5.2.1.2 COEFFICIENTS DU POLYNÔME CARACTERISTIQUE La recherche des coefficients et de la constante du polynôme caractéristique s'effectue de la ma-nière suivante : 1. Calcul des puissances [A]k de la matrice carrée [A] . 2. Recherche des sommes sk , somme des éléments diagonaux de chacune des matrices de puis-

sance k , 3. Calcul des coefficients du polynôme caractéristique par les expressions en alphak données ci-

dessus. Les coefficients du polynôme normé, avec alphan = 1 , se trouvent par les relations : αn = 1 , αn-1 = - s1 ,

123

5. Valeurs propres d’une matrice

αn-2 = - (s2 + αn-1 s1) / 2 . αn-3 = - (s3 + αn-1 s2 + αn-2 s1) / 3 . αn-4 = - (s4 + αn-1 s3+ αn-2 s2+ αn-1 s1) / 4 . . . . . . . . . . . . . . . . . . . . . . α0 = - ( sn + αn-1 sn-1 + . . . . + α1 s1) / n . 5.2.1.3 ALGORITHME DE LA METHODE DE LEVERRIER La méthode de Leverrier est très peu compliquée, mais impose le calcul de puissances élevées de la matrice primitive, surtout si l'ordre de la matrice est grand. Très souvent, pour éviter tout dépas-sement de capacité de représentation des nombres, les éléments de la matrice primitive sont réduits au moyen d'une normalisation dans la mise en équation. L'algorithme décrit ci-dessous utilise direc-tement les diverses opérations proposées. Il calcule les coefficients du polynôme caractéristique de la matrice [A]. Les variables utilisées dans cet algorithme sont : a matrice primitive, dimensions n x n b matrice de recopie, dimensions n x n c vecteur contenant les sommes des éléments diagonaux, dimension n p vecteur contenant les coefficients du polynôme, dimension n r matrice produit, dimensions n x n i,j,k,m compteurs n dimensions des matrices carrées A L G 0 R I T H M E

Méthode de Leverrier

1. Initialisation c(1) ⇐ 0 pour i ⇐ 1,n,1 c(1) ⇐ c(1)+a(i,i) fin faire i

2. Puissances de la matrice [A] Pour m ⇐ 2, n,1 c(m) ⇐ 0 pour i ⇐ 1,n,1 pour j ⇐ 1,n,1 r(i,j) ⇐ 0 pour k ⇐ 1,n,l r(i,j) ⇐ r(i,j)+b(i,k)*a(k,j) fin faire k fin faire j c (m) ⇐ c (m)+r(i,i) fin faire i pour i ⇐ 1,n,1 pour j ⇐ 1,n,1 b(i, j) ⇐ r(i,j) fin faire j fin faire i fin faire m

3. Coefficients du polynôme caractéristique p(n) ⇐ 1 pour k ⇐ n-1,0,-1 p(k) ⇐ 0

124

5. Valeurs propres d’une matrice

pour j ⇐ 1,n-1-k,1 p(k) ⇐ p(k)+c(j)*p(ki+j) fin faire j p(k) ⇐ ((p(k)+c(n-k))/(k-n) fin faire k 5.2.1.4 EXEMPLE NUMERIQUE SIMPLE Soit à trouver les coefficients du polynôme caractéristique de la matrice d'ordre 4 :

Matrice primitive : A =−

− −− −

F

H

GGGG

I

K

JJJJ

1 2 3 42 5 3 12 4 5 13 5 4 3

.

Somme des éléments diagonaux : s1 = 8 . Les puissances de la matrice [A] valent :

A 2

1 2 3 42 5 3 12 4 5 13 5 4 3

1 2 3 42 5 3 12 4 5 13 5 4 3

22 20 4 99 46 28 131 41 47 24 32 14 30

=−

− −− −

F

H

GGGG

I

K

JJJJ−

− −− −

F

H

GGGG

I

K

JJJJ=

− −−

−− −

F

H

GGGG

I

K

JJJJ* .

Somme des éléments diagonaux : s2 = 146 .

A 3

22 20 4 99 46 28 131 41 47 24 32 14 30

1 2 3 42 5 3 12 4 5 13 5 4 3

28 117 25 14384 425 303 7119 381 353 90122 358 298 60

=

− −−

−− −

F

H

GGGG

I

K

JJJJ−

− −− −

F

H

GGGG

I

K

JJJJ=

−− −

− −

F

H

GGGG

I

K

JJJJ* .

Somme des éléments diagonaux : s3 = 746 .

A 4

28 117 25 14384 425 303 7119 381 353 90122 358 298 60

1 2 3 42 5 3 12 4 5 13 5 4 3

741 1256 714 225541 3860 2822 851307 3729 3325 38862 2926 1958 1324

=−

− −− −

F

H

GGGG

I

K

JJJJ−

− −− −

F

H

GGGG

I

K

JJJJ=

− −−

− − −−

F

H

GGGG

I

K

JJJJ* .

Somme des éléments diagonaux : s4 = 9250 . Le calcul des coefficients du polynôme caractéristique impose les opérations suivantes : α4 = 1 ,

α3 = - s1 = - 8 ,

α2 = - (s2 + α3 s1) /2 = - (146 – 8.8) / 2 = - 41 ,

α1 = - (s3 + α3 s2 + α2 s1) / 3 = - (746 - 8.146 - 41.8)/3 = 250 ,

α0 = - (s4 + α3 s3 + α2 s2 + αl s1) / 4 =

= - (9250 - 8.746 - 41.146 + 250.8) / 4 = 176.

Le polynôme caractéristique s'écrit alors :

P(l) = l4 – 8 l3 – 41 l2 + 250 l + 176 .

125

5. Valeurs propres d’une matrice

5.2.2 MÉTHODE DE KRYLOV Cette méthode permet également de trouver les coefficients du polynôme caractéristique de la matrice [A] . 5.2.2.1 PRINCIPE DE LA METHODE DE KRYLOV Introduisons l'expression générale du polynôme caractéristique de la matrice carrée donnée [A] :

Det ⎜[A] - l [E] ⎜ = ln + αn-1 ln-1 + αn-2 ln-2 + . . . + α1 l + α0 .

Suivant l'identité de Hamilton-Cayley disant que toute matrice carrée est une racine de son polynôme caractéristique, la matrice [A] annule son polynôme caractéristique, ce qui permet d'écrire :

[A]n + αn-1 [A]n-1 + αn-2 [A]n-2 + . . . + α1 [A] + α0 [E] = 0 .

Multiplions à droite chaque terme de cette expression par le vecteur (y)(0) ≠ (0), mais quelconque. La relation matricielle devient :

[A]n {y}(0) + αn-1 [A]n-1 {y}(0) + . . . + α1 [A] {y}(0) + α0 {y}(0) = 0.

Simplifions l'écriture en posant :

[A]k {y}(0) = {y}(k) (k=1,2, ....n), l'expression générale devient :

{y}(n) + αn-1 {y}(n-1) + αn-2 {y}(n-2) . . . α1 {y}(1) + α0 {y}(0) = 0.

En passant le premier terme {y}(n) dans le second membre, cette relation peut s'écrire sous forme ma-tricielle :

[Y] {α} = - {y}(n) . La matrice [Y] présente les éléments suivants : y1

(n-1) y1(n-2) y1

(n-3) y1(1) y1

(0)

y2(n-1) y2

(n-2) y2(n-3) y2

(1) y2(0)

[Y] = y3(n-1) y3

(n-2) y3(n-3) y3

(1) y3(0)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

yn(n-1) yn

(n-2) yn(n-3) y2

(1) y2(0)

et les deux vecteurs :

{y}(n) = = {α} = =

R

S|||

T|||

U

V|||

W|||

yyy

y

1

2

3

(n)

(n)

(n)

n(n)

....,

R

S|||

T|||

U

V|||

W|||

ααα

α

n

n

n

1

2

3

0

.....

Cette expression représente exactement un système d'équations linéaires dans lequel le vecteur {α} est inconnu. Développons une ligne quelconque i de ce système :

αn-1 {y} i (n-1) + αn-2 {y} i (n-2) +. . . + α1 {y} i (1) + α0 {y} i (0) = - {y} i (n),

ce qui représente une ligne du système linéaire.

126

5. Valeurs propres d’une matrice

5.2.2.2 COLONNES DE LA MATRICE [Y] Des substitutions précédentes, nous pouvons écrire : {y} (k) = [A] {y} (k-1) (k=1,2, ... ,n) Cette relation permet de trouver les éléments de la colonne k dans la matrice [Y] et ceux du vecteur {y} (k) . Les relations développées de chaque colonne de la matrice [Y] sont : {y} (1) = [A] {y} (0),

{y} (2) = [A] {y} (1), {y} (3) = [A] {y} (2), . . . . . . . . . . . . . . . . {y} (n) = [A] {y} (n-1), Le vecteur initial {y} (0) peut être quelconque, mais différent d'un vecteur nul. Très souvent, le vecteur initial {y} (0) est un vecteur dans lequel y(1) = 1 et tous les autres éléments sont nuls. Si le système linéaire :

[Y] {α} = - {y} (n) .

possède une solution unique, alors les éléments du vecteur {α} sont les coefficients du polynôme ca-ractéristique. 5.2.2.3 ALGORITHME DE LA METHODE DE KRYLOV L'algorithme proposé permet de construire la matrice carrée [Y] colonne après colonne et le vec-teur de droite {y} (n) . La solution du système d'équations linéaires peut s'obtenir par l'une des mé-thodes classiques comme par exemple la méthode de Gauss, la recherche des valeurs propres par la méthode de Bairstow ou celle de Newton-Raphson. Les variables utilisées dans l'algorithme sont :

a matrice primitive des coefficients, dimensions n x n b matrice carrée correspondant à [Y] du texte, dimensions n x n p vecteur des coefficients du polynôme caractéristique, dimension n y vecteur des y(i) successifs et de {y} (n), dimension n x vecteur des inconnues du système linéaire, dimension n n dimension de la matrice i,j,k,l compteurs et indices A L G 0 R I T H M E

Méthode de Krylov

1. Création du vecteur initial y(1) ⇐ 1 b(1,n) ⇐ 1 pour i ⇐ 2,n,1 y(i) ⇐ 0 b(i,n) ⇐ 0 fin faire i

2. Création de la matrice [B] ([Y]) Pour k ⇐ 1,n,1 l ⇐ n+1-k pour i ⇐ 1,n,1 y(i) ⇐ 0 pour j ⇐ 1,n,1

127

5. Valeurs propres d’une matrice

y(i) ⇐ y(i)+a(i,jk)*b(j,l) fin faire j fin faire i si k ≠ 0 alors pour i ⇐ 1,n,1 b(i,l-1) ⇐ y(i) fin faire i fin si fin faire k

3. Recherche des inconnues par la méthode de Gauss [B]• {x} = -{y} (voir algorithme de la méthode de Gauss)

4. Copie des coefficients dans le vecteur (p) p(n) ⇐ 1 p(0) ⇐ x(n) pour i ⇐ n-1,1,-1 p(n-1) ⇐ x(i) fin faire i Cet algorithme permet d'écrire une procédure pour trouver très facilement les coefficients du poly-nôme caractéristique. 5.2.2.4 EXEMPLE NUMERIQUE Choisissons le même exemple numérique que sous 5.2.1.4 . La matrice primitive était :

Matrice primitive : A =−

− −− −

F

H

GGGG

I

K

JJJJ

1 2 3 42 5 3 12 4 5 13 5 4 3

. Vecteur initial : yl q =RS||

T||

UV||

W||

1000

.

Les vecteurs des produits de la matrice primitive par les vecteurs trouvés précédemment valent :

Produit [A] {y} (0) :

1 2 3 42 5 3 12 4 5 13 5 4 3

1000

1223

−− −

− −

L

N

MMMM

O

Q

PPPP

RS||

T||

UV||

W||=

RS||

T||

UV||

W||

* .

Produit [A] {y} (1) :

1 2 3 42 5 3 12 4 5 13 5 4 3

1223

23914

−− −

− −

L

N

MMMM

O

Q

PPPP

RS||

T||

UV||

W||=

RS||

T||

UV||

W||

* .

Produit [A] {y} (2) :

1 2 3 42 5 3 12 4 5 13 5 4 3

23914

288419122

−− −

− −

L

N

MMMM

O

Q

PPPP −

RS||

T||

UV||

W||=

RS||

T||

UV||

W||

* .

128

5. Valeurs propres d’une matrice

Produit [A] {y} (3) :

1 2 3 42 5 3 12 4 5 13 5 4 3

288419122

74154130762

−− −

− −

L

N

MMMM

O

Q

PPPP

RS||

T||

UV||

W||=

RS||

T||

UV||

W||

* .

Le système de quatre équations linéaires s'écrit :

28 23 1 184 9 2 019 1 2 0122 4 3 0

74154130762

3

2

1

0−

L

N

MMMM

O

Q

PPPP

RS||

T||

UV||

W||=

RS||

T||

UV||

W||

* .

αααα

La solution de ce système donne

α4 = 1 , α3 = - 8 , α2 = - 41 α1 = 250 et α0 = 176 .

Le polynôme caractéristique devient :

P(λ) = λ4 – 8 λ3 - 41 λ2 + 250 λ + 176 . Les valeurs propres sont les zéros de ce polynôme, soit :

λ1 = 9,2991 , λ2 = 5,0996 , λ3 = - 0,64504 , λ4 = - 5,7537.

5.3 CALCUL PAR DES MÉTHODES ITÉRATIVES Il est également possible de trouver les valeurs propres et les vecteurs propres par voie itérative. Plusieurs méthodes usuelles sont à disposition pour calculer une ou plusieurs valeurs propres. 5.3.1 MÉTHODE DE VON MISES Cette méthode permet de calculer le module de la plus grande valeur propre d'une matrice carrée et le vecteur propre associé. Elle porte aussi le nom de la puissance itérée. 5.3.1.1 PRINCIPE DE LA MÉTHODE La matrice primitive [A] est définie positive, c'est-à-dire elle possède des valeurs propres λi posi-tives distinctes. La méthode de von Mises permet de calculer la plus grande valeur propre λ1 telle que la suite soit satisfaite :

λ1 > λ2 > λ3 > λ4 > λ5 > λ6 . . . . > λn .

Les vecteurs propres {x}(i) sont alors linéairement indépendants. Un vecteur quelconque {z}0 avec n composants peut aussi s'écrire :

{z}0 = c1 {x}(1) + c2 {x}(2) + c3 {x}(3) + . . . . . + cn {x}(n) .

La méthode itérative de von Mises consiste à définir le vecteur {z}i par la formule de récurrence sui-vante : {z}i+1 = [A] {z}i (i = 0, 1, 2, .... n) .

Remplaçons dans cette expression le vecteur par les vecteurs propres correspondants :

{z}1 = [A] . {z}0,

129

5. Valeurs propres d’une matrice

{z}1 = c1 [A] {x}(1) + c2 [A] {x}(2) + c3 [A] {x}(3) + . . . . . + cn [A] {x}(n) .

ou encore : {z}1 = c1 λ1 {x}(1) + c2 λ2 {x}(2) + c3 λ3 {x}(3) + . . . . . + cn λn {x}(n) .

Au second pas du calcul, le vecteur {z}2 s'écrit alors :

{z}2 = [A] . {z}1,

{z}2 = c1 λ1 [A] {x}(1) + c2 λ2 [A] {x}(2) + c3 λ3 [A] {x}(3) + . . . . . + cn λn [A] {x}(n) .

ou encore : {z}2 = c1 λ12 {x}(1) + c2 λ2

2 {x}(2) + c3 λ32 {x}(3) + . . . . . + cn λn

2 {x}(n) .

Au pas k, le vecteur {z}k vaut :

{z}k = c1 λ1k {x}(1) + c2 λ2

k {x}(2) + c3 λ3k {x}(3) + . . . . . + cn λn

k {x}(n) .

Mettons en évidence le terme λ1k dans cette expression générale :

{z}k = λ1k [c1 {x}(1) + c2 (λ2

/ λ1)k {x}(2) + . . . . . + cn (λn / λ1)k {x}(n)] .

Si λ1 > λ2 selon l'hypothèse générale admise, alors le rapport (λi / λ1)k tend vers zéro lorsque le

nombre d'itérations k tend vers l'infini. Ainsi :

{z}k+1 / {z}k ≈ λ1.

On obtient approximativement la première valeur propre λ1 en calculant le quotient de deux coor-données de deux vecteurs successifs {z}k et {z}k+1. La convergence de la méthode dépend un peu de la valeur initiale de {z}0, mais surtout du quotient λ2

/ λ1. Elle est d'autant plus rapide que ce rapport est petit. 5.3.1.2 MÉTHODE PRATIQUE Le calcul pratique de la première valeur propre s'effectue d'une manière légèrement différente. Le vecteur {z}i , (i = 1, 2, ... ), se calcule par l'intermédiaire d'un second vecteur {y}i. Ce dernier vecteur est initialisé à une valeur arbitraire comme par exemple :

{y}0T = (1 , 0 , 0 , . . . . , 0). La formule de récurrence de la suite des {y}i et {z}i utilisée devient ainsi :

{z}i+1 = [A] • {y}i ,

et : {y}i+1 = {z}i+1 / = Il {z}i+1 Il∞ ,

dans lequel : Il {z}i+1 Il∞ = max l ({z}i+1)k l . Dans cette dernière expression, le terme Il {z}i+1 Il∞ est la norme de Tchébychev.

Cette division par la norme de Tchébychev norme le vecteur propre et limite les erreurs de troncature. Le diviseur est approximativement la plus grande valeur propre. Les vecteurs {y}i sont normés de telle sorte que le plus grand module soit 1.

5.3.1.3 ALGORITHME DE LA MÉTHODE L'algorithme proposé ici utilise la méthode pratique de calcul. Les deux vecteurs sont désignés par y et z dans l'algorithme. A L G 0 R I T H M E

Méthode de von Mises pour calculer la première valeur propre

1. Initialisation Lis n,itmax,eps

130

5. Valeurs propres d’une matrice

Pour i ⇐ 1,n,1 Pour j ⇐ 1,n,1 lis a(i,j) fin faire j y(i) ⇐ 1 fin faire i 2. Calcul itératif selon von Mises

tcheb ⇐ 1.234 valpro ⇐ 0.0 k ⇐ 0 Tant que ⎜valpro-tcheb⎜>eps ET k<itmax fais k ⇐ k+1 valpro ⇐ tcheb Pour i ⇐ 1,n,1 z(i) ⇐ 0 Pour j ⇐ 1,n,1 z(i) ⇐ z(i)+a(i,j)*y(j) fin faire j fin faire i tcheb ⇐ z(1)/y(1) zmax ⇐ 0 Pour i ⇐ i,n,1 si ⎜z(i)⎜ > zmax alors zmax ⇐ z(i) fin faire i Pour i ⇐ 1,n,1 y(i) ⇐ z(i)/zmax fin faire i fin tant que 3. Non convergence si Ivalpro-tchebl > eps alors Ecris : Méthode non convergente sinon 4. Résultats Ecris : Valeur propre ⇒ tcheb Vecteur propre Pour i ⇐ 1,n,1 Ecris y(i) fin faire i Nombre d'itérations k fin méthode de von Mises 5.3.1.4 EXEMPLE Soit à trouver la première valeur propre de la matrice [A] :

A =

1.00000 0.50000 0.33333 0.25000 0.200000.50000 0.33333 0.25000 0.20000 0.166670.33333 0.25000 0.20000 0.16667 0.142860.25000 0.20000 0.16667 0.14286 0.125000.20000 0.16667 0.14286 0.12500 0.11111

F

H

GGGGG

I

K

JJJJJ.

131

5. Valeurs propres d’une matrice

Résultat du calcul : Nombre d'itérations 6 Valeur propre : 1.56707 Vecteur propre 1.000000 0.580569 0.418803 0.330065 0.273263 Précision du calcul 1.408E-0004 5.3.2 MÉTHODE DE JACOBI Cette méthode, due à Jacobi (en 1846), permet de trouver toutes les valeurs propres et tous les vecteurs propres d'une matrice symétrique de dimension (n,n). Elle devrait s'utiliser chaque fois que toutes ces grandeurs doivent se déterminer. 5.3.2.1 PRINCIPE DE LA MÉTHODE DE JACOBI Le principe de la méthode consiste à transformer la matrice symétrique primitive en une matrice diagonale par une suite de transformations orthogonales. Les transformations effectuées ne modifient pas les valeurs propres recherchées. Les vecteurs propres de la matrice donnée sont les colonnes de la matrice orthogonale [O] qui permet la transformation de la matrice [A] . À partir de l'initialisation de la matrice par : [A](0) = [A] ,

la formule de récurrence utilisée prend la forme suivante :

[A](k) = [O]T(k) . [A](k-1) . [O] k . Dans cette expression, [O] k (k = 1, 2, .... n) sont des matrices orthogonales spéciales. Les opérations effectuées à chaque pas tendent à annuler le coefficient non diagonal de plus grande valeur absolue. Le processus itératif est poursuivi jusqu'à ce que l'erreur sur les coefficients non diagonaux devienne inférieure à la précision exigée. 5.3.2.2 MATRICE ORTHOGONALE DE JACOBI Soit aim un élément non diagonal le plus grand en valeur absolue au pas k de la sous-matrice triangulaire inférieure. Les éléments de la matrice orthogonale présentent la configuration suivante : 1 0 0 . . . 0 . . . 0 . . . 0 0 1 0 . . . 0 . . . 0 . . . 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 . . . 1 0 . :. 0 . . . 0 0 0 . . . 0 cosΦ 0 sinΦ . . . 0 ligne l 0 . . . . . . . . . . . . . . . . . . . . . 0 0 0 0 . . . 0 1 0 . . . 0 0 0 0 0 -sinΦ . . . cosΦ . . . 0 ligne m . . . . . . . . . . . . . . . . . . . . . . . . 0 0 0 0 . . . 0 . . . 0 . . . 1

colonne l colonne m

132

5. Valeurs propres d’une matrice

La multiplication de la matrice [A](k-1) par la matrice orthogonale ne modifie que les éléments des lignes et colonnes d'indice l et m . La nouvelle valeur de ces éléments peut se trouver en multipliant tout d'abord la matrice orthogonale transposée par la matrice donnée, puis la matrice produit par la matrice orthogonale. Le résultat de ces diverses opérations permet d'écrire finalement les opérations ou expressions suivantes. 1. Éléments sur les lignes et colonnes l, m , mais pas à l'intersection.

ail(k) = ail(k-1) cos Φ - aim(k-1) sin Φ = ali(k) , aim(k) = ail (k-1) sin Φ + aim(k-1) cos Φ = ami(k) .

2. Éléments placés à l'intersection des lignes et colonnes l, m.

all(k) = all(k-1) cos2 Φ - 2 alm(k-1) sin Φ cos Φ + amm(k-1) sin2Φ ,

amm(k) = all

(k-1) sin2Φ + 2 alm(k-1) sinΦ cosΦ + amm

(k-1) cos2Φ , alm

(k) = 0,5 (all(k-1) - amm(k-1)) sin(2 Φ) + alm

(k-1) cos(2 Φ) = aml(k) .

3. Éléments de la matrice orthogonale

oim(k) = oil

(k-1) sin Φ + olm(k-1) cos Φ ,

oil(k) = oil

(k-1) cos Φ - oim(k-1) sin Φ .

5.3.2.3 ÉLIMINATION DE L'ÉLÉMENT MAXIMAL L'élément non diagonal à éliminer se trouve à la ligne 1 dans la colonne m ou à la ligne m dans la colonne l : alm et aml . À partir de la relation trouvée précédemment pour cet élément, il suffit d'égaler son expression à zéro et à rechercher la valeur de Φ en écrivant pour les valeurs au pas (k-1) : 2 aln

(k-1) cos 2 Φ = (all(k-1) - arnm

(k-1)) sin 2 Φ,

ou encore : sincos ( ) ( ) .

22

21 1

ΦΦ

= − −−a

a alm(k-1)

llk

mmk

Finalement, l'angle Φ se trouve par l'intermédiaire de :

- si all(k-1) π amm

(k-1) alors tan 2 F = 2 1

1

aa a

lmk

ll(k 1)

mmk

( )

( ) ,−

− −−

- si all(k-1) = amm

(k-1) alors 2 F = 0,5 π et F = 0,25 π . 5.3.2.4 CALCUL PRATIQUE DE L'ANGLE PHI Si l'algorithme de calcul de la racine carrée est plus rapide que celui de l'arc tangente, la déter-mination de l'angle de rotation F peut s'effectuer sans le calcul de la fonction trigonométrique inverse. Posons : num = - alm

(k-1) et den = 0,5 (all(k-1) – amm

(k-1) ),

d'où : phi2 signe(den) numnum den2 2

=+

.

Les deux fonctions trigonométriques se trouvent par les expressions :

sin phi2

2 (1+ 1- phi2 )2Φ = .

cos sin .Φ Φ= −1 2

133

5. Valeurs propres d’une matrice

5.3.2.5 CONVERGENCE DE LA MÉTHODE DE JACOBI Pour une matrice symétrique à coefficients réels, la méthode converge vers la solution exacte lorsque le nombre d'itérations devient infiniment grand. Pratiquement, la procédure de calcul est inter-rompue lorsque le critère d'erreur est atteint. Les valeurs propres de la matrice sont situées sur la diagonale principale et les vecteurs propres sont les vecteurs colonne de la matrice [O] pour k très grand. 5.3.2.6 ALGORITHME DE LA MÉTHODE DE JACOBI L'algorithme proposé transforme seulement la matrice primitive en matrice diagonale et produit la suite des vecteurs propres dans la matrice [O] . La variable eps représente la borne supérieure de l'erreur admissible. A L G 0 R I T H M E

Méthode de Jacobi pour calculer les valeurs et vecteurs propres

1. Initialisation des matrices A et 0 Lis n,eps Pour i ⇐ 1,n,1 Pour j ⇐ i,n,1 Lis a(i,j) a(j,i) ⇐ a(i, j) fin faire j fin faire i Pour i ⇐ 1,n,1 Pour j ⇐ l,n,l o(i,j) ⇐ 0 fin faire j o(i,i) ⇐ 1 fin faire i

2. Procédure Jacobi xnorme ⇐ 1 Tant que xnorme > eps fais xnorme ⇐ 0 amax ⇐ ⎜a(2,1)⎜; l ⇐ 2; m ⇐ 1 Pour i ⇐ 2,n,1 Pour j ⇐ 1,i-1,1 Si ⎜a(i,j)⎜ > amax alors amax ⇐ ⎜a(i,j)⎜ l ⇐ i; m ⇐ j fin si xnorme ⇐ xnorme+a(i,j)*a(i,j) fin faire j fin faire i xnorme ⇐ xnorme/(2*n) {Calcul de l'angle phi} num ⇐ -a(l,m) den ⇐ 0,5*(a(l,l)-a(m,m)) fi2 ⇐ signe(den)*num/[num^2+den^2)]^0.5 sinfi ⇐ fi2/[2*(1+(l-fi2^2)^0.5)]^0.5 cosfi ⇐ [1-sinfi^2]^0.5

134

5. Valeurs propres d’une matrice

{Matrice de rotation} Pour i ⇐ 1,n,1 Si i≠l ET i≠m alors aprov ⇐ a(l,i)*cosfi-a(m,i)*sinfi a(m,i) ⇐ a(l,i)*sinfi+a(m,i)*cosfi a(l,i) ⇐ aprov a(i,m) ⇐ a(m,i); a(i,l) ⇐ a(l,i) fin si aprov ⇐ o(i,l)*cosfi-o(i,m)*sinfi o(i,m) ⇐ o(i,l)*sinfi+o(i,m)*cosfi o(i,1) ⇐ aprov fin faire i {Eléments particuliers} aprov ⇐ 2*a(l,m)*sinfi*cosfi aprow ⇐ a(l,l)*(cosfi)^2+a(m,m)*(sinfi)^2-aprov aproy ⇐ a(l,l)*(sinfi)^2+a(m,m)*(cosfi)^2+aprov a(l,m) ⇐ (a(l,l)-a(m,m))*sinfi*cosfi+ a(l,m)*((cosfi)^2-(sinfi)^2) a(l,l) ⇐ aprov; a(m,m) ⇐ aproy a(m,l) ⇐ a(l,m) Fin tant que

3. Sortie des valeurs et vecteurs propres Pour i ⇐ 1,n,1 Ecris : Valeur propre a(i,i) Vecteur propre Pour j ⇐ 1,n,1 Ecris : o(i,j) fin faire j fin faire i (Contrôle de l'orthogonalité) Pour i ⇐ 1,n,1 Pour j ⇐ 1,n,1 somme ⇐ 0 Pour k ⇐ 1,n,l somme ⇐ somme+o(i,k)*o(j,k) fin faire k Ecris : somme fin faire j fin faire i 5.3.2.7 EXEMPLE D’UTILISATION DE LA MÉTHODE DE JACOBI Soit à calculer les cinq valeurs propres et les vecteurs propres correspondants de la matrice sy-métrique de Hilbert à 5 lignes et 5 colonnes, réputée difficile à manipuler dans les nombreuses ité-rations. Les éléments de la matrice de Hilbert se définissent par l’expression :

ai, j i j=

+ −10

1. .

Le texte suivant contient les résultats obtenus par voie informatique, logiciel Propre, en employant toutes les méthodes discutées dans ce chapitre, soit méthodes de Jacobi, de Leverrier, de Krylov, von Mises et Householder.

135

5. Valeurs propres d’une matrice

Définition de la matrice (Résultats du calcul informatisé) : 1.00000 0.50000 0.33333 0.25000 0.20000 0.50000 0.33333 0.25000 0.20000 0.16667 0.33333 0.25000 0.20000 0.16667 0.14286 0.25000 0.20000 0.16667 0.14286 0.12500 0.20000 0.16667 0.14286 0.12500 0.11111 SOLUTION PAR LA MÉTHODE DE JACOBI MATRICE SYMÉTRIQUE ET VECTEURS PROPRES Valeur et vecteur propres No 1 Valeur et vecteur propres numéro 2 Valeur propre 1.567050 Valeur propre 0.208539 Vecteur propre correspondant Vecteur propre correspondant 0.7678543 -0.6018713 0.4457908 0.2759051 0.3215778 0.4248862 0.2534403 0.4439032 0.2098242 0.4290093 Valeur et vecteur propres numéro 3 Valeur et vecteur propres numéro 4 Valeur propre 0.000305 Valeur propre 0.000003 Vecteur propre correspondant Vecteur propre correspondant 0.0470940 -0.0065520 -0.4316883 0.1200070 0.6635483 -0.5111382 0.2387230 0.7653932 -0.5604841 -0.3721106 Valeur et vecteur propres numéro 5 Valeur propre 0.011402 Vecteur propre correspondant 0.2142196 -0.7241481 -0.1204194 0.3096813 0.5650806 R*R --> VÉRIFICATION DE L'ORTHOGONALITÉ Erreur sur les éléments dits nuls 9.487E-0020 Erreur sur les éléments diagonaux 3.795E-0019 La précision introduite était : 1.000E-0020 Nombre total d'itérations : 30 SOLUTION PAR LA MÉTHODE DE LEVERRIER MATRICE QUELCONQUE ET POLYNÔME CARACTÉRISTIQUE COEFFICIENTS DU POLYNOME CARACTERISTIQUE Coefficient P( 5) = 1.0000 Coefficient P( 4) = -1.7873 Coefficient P( 3) = 0.3476 Coefficient P( 2) = -0.0038 Coefficient P( 1) = 0.0000 Coefficient P( 0) = -0.0000 VALEURS PROPRES DE LA MATRICE [A] Valeur propre réelle : 0.20854

136

5. Valeurs propres d’une matrice

Valeur propre réelle : 0.01140 Valeur propre réelle : 0.00031 Valeur propre réelle : 0.00000 Valeur propre réelle : 1.56705 SOLUTION PAR LA MÉTHODE DE KRYLOV MATRICE QUELCONQUE ET POLYNÔME CARACTÉRISTIQUE COEFFICIENTS DU POLYNOME CARACTERISTIQUE Coefficient P( 5) = 1.0000 Coefficient P( 4) = -1.7873 Coefficient P( 3) = 0.3476 Coefficient P( 2) = -0.0038 Coefficient P( 1) = 0.0000 Coefficient P( 0) = -0.0000 VALEURS PROPRES DE LA MATRICE [A] Valeur propre réelle : 0.20854 Valeur propre réelle : 0.01140 Valeur propre réelle : 0.00031 Valeur propre réelle : 0.00000 Valeur propre réelle : 1.56705 SOLUTION PAR LA MÉTHODE DE VON MISES MATRICE SYMÉTRIQUE ET VECTEURS PROPRES Nombre d'itérations 6 Valeur propre : 1.56707 Vecteur propre 1.000000 0.580569 0.418803 0.330065 0.273263 Précision du calcul 1.408E-0004 SOLUTION PAR LA MÉTHODE DE HOUSEHOLDER MATRICE SYMÉTRIQUE ET VECTEURS PROPRES Valeur et vecteur propres numéro 1 Valeur et vecteur propres numéro 2 Valeur propre 1.567050 Valeur propre 0.208539 Vecteur propre correspondant Vecteur propre correspondant 0.7678543 0.6018713 0.4457908 -0.2759052 0.3215778 -0.4248854 0.2534403 -0.4439048 0.2098242 -0.4290084 Valeur et vecteur propres numéro 3 Valeur et vecteur propres numéro 4 Valeur propre 0.011402 Valeur propre 0.000305 Vecteur propre correspondant Vecteur propre correspondant 0.2142196 0.0470940 -0.7240456 -0.4481997 -0.1211438 0.7802722

137

5. Valeurs propres d’une matrice

0.3110729 0.0144753 0.5642922 -0.4334338 Valeur et vecteur propres numéro 5 Valeur propre 0.000003 Vecteur propre correspondant 0.0065520 -0.0046664 -0.3042360 0.8010872 -0.5153980 Précision relative vaut : 1.000E-0015 Nombre calculé de suites de Sturm : 461 5.3.2.8 PRINCIPE DE LA MÉTHODE DE HOUSEHOLDER La méthode de Householder s'introduit pour trouver les valeurs propres et les vecteurs propres d'une matrice symétrique à n x n coefficients réels. Elle utilise quatre étapes successives : Première étape La matrice primitive est transformée en une matrice diagonale par l'application de n-2 transformations orthogonales élémentaires. Deuxième étape Les valeurs propres sont calculées en formant des séquences de Sturm. Elles sont les racines du po-lynôme caractéristique. Troisième étape Les vecteurs propres sont déterminés à partir des relations fondamentales de définition. Quatrième étape Les vecteurs propres de la matrice primitive sont calculés par l'application de transformation dans l'ordre inverse. Avantages de la méthode Bien que le nombre d'itérations de cette méthode soit habituellement plus grand que dans la méthode de Jacobi, l'algorithme utilisé est plus rapide que dans la méthode précédente. De plus, les valeurs propres sont calculées dans l'ordre décroissant.

138

5. Valeurs propres d’une matrice

5.4 EXERCICES SUR LES VALEURS ET VECTEURS PROPRES 5.1 Soit trois matrices carrées, dimensions 3 x 3, à éléments réels positifs. Déterminez le polynô-me caractéristique et les valeurs propres de chaque matrice en utilisant : 1. la méthode de Leverrier, 2. la méthode de Krylov. Matrice 1 Matrice 2 Matrice 3

10 2 3 6 1 3 11 2 1 1 14 4 2 7 1 3 15 2 3 2 9 2 1 8 1 4 19 5.2 Soit une matrice carrée, dimensions 4 x 4, à éléments réels positifs. Déterminez le polynôme caractéristique et les valeurs propres de cette matrice en introduisant : 1. la méthode de Leverrier, 2. la méthode de Krylov. Matrice donnée 4 x 4

4 2 1 1 2 3 2 2 1 2 6 1 3 2 1 4

Les valeurs propres de cette matrice remplissent-elles les conditions proposées sous 5.1.2.1 ? 5.3 Soit deux matrices symétriques de dimensions 4 x 4, à éléments réels positifs. Déterminez les valeurs propres de ces matrices et les vecteurs propres correspondants en introduisant la méthode de Jacobi. Calculez manuellement la première transformation et contrôlez le résultat du calcul à partir de l'algorithme proposé dans ce cours. Matrice 1 Matrice 2

12 2 3 1 3 1 2 1 2 15 4 2 1 4 5 2 3 4 19 3 2 2 5 2 1 2 3 29 1 1 2 7 Contrôlez les valeurs propres en utilisant la méthode de Krylov.

139

5. Valeurs propres d’une matrice

140

6. Interpolations diverses

CHAPITRE 6

INTERPOLATION Ce chapitre étudie quelques possibilités de calculer les valeurs d'une fonction discrète pour des points intermédiaires et quelques méthodes de représentation d'une fonction donnée par des expres-sions plus simples. Les résultats d'essai sont souvent enregistrés sous la forme d'une série de paires de valeurs et il devient intéressant d'effectuer une étude plus poussée sur la nature de la fonction. L'interpolation consiste à faire passer une courbe par tous les points de définition d'un ensemble don-né pour représenter par exemple graphiquement cette fonction. L'interpolation polynomiale est très souvent introduite dans ce but. La fonction se définit par un polynôme de degré n passant par n+1 points. L'approximation poursuit le but de trouver une fonction plus simple que la fonction primitive ou éventuellement une combinaison de fonctions, afin d'obtenir le mieux possible des valeurs conformes au problème à résoudre. La définition générale d'une fonction à deux variables signifie que, dans un intervalle donné tel que a ≤ x ≤ b, à toute valeur de la variable indépendante x correspond une ou plusieurs valeurs de la fonction f(x) . Si la fonction y = f(x) est connue sous forme explicite, alors le calcul des valeurs succes-sives de f(x) ne présente pas de difficultés majeures. Souvent, la fonction est représentée par un en-semble de valeurs discrètes. Le problème à résoudre consiste à trouver une expression analytique approximative et simple permettant de rechercher des valeurs intermédiaires, de calculer la dérivée de cette fonction ou de trouver la somme intégrale dans un domaine de définition.

6.1 INTERPOLATION POLYNOMIALE 6.1.1 INTRODUCTION L'interpolation polynomiale sert à trouver principalement des valeurs intermédiaires d'une fonction connue sous forme discrète. 6.1.1.1 GÉNÉRALITÉS Le problème fondamental de l'interpolation polynomiale consiste à trouver les divers coefficients et constante d'un polynôme P(x) à partir d'une certaine fonction f(x) connue en n+1 points sous la forme :

f(x0) = y0 f(x1) = y1 f(x2) = y2

f(x3) = y3 . . . . . . . . f(xn) = yn

Il faut trouver une courbe d'équation y = f(x) passant par les n+1 points donnés. Les abscisses des points s'appellent points d'interpolation. Posé sous une forme générale, le problème peut avoir une infinité de solutions. Le calcul d'un point situé à l'extérieur du domaine de définition porte le nom d'ex-trapolation. 6.1.1.2 MATRICE DE VANDERMONDE Il existe de nombreuses possibilités de trouver les coefficients et constante du polynôme algé-brique passant exactement par les points de définition. Si n+1 est le nombre de points connus, le degré du polynôme unique est de degré n . Admettons que tous les coefficients et constante soient connus. Ecrivons pour chacun des points de définition l'expression correspondante du polynôme :

141

6. Interpolations diverses

y0 = f(x0) =an x0

n + an-1 x0n-1 + . . . . . + a2 x0

2 + a1 x0 + a0 , y1 = f(x1) =an x1

n + an-1 x1n-1 + . . . . . + a2 x1

2 + a1 x1 + a0 , y2 = f(x2) =an x2

n + an-1 x2n-1 + . . . . . + a2 x2

2 + a1 x2 + a0 , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . y0 = f(xn) =an xn

n + an-1 xnn-1 + . . . . . + a2 xn

2 + a1 xn + a0 .

Ce système de n+1 équations représente un système d'équations linéaires à coefficients constants, les xi , dans lequel les n inconnues sont les coefficients ai du polynôme. La matrice des coefficients de ce système est la matrice de Vandermonde. Elle s'écrit sous la forme suivante : x0

n x0n-1 . . . . x0

2 x0 1

x1n x1

n-1 . . . . x12 x1 1

[V] = x2n x2

n-1 . . . . x22 x2 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xn

n xnn-1 . . . . xn

2 xn 1

Le système linéaire possède n+1 inconnues. Ce système linéaire s'écrirait :

[V] . {a} = {y} ,

où : [V] matrice de Vandermonde, {a} vecteur des coefficients et constante inconnus, soit an, an-1, .... a2, a1, a0, {y} vecteur des valeurs de la fonction dépendante yi = f(xi) : yn, yn-1, ... y2, y1, y0 .

Le calcul de la valeur des tous les coefficients et de la constante du polynôme par les méthodes de ré-solution du système linéaire n'est pas recommandé. Les puissances de la variable indépendante de-viennent assez rapidement très grandes et dépassent très souvent les possibilités de représentation numérique des nombres réels par le calculateur. De plus, la précision des résultats est affectée par une méthode peu adaptée à ce gendre de calcul. 6.1.2 TABLEAU DES DIFFÉRENCES Supposons la fonction y = f(x) donnée sous forme analytique et proposons-nous de trouver sa va-riation finie en fonction d'accroissements constants de la variable indépendante x . Au pas i du calcul, les valeurs de la fonction sont

yi = f(xi) , avec: xi = x0+ i . h, (i = 0, 1, 2, 3, . . ., n-1, n) . Dans cette dernière expression, h est le pas supposé constant :

h = x1 – x0 = ... = xi - xi-1 = xi+1 - xi = . . . . = xn - xn-1 . 6.1.2.1 DIFFÉRENCE PREMIÈRE La différence première de la fonction y = f(x) est représentée par l'expression, le pas de définition h étant supposé constant :

Δy = Δ f(x) = f(x+h) - f(x) .

Nous pouvons définit d'une manière semblable les différences d'ordres supérieurs par :

Δny = Δ (Δn-1y) , (n = 2, 3, . . . . , n) .

Par exemple, la différence seconde de la fonction f(x) se trouve par :

Δ2y = [ f(x+h) – f(x) ] = [ f(x+ 2h) – f(x+h) ] - [ f(x+h) – f(x) ] ,

142

6. Interpolations diverses

soit : Δ2y = f(x+2h) - 2 f(x+h) + f(x) . Il est possible de trouver les différences de troisième, de quatrième, de cinquième ordre en continuant le développement des formules. 6.1.2.2 EXEMPLE DE CALCUL D'UN TABLEAU DES DIFFÉRENCES Calculons le tableau complet des différences d'une fonction polynomiale du quatrième degré pour x compris entre 0 et 2. Le pas adopté dans le calcul vaut h = 0,25. La fonction étudiée est :

y = x4 – 3 x3 + 2 x2 + x + 1 .

Tableau des différences d'un polynôme du quatrième degré Pas constant h = 0,25

x y = f(x) Δ1 Δ2 Δ3 Δ4 Δ5

0,00 1.00000 0,332031 0,25 1,33203 0,023438 0,355469 -0,140625 0,50 1,68750 -0,117188 0,093750 0,238281 -0,046875 0,0000 0,75 1,92578 -0,164068 0,093750 0,074219 0,046875 0,0000 1,00 2,00000 -0,117188 0,093750 -0,42969 0,140625 0,0000 1,25 1,95703 0,023438 0,093750 -0,019531 0,234375 0,0000 1,50 1,93750 0,257813 0,093750 0,238281 0,328125 1,75 2,17578 0,585938 0,844219 2,00 3,00000 Les différences d'ordre 4 sont égales et les différences d'ordre 5 sont nulles. Un polynôme algébrique d'ordre n possède toujours des différences d'ordre n constantes. Calculons maintenant la valeur de la nième différence d'un polynôme algébrique P(x) du nième degré :

Pn(x) = an xn + an-1 xn-1 + an-2 xn-2 + . . . . + a2 x2 + a1 x + a0 .

Si le pas Δx = h est constant, la première différence vaut :

ΔPn(x) = an [(x+h)n - xn] + an-1 [(x+h)n-1 - xn-1] + . . . . + a1 [(x+h) - x] .

Dans cette expression, ΔPn(x) est un polynôme de degré n-1. Ce nouveau polynôme peut s'écrire sous forme simplifiée :

ΔPn(x) = bn-1 xn-1 + bn-2 xn-2 + . . . + b1 x + b0 .

Le premier coefficient de ce nouveau polynôme peut se trouver par l'expression : bn-1 = n h an .

La différence seconde Δ2Pn(x) du polynôme original Pn(x) est un polynôme de degré n-2 . Sous forme simplifiée, il s'écrit : Δ2Pn(x) = cn-2 xn-2 + cn-3 xn-3 + . . . + c1 x + c0 .

avec : cn-2 = (n-1) h bn-1 = (n-1) n h2 an .

Enfin, la nième différence ΔnPn(x) du polynôme Pn(x) vaut :

ΔnPn(x) = n! hn an .

143

6. Interpolations diverses

Par exemple, dans le polynôme étudié et le tableau précédent des différences calculé avec un pas h = 0,25, pour n = 4 et avec 4! = 24, la quatrième différence vaut :

Δ4P4(x) = 24 . 0,254 . 1 = 0,09375 = constante.

Cet exemple montre les propriétés des différences successives des valeurs d'un polynôme algébrique calculées pour un pas h constant. Inversement, un tableau des différences d'une fonction discrète doit permettre de trouver le degré du polynôme et la valeur des divers coefficients et constantes. 6.1.3 FORMULE D'INTERPOLATION DE LAGRANGE Nous supposons que les abscisses xi des points ne sont pas obligatoirement équidistantes com-me cela peut se présenter souvent lors de mesure. 6.1.3.1 INTERPOLATION LINÉAIRE L'interpolation linéaire est d'utilisation courante lorsqu'il s'agit de trouver une valeur intermédiaire dans une table numérique. Supposons que la fonction y = f(x) soit donnée seulement par deux points de définition : x0 et f(x0) , x1 et f(x1) . Si nous désirons calculer une valeur de f(x) pour une grandeur x comprise dans l'intervalle [x0,x1] , nous pouvons déterminer approximativement cette grandeur en introduisant l'interpolation linéaire :

f x f x x x f x f xx x

( ) ( ) ( ) ( ) ( ) .= + − ⋅−−0 0

1 0

1 0

Le quotient [f(x1) - f (x0)] / (x1 – x0) représente la pente de la sécante entre les deux points de coordon-nées [x0, f(x0)] et [x1, f(x1)] .

Désignons ce quotient par le terme de première différence divisée. Ecrivons l'expression du quotient sous la forme simplifiée suivante :

q x x f x f xx x

( , ) ( ) ( ) .0 11 0

1 0

=−−

Finalement le point recherché par interpolation linéaire se trouve à l'ordonnée :.

y = f(x) = f(x0) + (x – x0) . q(x0,x1) . 6.1.3.2 FORMULE D'INTERPOLATION DE LAGRANGE L'interpolation linéaire est un premier pas vers la recherche d'une valeur intermédiaire à partir de deux points de définition. Si le nombre de points connus est plus grand, il devient avantageux de tenir compte de plusieurs valeurs de définition, en particulier de tous les n+1 points connus.

144

6. Interpolations diverses

Si x0, x1, . . . , xn sont les valeurs discrètes de la variable indépendante, le polynôme passant par les n+1 points sera de degré n et peut s'écrire : Pn(x) = C0 (x-x1)•(x-x2) . . . (x-xn) + C1 (x-x0)•(x-x2) . . . (x-xn) + C2 (x-x0)•(x-x1)•(x-x3) ... (x-xn) +

+ C3 (x-x1)•(x-x2)•(x-x4) . . . (x-xn) + . . . + Cn (x-x1)•(x-x2) . . . (x-xn-1) .

Recherchons des valeurs des divers coefficients Ci de telle manière que les ordonnées yi = f(xi) soient vérifiées. Pour le premier point de définition P(x0,y0), nous pouvons écrire : y0 = C0 (x0-x1)-(x0-x2) . . . (x0-xn) car les autres termes sont nuls (x0-x0) = 0,

d’où : C yx x x x x x0

0

0 1 0 2 0

=− ⋅ − −( ) ( ) ... (

.n )

Pour le point P(x1,y1), les relations deviennent : y C x x x x x x1 1 1 0 1 2 0= − ⋅ − −( ) ( ) ... ( n ) car tous les autres termes sont nuls

car (x1-x1) = 0

d’où : C yx x x x x x1

1

1 0 1 2 1

=− ⋅ − −( ) ( ) ... ( )

.n

Remplaçons tous les coefficients dans l'expression primitive du polynôme. Ce polynôme s'écrit sous la forme générale suivante :

Pnn

n

n

n

( ) ( ) ( ) ...( )( ) ( ) ...( )

( ) ( ) ...( )( ) ( ) ...( )

x x x x x x xx x x x x x

y x x x x x xx x x x x x

y=− ⋅ − −− ⋅ − −

⋅ +− ⋅ − −− ⋅ − −

⋅ +1 2

0 1 0 2 00

0 2

1 0 1 2 11 . . . .

+− ⋅ − −− ⋅ − −

⋅ + +− ⋅ − −− ⋅ − −

⋅( ) ( ) ...( )

( ) ( ) ...( )... ( ) ( ) ...( )

( ) ( ) ...( ).x x x x x x

x x x x x xy x x x x x x

x x x x x xy0 1

2 0 2 1 22

0 1

0 1

n

n

n-1

n n n n-1n

Pn(x) est le polynôme d'interpolation de degré n passant par les n+1 points de définition. Cette for-mule, due à Lagrange, s'applique pour des points quelconques, donc aussi pour des points à pas va-riable. L'expression générale de cette relation peut s'écrire comme suit en simplifiant l'écriture des produits :

Lkk-1 k+1 n

k k k k-1 k k+1 k n

( ) ( ) ( ) ...( ) ( ) ...( )( ) ( ) ...( ) ( ) ... ( )

,x x x x x x x x x x xx x x x x x x x x x

=− ⋅ − − ⋅ − −

− ⋅ − − ⋅ − ⋅ −0 1

0 1

et : P L fn kk

n

( ) ( ) ( ) .x x= ⋅=

∑0

x

Pour un ensemble d'abscisses xi donné, si les ordonnées sont modifiées pour un nouveau calcul, il n'est pas nécessaire de retrouver les numérateurs et dénominateurs des diverses fractions. Ces gran-deurs peuvent être stockées en mémoire. En échangeant les termes en x et en y , il est possible d'ef-fectuer l'interpolation inverse. 6.1.3.3 ALGORITHME DE LA FORMULE DE LAGRANGE La formule de Lagrange se laisse assez facilement programmer car les opérations aux numéra-teurs et dénominateurs sont semblables dans tous les termes. Cette méthode présente l'inconvénient de nécessiter un très grand nombre de multiplications à partir des points de définition de la fonction discrète. A L G 0 R I T H M E

Interpolation par la méthode de Lagrange

1. Initialisation Lis : n le nombre d'intervalles Pour i ⇐ 0,n,1 Lis : x(i),y(i)

145

6. Interpolations diverses

fin faire i 2. Calcul de la fonction y(x) Lis : xp pol ⇐ 0 Pour i ⇐ 0,n,1 c ⇐ 1 Pour j ⇐ 0,n,1 si j#i alors c ⇐ c*(xp-x(j))/(x(i)-x(j)) fin faire j pol ⇐ pol+c*y(i) fin faire i 3. Sortie de la valeur interpolée Ecris : pol (Fin méthode de Lagrange) 6.1.3.4 EXEMPLE D'UTILISATION DE L'INTERPOLATION DE LAGRANGE La formule d'interpolation de Lagrange est utilisée pour trouver des valeurs du polynôme du qua-trième degré étudié sous 6.1.2.2 . Pour ce genre d'interpolation, les points de définitions sont repris dans le tableau. Point Abscisse Ordonnée 0 0,00 1,00000 1 0,75 1,92578 2 1,25 1,95703 3 2,00 3,00000 La figure montre l'erreur sur l'interpolation définie comme la différence entre la valeur exacte de la fonction et la valeur interpolée. Aux points de définition, l'erreur est nulle. L'erreur varie entre -0,219 et +0,0625. 6.1.4 INTERPOLATION PAR LES FORMULES DE NEWTON Dans le chapitre précédent, nous avons défini l'interpolation linéaire en calculant la pente de la sécante entre deux points de définition. Nous avons remplacé le segment de courbe entre ces deux points par un segment de droite. 6.1.4.1 DIFFÉRENCES DIVISÉES Nous avons déjà défini la première différence divisée q(x0,x1) dans l'interpolation linéaire. À partir de trois points x0, x1, x2, deux premières différences divisées peuvent se définir :

q f f( , ) ( ) ( )x x x xx x0 11 0

1 0

=−−

et q f f( , ) ( ) ( )x x x xx x1 22 1

2 1

=−−

.

D'une manière semblable, nous pouvons définir la seconde différence divisée à partir de trois points connus x0, x1 et x2 :

q q q( , , ) ( , ) ( , )x x x x x x xx x0 1 2

1 2 0 1

2 0

=−−

.

Cette relation nécessite la connaissance des coordonnées de trois points d'interpolation, l'ordre du calcul n'ayant aucune influence sur le résultat. Cette propriété générale est donc aussi valable pour les différences divisées d'ordres supérieurs. Ainsi, la troisième différence divisée se trouve par l'ex-pression :

146

6. Interpolations diverses

q q q( , , , ) ( , , ) ( , , )x x x x x x x x x xx x0 1 2 3

1 2 3 0 1 2

3 0

=−−

.

D'une manière générale, la différence divisée d'ordre n peut se définir par le quotient des différences divisées d'ordre n-1 par la différence totale xn – x0 :

q q qn

n n

n

( , , , ... , ) ( , , , ... , ) ( , , , ... , )x x x x -1x x x x x x x xx x0 1 2

1 2 3 0 1 2

0

=−−

.

Le calcul des différences divisées peut aussi s'effectuer manuellement en dressant un tableau sem-blable à celui des différences pour un pas constant. Le tableau contient alors les diverses valeurs des q(i) . Exemple : Soit à établir le tableau des différences divisées pour cinq valeurs d'interpolation de la fonc-tion y = f(x) = 10000 sin(π x/36) pour les points connus x = 0, 1, 3, 6 et 10.

Tableau des différences divisées pour la fonction ; f(x) = 10000 sin(π x/36) Point x f(x) q(1) q(2) q(3) q(4)

1 0,00 0,00 871,56 2 1,00 871,56 -4,414 858,32 -1,0771 3 3,00 2588,19 -10,876 0,008193 803,94 -0,9951 4 6,00 5000,00 -19,832 665,11 5 10,00 7660,44 6.1.4.2 FORMULE GÉNÉRALE D'INTERPOLATION DE NEWTON La formule générale d'interpolation proposée par Newton est applicable lorsque les points de dé-finition occupent une position quelconque. Le cas particulier du pas constant sera traité dans sous-chapitre suivant. Formons la première différence divisée de la fonction y = f(x) pour un point quelconque compris dans l'intervalle [x0,xn] :

q f f( , ) ( ) ( ) .x x x xx x0

0

0

=−−

et déterminons la valeur de f(x) en nous servant de cette définition :

.f f q( ) ( ) ( ) ( , )x x x x x x= + − ⋅0 0 0

Le dernier terme de cette expression ne peut pas se calculer car la valeur de f(x) contient précisément la valeur de l'inconnue. Calculons la seconde différence divisée à partir de trois points x0, x1 et x :

q q q( , , ) ( , ) ( , ) .x x x x x x xx x0 1

0 0

1

= 1−−

Déterminons la valeur inconnue précédente : q q q( , ) ( , ) ( ) ( , , ).x x x x x x x x x0 0 1 1 0 1= + − ⋅

Substituons cette dernière expression dans la relation définissant la valeur recherchée : f f q q( ) ( ) ( ) ( , ) ( ) ( ) ( , , ) .x x x x x x x x x x x x x= + − ⋅ + − ⋅ − ⋅0 0 0 1 0 1 0 1

Continuons les opérations en calculant maintenant la troisième différence divisée,

q q q( , , , ) ( , , ) ( , , ) .x x x x x x x x x xx x0 1 2

0 1 0 1 2

2

=−−

Tirons de cette expression la valeur de la deuxième différence divisée inconnue, soit :

147

6. Interpolations diverses

.q q q( , , ) ( , , ) ( ) ( , , , )x x x x x x x x x x x x0 1 0 1 2 2 0 1 2= + − ⋅ .

En substituant encore une fois cette valeur dans l'expression de la fonction recherchée f(x) , cette fonction prend la forme suivante : f f q q( ) ( ) ( ) ( , ) ( ) ( ) ( , , )x x x x x x x x x x x x x= + − ⋅ + − ⋅ − ⋅ +0 0 0 1 0 1 0 1 2

+ − ⋅ − ⋅ − ⋅( ) ( ) ( ) ( , , ,x x x x x x x x x x) .0 1 2 0 1 2q

Dans cette expression, la dernière différence divisée q(x0,x1,x2,x) reste encore inconnue. En poursuivant la recherche des différences divisées d'ordres supérieurs, la formule générale d'inter-polation de Newton devient : f f q q( ) ( ) ( ) ( , ) ( ) ( ) ( , , ) ...x x x x x x x x x x x x x= + − ⋅ + − ⋅ − ⋅ + +0 0 0 1 0 1 0 1 2

+ − ⋅ − ⋅ ⋅ − ⋅ +−( ) ( ) ... ( ) ( , , ,... )x x x x x x x x x x0 1 1 0 1 2n nq

+ − ⋅ − ⋅ ⋅ − ⋅( ) ( ) ... ( ) ( , , ,... , ) .x x x x x x x x x x x0 1 0 1 2n nq

Le dernier terme de cette relation ne peut pas se calculer puisque la valeur de la fonction f(x) n’est pas encore connue. Ce dernier terme représente le terme d’erreur dans le calcul de la fonction. La formule d’interpolation de Newton prend la forme générale suivante : F f q qn ( ) ( ) ( ) ( , ) ( ) ( ) ( , , )x x x x x x x x x x x x x= + − ⋅ + − ⋅ − ⋅ +0 0 0 1 0 1 0 1 2

+ − ⋅ − ⋅ − ⋅ + +( ) ( ) ( ) ( , , , ) ...x x x x x x x x x x0 1 2 0 1 2 3q

+ − ⋅ − ⋅ − ⋅( ) ( ) ...( ) ( , , ,... ) .x x x x x x x x x x0 1 0 1 2n-1 nq

L'erreur commise dans la formule d'interpolation de Newton peut s'écrie sous la forme : R qn n( ) ( ) ( ) ...( ) ( , , ,... , ) .nx x x x x x x x x x x x= − ⋅ − ⋅ − ⋅0 1 0 1 2

Cas particuliers Interpolation linéaire L'interpolation linéaire est obtenue en conservant seulement les deux premiers termes de la for-mule générale de Newton. .F f q1 0 0 0( ) ( ) ( ) ( , )x x x x x 1x= + − ⋅

La formule d'interpolation linéaire peut aussi s'écrire sous la forme proposée par Aitken :

F f f1

1 0 0

1 0

( ) ( ) ( ) ( ) ( .x 1)x x x x x xx x

=− ⋅ − − ⋅

Interpolation du second ordre L'interpolation du second ordre est obtenue en conservant seulement les trois premiers termes de la formule générale de Newton. F f q q2 0 0 0 1 0 1 0 1 2( ) ( ) ( ) ( , ) ( ) ( ) ( , , ) .x x x x x x x x x x x x x= + − ⋅ + − ⋅ − ⋅

Dans chacun de ces cas particuliers, l'expression de l'erreur peut s'écrire à partir du premier terme négligé dans le développement.

Exemple d'interpolation par la formule de Newton Proposons-nous de trouver le polynôme approximatif d'interpolation correspondant au tableau des différences divisées calculé précédemment. Appliquons dans ce but la formule d'interpolation de Newton jusqu'à la troisième puissance.

F3 0 0 871 56 0 1 4 414 0 1 3 10771( ) ( ) , ( ) ( ) ( , ) ( ) ( ) ( ) ( . ).x x x x x x x= + − ⋅ + − ⋅ − ⋅ − + − ⋅ − ⋅ − ⋅ −

Pour x = 2, F3(x=2) = 1736,45 alors que la valeur exacte est f(x) = 1736,48 . Par contre, pour x = 9, F3(x=9) = 7060,92 alors que la valeur exacte vaut f(x) = 7853,98 . L'interpolation est donc plus précise pour une valeur de la variable indépendante x proche de la valeur initiale des points d'interpolation. Un avantage essentiel de la formule de Newton est de pouvoir choisir librement le degré du polynôme d'interpolation, dans les limites du tableau des différences divisées.

148

6. Interpolations diverses

6.1.4.3 ALGORITHME DE LA FORMULE DE NEWTON POUR UN PAS VARIABLE L'algorithme proposé ci-après est valable pour interpoler une fonction discrète lorsque le pas est variable. Le nombre d'intervalles est désigné par n . Le tableau t (n, n) contient, après calcul, les différences divisées. Le degré du polynôme d'interpolation ne peut évidemment pas dépasser le nombre d'intervalles de définition. Le départ de l'interpolation s'effectue le plus près possible de la valeur à calculer afin d'augmenter la précision du résultat. Les abscisses xi doivent être en ordre croissant. A L G 0 R I T H M E

Méthode d'interpolation directe de Newton pour un pas quelconque

1. Initialisation Lis : n Pour i ⇐ 0,n,1 Lis : x(i),t(i,0) fin faire i

2. Tableau des différences divisées Pour i ⇐ 1,n,1 Pour j ⇐ 1,n,1 deltx ⇐ x(j)-x(j-1) t(j,i) ⇐ (t(i,i-1)-t(i-1,i-1))/deltx fin faire j fin faire i

3. Introduction d'un point quelconque Lis np {degré du polynôme} Lis xval Pour i ⇐ n-np,0,-1 si x(i)≠ x alors in ⇐ i; exit fin si fin faire i

4. Interpolation de Newton y ⇐ t(in,0); Pour i ⇐ 0,np-1,1 yp ⇐ 1 Pour j ⇐ 0,i,1 yp ⇐ yp*(x-x(in+j)) fin faire j y ⇐ y+yp*t(in+i+1,i+1) fin faire i

5. Impression des résultats Ecris : x , y (Fin méthode de Newton) 6.1.4.4 FORMULE EN SENS DIRECT POUR UN PAS CONSTANT La formule générale d'interpolation de Newton se simplifie fortement lorsque les points d'inter- polation sont équidistants. La formule d'interpolation est dite directe lorsque les différences divisée: sont calculées pour des x croissants. Cette méthode de calcul convient à l'interpolation de valeur: placées du début jusqu'au centre des points d'interpolation connus.

149

6. Interpolations diverses

Le calcul des différences divisées n'est plus nécessaire si le pas h entre les points de définition est constant. Exprimons la valeur des différences divisées par :

q( f f fx x x xx x

xh0 1

1 0

1 0

0, ) ( ) ( ) ( ) .=−−

q( f f f f2 2x x x x x x

x xx

h0 1 22 1 0

2 0

202, , ) ( ) ( ) ( ) ( ) .=

− +−

L'expression générale de la nième différence divisée peut s'écrire :

q( fn

n

nx x x x xn h0 1 2

0, , ,..., ) ( )!

.=⋅

Δ

En négligeant le terme d'erreur dans le développement, la formule d'interpolation de Newton pour un pas constant et en sens direct se transforme en :

F f f fnA = +−

⋅ +− ⋅ −

⋅⋅ +( ) ( ) ( ) ( ) ( )

!( ) ...x x +

x xh

x x x x xh

x00

00 1

22

02Δ Δ

+− ⋅ − ⋅ − ⋅ ⋅ −

⋅⋅−( ) ( ) ( ) ... ( )

!( ) .x x x x x x x x

hx0 1 2 1

0n

nn

nfΔ

L'erreur commise Rn(x) peut se trouver si la fonction f(x) est connue ou si un point supplémentaire d'interpolation est donné.

Transformation et simplification de la formule de Newton en sens direct Pour simplifier l'écriture et la recherche du polynôme d'interpolation, introduisons une nouvelle variable définie par le rapport :

q x xh

=− 0 .

Calculons l'expression générale du quotient de la iième différence divisée :

( ) ( ) ( ) ... ( ) ( ) ( ) ( ) ...x x x x x x x x

hx x

hx x h

hx x h

h− ⋅ − ⋅ − ⋅ ⋅ −

=−

⋅− −

⋅− −

+0 1 2 0 0 0 2ii

+− − − ⋅

= ⋅ − ⋅ − ⋅ − ⋅ ⋅ − +( ( ) ) ( ) ( ) ( ) ... ( ) .x x h

hq q q q q0 1 1 2 3i i 1

En substituant cette dernière expression dans la formule primitive d'interpolation de Newton, nous ob-tenons finalement :

F f f f fnA = + ⋅ +⋅ −

⋅ +⋅ − ⋅ −

⋅ +( ) ( ) ( ) ( )!

( ) ( ) ( )!

( ) ...x x q x q q x q q q x0 02

03

01

21 23

Δ Δ Δ +

+⋅ − ⋅ − ⋅ − ⋅ ⋅ − +

⋅q q q q q x( ) ( ) ( ) ... ( ) ( )1 2 3 1

0n

n!fnΔ .

Dans cette relation générale, q est le nombre de pas nécessaire pour atteindre le point d'abscisse x en partant du point d'interpolation initial x0 si c'est ce point qui est adopté comme point initial. 6.1.4.5 ALGORITHME DE LA MÉTHODE DE NEWTON EN SENS DIRECT L'algorithme proposé ci-après est valable pour interpoler une fonction discrète en sens direct lors-que le pas est constant. Le nombre d'intervalles est désigné par n . Le tableau t(n,n) contient, après calcul, les différences successives. Le degré du polynôme d'interpolation ne peut évidemment pas dépasser le nombre d'intervalles de définition. Les valeurs de la fonction discrète sont introduites après avoir fixé les bornes de sa variation [xmin, xmax]. Le départ de l'interpolation s'effectue le plus près possible de la valeur à calculer afin d'augmenter la précision du résultat, compte tenu du degré adopté pour le polynôme.

150

6. Interpolations diverses

A L G 0 R I T H M E

Méthode d'interpolation de Newton en sens direct pour un pas constant

1. Initialisation Lis : xmin,xmax,n deltx ⇐ (xmax-xmin)/n Pour i ⇐ 0,n,1 x(i) ⇐ xmin+i*deltx Lis : t(i,0) fin faire i

2. Tableau des différences Pour i ⇐ 1,n,1 Pour j ⇐ 1,n,1 t(j,i) ⇐ t(j,i-1)-t(j-1,i-1) fin faire j fin faire i 3. Introduction d'un point Lis : np {degré du polynôme} xval {valeur de x} Pour i ⇐ n-np,0,-1 Si x(i) ≤ xval alors ix ⇐ i exit fin si fin faire i

4. Interpolation y ⇐ t(ix,0) id ⇐ 0 ii ⇐ 1 Pour i ⇐ 0,n-np,1 yp ⇐ 1 Pour j ⇐ 0,i,1 yp ⇐ yp*(xval-x(ix+j))/deltx fin faire j id ⇐ id+l; ii ⇐ ii*id y ⇐ y+yp*t(ix+i+1,i+1)/ii fin faire i

5. Impression des résultats Ecris : xval,y (Fin méthode de Newton) 6.1.4.6 FORMULE EN SENS INVERSE POUR UN PAS CONSTANT La formule d'interpolation de Newton en sens direct ne convient pas bien pour l'interpolation de points situés dans la partie finale du tableau des différences divisées. Ecrivons le polynôme d'interpolation à partir de la formule générale de Newton mais en remontant dans le tableau des différences divisées, c'est-à-dire en commençant par le dernier point d'interpolation connu. F fn n n n n n n-1 n n nB − −= −+ − ⋅ + − ⋅ − ⋅ + +( ) ( ) ( ) ( , ) ( ) ( ) ( , , ) ...x x x x q x x x x x x q x x x1 1 2

+ − ⋅ − ⋅ − − ⋅− − − −( ) ( ) ( ) ... ( ) ( , , , ... , , ) .x x x x x x x x q x x x x xn n n n n n1 2 1 1 2 1 0

La première différence divisée en sens inverse se définit par les rapports :

151

6. Interpolations diverses

q x x x xh

xh

( , ) ( ) ( ) ( ) .n nn n-1 nf f f

− =−

=∇

1

La nième différence divisée en sens inverse s'écrit alors :

q x x x x x xh

( , , , ... , , ) ( )!

.n n n 1 0

nn

n

fn− − =

∇1 2

Le polynôme d'interpolation peut alors s'écrire .-

F f f fn n n

nn n

nB −= + − ⋅

∇+ − ⋅ − ⋅

∇⋅

+ +( ) ( ) ( ) ( ) ( ) ( ) ( )!

...x x x x xh

x x x x xh1

2

2

+ − ⋅ − ⋅ − − ⋅∇

⋅− −( ) ( ) ( ) ... ( ) ( )!

.x x x x x x x x xhn n n

nnn

fn1 2 1

Introduisons, comme dans la méthode en sens direct, la variable q définie dans le cas du sens inverse par le quotient :

q x xh

=− n .

En portant cette valeur dans le polynôme d'interpolation, la formule de Newton en sens inverse s'écrit finalement :

F f f f fn n n n nB = + ⋅∇ +⋅ +

⋅∇ +⋅ + ⋅ +

⋅∇ + +( ) ( ) ( ) ( )!

( ) ( ) ( )!

( ) ...x x q x q q x q q q x12

1 23

2 3

+⋅ + ⋅ + ⋅ + ⋅ ⋅ + −

⋅∇q q q q q x( ) ( ) ( ) ... ( ) ( ) . 1 2 2 1n

n!fn

n

6.1.4.7 ALGORITHME DE LA MÉTHODE DE NEWTON EN SENS INVERSE L'algorithme proposé ci-après est valable pour interpoler une fonction discrète en sens inverse lorsque le pas est constant. Le nombre d'intervalles est désigné par n . Le tableau t(n,n) contient, après calcul, les différences successives. Le degré du polynôme d'interpolation ne peut évidemment pas dépasser le nombre d'intervalles de définition. Les valeurs de la fonction discrète sont introduites après avoir fixé les bornes de sa variation [xmin, xmax]. Le départ de l'interpolation s'effectue le plus près possible de la valeur à calculer afin d'augmenter la précision du résultat, compte tenu du degré np adopté pour le polynôme. A L G 0 R I T H M E

Méthode d'interpolation de Newton en sens inverse pour un pas constant

1. Initialisation Lis : xmin,xmax,n deltx ⇐ (xmax-xmin)/n Pour i ⇐ 0,n,l x(i) ⇐ xmin+i*deltx Lis : t(i,0) fin faire i

2. Tableau des différences Pour i ⇐ 1,n,1 Pour j ⇐ 1,n,1 t(j,i) ⇐ t(j,i-1)-t(j-1,i-1) fin faire j fin faire i

3. Introduction d'un point Lis : np (degré du polynôme} xval {valeur de x}

152

6. Interpolations diverses

Pour i ⇐ np,n,1 Si x(i) ≠ xval alors ix ⇐ i exit fin si fin faire i

4. Interpolation y ⇐ t(ix,0) id ⇐ 0; ii ⇐ 1 Pour i ⇐ 0,np-1,1 yp ⇐ 1 Pour j ⇐ 0,i,1 yp <-- yp*(xval-x(ix-j))/deltx fin faire j id ⇐ id+l ii ⇐ ii*id y ⇐ y+yp*t(ix,i+1)/ii fin faire i

5. Impression des résultats Ecris : xval , y (Fin méthode de Newton) 6.1.4.8 REMARQUES SUR L'INTERPOLATION POLYNOMIALE L'erreur commise sur l'interpolation polynomiale de fonctions discrètes au moyen des formules de Newton peut s'exprimer par le dernier terme du développement. Malheureusement, pour chiffrer cette erreur, il est nécessaire de connaître la valeur de la fonction au point recherché. Il serait très intéressant de pouvoir étudier la variation de la fonction discrète dans son domaine de définition comme par exemple sa valeur extrémale et le point d'extremum correspondant. Pour arriver à solutionner ce genre de problème, il faudrait : - connaître un premier tableau relativement grossier de la fonction discrète, - chercher une première approximation de la variation de la fonction, - limiter l'étude aux points se situant autour de la valeur maximale ou minimale, - créer un sous-tableau de cette zone d'exploration, - examiner ce deuxième tableau et améliorer le résultat. Un autre problème classique est celui de la recherche d'une racine de la fonction discrète. Le principe de la méthode de calcul est semblable à celui du minimum ou maximum. Il faut déterminer approx-imativement la position du zéro et construire un sous tableau autour de ce point. Si les coefficients et constante du polynôme d'interpolation sont connus, la recherche des zéros par la voie entrevue au chapitre 3 est en principe possible. Dans ce cas, il est recommandé d'adopter un polynôme d'inter-polation du second degré afin de trouver facilement les racines. Finalement, on pourrait se poser la question très importante sur la précision d'interpolation non seu-lement au point examiné, mais dans tout le domaine de définition de la fonction. Il existe d'autres formules d'interpolation, en général plus complexes, permettant de minimaliser les erreurs dans le domaine [x0,xn] .

6.2 FONCTIONS SPLINE CUBIQUE Les fonctions dites "spline cubique" sont utilisées dans le tracé de courbes et dans la solution pra-tique de nombreux problèmes de mathématique. Le nom spline désigne la latte employée par les constructeurs de bateaux pour tracer la forme des carènes à partir d'un certain nombre de points de définition donnés par l'architecte naval. Les diverses formes de ces fonctions spline cubique permet-tent de déterminer les coefficients et constante d'un polynôme du troisième degré passant par quatre points de définition. Une fonction, se composant de polynômes de degré k et se laissant différencier k-

153

6. Interpolations diverses

fois en chacun de ses points, porte le nom de fonction spline d'ordre k. L'avantage essentiel de ces fonctions est de pouvoir choisir facilement les points de définition, le pas pouvant être variable, de trouver aisément les inconnues, de devoir stocker en mémoire un nombre relativement restreint de valeurs numériques. Dans ce sous-chapitre, nous voulons traiter les fonctions spline cubique avec définition des dérivées premières ou secondes aux extrémités de la fonction, pour fonctions périodiques et en complément pour des courbes fermées définies par un certain nombre de points. 6.2.1 CARACTÉRISTIQUES GÉNÉRALES DES FONCTIONS SPLINE Les abscisses des points de définition de la fonction discrète sont en ordre croissant dans l'inter-valle [a,b] : a =x1 < x2 < x3 < . . . < xn-1 < xn = b. 6.2.1.1 PROPRIÉTÉS DES FONCTIONS SPLINE CUBIQUE Cette famille de fonctions présente les propriétés suivantes -. 1. Les abscisses, représentées par n points, x1, x2, x3, . . . , xn-1, xn et les valeurs correspondantes de

la fonction discrète y1, y2, y3, . . . , yn-1, yn sont données. 2. un polynôme P3(x) du troisième degré se définit dans chaque intervalle de définition [xj, xj+1] et

passe par les points imposés initialement. Dans l'intervalle [xj,xj+1], le polynôme pourrait s'écrire : P3(x) = y(x) = a z3 + b z2 + c z + d, avec: z = x – xi .

3. la fonction du troisième degré possède la propriété suivante aux points discrets de définition : P3(xi) = yi pour i = 1,2,3,.. .,n-1,n.

4. le polynôme P3(x) est deux fois différentiable et remplit pleinement les conditions de continuité des fonctions d'un intervalle au suivant. Au point i+1 , la continuité des fonctions satisfait les deux rela-tions :

f’i(xj+ 1 ) = f’j+1 (xj+ 1 ) ,

et : f’’j(xj+1) = f’’j+1(xj+1) .

5. aux points initial et final, soit (x1,y1) et (xn,yn), les dérivées premières ou les dérivées secondes doi-vent être connues.

6. les dérivées premières et secondes dans chaque intervalle de définition peuvent s'exprimer par les relations générales suivantes :

P'2(z) = y’(z) = 3 a z2 + 2 b z + c , P"1(z) = y"(z) = 6 a z + 2 b , avec: z = x – xi . La dérivée seconde varie donc linéairement dans chaque intervalle de définition. 6.2.1.2 AVANTAGES DES FONCTIONS SPLINE Les avantages des fonctions spline cubique sont principalement : 1. la courbe, représentant la fonction continue, est facilement définissable par les n points introduits

initialement, avec n > 3, et par les dérivées premières ou secondes en début et en fin de fonction. 2. la courbe est définie, entre deux points imposés, par un polynôme du troisième degré à coeffi-

cients et constante réels. 3. la courbe ne présente en aucun point des rebroussements et peut se dériver deux fois en chaque

point.

154

6. Interpolations diverses

L'inconvénient majeur de la méthode est la nécessité de calculer n - 2 dérivées premières ou secon-des de toutes les n - 1 fonctions. Il est possible de trouver toutes les n-1 fonctions spline cubique dans le domaine de définition limité par les points [x1,xn] au moyen de polynômes adéquats. Dans l'intervalle [xi,xi+1], le polynôme d'inter-polation pour un point à calculer à l'abscisse x s'écrit :

P3(x) = ai (x - xi)3 + bi (x - xi)2 + ci (x - xi) + di , avec xi ≤ x ≤ xi+1 . 6.2.2 FONCTIONS DÉFINIES PAR LES DÉRIVÉES PREMIÈRES À part les points de définition Pi(xi,yi), l'utilisateur de cette méthode doit connaître et donner la va-leur de la dérivée première en début et en fin de la fonction y = f(x) . 6.2.2.1 CONDITIONS IMPOSÉES PAR LES DÉRIVÉES PREMIÈRES Étudions les conditions imposées au calcul des coefficients et constante du polynôme dans un intervalle quelconque [xi,xi+1] . Le pas vaut : hi = Δxi = xi+1 - xi . Aux abscisses xi et xi+1, les valeurs de la fonction discrète sont imposées par les ordonnées de définition, soit yi et yi+1. Ces deux grandeurs s'expriment aussi par le polynôme du troisième degré : - au point (xi,yi) : F3(xi) = yi = di . - au point (xi,,,yi+,) : F3(xi+1) = yi+1 = ai Δxi

3 + bi Δxi2 + ci Δx + di .

En ces deux points, les dérivées premières de la fonction cubique se définissent par les deux expres-sions suivantes : - au point (xi,yi) : F2'(xi) = yi' = ci - au point (Xi+,,Yi,,) : F2' (xi+1) = yi+1 = 3 ai Δxi

2 + 2 bi Δxi + ci . En complément et d'une manière semblable, il est possible d'exprimer les dérivées secondes de la fonction cubique en ces deux points : - au point (xi,yi) : F"1(xi) = y’’i = 2 bi .

- au point (xi,,,yi+,) F"1(xi+1) = y"i+1 = 6 ai Δxi + 2 bi .

Ces définitions générales s'appliquent aux n - 1 fonctions cubiques dans les n - 1 intervalles. Les coef-ficients et constantes dépendent des conditions de continuité aux points de définition de la fonction discrète. En partant du calcul et des expressions des dérivées premières à la fin de l'intervalle [xi-1,xi] et à la fin de l'intervalle suivant [xi,xi+1], les coefficients et constante du polynôme cubique se trouvent par les quatre expressions suivantes :

- coefficients : a y y y xxi

i i i i

i

=+ −+' ' / ,1

2

2Δ ΔΔ

b y x y yx

ii

i i

i

= 1− − +3 2Δ ΔΔ

/ ' ,

ci = yi’ , - constante : di = yi .

Les ordonnées sont des grandeurs connues tandis que les dérivées premières sont à trouver. La re-cherche des trois coefficients et de la constante devient possible en utilisant la continuité de la tan-gente à la courbe au point commun à l'abscisse xi . 6.2.2.2 EXPRESSION GÉNÉRALE DES CONTINUITÉS AUX POINTS CONNUS Introduisons la condition de continuité au point i dans les pentes à la courbe représentant la fonction au point Pi(xi,yi). Pour les deux intervalles successifs [xi-1,xi] et [xi,xî+1] , cette condition est :

155

6. Interpolations diverses

y yi(i-1 i) i(i i+1)→ →=' ' . La continuité impose encore l'égalité complémentaire des dérivées secondes au même point : y yi(i-1 i) i(i i+1)→ →='' '' .

avec : y a x x b a xi(i-1 i) i i i- i i i i→ − − − − b −= − + = +'' ( )6 2 61 1 1 1 1 ,2 1Δ

et : y bi(i i+1) i→ ='' ,2

donc : 6 21 1 1a 2x b bi i i− i− −+ =Δ . En remplaçant dans cette relation les constantes ai-1, bi-1 et bi par les expression précédentes et en in-troduisant les différences sous la forme : -variation des absicisses : Δ x x xi i i− −= −1 ,1 Δ x x xi i+1 i= − , - variation des ordonnées : Δ y y yi i i− −= −1 ,1 Δ y y yi i+1 i= − , l'égalité se transforme en l’expression suivante :

1 2 1 1 1 3 3

11

11

1

1

1Δ Δ Δ Δ ΔΔΔ

ΔΔ Δx

yx x

yx

yx

yx

yx xi

ii i

ii

ii

i

i

i

i i−−

−+

⋅ + ⋅ +FHG

IKJ ⋅ + ⋅ = ⋅ +

⋅' ' ' .

Cette relation linéaire, contenant comme coefficients et constantes seulement des différences de va-riables indépendantes x et de variables dépendantes y possède trois inconnues représentées par les dérivées premières de fonctions cubiques : y’i-1 y’i et y’i+1 . Le système à résoudre est un système linéaire à matrice tridiagonale comprenant n - 2 inconnues alors qu'il existe n pentes à la courbe. Les pentes initiales et finales, soit y'1 et y’n doivent se donner avant de trouver la solution.

a aa a a

a a a

a a

yyy

y

sss

s

22 23

32 33 34

43 44 45

2

3

4

1

2

3

... ... ... ... ....

'

'

'

'n 1,n 2 n 1,n 1 n 1 n 1− − − − − −

F

H

GGGGGG

I

K

JJJJJJ

F

H

GGGGGG

I

K

JJJJJJ

=

F

H

GGGGG

I

K

JJJJJ

Les coefficients de la matrice carrée sont :

- diagonale principale : ai,i = 1 / Δ xi-1 ,

- éléments supérieurs : ai-1,j = 2 . (1/Δ xi+1 + + 1/Δ xi) ,

- éléments inférieurs : ai,i+1 = 1/Δ xi.

La matrice carrée est donc symétrique à diagonale dominante et tous les coefficients de la diagonale sont positifs. Cette matrice est donc définie positive. Les fonctions spline cubique sont ainsi parfai-tement définies et univoques. Les méthodes de résolution proposées au chapitre 4 sont applicables. Les constantes du second membre du système d'équations se trouvent par les relations :

bi = 3 Δ yi-1 / (Δ xi-1)2 + 3 Δ yi / (Δ xi)2 . 6.2.2.3 VALEURS DES DÉRIVÉES SECONDES Les dérivées secondes peuvent aussi se trouver facilement à partir des dérivées premières et des différences des variables Δxi, Δyi :

yx

yx

y yii

i

ii i 1

'' ' ' .= ⋅ ⋅ − −FHG

IKJ+

2 3 2Δ

ΔΔ

(i = 1, 2,3, 4, .... n-1).

156

6. Interpolations diverses

yx

yx

y ynn-1

n-1

n-1n n

'' ' ' .= ⋅ − ⋅ + +FHG

IKJ−

2 3 21ΔΔΔ

6.2.2.4 ALGORITHME DE LA MÉTHODE DES DÉRIVÉES PREMIÈRES Dans la méthode de calcul des fonctions spline cubique, définies à partir des dérivées premières, ces dérivées premières sont placées dans le vecteur y1 . Les vecteurs b et c sont des vecteurs de travail contenant des valeurs temporaires. Les n coordonnées [xi,yi] des points imposés se stockent dans les vecteurs x et y . A L G 0 R I T H M E

Fonctions spline cubique définie par dérivées premières

1.Initialisation des divers vecteurs 1. Lis : y1(1),y1(n) b(1) ⇐ 0 c(1) ⇐ 0 Pour i ⇐ 1,n-1,1 pas2 ⇐ 1/(x(i+1)-x(i)) b2 ⇐ 3*pas2*pas2*(y(i+1)-y(i)) Si i < 1 alors cz ⇐ 1/(2*(pasl+pas2)-pasl*c(i-1)) c(i) ⇐ cz*pas2 pas ⇐ b1+b2 Si i=2 alors pas ⇐ pas-pasl*y1(n) Si i=n-1 alors pas ⇐ pas-pas2*y1(n) b(i) ⇐ cz*(pas-pas1*b(i-1)) fin faire si pas1 ⇐ pas2 b1 ⇐ b2 fin faire i

2 Solution du système linéaire yl(n-1) ⇐ b(n-1) Pour i ⇐ n-2,2,-1 y1(i) ⇐ b(i)-c(i)+y1(i+1) fin faire i

3. Calcul des coefficients et constantes Pour i ⇐ 1,n-1,l pas1 ⇐ 1/(x(x(i+l)-x(i)) pas2 ⇐ (y(i+1)-y(i))*pas1 a(i,0) ⇐ y(i) a(i,1) ⇐ y1(i) a(i,2) ⇐ pas1*(3*pas2-2*y1(i)-y1(i+1)) a(i,3) ⇐ pas1*pas1*-(y1(i)+y1(i+1)-2*pas2) fin faire i (Fin de l’organigramme) La procédure proposée permet de trouver les n - 2 dérivées premières inconnues initialement. À partir de ces valeurs, il est possible de calculer les trois coefficients et la constante de chaque polynô-me cubique dans l'intervalle lx1,xnl . Ces grandeurs sont stockées dans le tableau a(1..n,0..3], selon : - constante di : ⇒ a(i, 0), - coefficient ci : ⇒ a(i, 1),

157

6. Interpolations diverses

- coefficient bi ⇒ a(i, 2), - coefficient ai ⇒ a(i, 3). 6.2.3 FONCTIONS DÉFINIES PAR LES DÉRIVÉES SECONDES Le système d'équations linéaires peut aussi se définir en introduisant les dérivées secondes des n-1 fonctions spline cubique. 6.2.3.1 CONDITIONS IMPOSÉES PAR LES DÉRIVÉES SECONDES Aux abscisses xi et xi+1 les valeurs de la fonction discrète sont imposées par les ordonnées de dé-finition, soit yi et yi+1. Ces deux grandeurs s'expriment aussi par le polynôme du troisième degré : - au point (xi,yi) : F3(xi) = yi = di .

- au point (xi+1,yi+1) : F3(xi+1) = yi+1 = ai Δxi3 + bi Δxi2 + ci Δx + di .

En ces deux points, les dérivées premières de la fonction cubique se définissent par les deux expres-sions suivantes : - au point (xi,yi) -. F2'(xi) = yi' = ci .

- au point (xi+1,yi+1) F2’(xi+1) = y’i+1 = 3 ai Δxi2 + 2 bi Δ xi + ci .

En complément et d'une manière semblable, il est possible d'exprimer les dérivées secondes de la fonction cubique en ces deux points : - au point (xi,yi) : F"1(xi) = y’’i = 2 bi .

- au point (xi+1,yi+1) F"1(xi+1) = y’’i+1 = 6 ai Δxi + 2 bi .

En utilisant la continuité des dérivées secondes des fonctions spline cubique, il est possible de définir aussi les coefficients et constante par les expressions suivantes.

- coefficients : a y yxi

i i

i

=−+1

6

'' ''

b yi i= 0 5, ,''

c yx

x y yi

i

i

i i i= −⋅ ++Δ

ΔΔ ( ) ,

'' ''1 2

6

- constante : d yi i= . Ces diverses grandeurs peuvent se calculer lorsque toutes les n dérivées secondes sont connues. 6.2.3.2 EXPRESSION GÉNÉRALE DES CONTINUITÉS AUX POINTS CONNUS Introduisons la condition de continuité dans les dérivées premières aux divers points comme xi-1, xi et xi+1 . y yi(i 1 i i(i i 1− → → +=)

'')

'' .Cette condition de continuité se traduit par l'égalité, au point d'abscisse xi, entre les deux fonctions successives du troisième degré :

3 ai-1 Δxi-1 + 2 bi-1 Δxi-1 + ci-1 = ci .

En introduisant les valeurs des coefficients ai-1, bi-1, ci-1 et ci définis précédemment, la relation géné-rale d'égalité des pentes et contenant les dérivées secondes s'écrit comme suit :

Δ Δ Δ ΔΔΔ

ΔΔ

x y x x y x y yx

xxi i i i i i i

i

i

i

i− − − +

+

⋅ + + ⋅ + ⋅ = −FHG

IKJ1 1 1 1

1

1

2'' '' ''( ) .

(avec i = 2, 3, 4, .... n-1).

158

6. Interpolations diverses

Ce sont n - 2 équations contenant les inconnues y'’i+1 (i = 2, 3, 4, . . . , n-1) calculables à partir des coordonnées des points de définition et des dérivées secondes initiale et finale. Le système d'équa-tions linéaires s'écrit -.

a aa a a

a a a

a a

yyy

y

sss

s

22 23

32 33 34

43 44 45

2

3

4

1

2

3

... ... ... ... ....

''

''

''

''n 1,n 2 n 1,n 1 n 1 n 1− − − − − −

F

H

GGGGGG

I

K

JJJJJJ

F

H

GGGGGG

I

K

JJJJJJ

=

F

H

GGGGG

I

K

JJJJJ

Les coefficients de la matrice carrée sont :

- diagonale principale : ai,j = 2 . (Δ xi-1 + Δ xi) , - éléments supérieurs : ai,j+1 = Δ xi , - éléments inférieurs : ai-1 = Δ xi-1 . La matrice carrée est donc symétrique à diagonale dominante et tous les coefficients de la diagonale sont positifs. Cette matrice est donc définie positive. Les fonctions spline cubique sont ainsi parfaite-ment définies et univoques. Les méthodes de résolution proposées au chapitre 4 sont applicables. Les constantes du second membre du système d'équations se trouvent par les relations :

bi = 6 (Δ yi / (Δ xi - Δ yi-1 /(Δ xi-1) - 6.2.3.4 ALGORITHME DE LA MÉTHODE DES DÉRIVÉES SECONDES Les valeurs des coordonnées des points introduits dans la définition de la fonction discrète se placent dans les deux vecteurs x et y . Les deux vecteurs b et c sont des vecteurs de travail. Les dérivées secondes sont enregistrées dans le vecteur y2 . A L G 0 R I T H M E

Fonctions spline cubique définie par dérivées secondes

1. Initialisation des divers vecteurs Lis -. y1(1),y1(n) b(1) ⇐ 0 c(1) ⇐ 0 Pour i ⇐ 1,n-1,1 pas2 ⇐ x(i+1)-x(i) b2 ⇐ (y(i+l)-y(i))/pas2 Si i > 1 alors cz ⇐ 1/(2*(pasl+pas2)-pasl*c(i-1)) c(i) ⇐ cz*pas2 pas ⇐ 6* (b2-b1) Si i=2 alors pas ⇐ pas-pasl*y2(1) Si i=n-1 alors pas ⇐ pas-pas2*y2(n) b(i) ⇐ cz*(pas-pasl*b(i-1)) fin faire si pasl ⇐ pas2; b1 ⇐ b2 fin faire i

2. Solution du système linéaire y2(n-1) ⇐ b(n-1) Pour i ⇐ n-,2,2,-1 y2(i) ⇐ b(i)-c(i)*y2(i+1)

159

6. Interpolations diverses

fin faire i

3. Coefficients et constante Pour i ⇐ 1,n-1,1 pas1 ⇐ x(i+1)-x(i) a(i,0) ⇐ y(i); a(i,1) ⇐ (y(i+1)-y(i))/pas1 -pas1*(y2(i+1)+2*y2(i))/6 a(i,2) ⇐ y2(i)/2 a(i,3) ⇐ (y2(i+1)-y2(i))/(6*pasl) fin faire i La procédure proposée permet de trouver les n - 2 dérivées secondes inconnues initialement. À partir de ces valeurs, il est possible de calculer les trois coefficients et la constante de chaque polynôme cubique dans l'intervalle [x1,xn]. Ces grandeurs sont stockées dans le tableau a(1..n,0..3], selon : -constante di : ⇒ a(i,0) , -coefficient ci : ⇒ a(i,l) , -coefficient bi : ⇒ a(i,2) , -coefficient ai : ⇒ a(i,3) . 6.2.3.5 EXEMPLE D'UTILISATION DE FONCTIONS SPLINE CUBIQUE L'exemple proposé calcule les coefficients des polynômes du troisième degré pour 11 points don-nés initialement. Les points sont introduits avec 5 chiffres significatifs et sont calculés à partir de la relation analytique :

y = 20 . exp(-0,2 x) . sin(pi - x/6 + 0,5) ,

pour x compris entre 0 et 12. Les abscisses adoptées ne sont pas équidistantes. Le calcul est complé-té par le tracé de la courbe et le calcul des erreurs sur 10 points intermédiaires. Les dérivées premiè-res introduites dans la méthode des splines sont : - dérivée initiale : y’(1) = 6,15 ,

- dérivée finale : y’(11) = 0,0186 .

Fonction donnée et dérivées premières calculées Méthode : dérivées premières

No x(i) y(i) y’i(i)

1 0.00000 9.58850 6.15000 2 1.00000 13.98400 2.01643 3 2.50000 11.78800 -3.91938 4 4.00000 4.67570 -4.95552 5 5.00000 0.17361 -3.85802 6 7.00000 -4.21180 -0.53149 7 8.00000 -4.03680 0.75941 8 9.50000 -2.16450 1.53226 9 10.50000 -0.68953 1.30749 10 11.50000 0.47313 1.15065 11 12.00000 0.86985 0.01860 La solution du système linéaire donne les trois coefficients et la constante pour chaque polynôme cu-bique.

160

6. Interpolations diverses

Coefficients et constante de tous les polynômes cubiques No a(i) b(i) c(i) d(i) 1 -0.62457 -1.12993 6.15000 9.58850 2 0.45558 -3.00365 2.01643 13.98400 3 0.27030 -0.95355 -3.91938 11.78800 4 0.19064 0.26279 -4.95552 4.67570 5 -0.00102 0.83471 -3.85802 0.17361 6 -0.12207 0.82856 -0.53149 -4.21180 7 -0.09099 0.46234 0.75941 -4.03680 8 -0.11018 0.05289 1.53226 -2.16450 9 0.13283 -0.27766 1.30749 -0.68953 10 -1.67050 0.12082 1.15065 0.47313 Le calcul des valeurs intermédiaires de la fonction peut alors commencer. La figure ci-dessous montre la variation de la fonction analytique.

L'erreur représentée sur la figure suivante est la différence entre la valeur de la fonction analytique et la fonction interpolée. Comme le nombre de points est assez élevé, l'erreur reste acceptable.

6.2.4 SPLINE CUBIQUE POUR FONCTIONS PÉRIODIQUES Une fonction périodique est une fonction à deux variables y = f(x) dont les valeurs et dérivées re-trouvent les mêmes grandeurs à période T constante.

161

6. Interpolations diverses

6.2.4.1 FONCTIONS SPLINE D'UNE FONCTION PÉRIODIQUE La fonction périodique y = f(x) simulée par un ensemble de fonctions spline cubique, est définie par les propriétés suivantes : 1. Abscisse des points initial et final : x1 ≠ xn x1 < xn y1 = yn , 2. Tangentes initiale et finale : y’1 ≡ y’n , 3. Dérivées secondes initiale et finale : y’’1 ≡ y’’n . Les propriétés particulières des dérivées premières et secondes aux deux points de définition, point initial et point final, permettent d'utiliser, dans ce cas particulier, les résultats précédents trouvés pour les fonctions définies par la dérivée seconde. 6.2.4.2 MATRICE DES COEFFICIENTS ET VECTEUR DES CONSTANTES En introduisant les dérivées secondes comme inconnues dans la mise en équation, la première équation du système linéaire prend la forme donnée ci-après :

2 61 1 1 1 2 1 11

1

1

1

( ) '' '' ''Δ Δ Δ ΔΔΔ

ΔΔ

x x y x y x y yx

yxn n n

n

n− − −

+ ⋅ + ⋅ + ⋅ = ⋅ − .FHG

IKJ

La forme générale des équations intermédiaires s'écrit comme suit :

Δ Δ Δ ΔΔΔ

ΔΔ

x y x x y x y yx

yxi i i i i i i

i

i

i-1

i-1− + − +⋅ + + ⋅ + ⋅ = ⋅ −

FHG

IKJ1 1 1 12 6'' ''( ) .

La dernière équation du système linéaire se compose des termes suivants :

Δ Δ Δ ΔΔΔ

ΔΔ

x y x y x x y yx

yxn n n 2 n n n 1

n-1

n

n-2

n− − − − − −

− −

⋅ + ⋅ + + ⋅ = ⋅ −FHG

IKJ1 1 2 2 1

1 2

2 6'' '' ''( ) .

Le système de n - 1 équations linéaires correspond, dans sa partie centrale, à une matrice tridiago-nale. La première et la dernière équations contiennent les termes de liaison imposés par la fonction périodique. Après simplification des termes imposés par les conditions initiale et finale, le système d'équation linéaire s'écrit encore comme suit :

a aa a a

a a a

a a

yyy

y

sss

s

12 13

21 22 23

32 33 34

1

2

3

1

2

3

... ... ... ... ....

''

''

''

''n 1,n 2 n 1,n 1 n 1 n 1− − − − − −

F

H

GGGGGG

I

K

JJJJJJ

F

H

GGGGGG

I

K

JJJJJJ

=

F

H

GGGGG

I

K

JJJJJ

6.2.4.3 ALGORITHME DE LA MÉTHODE POUR UNE FONCTION PÉRIODIQUE Dans l'algorithme proposé ci-après, les coordonnées des points de définition de la fonction dis-crète sont enregistrées dans les vecteurs x et y. Les vecteurs b, c, d sont des vecteurs de travail et contiennent des valeurs intermédiaires. La procédure proposée permet de trouver les n - 1 dérivées secondes inconnues initialement. À partir de ces valeurs, il est possible de calculer les trois coefficients et la constante de chaque polynôme cu-bique dans l'intervalle lx1,xnl . Ces grandeurs sont stockées dans le tableau a(1,.n,0..3), selon :

- constante di : ⇒ a(i,0) , - coefficient ci : ⇒ a(i,1) , - coefficient bi : ⇒ a(i,2) , - coefficient ai : ⇒ a(i,3) . A L G 0 R I T H M E

Fonctions spline cubique pour fonctions

162

6. Interpolations diverses

périodique définie par y(1) = y(n)

1. Initialisation des divers vecteurs Lis : yl(l),yl(n) b(1) ⇐ 0; c[1) ⇐ 0 d(1) ⇐ -1; j ⇐ 1 pas1 ⇐ x(n)-x(n-1); cw ⇐ pas1 pas2 ⇐ x(n-1)-x(n-2); cu ⇐ 2*(pas1+pas2) rap1 ⇐ (y(n)-y(n-1))/pas1 rap2 ⇐ (y(n-l)-y(n-2))/pas2 cv ⇐ 6*(rap1-rap2)

2. Création des vecteurs de travail Pour i ⇐ 1,n-2,1 pas2 ⇐ x(i+1)-x(i) rap2 ⇐ (y(i+1)-y(i))/pas2 si i > 1 alors cu ⇐ cu-cw*d(j) cv ⇐ cv-cw*b(j) cw ⇐ -c(j)*cw fin faire si cz ⇐ 1/(2*(pas1+pas2)-pasl*c(j)) c(i) ⇐ cz*pas2 d(i) ⇐ -cz*d(i)*pas1 b(i) ⇐ cz*(6*(rap2-rap1)-pas1*b(j)) pas1 ⇐ pas2; rap1 ⇐ rap2; j ⇐ i fin faire i

3. Solution du système linéaire pas2 ⇐ cw+pas1

pas1 ⇐ (cv-pas2*b(n-2))/(cu-pas2*(c(n-2)+d(n-2))) y2(n-1) ⇐ pas1

Pour i ⇐ n-2,1,-1 y2(i) ⇐ b(i)-c(i)*y2(i+1)-d(i)*pas1 fin faire i y2(n) ⇐ y2(1)

4. Coefficients et constante des polynômes Pour i ⇐ 1,n-1,1 fais pas1 ⇐ x(i+1)-x(i) a(i,0) ⇐ y(i)

a(i,1) ⇐ (y(i+1)-y(i))/pas1- pas1*(y2(i+l)+2*y2(i))/6

a(i,2) ⇐ y2(i)/2 a(i,3) ⇐ (y2(i+1)-y2(i))/(6*pasl) fin faire i Les deux algorithmes précédents pour fonctions spline définie par les dérivées premières ou secon-des peuvent aussi s'introduire dans la recherche des points intermédiaires. Des modifications pro-gressives sur les grandeurs initiales et finales permettent d'obtenir très souvent de meilleurs résultats.

163

6. Interpolations diverses

6.2.5 FONCTIONS SPLINE CUBIQUE POUR COURBE FERMÉE Dans les courbes fermées, les abscisses et les ordonnées des points de définition se trouvent dans le plan Oxy. 6.2.5.1 CONDITIONS PARTICULIÈRES Les conditions particulières imposées pour la continuité de la courbe aux points de jonction du dé-but du premier tronçon avec la fin du dernier tronçon sont les suivantes : 1. Points initial et final : abscisses : xn = x1. ordonnées yn = y1 . 2. Tangentes communes : y’n = y’1 . 3. Dérivées secondes : y’’n = y’’1 . Pour résoudre ce genre de problème, nous ne pouvons plus exprimer la seconde variable dépendante y en fonction de la première variable indépendante x. Nous devons introduire deux relations paramé-triques pour ces deux variables et nous utiliserons la variable indépendante t. Les deux variables x et y sont alors fonction de t. x = x(t) et y = y(t). Les deux relations paramétriques nécessitent le calcul de deux ensembles de fonctions spline cubi-que, le premier pour la variable x , le second pour la variable y. 6.2.5.2 VALEUR DU PARAMÈTRE ET FONCTIONS SPLINE CUBIQUE Les coordonnées des points de définition xi et yi sont deux variables dépendant du paramètre t. Le paramètre t devrait représenter l'intégrale curviligne de la courbe du point initial de définition au point actuel en étude. Comme cette courbe est initialement inconnue, le paramètre t peut se définir, en pre-mière approximation, par un contour polygonal construit sur les points initialement connus. 1. Point initial : P1(x1,y1), t = 0 . 2. Pour un point quelconque Pi(xi,yi), ti = ti-1 + si-1 . avec : si = (Δxi2 + Δyi2)1/2 .

La dimension si représente la distance entre deux points de définition ou la longueur du côté i du poly-gone fermé. Les fonctions spline cubique s'écrivent comme suit :

Fonction dépendante x : F3(xi+1) = x(t)i+1 = ai,x Δti3 + bi,x Δti2 + ci,x Δt + di,x .

Fonction dépendante y : F3(yi+1) = y(t)i+1 = ai,y Δti3 + bi,y Δti2 + ci,y Δt + di,y .

Les dérivées premières x’ et y’, de dérivées secondes x’’ et y’’, par rapport à t doivent être égales au point initial et au point final, ces deux points étant confondus. Cette méthode donne des résultats sa-tisfaisants pour autant que les points de définition sont assez près les uns des autres. 6.2.5.3 COMPOSANTS DE L'ALGORITHME POUR COURBE FERMÉE L'algorithme se compose essentiellement de deux parties : 1. la recherche du paramètre ti de t1 à tn, 2. le calcul de deux fonctions spline cubique en introduisant la méthode de l'algorithme des fonctions

spline cubique pour fonctions périodiques. Les coordonnées des points intermédiaires, se situant sur les arcs de courbe interpolés, peuvent se trouver en incrémentant le paramètre t. Les dérivées première et seconde sur la courbe se calculent par les relations démontrées en calcul différentiel.

1. tangente à la courbe : y yx

y tx t

' ' ( )' ( )

.= =dd

164

6. Interpolations diverses

2. variation de la tangente à la courbe : y yx

x t y t y t x tx t

' ' ' ( ) ' ' ( ) ' ( ) ' ' ( )' ( )

.= =− − ⋅d

d

2

2 3

L'algorithme donne seulement le principe de la méthode de résolution. A L G 0 R I T H M E

Fonctions spline cubique pour courbe fermée définie par x(i) et y(i)

1. Initialisation des divers vecteurs Contrôle : x(1)=x(n) ? y(1)=y(n) ?

2. Calcul du paramètre t t(1) ⇐ 0 Pour i ⇐ 2,n,1 deltx ⇐ x(i)-x(i-1) delty ⇐ y(i)-y(i-1) delt2 ⇐ deltx*deltx+delty*delty t(i) ⇐ t(i-1)+(delt2)^0.5

3. Calcul des dérivées secondes des fonctions paramétriques 3.1 Création des vecteurs pour x(t) 3.2 Création des vecteurs pour y(t)

4. Solution des systèmes linéaires Coefficients et constante des polynômes Coefficients pour x(t) Coefficients pour y(t)

5. Calcul des dérivées Pour i ⇐ 1,n-1,1 y1(i) ⇐ ylt(i)/xlt(i) y2(i) ⇐ (xlt(i)*y2t(i)-ylt(i)*x2t(i))/xlt(i)^3 fin faire i

6. Affichage des résultats 6.3 INTERPOLATION PAR PÔLYNOMES TRIGONOMÉTRIQUES Cette méthode d'interpolation convient très bien aux fonctions périodiques. Elle consiste à rem-placer la fonction donnée, analytique ou discrète, en une somme de fonctions trigonométriques de pulsations croissantes. 6.3.1 INTRODUCTION AUX SÉRIES DE FOURIER La plupart des fonctions périodiques, de période T, peuvent se décomposer en leurs harmoniques et la somme de ces harmoniques prend de la forme :

y x a a iT

x b iT

x= = + ⋅ ⋅FHGIKJ ⋅ + ⋅ ⋅FHG

IKJ ⋅

FHG

IKJ=

=

∑f i ii

i n

( ) cos sin .01

2 2π π

Cette décomposition en sommes de fonctions trigonométriques est appelée série de Fourier. La dé-composition devrait pouvoir s'appliquer :

165

6. Interpolations diverses

-soit à une fonction définie analytiquement par une expression y = f x), -soit à une fonction discrète données seulement par un nombre limité de points. 6.3.1.1 DÉCOMPOSITION EN FONCTIONS TRIGONOMÉTRIQUES D'après la relation générale proposée par Fourier, le problème fondamental consiste à rechercher diverses grandeurs : - la constante a0, - les coefficients ai et bi de toutes les fonctions trigonométriques retenues. Deux cas sont à considérer : - la fonction est définie sur un intervalle [-T/2,+T/2], - la fonction est définie sur un intervalle [a,b] de longueur T. Ces constante et coefficients peuvent se définir par les expressions proposées ci-après. 1. Intervalle de définition symétrique par rapport à zéro : -T/2 ≤ x ≤ +T/2 .

- constante a0 : aT

x xT

T

02

21= ⋅

+

z f d( ) ./

/

- coefficients ai : aT

xT

x xT

T

i f i= ⋅ ⋅ ⋅ dFHG

IKJ ⋅

+

z2 2

2

2

( ) cos ./

/ π

- coefficients bi : bT

xT

x xT

T

i f i= ⋅ ⋅ ⋅ dFHG

IKJ ⋅

+

z2 2

2

2

( ) sin ./

/ π

2. Intervalle de définition quelconque : a ≤ x ≤ b . Constante complémentaire de milieu de période : C = (a + b)/2 = a + T/2 .

- constante a0 : aT

x xa

a T

01

= ⋅ ⋅+

z f d( ) .

- coefficients ai : aT

xT

x C xa

a T

i f i= ⋅ ⋅ ⋅ ⋅ − dFHG

IKJ ⋅

+

z2 2( ) cos ( ) .π

- coefficients bi : bT

xT

x C xa

a T

i f i= ⋅ ⋅ ⋅ ⋅ − dFHG

IKJ ⋅

+

z2 2( ) sin ( ) .π

Le calcul des intégrales s'effectue au moyen de méthodes proposées au chapitre 7. Remplaçons le rapport 2 π/T par la pulsation d'harmonique 1 :

ω0 = 2 π/T. La décomposition en harmoniques d'un signal périodique s'exprime alors simplement par :

y x a a x b xi= = + ⋅ ⋅ ⋅ + ⋅ ⋅ ⋅=

=∞

∑f i ii

i

( ) ( cos( ) sin( ) ) .0 01

ω ωi 0

Le développement en série des fonctions sinus, cosinus et exponentielle montre qu'il est possible de remplacer la somme entre les parenthèses extérieures de l'expression générale par une relation con-tenant la fonction exponentielle :

y x c x T= = ⋅ − ⋅

=−∞

=+∞

∑f eii j

i

i

( ) ./2π

Dans cette expression, les coefficients ci sont en général complexes.

166

6. Interpolations diverses

6.3.1.2 NOMBRE DE FONCTIONS TRIGONOMÉTRIQUES Le calcul numérique des intégrales, par l'une des méthodes usuelles des mathématiques numé-riques, est assez lente. Le temps de calcul est généralement important, surtout si une haute précision est recherchée. Par exemple, le calcul de tous les coefficients de 200 harmoniques d'une fonction analytique de complexité moyenne nécessite quelques dizaines de minutes (temps pour les débuts des années 90). Il n'est pas possible de donner des règles strictes quant au nombre de fonctions à prendre en considération de façon à obtenir un résultat satisfaisant. 6.3.2 SÉRIES DE FOURIER POUR FONCTIONS DISCRÈTES La fonction y = f(x) est définie sur un ensemble de points de coordonnées (xi,yi) . La fonction est représentée par une ligne brisée composée d'une succession de segments de droite. Le problème consiste alors à retrouver les coefficients ai et bi pour un nombre limité d'harmoniques. Les abscisses xi de la fonction doivent se donner en ordre croissant. 6.3.2.1 SOLUTION DE LA RECHERCHE DES SÉRIES DE FOURIER Sur un segment rectiligne donné, les sommes intégrales peuvent se décomposer en :

A x k x Cx

x

i di

i= ⋅ + ⋅ ⋅ ⋅ − ⋅

+z ( ) cos ( )η μ ω 01 x ,

et : B x k x Cx

x

i di

i= ⋅ + ⋅ ⋅ ⋅ − ⋅

+z ( ) sin ( ) xη μ ω 01 .

Les termes η et μ se définissent en fonction des points aux deux extrémités du segment : - point initial: Pi(xi,yi) , - point final : Pi+1(xi+1,yi+1) ,

- terme (pente) : η =−−

+

+

y yx x

i i

i i

1

1

,

- avec : y xi i= ⋅ +η μ et y yi 1 i 1+ += ⋅ +η μ . L'intégration par parties de ces deux relations permet d'écrire les résultats suivants :

Ak k

k x C x k x Cx

x

i

i

i 1

=⋅

⋅⋅

⋅ ⋅ ⋅ − + ⋅ + ⋅ ⋅ ⋅ −RST

UVW+1

0 00 0ω

ηω

ω η μ ωcos ( ) ( ) sin ( ) ,

et : Bk k

k x C x k x Cx

x

i

i

i 1

=⋅

⋅⋅

⋅ ⋅ ⋅ − − ⋅ + ⋅ ⋅ ⋅ −RST

UVW+1

0 00 0ω

ηω

ω η μ ωsin ( ) ( ) cos ( ) .

La fonction discrète doit se décrire sur une période complète avec un nombre de points suffisants. Dans ces relations, il n'est pas nécessaire que l'intervalle de définition de la fonction soit symétrique par rapport à l'origine Oxy car la position du point moyen se trouve à l'abscisse donnée par la cons-tante C = (xi + xi+1) / 2 = xi + T / 2 . 6.3.2.2 ALGORITHME DE LA SOLUTION DISCRÈTE L'algorithme proposé détermine seulement les coefficients ai et bi d'un harmonique. Les variables principales utilisées dans cet algorithme ont la signification suivante T période, xm point milieu, k numéro de l'harmonique, a,b coefficients a et b de l'harmonique, x(i),y(i) coordonnées du point de la fonction discrète,

167

6. Interpolations diverses

deb,fin début et fin des indices de la liste des points de définition. A L G 0 R I T H M E

Analyse de Fourier d'une fonction discrète par la méthode générale

1. Initialisation T ⇐ x(fin)-x(deb); xm ⇐ (x(deb)+x(fin))/2 a ⇐ 0; b ⇐ 0 om ⇐ 2*pi*k/T

2. Calcul des deux coefficients Pour i ⇐ deb,fin-1,1 va ⇐ x(i); vb ⇐ x(i+1) vc ⇐ y(i); vd ⇐ y(i+1) si va <> vb alors vg ⇐ (vd-vc)/(vb-va) vh ⇐ om*(va-xm) vi ⇐ om*(vb-xm) si k = 0 alors a ⇐ a+(vb-va)*(vc+vg/2*(vb-va)) sinon vl ⇐ cos(vh); vm ⇐ sin(vh) vn ⇐ cos(vi); vp ⇐ sin(vi) a ⇐ a+vg/om*(vn-vl)+vd*vp-vc*vm b ⇐ b+vg/om*(vp-vm)-vd*vn+vc*vl fin si fin i

3. Correction finale a ⇐ a/T b ⇐ b/T si k <> 0 alors a ⇐ 2*a/om b ⇐ 2*b/om fin si 6.3.2.3 MÉTHODE RAPIDE POUR FONCTION DISCRÈTE Un inconvénient majeur de la méthode proposée précédemment est de devoir calculer les deux fonctions trigonométriques sinus et cosinus pour chaque harmonique et chaque point. Si le nombre d'harmoniques est élevé, alors cette méthode nécessite un temps de calcul très grand. De nombreuses méthodes d'analyses rapides de Fourier (FFT) existent depuis les années 60. La mé-thode proposée ici permet d'entrer un nombre pair de points de définition. Ce nombre ne doit pas être nécessairement une puissance de 2. L'algorithme décrit par G. Goertzel est très performant car il ne calcule qu'une seule paire de fonctions trigonométriques. Il est basé en principe sur les considérations suivantes. Le nombre de points se définit par la fonction discrète et vaut 2n+2 . L'intervalle x ∈ [0,2π] est divisé en 2n+1 pas égaux : h = 2n/(2n+1). L'ensemble des coefficients recherchés ak et bk pour k = 0, 1, .... n permet d'écrire la relation suivante :

F k in

k ink

k

n

k( ) cos sin .x a a b1 01

12

22 1

22 1

= ⋅ + ⋅ ⋅ ⋅+

FHG

IKJ + ⋅ ⋅ ⋅

+FHG

IKJ=

∑ π π

168

6. Interpolations diverses

Le point i se trouve à l'abscisse xi = 2 π i / (2n+1). Pour i = 0, le point x0 = 0 et pour i = 2n+1, le point de la fonction se situe à l'abscisse x2n+1 = 2 π . À partir de la relation générale des séries de Fourier, on peut démontrer les deux relations suivantes :

a xk ii

n

nf( k i

n=

+⋅ ⋅ ⋅ ⋅

+FHG

IKJ=

∑22 1

22 10

2

) cos .π

b xk ii

n

nf( k i

n=

+⋅ ⋅ ⋅ ⋅

+FHG

IKJ=

∑22 1

22 10

2

) sin .π

Après transformation, il est possible d'écrire la formule de récurrence :

u x u ui,k i i 1,k i 2,kfn

k= ++

⋅FHG

IKJ ⋅ −+ +( ) cos +2 2 2

2 1,π

avec : i = 2n, 2n-1, 2n-2, . . . , 1. u2n+2k = 0 et u2n+1,k = 0.

Une relation semblable peut s'écrire pour la fonction sinus. Finalement, la méthode de calcul com-prend les pas successifs ci-après : 1. division de l'intervalle [0,2π] en n+1 pas égaux. 2. calcul des fonctions trigonométriques : sin1 = sin[2π/(2n+1)], cos1 = cos[2π/(2n+1)] . 3. pour chaque harmonique k , k = 0, 1, 2, . . . , n , recherche des coefficients ak et bk en se servant

des deux formules de récurrence. 6.3.2.4 ALGORITHME DE LA SOLUTION RAPIDE POUR FONCTION DISCRÈTE L'algorithme permet donc de calculer les amplitudes des fonctions trigonométriques dans l’inter-valle des abscisses [0,2π]. Si l'intervalle est différent, un déplacement du point origine est facile à cor-riger et la période T pourra s'introduire dans le calcul. Les variables retenues dans la description de l’algorithme sont les de l’algorithme suivantes : n nombre maximal d'harmoniques (nombre total de points (2n+2), nh nombre d'harmoniques souhaité, x(i) valeurs des abscisses (calculées sur n+2 points dans l'intervalle [0,2n]), f(i) valeurs de la fonction (introduites sur n+2 points). Les ordonnées initiale et finale doivent correspondre et le nombre d'harmoniques calculable doit rester inférieur ou égal à n . A L G 0 R I T H M E

Analyse de Fourier d'une fonction discrète par la méthode rapide

1. Initialisation Lis : n {nb. max harmoniques) nh {nh. harmoniques à calculer} nn ⇐ 2*n+l cf ⇐ 2/nn Pour i ⇐ 0,nn,1 x(i) ⇐ 2*pi*i/nn Lis : f(i) fin faire i f(0) ⇐ (f(0)+f(nn))/2 f(nn) ⇐ f(0)

2. Calcul des coefficients ak et bk pas ⇐ pi*cf

169

6. Interpolations diverses

sinl ⇐ sin(pas); cosl ⇐ cos(pas) sp ⇐ 0; cp ⇐ 1 f0 ⇐ f(0) Pour i ⇐ 0,nh,1 u2 ⇐ 0; ul ⇐ 0 Pour j ⇐ 2*n,1,-1 u0 ⇐ f(j)+2*cp*ul-u2 u2 ⇐ ul; ul ⇐ u0 fin faire j a(i) ⇐ cf*(f0+cp*u1-u2) b(i) ⇐ cf*sp*ul q ⇐ cosl*cp-sinl*sp sp ⇐ cosl*sp+sinl*cp cp ⇐ q fin faire i a(0) ⇐ 0.5*a(0)

3. Affichage des coefficients Pour k ⇐ 0,nh,1 Ecris a(k), b(k) fin faire k 6.3.2.5 EXEMPLE D'UTILISATION DE LA SOLUTION RAPIDE La fonction étudiée est : y = 60 (x - 3 x2 + 2 x3) dans l'intervalle [0,1]. Les figures ci-dessous donnent : - La fonction et ses cinq harmoniques composantes. - l'erreur commise entre la vraie valeur de la fonction et la valeur retrouvée avec 5 harmoniques. L'analyse, basée sur l'algorithme proposé, donne les coefficients suivants :

Harmonique Coefficient Coefficient Numéro ak bk

0 0.00000 0.00000000 1 0.00000 5.80527347 2 0.00000 0.72565406 3 0.00000 0.21500200 4 0.00000 0.09069640 5 0.00000 0.04642831

Représentation de la fonction et des composantes harmoniques

170

6. Interpolations diverses

Représentation des erreurs : Δy = fx) - F(x)interpolé

6.3.3 SÉRIES DE FOURIER POUR FONCTIONS ANALYTIQUES L'exemple précédent montre qu'il est possible de trouver les séries de Fourier d'une fonction analytique en introduisant un certain nombre de points discrets dans le calcul des harmoniques. 6.3.3.1 PRINCIPES DE LA MÉTHODE POUR FONCTIONS ANALYTIQUES Les relations générales proposées au début de ce chapitre sont directement applicables. Afin de limiter l'erreur à une valeur admissible, l'intégration s'effectue par la méthode de Romberg. Le temps de calcul est en général très long si la précision exigée est haute et si le nombre d'harmoniques est très important. L'algorithme proposé sous 6.3.3.2 permet non seulement de trouver les harmoniques d'une fonction analytique dans l'intervalle [a,b], mais aussi sur des fonctions analytiques définies dans des intervalles successifs. Il devient donc nécessaire de définir : - le nombre de fonctions ou de tronçons, - les intervalles pour chacune des fonctions composantes, - les expressions de chacune des fonctions dans les intervalles imposés, - la période T, somme de tous les intervalles, et la position du point milieu, - le calcul des intégrales selon les relations générales en introduisant la méthode de Romberg. Exemple d'une définition de trois fonctions successives

La figure ci-après montre trois fonctions définies pour la variable indépendante x dans les intervalles partiels [-2,0], [0,1],[1,4], et dans l'intervalle total [-2,4]. La période vaut donc T = 6. Fonctions représentées : - Intervalle [-2,0] y = 4 [1-(1+x)2] - Intervalle [0,1] y = 6 x , - Intervalle [1,4] y = 6/x .

171

6. Interpolations diverses

Finalement, les coefficients de Fourier se trouvent par les expressions entrevues précédemment. L'intervalle de définition de la fonction est alors symétrique par rapport à la position du point milieu de cette fonction :-T/2 ≤ x ≤ +T/2.

- constante a0 : aT

x xT

T

02

21= ⋅ ⋅

+

z f d( ) ./

/

- coefficients ai : aT

xT

x xT

T

i f i= ⋅ ⋅ ⋅ ⋅ dFHG

IKJ ⋅

+

z2 2

2

2

( ) cos ./

/ π

- coefficients bi : bT

xT

x xT

T

i f i= ⋅ ⋅ ⋅ ⋅ dFHG

IKJ ⋅

+

z2 2

2

2

( ) sin ./

/ π

L'avantage de la méthode d'intégration de Romberg est de pouvoir fixer la précision du résultat. Cette précision se définit comme la valeur absolue de la différence entre deux itérations successives. Le nombre d'itérations est habituellement compris entre 8 et 12. La convergence est souvent très moyen-ne comparée aux autres méthodes d'intégration d'ordres supérieurs. 6.3.3.2 PRINCIPE DE L'ALGORITHME POUR LES FONCTIONS ANALYTIQUES Les fonctions définies dans l'analyse doivent être continues dans chacun des intervalles compo-sants et les arcs successifs de ces fonctions doivent posséder des extrémités ou frontières coinci-dantes. Les principales variables utilisées dans l'algorithme sont les suivantes : n nombre de tronçons et de fonctions, hmin,hmax domaine des harmoniques à calculer eps précision exigée, itmax nombre maximal d'itérations, fonc(i) écriture de la fonction à analyser Romberg méthode itérative d'intégration selon Romberg L'algorithme écrit les coefficients a et b des termes en cosinus et sinus de l'harmonique.

172

6. Interpolations diverses

A L G 0 R 1 T H M E

Principe de l'analyse de Fourier sur des fonctions analytiques par tonçon

1. Lecture des fonctions Lis : n {nombre de tronçons) hmin,hmax {harmoniques}

eps {précision} itmax {nb max itérations}

Pour i = 0,n,1 Lis : x(i) fin faire i Pour i ⇐ 1,n,1

Lis : fonc(i) fin faire i

2 Calcul des harmoniques Pour i ⇐ hmin,hmax,1 T ⇐ x(n)-x(0) xm ⇐ (x(n)+x(0))/2 om ⇐ 2*pi*i/T a ⇐ 0 b ⇐ 0 Pour j ⇐ 1,n,1 s ⇐ Romberg(i,cos,fonc(j),eps,itmax) a ⇐ a+s s ⇐ Romberg(i,sin,fonc(j),eps,itmax) b ⇐ b+s fin faire j a ⇐ 2*a/T; b ⇐ 2*b/T Si i=0 alors a ⇐ a/2 Ecris : a(i) = a

b(i) = b fin faire i

173

6. Interpolations diverses

-

174

6. Interpolations diverses

6.4 EXERCICES SUR L’INTERPOLATION 6.1 Une fonction discrète : y = f(x), est donnée sous forme d’un tableau de valeurs numériques selon la liste ci-après. x = 1,0 1,2 1,4 1,8 2,5 3,45 y = 1,613 2,0285 2,6333 4,4258 9,4414 19,9876 Ecrivez la matrice de Vandermonde et résolvez numériquement le système d'équations linéaires qui en découle. Quel est le polynôme correspondant ? À partir du polynôme trouvé, calculez les valeurs de la fonction pour les points suivants x = 1,15 ⇒ y = ? (1,90712) x = 1,5 ⇒ y = ? (3,00809) x = 2,0 ⇒ y = ? (5,6160) x = 2,8 ⇒ y = ? (12,3103) Déterminez l'erreur relative sur l'interpolation si les valeurs citées entre parenthèses sont les valeurs calculées à partir de la fonction exprimée analytiquement. 6.2 Une fonction discrète, y = f(x), est donnée sous forme d'un tableau de valeurs numériques selon liste ci-après. x = 1,00 1,20 1,40 1,60 1,80 2,00 y = -6,67298 -6,00656 -5,12254 -3,91431 -2,25740 0,00000 Construisez le tableau des différences et recherchez le polynôme d'interpolation du troisième degré par la méthode de Newton. Au moyen de ce polynôme du troisième degré, interpolez pour : x = 1,08 ⇒ y = ? (-6,42614) x = 1,37 ⇒ y = ? (-5,27305) x = 1,63 ⇒ y = ? (-3,69774) Déterminez l'erreur relative sur l'interpolation numérique si les valeurs citées entre parenthèses sont les valeurs calculées à partir de la fonction analytique. 6.3 Une fonction discrète, y = f(x), est donnée sous forme d'un tableau de valeurs numériques se-lon liste ci-après. x = 0,20 0,50 1,00 1,60 2,50 y = 0,8710908 0,7374307 0,6296794 0,6207765 0,7365849 Construisez le tableau complet des différences divisées en conservant six décimales dans ce tableau. Déterminez les coefficients et constante du polynôme d’interpolation du troisième degré en partant de la première valeur donnée. Calculez au moyen de ce polynôme la valeur de la fonction y = f(x=0,8) et comparez ce résultat à la valeur analytique exacte : y = 0,6587689. 6.4 On désire remplacer la fonction trigonométrique : y = sin(x), pour x compris entre 0 et 0,5 pi par un polynôme du troisième degré. Dans ce but, on introduit la fonction spline cubique en fixant la pente initiale et la pente finale, soit y' = 1,0 pour x = 0,00 et y' = 0,0 pour x = 0,5 pi. Déterminez les coefficients et constante du polynôme d'interpolation et dressez un tableau contenant l'argument par incrément de 10°, la valeur exacte de la fonction trigonométrique et la valeur interpolée. Quelle est l'erreur maximale commise dans cette substitution ? 6.5 Résolvez le même problème que précédemment, soit la recherche du polynôme d'interpola-tion de la fonction y = sin(x) en introduisant la fonction spline cubique définie par les dérivées secon-des aux points : x = 0,0 ⇒ y" = 0,00 et x = 0,5 pi ⇒ y"=-1,00. Déterminez les coefficients et constante du polynôme d'interpolation et dressez un tableau contenant l'argument par incrément de 10°, la valeur exacte de la fonction trigonométrique et la valeur interpolée. Quelle est l'erreur maximale commise dans cette substitution ?

175

6. Interpolations diverses

Est-il possible de choisir les points de définition de la fonction discrète de telle sorte que l'erreur sur l'interpolation devienne minimale ? 6.6 Une fonction discrète y = f(x) est donnée numériquement par le tableau ci-après : x = 0,25 0,50 0,75 1,00 1,25 y = 1,179826 3,971963 7,398441 10,80926 13,91977 Construisez le tableau des différences et évaluez le polynôme du troisième degré par la formule de Newton en sens inverse, le point de départ étant le dernier point du tableau. Calculez la valeur de la fonction pour x = 1,12. 6.7 La dernière figure de ce chapitre 6 montre trois fonctions composantes dont les relations ana-lytiques sont données ci-après.

- Intervalle [-2,0] y = 4 [1-(1+x)2] - Intervalle [0,1] y = 6 x , - Intervalle [1,4] y = 6/x . Cherchez les coefficients des polynômes trigonométriques pour les harmoniques de 0 à k de telle sorte que leur somme permette de retrouver approximativement les points initiaux. Représentez gra-phiquement cette somme en fonction du nombre k d'harmoniques.

176

7. Dérivées et intégrales numériques

CHAPITRE 7

DÉRIVÉES ET INTÉGRALES NUMÉRIQUES

Ce chapitre se subdivise principalement en deux parties : calcul numérique des dérivées de fonc-tions analytiques ou discrètes, intégration numérique de fonctions analytiques ou discrètes. Au chapi-tre précédent, nous avons vu quelques méthodes permettant de trouver des valeurs quelconques dans le domaine de définition d'une fonction. Les algorithmes cités précédemment vont faciliter la re-cherche des dérivées ou l'évaluation des sommes intégrales dans les limites imposées par l'utilisateur. Notons immédiatement que les méthodes proposées donnent des résultats acceptables dans la plu-part des applications courantes. L'intégration numérique d'une fonction est généralement plus précise et plus simple que le calcul d'une dérivée, contrairement aux méthodes classiques des mathémati-ques où la dérivation est une opération relativement simple alors que l'intégration n'est pas toujours très aisée.

7.1 CALCUL DES DÉRIVÉES D'UNE FONCTION ANALYTIQUE Deux cas fondamentaux sont à considérer dans le cas général du calcul d'une ou de plusieurs dérivées d'une fonction : 1. la fonction y = f(x) est donnée sous forme analytique et son expression n'est pas simple ou l'uti-

lisateur n'est plus au courant des règles du calcul des dérivées. Si la fonction s'exprime par une relation simple, les méthodes usuelles exposées dans le cours d'analyse donnent des résultats exacts. Dans les autres cas, il est utile de connaître les méthodes numériques appropriées.

2. la fonction y = f(x) est donnée sous forme discrète, généralement sous la forme d'un tableau de valeurs.

Dans les deux cas, il s'agit de trouver la valeur de la ou des dérivées successives pour une ou plu-sieurs valeurs de la variable indépendante x. Les algorithmes nécessaires à ce calcul se déduisent habituellement des formules d'interpolation. Afin de distinguer la fonction analytique de la fonction interpolée et approximative, introduisons les symboles : f(x) fonction donnée par une expression analytique, F(x) fonction définie à partir d'une interpolation numérique. Dans le domaine de définition de la fonction [x0,xn], nous pouvons écrire :

y = f(x) = F(x) . Le calcul de la dérivée première s'exprime dans les deux cas par :

y yx

x xx

' ' ( ) ( ) .= = =dd

F dFd

Pour : x0 ≤ x ≤ xn . Le calcul de la dérivée approchée, donnée sous cette forme, est une opération moins précise que l'in-terpolation. La raison majeure de cette imprécision est la grandeur du dénominateur dx qui, numéri-quement, ne peut pas tendre vers zéro. L'erreur devient très grande lorsque la différence : Δ Δ Δx x x x x= + − −( / ) ( /2 2)

tend vers dx du fait du nombre limité de chiffres significatifs pour les nombres réels. Si l'expression de l'erreur d'interpolation est connue, il est possible d'exprimer : R(x) = f(x) - F(x) . L'erreur sur la dérivée approchée se trouve simplement par : R'(x) = f ‘(x) – F’(x) . L'erreur sur la dérivée d'une fonction d'interpolation est égale à la dérivée de l'erreur sur cette fonction.

177

7. Dérivées et intégrales numériques

7.1.1 EXPRESSIONS ÉLÉMENTAIRES DES DÉRIVÉES D'UNE FONCTION Supposons que la fonction y = f(x) soit connue sous forme d'une expression analytique et que tou-tes les dérivées à calculer existent et soient continues dans le domaine de l'étude. Admettons de plus que les valeurs des points de calcul, pour la variable indépendante x, soient équidistantes au pas h. Les points de définition sont ainsi : point initial: x0, 1ier pas : x1 = x0 + h, 2ième pas x2 = x0 + 2 h, 3ième pas x3 = x0 + 3 h, . . . . . . . . . . . . . . . . . . . . nième pas : - xn = x0 + n h. 7.1.1.1 EXPRESSION ÉLÉMENTAIRE DE LA DÉRIVÉE PREMIÈRE La dérivée correspond à la pente de la tangente à la courbe y = f(x) sur la représentation graphi-que de la fonction. Nous pouvons déterminer approximativement la valeur de la dérivée y' = f’(x) en un point situé au milieu du premier pas, soit à l'abscisse : x = x0 + 0,5 h, en admettant qu'elle corresponde à la pente de la sécante passant par les deux points d'abscisse x0 et x1. En ces deux points, la fonction vaut y0 = f(x0) et y1 = f(x1) . La valeur approximative de la dérivée s'exprime par :

f f f' ( , ) ( ) ( ) .x h x xh0

1 00 5+ ⋅ ≈−

Proposons-nous de trouver la dérivée approchée au point d'abscisse : x = x0 + 1,5 h . Cette abscisse se trouve au milieu du pas h entre les points désignés par 1 et 2. En ces deux points, la fonction vaut : - au point 1 y1 = f(x1), - au point 2 y2 = f(x2). La valeur approximative de la dérivée en ce point s'exprime par le rapport :

f f f' ( , ) ( ) ( ) .x h x xh0

2 11 5+ ⋅ ≈−

Ces deux relations de dérivées approchées sont exactes seulement si la fonction analytique est une fonction polynomiale du second degré.

178

7. Dérivées et intégrales numériques

7.1.1.2 EXPRESSION ÉLÉMENTAIRE DE LA DÉRIVÉE SECONDE Calculons maintenant d'une manière semblable la dérivée seconde. Choisissons dans ce but le point d'abscisse x = x1 = x0 + h . Utilisons les deux expressions des dérivées premières trouvées pré-cédemment : - dérivée en x0 + 0,5 h f’(x0 + 0,5 h) , - dérivée en x0 + 1,5 h f’(x0 + 1,5 h) . La dérivée seconde en x, se trouve simplement en calculant le quotient de la différence des dérivées premières par le pas, soit :

f f f' ' ( ) ' ( , ) ' ( , ) .x x h x hh1

0 01 5 0 5=

+ − +

En remplaçant chacune des dérivées premières par leurs valeurs respectives, la dérivée seconde s'exprime par :

f f f f' ' ( ) ( ) ( ) ( ) .x x x xh1

2 12

2= 0− +

Au point d’abscisse x2, la dérivée seconde peut s’écrire par une relation tout à fait semblable à la pré-cédente, soit :

f f f f' ' ( ) ( ) ( ) ( ) .x x x xh2

3 22

2= 1− +

7.1.1.3 EXPRESSION ÉLÉMENTAIRE DE LA DÉRIVÉE TROISIÈME Connaissant deux dérivées secondes en deux points de définition successifs, nous pouvons aussi trouver la dérivée troisième de la fonction au milieu du second pas.

f f f' ' ' ( , ) ' ' ( ) ' ' ( ) .x h x xh0

2 11 5+ =−

En remplaçant les dérivées secondes par la valeur des fonctions et du pas, la dérivée troisième au point moyen s'écrit comme suit :

f f f f f' ' ' ( , ) ( ) ( ) ( ) ( ) .x h x x x xh0

3 2 131 5 3 3

+ = 0− + −

Les coefficients de cette formule sont de signes alternés, le premier coefficient étant toujours positif. Les fonctions f(xi) apparaissent dans l'ordre décroissant. Ces coefficients peuvent se trouver par le ta-bleau mnémonique donné ci-dessous.

Dérivée Coefficients du numérateur Puissance de h

première 1 1 1 1 1 1 --------------------------------------- seconde 1 2 1 2 1 2 1 ----------------------------------------------------- troisième 1 3 3 1 3 1 3 3 1 ---------------------------------------------------------------------- Quatrième 1 4 6 4 1 4 1 4 6 4 1 --------------------------------------------------------------------------------------- Cinquième 1 5 10 10 5 1 5 Cette méthode de calcul, très élémentaire, est limitée en précision car le calcul des différences suc-cessives provoque une perte de chiffres significatifs. De plus, le calcul de la dérivée est limité aux va-leurs tabulées ou au milieu d'un pas h, sans pouvoir choisir librement un point bien déterminé.

179

7. Dérivées et intégrales numériques

7.1.1.4 EXEMPLE D'UTILISATION DE LA MÉTHODE ÉLÉMENTAIRE Soit à trouver la valeur des dérivées premières à quatrièmes de la fonction exponentielle :

y = f(x) = exp(x),

pour x compris entre 1,0 et 1,5. Le pas adopté vaut h = 0,1.

Tableau de la fonction exponentielle et des dérivées approximatives Pas constant h = 0,1

No x y = f(x) y’ y" y’’’ y’’’’ 0 1,00 2,7182818 1,05 2,858842 1 1,10 3,0041660 3,00667 1,15 3,159509 3,1622 2 1,20 3,3201169 3,32289 3,324 1,25 3,491798 3,4946 3 1,30 3,6692967 3,67235 3,677 1,35 3,859033 3,8623 4 1,40 4,0552000 4,05858 1,45 4,264891 5 1,50 4,4816891 Cet exemple montre le principe du calcul des dérivées successives d'une fonction analytique. La fonc-tion est définie sur 8 chiffres significatifs. La fonction exponentielle et toutes ses dérivées devraient donner des valeurs égales pour des xi identiques. Cette méthode est applicable non seulement aux fonctions analytiques mais aussi aux fonctions discrètes à pas constant. 7.1.2 DÉRIVÉES D'UNE FONCTION À PARTIR DES FORMULES DE NEWTON Les formules d'interpolation développées par Newton peuvent aussi servir de base à la recherche des dérivées de fonctions analytiques ou discrètes. 7.1.2.1 EXPRESSIONS GÉNÉRALES DES DÉRIVÉES APPROCHÉES Adoptons le cas particulier d'une fonction analytique connue pour des valeurs successives de la variable indépendante x tabulées avec un pas constant Δx = h = xi+1 - xi = const. Écrivons la première formule d'interpolation de Newton en sens direct :

F f f f fnA = + ⋅ +⋅ −

⋅ +⋅ − ⋅ −

⋅ +( ) ( ) ( ) ( )!

( ) ( ) ( )!

( ) ..x x q x q q x q q q x0 02

03

01

21 23

Δ Δ Δ .

avec : q = (x – x0) / h . Calculons la dérivée première par rapport à x de la formule d'interpolation. Remarquons que l'expres-sion est fonction de q et non pas de x .

F' dd

dd

ddnA ≈ = ⋅( ) .x y

xyq

qx

Le quotient dq/dx vaut : dd

dd

qx x

x xh h

=−LNMOQP =

0 1 .

Après le développement des termes en q et calcul de leurs dérivées premières, la dérivée première de la formule d'interpolation de Newton en sens direct prend la forme suivante :

F' f f fnA = ⋅ +−

⋅ +− +

+LNM

OQP

( ) ( )!

( )!

( ) ... .xh

x q x q q x1 2 12

3 6 230

20

23

0Δ Δ Δ

180

7. Dérivées et intégrales numériques

D'une façon analogue, nous pouvons calculer les dérivées d'ordres supérieurs. Par exemple, la déri-vée seconde de la formule d'interpolation de Newton en sens direct se trouve par l'expression géné-rale :

F' 'd F

dd F

ddd

d FdnA = = ⋅ =( )

' ( ) ' ( ) ' ( ).x

xq

xq

qx

xq h

1⋅

Ces relations sont valables pour toute valeur de x, donc aussi pour des abscisses intermédiaires, comprises dans le domaine de définition de la fonction [x0,xn]. Dans la plupart des cas, le calcul de la dérivée doit s'effectuer aux points tabulés. 7.1.2.2 EXPRESSIONS PARTICULIÈRES DES DÉRIVÉES PREMIÈRES Exprimons les dérivées premières aux points de définition x0, x1, x2, . . . . , xn en supposant que ces points limitent l'intervalle de validité de la fonction [x0,xn].

1. Dérivée première aux points x0, x1, . . . , xi et xn dans l'intervalle [x0,xn] Limitons le calcul de la dérivée première aux deux premiers termes de la formule générale de déri-vation. Pour les deux points initiaux, un point intermédiaire et le point final, les dérivées premières s'expriment par les relations proposées ci-après.

1.1 au point x0 : F f f' ( ) ( ) ( ) ( ) .2 0 0 11

23 4A = ⋅ − + −x

hx x xf 2

1.2 au point x1 : F f f' ( ) ( ) ( ) .2 1 21

2A = ⋅ −xh

x x0

1.3 au point xi : F f fi i 1' ( ) ( ) ( ) .2

12A + −= ⋅ −x

hx xi 1

1.4 au point xn : F f f fn n-2 n-1' ( ) ( ) ( ) ( )n2

12

4 3A = ⋅ − +xh

x x x .

2. Dérivée première au point x0 Appliquons la relation générale précédente en remarquant qu'en ce point q = 0. Après simpli-fication, l'expression générale vaut :

F f f fn' ( ) ( ) ( ) ( ) .... .A = ⋅ − ⋅ + ⋅ −LNM

OQPx

hx x x0 0

20

30

1 12

13

Δ Δ Δ

En remplaçant les différences pour un pas constant par leurs expressions en fonction des valeurs de la fonction yi = f(xi), la dérivée première au point initial x0 s'écrit :

F f f f f f f f f fn' ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ...A = ⋅ − − ⋅ − + + ⋅ − + − −RSTUVWx

hx x x x x x x x x0 1 0 2 1 0 3 2 1 0

1 12

2 13

3 3 .

Les termes entre accolades rappellent les expressions trouvées dans les expressions des dérivées élémentaires entrevues en 7.1.1.3.

3. Dérivée première au point x1 D'une manière analogue, nous pouvons trouver la valeur de la dérivée première au point x1. L'ab-scisse de ce point vaut x = x1 = x0 + h et la variable additionnelle q vaut 1 dans le cas particulier. L'expression de la dérivée première devient :

F f f fn' ( ) ( ) ( ) ( ) .... .A = ⋅ + ⋅ − ⋅ +LNM

OQPx

hx x x1 0

20

30

1 12

16

Δ Δ Δ

4. Dérivée première au point x2 Pour le troisième point de définition de la fonction, l'abscisse vaut x = x2 = x0 + 2 h et la variable additionnelle q vaut 2 dans le cas particulier.

F f f fn' ( ) ( ) ( ) ( ) .... .A = ⋅ + ⋅ + ⋅ +LNM

OQPx

hx x x2 0

20

30

1 32

13

Δ Δ Δ

181

7. Dérivées et intégrales numériques

7.1.2.3 EXEMPLE DE CALCUL DES DÉRIVÉES PREMIÈRES Soit à déterminer numériquement la dérivée première de la fonction logarithmique décimale :

y = f(x) = log10(x) ,

pour x compris entre 80 et 100 par pas h = 5 . Le tableau des différences à pas constant est calculé avec 8 chiffres significatifs.

Tableau des différences à pas constant de la fonction y = log10(x) Pas constant : h = 5

No x y = log10(x) Δ f(xi) Δ2 f(xi) Δ3 f(xi) Δ4 f(xi) 0 80 1,90308999 0,02632894 1 85 1,92941893 -0,00150536 0,02482358 0,00016288 2 90 1,95424251 -0,00134248 -0,00002511 0,02348110 0,00013777 3 95 1,97772361 -0,00120471 0.02227639 4 100 2,00000000 À partir du tableau des différences à pas constant, la dérivée numérique de la fonction logarithmique décimale se trouve par l'expression : F'4↑(x=80) = (1/5).[0,02632894 - (1/2).(-0,00150536) + (1/3).0,00016288 - (1/4).(-0,00002511)],

F'4↑ (x=80) = 0,00542844 .

En introduisant seulement les deux premiers termes de la formule générale de la dérivée première, les dérivées numériques sont calculées et citées dans le tableau ci-dessous. Ce tableau est complété par la valeur de la dérivée calculée analytiquement et la différence entre ces deux grandeurs.

Tableau des dérivées numériques et exactes pour la fonction y = log10(x) Conservation de 8 chiffres après la virgule décimale

No x Dérivée numérique Dérivée exacte Différence

0 80 0,00541632 0,00542868 -0,00001235 1 85 0,00511525 0,00510935 0,00000590 2 90 0,00483047 0,00482549 0,00000498 3 95 0,00457575 0,00457152 0,00000423 4 100 0,00433481 0,00434294 -0,00000813 Remarques sur le résultat du calcul numérique : En augmentant le nombre de termes retenus dans la formule de dérivation, il est possible d'améliorer le résultat du calcul. Par exemple, la différence entre la dérivée numérique, calculée sur 4 termes de la formule de Newton, et la dérivée exacte vaut -0,00000024. Les relations proposées jusqu'ici sont applicables seulement aux fonctions définies pour des pas constants. Pour trouver les dérivées d'ordre supérieur, il est très souvent plus simple de partir de la fonction dé-rivée plutôt que des relations générales de dérivation.

182

7. Dérivées et intégrales numériques

7.1.3 MÉTHODES DE CALCUL DES DÉRIVÉES D'UNE FONCTION

ANALYTIQUE Le calcul des dérivées d'une fonction analytique définie dans l'intervalle [a,b] , sans avoir recours à une table de valeurs numériques, peut s'effectuer en adoptant un ou plusieurs pas autour du point d'étude. 7.1.3.1 PRINCIPE DU CALCUL DE LA DÉRIVÉE EN UN POINT Soit une fonction continue dérivable y = f(x) dont on désire calculer numériquement la dérivée pre-mière au point d'abscisse x . Ajoutons et retranchons à l'abscisse x le pas h de telle sorte que deux points symétriques x + h et x - h définissent deux valeurs de la fonction. La dérivée approchée de la fonction f(x) peut s'exprimer par l'expression :

f F f f' ( ) ' ( ) ( ) ( ) .x x x h x hh

≈ =+ − −

2

La dérivée exacte est la limite prise par ce quotient lorsque le pas h tend vers zéro.

f f f' ( ) lim( ) ( ) ( ) .x h x h x hh

= →+ − −0

2

On démontre que l'expression : f f( ) ( )x h x h

h+ − −

2

est une approximation d'ordre 2 en h de f(x). La différence entre la dérivée numérique et la dérivée exacte est proportionnelle à h2. Ainsi :

f f f O' ( ) ( ) ( ) ( ) .x h x hh

h=+ − −

+2

2 x

Une meilleure approximation de la dérivée première est obtenue par exemple par une formule d'ordre 4, utilisant au total 4 pas autour de l'abscisse x :

f f f f f' ( ) ( ) ( ) ( ) ( ) ( )Oxh

x h x h x h x h h= ⋅ + − − − + − − +1

128 2 2 4m r .

7.1.3.2 FORMULES GÉNÉRALES DE CALCUL DES DÉRIVÉES EN UN POINT Sans démonstration des relations proposées, donnons les expressions générales des dérivées numériques d'une fonction y = f(x) . 1. Dérivées d'ordre impair La formule de calcul des dérivées d'ordre impair n, donc des dérivées première, troisième, cin-quième, etc., s'écrit sous la forme générale suivante :

fC

f k f k On

0n k

k

mp( ) ( ) ( ) ( ) .x

hC x h x h h=

⋅⋅ ⋅ + ⋅ − − ⋅ +

=∑1

1

Dans cette expression, C0, C1, C2, . . . . , Ck sont des constantes numériques dépendant de l'ordre n la dérivée et de l'ordre m du nombre de pas. 2. Dérivées d'ordre pair La formule de calcul des dérivées d'ordre pair n, donc des dérivées seconde, quatrième, sixième, etc., s'écrit sous la forme générale suivante :

fC

f k f k f On

0n k

k

mp( ) ( ) ( ) ( ) ( ) .x

hC x h x h x h=

⋅⋅ ⋅ + ⋅ − − ⋅ − +

=∑1 2

1

Dans cette expression, C0, C1, C2, . . . . , Ck sont des constantes numériques dépendant de l'ordre n la dérivée et de l'ordre m du nombre de pas.

183

7. Dérivées et intégrales numériques

3. Calcul des coefficients Le calcul des coefficients Ck repose sur le développement au moyen de la formule de Taylor :

f(x+h) = f(x) + h f’(x) + (h2/2!) . f’’(x) + (h3/3!) . f‘’’(x) + . . . + (hr/r!) . fr(x) + O(hr+1) . Cette formule peut s'écrire sous la forme générale :

f fj

f Oj

(j) r 1

j

r

( ) ( )!

( ) ( ) .x h x h x h+ = + ⋅ + +

=∑

1

La formule de Taylor s'écrit également pour le point f(x-h) sous la forme :

f f f f fr

f Orr

r r( ) ( ) ' ( )!

' ' ( )!

' ' ' ( ) ... ( )!

( ) ( ) .x h x h x h x h x h x h− = − + ⋅ − ⋅ + + − ⋅ ⋅ + +2 3

2 31 1

Le développement est continué en calculant, pour k = 1 à m :

- pour les dérivées d'ordre impair : les expressions : f(x+k.h) - f(x-k.h), dans cette expression, les dérivées d'ordre pair s'annulent.

- pour les dérivées d'ordre pair : les expressions : f(x+k.h) + f(x-k.h) - 2 f(x), dans cette expression, les dérivées d'ordre impair s'annulent. Cette écriture génère deux systèmes d'équations linéaires dont la solution donne l'expression d'une dérivée d'ordre impair ou d'ordre pair en (x) , ainsi que les coefficients Ck. 7.1.3.3 ALGORITHME DU CALCUL DES DÉRIVÉES EN UN POINT Le calcul des dérivées est limité aux dérivées première, seconde, troisième, quatrième et cinquiè-me et les formules sont d'ordre 6. Les coefficients de calcul sont donnés dans le tableau ci-après.

Nombre de termes et coefficients pour dérivées approchées Dérivées 1 à 5, ordre 6

Ordre de la Nombre de Coefficients dérivée termes C0 C1 C2 C3 C4 C5

1 3 60 45 -9 1 2 3 180 270 -27 2 3 4 240 -488 338 -72 7 4 4 240 -1952 676 -96 7 5 5 288 1938 -1872 783 -152 13 Dans l'algorithme proposé, les variables principales sont : x point où les dérivées sont calculées, h pas de calcul choisi par l'utilisateur, donc fonction analytique y = f(x) , Nb nombre de termes pour chaque dérivée, Ci coefficients selon tableau ci-dessus : premier indice i ligne, second indice Ci,j colonne Res valeur de la dérivée. A L G 0 R I T H M E

Calcul des cinq premières dérivées d'une fonction exprimée analytiquement

1. Initialisation Lis : fonc {fonction analytique} x {point de calcul} h {pas}

2. Calcul des cinq dérivées Pour i ⇐ 1,5,1 Res ⇐ 0;

184

7. Dérivées et intégrales numériques

fx ⇐ fonc(x); Pour j ⇐ 1,Nb(i),1 fhm ⇐ fonc(x-j*h) fhp ⇐ fonc(x+j*h) Si i est impair alors Res ⇐ Res+Ci(i,j)*(fhp-fhm) sinon Res ⇐ Res+Ci(i,j)*((fhp-fx)+(fhm-fx)) fin si fin j Res ⇐ Res/Ci(i,0) Pour j ⇐ 1,i,1 Res ⇐ Res/h fin j Ecris : i,Res fin faire i

7.1.3.4 CONSIDÉRATIONS SUR LE CHOIX DU PAS DE CALCUL Le choix du pas h de calcul et l'erreur qui en résulte dans l'approximation de la dérivée jouent un rôle essentiel sur la qualité du résultat. Dans l'algorithme proposé, les formules de calcul sont de l'ordre 6, ce qui ferait penser que les erreurs sont de l'ordre 10-6 (h6). En fait, l'erreur sur la dérivée vaut k . h6 où k est un paramètre dépendant de la fonction. Les valeurs prises par k peuvent être petites ou même très grandes, ce qui diminue très rapidement la précision. Le choix du pas h est laissé au soin de l'utilisateur de l'algorithme. Pour débuter, il est possible d'ad-mettre un pas correspondant approximativement à 1 % de la fonction. Le calcul devrait être répété avec un pas plus grand et un pas plus petit afin d'observer son influence sur le résultat. Choisir un pas trop petit engendre aussi des erreurs numériques car la variation de la fonction est trop faible. Il faut se souvenir que le nombre de chiffres significatifs est limité dans les calculateurs numé-riques. Ce phénomène est d'autant plus réel que le pas est petit et que l'ordre de la dérivée est grand..

7.2 CALCUL DES DÉRIVÉES D'UNE FONCTION DISCRÈTE En complément de la recherche des dérivées sur les fonctions analytiques, traitons ici le calcul des dérivées d'une fonction donnée sous forme discrète. La fonction discrète se définit par des paires de valeurs numériques, abscisse et ordonnée de chaque point. L'équation de la fonction reste incon-nue. Deux cas sont à considérer : - la fonction discrète se définit par un ensemble d'abscisses équidistantes ⇒ h = const. - la fonction discrète se définit par un ensemble d'abscisses quelconques ⇒ h ≠ const. 7.2.1 DÉRIVÉES D'UNE FONCTION DISCRÈTE À PAS CONSTANT Les méthodes étudiées au chapitre précédent peuvent s'introduire dans le calcul des dérivées premières et secondes lorsque les fonctions discrètes sont connues dans l'intervalle [x0,xn]. 7.2.1.1 DÉRIVÉES PREMIÈRES AUX POINTS DE DÉFINITION Les dérivée première aux points x0, x1, xi et xn, dans l'intervalle [x0,xn] peuvent se déduire des formules tirées de l'interpolation de Newton. Limitons le calcul de la dérivée première aux deux pre-

185

7. Dérivées et intégrales numériques

miers termes de la formule générale de dérivation. Pour les deux points initiaux, un point intermédiaire et le point final, les dérivées premières s'expriment par les relations proposées ci-après.

1. au point x0 : F f f' ( ) ( ) ( ) ( )f2 0 0 1 21

23 4A = ⋅ − + −x

hx x x .

2. au point x1 : F f' ( ) ( ) ( )f2 1 2 01

2A = ⋅ −xh

x x .

3. au point xi : F f fi i 1' ( ) ( ) ( )i 12

12A + −= ⋅ −x

hx x .

4. au point xn : F f fn n 2 n' ( ) ( ) ( ) ( )f n2 11

24 3A − −= ⋅ − +x

hx x x .

Aux points intermédiaires, par exemple au point d'abscisse xi, la dérivée première proposée cor-respond à la pente de la sécante construite sur les deux points (xi-1,yi-1) et (xi+1,yi+1).

y x y yx x

' ( ) tan .i ii 1 i 1

i 1 i 1

= =−−

+ −

+ −

α

Au point initial et au point final, les deux expressions approchées de la dérivée première sont semblables et symétriques. 7.2.1.2 DÉRIVÉES PREMIÈRES AUX POINTS INTERMÉDIAIRES Si l'on désire obtenir les dérivées premières approchées de la fonction discrète en des points qui ne correspondent pas aux points de définition, il faut utiliser la relation générale de calcul des déri-vées. Cette relation est fonction de la grandeur q qui correspond au nombre de pas à effectuer, à par-tir du point initial, pour atteindre le point d'étude : q = (x – x0) / h . Après le développement des termes en q et calcul de leurs dérivées premières, la dérivée première de la formule d'interpolation de Newton en sens direct prend la forme suivante :

F xh

x q x q q x' ( ) ( )!

( )!

( ) ... .n f f fA = ⋅ +−

⋅ +− +

⋅ +LNM

OQP

1 2 12

3 6 230

20

23

0Δ Δ Δ

Remarquons dans cette expression que l'abscisse x0 ne représente pas nécessairement le premier point de définition. Il peut être choisi avant le point d'observation ou éventuellement un pas avant sui-vant le nombre de termes conservés dans la formule. 7.2.2 DÉRIVÉES D'UNE FONCTION DISCRÈTE À PAS QUELCONQUE Très souvent les points de définition de la fonction discrète, dans l'intervalle [x0,xn] , ne sont pas équidistants. Les formules étudiées dans le sous-chapitre précédent ne sont plus applicables. Pour trouver la valeur de la dérivée de la fonction discrète, il est possible et recommandé de procéder aux opérations suivantes : 1. Ordonner les valeurs des abscisses des points de définition en grandeurs croissantes, le premier

point étant indicé 0, le dernier point n. La fonction se définit par n+1 points et n pas quelconques différents les uns des autres :

x1 – x0 ≠ x2 – x1, x2 – x1 ≠ x3 – x2, x3 – x2 ≠ x4 – x3, x4 – x3 ≠ x5 – x4, etc.

2. Introduire les paires de points de définition de la fonction discrète (x0,y0), (x1,y1), (x2,y2), . . . , (xi,yi), . . . , (xn,yn). Le nombre de points de définition doit être égal ou mieux supérieur à 4 afin d'intro-duire l'interpolation par spline cubique.

3. Utiliser l'algorithme de la procédure des dérivées premières ou des dérivées secondes pour le cal-cul des fonctions spline cubique selon 6.2.2.4 ou 6.2.3.4 . On pourra supposer par exemple que les dérivées secondes sont nulles au point initial (x0,y0) et au point final (xn,yn) ou estimer les dérivées premières sur l'allure de la courbe représentative.

186

7. Dérivées et intégrales numériques

4. Rechercher la solution du système d'équations contenant les abscisses et ordonnées des divers pas.

5. Les coefficients et constantes des polynômes cubiques étant connus, calculer : - les dérivées premières aux points de définition en appliquant l'algorithme de Horner; - les dérivées premières en des points intermédiaires si c'est nécessaire.

L'exemple traité sous 6.2.3.5 montre un exemple de ce genre. Le pas de la fonction discrète varie entre 0,5 et 2,0 . Les dérivées premières initiale et finale ont été trouvées approximativement sur les trois premiers et les trois derniers points de la fonction. Le premier tableau donne les dérivées pre-mières aux points tabulés. Les coefficients et constantes du second tableau permettent de trouver facilement les dérivées premières en tout point compris entre x0 = 0,0 et x10 = 12,0. Le calcul des valeurs intermédiaires au moyen de la méthode proposée est donnée dans le tableau ci-après. Le sous-intervalle [4,5] a été divisé en 10 pas égaux, la fonction, les dérivées premières et se-condes ont été calculées pour chacun des points de la fonction spline cubique.

Calcul de points intermédiaires interpolés au moyen de splines cubiques Formule de définition : y = 20 exp(-0,2x) ⋅ sin(pi*x/6+0,5)

Exemple 6.2 3.5 -. Sous-intervalle [4,5] Points x y y' y" 4/ 0 4.00 4.67570 -4.95552 0.52558 4/ 1 4.10 4.18297 -4.89724 0.63996 4/ 2 4.20 3.69663 -4.82753 0.75435 4/ 3 4.30 3.21784 -4.74637 0.86873 4/ 4 4.40 2.74774 -4.65378 0.98311 4/ 5 4.50 2.28747 -4.54975 1.09750 4/ 6 4.60 1.83817 -4.43428 1.21188 4/ 7 4.70 1.40099 -4.30737 1.32626 4/ 8 4.80 0.97708 -4.16903 1.44065 4/9 4.90 0.56757 -4.01924 1.55503 4/10 5.00 0.17361 -3.85802 1.66942

7.3 CALCUL NUMÉRIQUE DES INTÉGRALES Ce troisième sous-chapitre traite l'intégration des fonctions analytiques ou discrètes au moyen de méthodes numériques. Si la fonction y = f(x) est continue dans l'intervalle [x0,xnj et si sa primitive est connue, l'intégrale définie de cette fonction se calcule par l'expression générale et usuelle :

. f( ) dn

x x x xx x

x

n=z ⋅ = −

0

0ψ ψ( ) ( )

avec: ψ’(x) = f(x) . Il arrive assez souvent que l'intégration analytique de la fonction soit trop complexe ou même incon-nue, ou que la fonction soit donnée sous forme discrète. Les méthodes numériques d'intégration per-mettent de résoudre élégamment ce genre de problème avec une précision dépendant du nombre de pas et de la nature de la fonction. Ces méthodes sont de nouveau de deux types : 1. Calcul de la somme intégrale entre les bornes inférieure et supérieure - d'une fonction connue sous forme analytique, - d'une fonction connue sous forme discrète, - d'où résultat unique dans l'intervalle d'intégration. 2. Calcul de la somme intégrale entre les bornes inférieure et supérieure, en chaque point de défini-

tion de la fonction : - d'une fonction connue sous forme analytique, - d'une fonction connue sous forme discrète,

187

7. Dérivées et intégrales numériques

- d'où résultat multiple dans l'intervalle d'intégration. 7.3.1 INTÉGRATION PAR LA MÉTHODE DES TRAPÈZES L'intégration numérique d'une fonction analytique ou discrète par la méthode des trapèzes est la méthode la plus simple. 7.3.1.1 INTÉGRATION ENTRE DEUX POINTS DE DÉFINITION Cette méthode d'intégration consiste à remplacer la courbe, représentant graphiquement la fonc-tion y = f(x) entre deux points (x0,y0) et (x1,y1) par un segment de droite.

La recherche de l'aire de la surface comprise entre l'axe des abscisses Ox, les deux parallèles à l'axe des ordonnées Oy passant par les points d'abscisses x0, x1, et la courbe y = f(x), se résume à trouver l'aire du trapèze hachuré sur la figure. Introduisons dans ce but le pas h = x1 – x0 . Calculons l'aire de la surface du trapèze rectangle :

A h x x= ⋅ +2 0 1f f( ) ( ) .

Cette aire correspond approximativement à l'intégrale de la fonction entre les deux points x0 et x1. Il devient ainsi possible d’écrire :

f d f f( ) ( ) ( ) .x x h x xx x

x

⋅ ≈ ⋅ +=z

0

1

2 0 1

7.3.1.2 INTÉGRATION ENTRE n+1 POINTS DE DÉFINITION ÉQUIDISTANTS Si la fonction y = f(x) est donnée par n+1 points équidistants x0, x1, x2, . . . , xn-1, xn, d'ordonnées y(xi) = f(xi), l'aire totale de la surface comprise entre l'axe Ox , deux ordonnées aux abscisses x0 et xn, et la courbe représentant la fonction se trouve approximativement par :

f d f fn

i 1 ii 1

n

( ) ( ) ( ) .x x h x xx x

x

⋅ ≈ ⋅ +=

−=

z ∑0

2

Sous forme développée, la relation des trapèzes se donne par l'expression proposée :

188

7. Dérivées et intégrales numériques

f d f f f f fn

n n( ) ( ) ( ) ( ) ... ( ) ( ) .x x h x x x x xx x

x

⋅ ≈ ⋅ + + + + +=

−z0

220 1 2 1m r

Cette méthode d'intégration possède l'avantage d'être excessivement simple, de donner des résultats suffisamment précis si le pas de calcul h est petit. Cette méthode s'applique facilement aux fonctions analytiques en divisant l'intervalle d'intégration [x0,xn] en un nombre de pas h puissance de deux, com-me par exemple 8, 16 ou 32 pas. Pour une fonction discrète, le nombre de pas peut être quelconque, mais doit rester constant pendant tout le calcul. Très souvent, la méthode des trapèzes s'introduit dans les autres méthodes plus évoluées si le nombre de pas ne convient pas. Cette méthode est un cas particulier de l'intégration numérique par les formules de Newton-Cotes. 7.3.1.3 INTÉGRATION ENTRE n+1 POINTS DE DÉFINITION QUELCONQUES Si le pas de définition de la fonction discrète est variable, l'intégration approchée peut s'effectuer en appliquant n fois l'intégration sur un pas. La relation générale s'écrit comme suit :

f d2

f fn

i

i 1

n

i i( ) ( ) ( ) .x x h x xx x

x

⋅ ≈ ⋅ += =

−z ∑0

1

Dans cette relation, les pas variables sont indicés de 1 à n. 7.3.1.4 EXEMPLE D'INTÉGRATION ENTRE n+1 POINTS Soit à calculer l'intégrale numérique de la fonction y = exp(x)/3 dans l'intervalle [x0 = 0,5; xn = 2,5]. Le calcul est effectué en divisant chaque fois par 2 les intervalles précédents.

No Nombre de pas Somme approchée

1 2 3.7990988953 2 4 3.5841057689 3 8 3.5295263417 4 16 3.5158283231 5 32 3.5124004764 6 64 3.5115433056 7 128 3.5113289998 8 256 3.5112754225 9 512 3.5112620281 10 1024 3.5112586795 Le résultat de l'intégration analytique est J = (e2,5 - e05) / 3 = 3,511257563 obtenu sur calculette. L'algorithme de la méthode des trapèzes sera donné dans la collection des algorithmes sur les formu-les de Newton-Cotes. Il contiendra encore un terme de correction améliorant notablement le résultat. 7.3.2 INTÉGRATION PAR LES FORMULES DE NEWTON-COTES Les formules d'intégration numérique de Newton-Cotes sont déduites des formules d'interpolation de Newton. Elles font intervenir l'intégration de ces relations pour un nombre limité de points de défi-nition. 7.3.2.1 FORMULES DU PREMIER DEGRÉ Le polynôme d'interpolation de Newton, en sens direct et pour un pas constant dans toute l'inter-polation, s'écrit sous la forme suivante :

F f f( f( f(nA = + ⋅ +⋅ −

⋅ +⋅ − ⋅ −

⋅ +( ) ( ) ) ( )!

) ( ) ( )!

) ...x x q x q q x q q q x0 02

03

01

21 23

Δ Δ Δ +

189

7. Dérivées et intégrales numériques

+⋅ − ⋅ − − +

⋅q q q q x( ) ( ) ...( )

!) .1 2 1

0n

nf(nΔ

avec : q = (x – x0) / h .

Ce polynôme d'interpolation Fn↑(x) est une fonction, non pas directement de la variable indépendante x, mais de la variable auxiliaire q définie par le nombre de pas jusqu'au point d'interpolation. Calculons la dérivée par rapport à x de cette expression :

ddqx h=

1 d’où : d dx h q= ⋅ .

Si l'intégration du polynôme de Newton est limitée seulement à deux points, les points x0 et x1 = x0+h, la variable auxiliaire q prend la valeur suivante :

q x h xh

=+ −

=( ) .0 0 1

Le polynôme d'interpolation se réduit seulement aux deux premiers termes du développement et peut s'écrire comme suit : F f f(1A = + ⋅( ) ( ) ) .x x q x0 0Δ

Calculons l'intégrale limitée de cette fonction linéaire entre les deux points définissant l'intervalle :

F d f f d f f(1A= =

⋅ = ⋅ + ⋅ ⋅ = ⋅ ⋅ + ⋅ ⋅z z( ) ( ) ( ) ( ) , ) .x x h x q x q h q x q xx x

x

x x

x

0

1

0

1

0 1 02

00 5 Δ

Dans le cas particulier, comme q = 1 , la relation se simplifie en :

F d f f1A=

⋅ = ⋅ +z ( ) ( ) ( ) .x x h x xx x

x

2 0 1

0

1

Nous retrouvons la formule bien connue des trapèzes après substitution de la valeur de la première différence Δf(x0) . L'intégration exacte de l'équation analytique, avec le terme d'erreur, peut s'écrire sous la forme :

F d f f f1A=

⋅ = ⋅ + + ⋅z ( ) ( ) ( ) ' ' ( ) ,x x h x x h

x x

x

2 120 1

3

1

0

1

ξ

avec : x0 < ξ1 < x1. Remarquons immédiatement que ξ1 reste inconnue. 7.3.2.2 FORMULES DU SECOND DEGRÉ Dans les formules du second degré, l'intégration s'effectue sur un segment défini par trois points d'intégration équidistants. La variable auxiliaire q prend la valeur :

q x xh

x h xh

=−

=+ −

=2 0 0 02 2( ) .

Le polynôme d'interpolation de Newton se réduit aux trois premiers termes, soit :

F f f f2A = + ⋅ +⋅ −

⋅( ) ( ) ( ) ( )!

( ) . x x q x q q x0 02

01

2Δ Δ

Calculons de nouveau l'intégrale de cette expression limitée entre les points initial x0 et final x2 :

F d f f f d2A= =

⋅ = ⋅ + ⋅ + − ⋅ ⋅z z( ) ( ) ( ) , ( ) ( ) , x x h x q x q q x qx x

x

x x

x

0

2 1

0 02 2

00 5Δ Δ0

= ⋅ ⋅ + ⋅ +−

⋅LNM

OQP

h q x q x q q xf f f( ) ( ) ( ) .0

2

0

3 22

022 3

12Δ Δ

En remplaçant q par sa valeur particulière, nous obtenons :

190

7. Dérivées et intégrales numériques

F d f f f2A=

⋅ = ⋅ + +z ( ) ( ) ( ) ( ) .x x h x x xx x

x

34

0

2

0 1 2

C'est la formule connue sous le nom de formule de Simpson. Cette formule remplace la courbe entre trois points successifs par un arc de parabole du second degré. Cette formule est non seulement exacte pour le polynôme du second degré, mais également pour les polynômes du troisième degré. L'intégration exacte de l'équation analytique, avec le terme d'erreur, peut s'écrire sous la forme :

F d f f f f2A=

⋅ = ⋅ + + − ⋅ ⋅z ( ) ( ) ( ) ( ) ' ' ' ' ( ) ,x x h x x x hx x

x

34 1

900

2

0 1 25

avec : x0 < ξ1 < x2.

7.3.2.3 FORMULES DU TROISIÈME DEGRÉ Dans ce cas, l’intégration s'effectue sur un segment défini par quatre points d'interpolation équi-distants. Les abscisses de ces points sont : x0, x1 = x0 + h , x2 = x0 + 2 h et x3 = x0 + 3 h. Sans démontrer en détail les opérations d'intégration et de substitution, donnons immédiatement le résultat.

F d f f f f3A=

⋅ = ⋅ + + +z ( ) ( ) ( ) ( ) ( ) .x x h x x x xx x

x 38

3 30

3

0 1 2 3

C'est la formule dite des trois huitièmes. 7.3.2.4 COEFFICIENTS DES FORMULES DE NEWTON-COTES Les coefficients numériques dans les formules d'intégration numérique pour des points équidis-tants sont donnés le tableau ci-après. Pour calculer l'intégrale approchée d'une fonction y = f(x) , il faut multiplier les valeurs successives de la fonction par les poids proposés et additionner ces termes. Le résultat est à multiplier par l'ordre et le pas h, à diviser par le dénominateur du tableau.

Coefficients ou poids des formules d'intégration de Newton-Cotes Ordre Coefficients ou poids Dénominateur

1 1 1 2 2 1 4 1 6 3 1 3 3 1 8

4 7 32 12 32 7 90 5 19 75 50 50 75 19 288 6 41 216 27 272 27 216 41 840

Fonction périodique 1 1 1 1 1 1 0 5 une période

191

7. Dérivées et intégrales numériques

7.3.3 CALCUL NUMÉRIQUE D'UNE INTÉGRALE À PAS CONSTANT L'intégration d'une fonction analytique ou discrète par une méthode numérique reste simple si le pas d'intégration est constant. Il est possible d'améliorer les résultats précédents en apportant des corrections aux extrémités du domaine d'intégration. Les deux méthodes discutées ici utilisent la mé-thode des trapèzes et celle de Simpson. 7.3.3.1 MÉTHODE DES TRAPÈZES AMÉLIORÉE Pour augmenter la précision des résultats numériques, cette méthode additionne deux facteurs de correction obtenus à partir du développement en série de Taylor. Les termes de correction intérieurs se compensent par l'addition successive des termes. Il reste à introduire les deux termes de correction sur les valeurs initiale et finale. Le terme de correction vaut :

Correction = [f’(x0) – f’(xn)] . h2 / 12 .

Cette relation fait intervenir les dérivées premières initiale et finale calculables au moyen des expres-sions développées précédemment. La correction est additionnée à la somme trouvée par la méthode fondamentale des trapèzes. L'algorithme proposé présente ces particularités. A L G 0 R I T H M E

Intégration par la méthode des trapèzes avec corrections

1. Initialisation Lis : xmin (borne inférieure) xmax (borne supérieure) n (nombre de pas) h ⇐ (xmax-xmin)/n Pour i ⇐ 0,n,1 x ⇐ xmin+i*h y(i) ⇐ fonc(x) fin faire i

2. Intégration approchée somme ⇐ 0 derin ⇐ 0.5*(-3*y(0)+4*y(1)-y(2)) derfi ⇐ 0.5*(y(n-2)-4*y(n-1)+3*y(n)) corre ⇐ (derin-derfi)*h/12 Pour i ⇐ 1,n,1 somme ⇐ somme+y(i-1)+y(i) fin faire i somme ⇐ somme*h/2+corre Ecris : somme Cet algorithme est aussi introduit, comme précédemment, dans le calcul de la fonction y = ex/3 dans l'intervalle [x0 = 0,5; xn = 2,5] .

Le tableau ci-après donne les résultats. Le calcul commence avec un pas correspondant au quart de l'intervalle. Le résultat est exact avec 10 chiffres significatifs après le huitième partage.

192

7. Dérivées et intégrales numériques

Calcul numérique d'une intégrale par la méthode des trapèzes avec amélioration du résultat

No Nombre Somme de pas approchée 1 2 3.7990988953 2 4 3.5841057689 3 8 3.5115331465 4 16 3.5112773770 5 32 3.5112588876 6 64 3.5112576489 7 128 3.5112575688 8 256 3.5112575637 9 512 3.5112575634 10 1024 3.5112575633 7.3.3.2 MÉTHODE DE SIMPSON AMÉLIORÉE Les formules de Newton-Cotes de degré pair sont plus précises que les formules de degré impair suivantes. Ainsi, l'erreur commise par la méthode de Simpson est inférieure à celle de la formule des trois huitièmes, le rapport entre ces erreurs étant 1 à 3.375. Il est recommandé d'utiliser la formule de Simpson dans toute intégration numérique à nombre de pas pair. Si le nombre de pas est impair, le pas initial ou le pas final pourront utiliser la méthode des trapèzes ou éventuellement la méthode des trois huitièmes sur les trois premiers ou trois derniers pas. Le résultat de l'intégration numérique peut aussi s'améliorer en introduisant un terme correctif dans le calcul. Ce terme fait intervenir la dérivée quatrième de la fonction aux points initial et final. Comme la méthode de Simpson est relativement précise, nous pouvons négliger le terme de correction. A L G 0 R I T H M E

Intégration par la méthode de Simpson sans correction

1. Initialisation Lis : xmin (borne inférieure) xmax (borne supérieure) n (nombre de pas) Contrôle : n doit être pair h ⇐ (xmax-xmin)/n Pour i ⇐ 0,n,1 x ⇐ xmin+i*h y(i) ⇐ fonc(x) fin faire i

2. Intégration approchée somme ⇐ 0 Pour i ⇐ 1,n-1,2 somme ⇐ somme+y(i-1)+4*y(i)+y(i+1) fin faire i somme ⇐ somme*h/3 Ecris : somme Cet algorithme est aussi introduit dans le calcul de la fonction y = ex/3 dans l'intervalle [x0 = 0,5; xn = 2,5] . Le tableau ci-après donne les résultats. Le calcul commence avec un pas correspondant au quart de l'intervalle.

193

7. Dérivées et intégrales numériques

Calcul numérique d'une intégrale par la méthode de Simpson sans amélioration du résultat

No Nombre Somme de pas approchée

1 4 3.5124413934 2 8 3.5113331992 3 16 3.5112623169 4 32 3.5112578608 5 64 3.5112575819 6 128 3.5112575645 7 256 3.5112575634 8 512 3.5112575633 9 1024 3.5112575633 7.3.3.3 MÉTHODES COMPLÉMENTAIRES Il existe de nombreuses formules d'intégration plus ou moins bien adaptées au calcul des intégra-les. La précision du résultat dépend beaucoup de la nature de la fonction à intégrer. Nous donnons ci-dessous deux formules supplémentaires convenant particulièrement bien aux fonctions à courbure progressivement variable. 1. Formule des paraboles moyennes L'aire de la surface sous la courbe se trouve par :

A h≈ ⋅

12[ 4 5 14 11 5 12 120 1 2 3 4, ( ) ( ) , ( ) ( ) ( ) ...⋅ + ⋅ + ⋅ + ⋅ + ⋅ + +f f f f fx x x x x

+ ⋅ + ⋅ + ⋅ + ⋅ + ⋅− − − −12 12 11 5 14 4 5f f f fn 4 n 3 n 2 n 1 n( ) ( ) , ( ) ( ) , (f )x x x x x ]. Pour introduire cette formule de calcul d'une intégrale, le nombre de points doit être suffisamment grand. 2. Formule des cubiques successives L'aire de la surface sous la courbe se trouve par :

A h≈ ⋅

12 [4 15 5 10 12 5 12 120 1 2 3 4 5⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ +f f f f f f( ) , ( ) ( ) , ( ) ( ) ( ) ... +x x x x x x

+ ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅− − − − −12 12 12 5 10 15 5 45f f f f fn n 4 n 3 n 2 n 1( ) ( ) , ( ) ( ) , ( ) (f n )x x x x x x ]. Pour introduire cette formule de calcul d'une intégrale, le nombre de points doit être suffisamment grand. 7.3.3.4 FONCTIONS TENDANT VERS L'INFINI À L'UNE DE SES BORNES Si la fonction présente une valeur tendant vers l'infini à l'une de ses bornes d'intégration, il devient nécessaire d'obtenir des valeurs complémentaires près de cette limite. L'intégration numérique sera décomposée en deux parties : 1. Intégration numérique à pas constant dans le domaine de variation progressive et lente de la fonc-

tion, par exemple par la méthode des trapèzes améliorée ou de Simpson. 2. Division du tronçon restant, à forte variation de la variable dépendante, en tranches plus étroites

de telle sorte que l'erreur d'évaluation soit acceptable numériquement, complétée par l'application d'une des méthodes connues.

194

7. Dérivées et intégrales numériques

7.3.4 INTÉGRATION NUMÉRIQUE À PAS QUELCONQUE Dans de nombreuses applications techniques, les valeurs successives de la variable indépen-dante ne sont pas équidistantes, le pas h étant variable. Les méthodes précédentes ne peuvent pas s'introduire dans l'évaluation numérique de l'intégrale. 7.3.4.1 MÉTHODE DE SIMPSON POUR UN PAS VARIABLE Il est possible de modifier la formule de Simpson de manière à l'appliquer sur deux pas d'intégra- tion avec h1 ≠ h2. Les points de définition sont : - point initial : x0, fonction y0 = f(x0) , - point intermédiaire : x1, fonction y1 = f(x1) , - point final : x2, fonction y2 = f(x2). L'aire de la surface comprise entre l'axe Ox, deux ordonnées à x0 et x2, et l'arc de parabole du se-cond degré passant par les 3 points de définition, se trouve par l'expression :

A h hh

h h x h hh

x hh

h h x0 21 2

11 2 0

1 22

21

1

22 1 26

2 2→ =+

⋅ − ⋅ ++

⋅ + ⋅ − ⋅LNM

OQP⋅( ) ( ) ( ) ( ) ( ) ( )f f f

i

Pour trouver la surface totale sous la courbe, dans le domaine d'investigation de la fonction, pour un nombre impair n+1 points, l'aire totale se trouve par la somme de toutes les paires d'aires composan-tes :

A A0 1 1 11

→ + − → +=

= ∑n ii par pas2

n

.

7.3.4.2 MÉTHODE DE SIMPSON AVEC FONCTIONS SPLINE CUBIQUE Pour résoudre le même problème numérique et obtenir les valeurs de la fonction intégrale en cha-cun des points de définition de la fonction primitive, il est possible de simuler la courbe par des fonc-tions spline cubique. Les recherches à prendre en considération sont les suivantes : 1. Introduction des points de définition de x0 à xn, le premier point étant indicé 0, le dernier n. La va-

riable indépendante xi doit croître dans tout le domaine de définition de la fonction. Point i : introduire xi et la fonction yi = f(xi).

2. Utiliser l'algorithme de la procédure des dérivées premières ou des dérivées secondes pour le cal-cul des coefficients des polynômes du troisième degré, relations selon 6.2.2.4 ou 6.2.3.4 . On pourra supposer par exemple que les dérivées secondes sont nulles au point initial (x0,y0) et au point final (xn,yn) ou estimer les dérivées premières sur l'allure de la courbe représentative.

3. Rechercher la solution du système d'équations contenant les abscisses et les ordonnées des di-vers pas.

4. Détermination, dans chaque pas de calcul, des valeurs de l'abscisse et de l'ordonnée de la courbe au milieu du pas, soit à xi + 0,5 hi . Dans l'intervalle i, les valeurs connues ou à déterminer sont :

- pour xi : fonction yi = f(xi). - pour xi+1 hi = xi+1 - xi, fonction yi+1 = fxi+1). - pour xim = xi + 0,5 hi fonction yim = f(xi + 0,5 hi), cette valeur doit se calculer par spline. 5. Intégration par la méthode de Simpson pour chacun des pas de définition de la fonction :

A h x x xii

i im i+1f f f= ⋅ + +6

4( ) ( ) ( ) .

Cette relation est répétée n fois. L'addition des n intégrations partielles donne finalement la valeur de l'intégrale en chaque point connu initialement dans l'intervalle [x0,xn] .

195

7. Dérivées et intégrales numériques

7.3.4.3 ALGORITHME DE LA MÉTHODE AVEC FONCTIONS SPLINE CUBIQUE La méthode proposée permet de résoudre le problème de l'intégration approchée d'une fonction discrète à pas variable. Dans cet algorithme, les coefficients et constantes des polynômes du troi-sième degré sont calculés en se servant des dérivées premières. Les valeurs initiale et finale de ces dérivées sont trouvées au moyen du tableau des différences divisées sur trois points. A L G 0 R 1 T H M E

Intégration par la méthode de Simpson et spline cubique pour pas quelconque

1. Initialisation Lis : n {nombre d'intervalles} Pour i ⇐ 0,n,1 Lis : x(i),y(i) fin faire i

2. Dérivées initiale et finale

q0 ⇐ (y(1)-y(0))/(x(1)-x(0))

ql ⇐ (y(2)-y(1))/(x(2)-x(1))

q01 ⇐ (ql-q0)/(x(2)-x(0)) yl(0) ⇐ q0+(x(0)-x(1))*q01 q0 ⇐ (y(n-1)-y(n))/(x(n-1)-x(n)) q1 ⇐ (y(n-2)-y(n-1)/(x(n-2)-x(n-1)) q01 ⇐ (q1-q0)/(x(n-2)-x(n)) yl(n) ⇐ q0-(x(n-1)-x(n))*q01

3. Coefficients des polynômes (voir algorithme sous 6.2.2.4)

4. Intégration par Simpson somme ⇐ 0 (ou valeur initiale) Pour i ⇐ 1,n,1 h ⇐ x(i)-x(i-1) xm ⇐ (x(i-1)+x(i))/2 y0 ⇐ y(i-1) y1 ⇐ y(i) ym ⇐ {coefficients du polynôme i) (algorithme de Horner pour xm) tot ⇐ h*(y0+4*ym+y1)/6 somme ⇐ somme+tot Ecris : x(i),somme fin faire i 7.3.4.4 EXEMPLE D'APPLICATION DE L'ALGORITHME La méthode est appliquée au calcul numérique de la fonction : y = 100 sin(x) , pour x compris entre 0 et pi. La valeur exacte de l'intégration est 200. Nous choisissons 10 intervalles d'intégration, soit 11 points de définition de la fonction et conservons 5 chiffres significatifs après la virgule décimale.

Valeurs numériques introduites dans le calcul No 0 1 2 3 4 5 6 x = 0,0 0,2 0,5 0,9 1,5 2,0 2,3 y = 0,00000 19,86693 47,94255 78,33269 99,74950 90,92974 74,57052

196

7. Dérivées et intégrales numériques

No 7 8 9 10 x = 2,6 2,8 3,0 3,141593 y = 51,55014 33,49882 14,11200 0,000000 Les résultats du calcul sont donnés dans le tableau. Les valeurs numériques ont été introduites avec 5 chiffres significatifs après la virgule décimale. Le calcul est complété par : - une intégration au moyen de la formule de Simpson sur 10 pas non constants. - à pas constant et 10 (ou 20) pas d'intégration (à xm), même nombre de chiffres après la virgule.

Intégration numérique sur 10(20) pas de la fonction y = 100 sin(x) pour x compris entre 0 et pi

No du Calcul sur des pas variables Simpson Calcul sur des pas constants point Abscisse x(i) Fonction Somme simple Fonction Somme

0 0,00 0,00 0,00000 0,00000 0,00 0,00000 1 0,20 19,86693 2,00055 30,90118 4,92747 2 0,50 47,94255 12,24362 8,22998 58,77853 19,12233 3 0,90 78,33269 37,84449 80,90170 41,24758 4 1,50 99,74950 92,91423 72,16453 95,10565 69,12339 5 2,00 90,92974 141,59883 100,00000 100,02479 6 2,30 74,57052 166,61202 165,71307 95,10565 130,92618 7 2,60 51,55014 185,67269 80,90170 158,80199 8 2,80 33,49882 194,20638 197,48118 56,88753 180,92725 9 3,00 14,11200 198,98232 30,90118 195,12210 10 3,141593 0,00 199,98482 203,25579 0,00 200,04958 Les valeurs des abscisses de la fonction à pas constant sont trouvées en divisant pi par 10. Les résul-tats de l'intégration numérique sont très bons dans les deux cas. La précision de l'intégration sur 10 pas par contre est relativement médiocre. 7.3.5 MÉTHODE DE ROMBERG La méthode de Romberg convient au calcul de la somme intégrale d'une fonction y = f(x) donnée sous forme analytique sur l'intervalle [a,b]. Elle introduit un tableau de valeurs numériques qui se construit successivement. Le résultat de l'évaluation est un résultat unique. 7.3.5.1 CONSTRUCTION DE LA PREMIÈRE COLONNE DU TABLEAU La méthode de Romberg est un développement de la méthode d'intégration par les trapèzes. Elle utilise un tableau de valeurs, noté T, contenant n+1 lignes et m colonnes numérotées : - lignes : de 0 à n, - colonnes de 1 à m. Les éléments de la première colonne T(i,1) sont obtenus en appliquant la méthode des trapèzes sur l'intervalle [a,b]. Le premier élément T(0,1) se trouve en introduisant la formule des trapèzes sur les deux points extrêmes de l'intervalle. Le second élément T(1,1) , situé sur la seconde ligne, se trouve en divisant l'intervalle [a,b] en deux parties égales et en introduisant la même méthode sur les deux tronçons de même pas. Chaque nouvel élément de la première colonne s'évalue en divisant la longueur des tronçons précé-dents en deux parties égales. Après n lignes, le pas d'évaluation vaut :

h b an n=

−2

.

Soit y = f(x) la fonction à intégrer dans l'intervalle [a,b]. Calculons les expressions littérales des élé-ments de la première colonne :

197

7. Dérivées et intégrales numériques

T(0,1) = ( ) ( ( ) ( ) . b a a b− ⋅ ⋅ +12

f f

T(1,1) = 12

12 2

⋅ − ⋅ ⋅ + + +−F

HGIKJ

RSTUVW( ) ( ) ( )b a a b a b af f f ,

= 12

0 12

T b a a b a( , ) ( ) .+ − ⋅ +−F

HGIKJ

RSTUVWf

T(2,1) = b a a b a b a−

⋅ ⋅ + + +−

⋅FHG

IKJ

RSTUVW=

∑412 41

3

f f f ii

( ) ( ) .

= 12

112 4

3

⋅ +−

⋅ +−

⋅FHG

IKJ

RST|UVW|=

∑T b a a b a( , ) .f ii 1par pas2

T(3,1) = b a a b a b a−

⋅ ⋅ + + +−

⋅FHG

IKJ

RSTUVW=

∑812 81

7

( ( ) ( ) ,f f f ii

= 12

2 14 8

⋅ +−

⋅ +−

⋅FHG

IKJ

RST|UVW|=

∑T b a a b a( , ) .f ii 1par pas2

7

T(4,1) = 12

3 18 1

⋅ +−

⋅ +−

⋅6

FHG

IKJ

RST|UVW|=

∑T b a a b a( , ) .f ii 1par pas2

7

En observant les termes successifs, après simplification, la relation de récurrence prend la forme sui-vante pour la première colonne du tableau :

T T b a a b a( , ) ( , ) .k k fk ki 1par pas2

2k

1 12

112 21

1

= ⋅ − +−

⋅ +−

⋅ iFHG

IKJ

RST|UVW|−

=

Dans cette expression i-1 par pas 2 signifie pour i = 1 par incrément de 2 jusqu'à 2k-1. 7.3.5.2 CONSTRUCTION DES AUTRES ÉLÉMENTS DU TABLEAU La première colonne du tableau contient ainsi l'intégration approchée, par la méthode des trapè-zes, de la relation analytique dans l'intervalle [a,b]. Les autres éléments sont construits en utilisant l'extrapolation de Richardson afin d'améliorer le résultat. Le tableau de valeurs est complété dans les autres colonnes par les éléments calculés au moyen de la relation générale :

T T T( , ) ( , .k j k j 1) (k , j )j 1

j 1=⋅ − − − −

4 14 1

1

Le tableau triangulaire des valeurs calculées ou schéma de Romberg se présente sous la forme pro-posé ci-après.

T(0,1) T(1,1) T(1,2) T(2,1) T(2,2) T(3,1) T(3,2) T(3,3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T(n, 1 ) T(n,2) T(n,3) T(n,4) . . . . . . T(nn) Chaque colonne du schéma de Romberg converge vers la valeur de l'intégrale recherchée. Le calcul est poursuivi jusqu'à ce que la différence entre deux éléments voisins d'une même colonne ne dépas-se pas l'erreur admissible.

198

7. Dérivées et intégrales numériques

7.3.5.3 ALGORITHME DE LA MÉTHODE DE ROMBERG La méthode proposée dans cet algorithme utilise un vecteur T et non un tableau afin d'économiser de la place en mémoire. Les indices du vecteur sont calculés à partir de deux variables auxiliaires. A L G 0 R I T H M E

Intégration par la méthode de Romberg

1. Initialisation Lis : f (fonction) xa,xb (bornes de l'intégration) n,tol (nb lignes, erreur admissible) h0 ⇐ xb-xa k ⇐ 1 ya ⇐ f(xa) yb ⇐ f(xb)

2. Formation des éléments Pour i ⇐ 0,n,1 k ⇐ 2*k h ⇐ h0/k somme ⇐ 0 x ⇐ xa Pour j ⇐ 1,k-1,1 x ⇐ x+h somme ⇐ somme+f(x) fin faire j somme ⇐ somme+(ya+yb)/2 somha ⇐ somme*h Si i=0 alors T(0) ⇐ somha sinon var1 ⇐ somha m ⇐ 1 Pour j ⇐ 1,i,1 m ⇐ 2*m qe ⇐ 2^m var2 ⇐ (qe*var)-T(j-1))/(qe-1) T(j-1) ⇐ var1; var1 ⇐ var2 fin faire j T(i) ⇐ var1 fin sinon err ⇐ T(i-l)/T(i)-1 Si lerrl ⇐ tol alors Ecris : i,T(i),err sinon fin faire i Dans cet algorithme, les principales variables ont la signification suivante : xa, xb limites de l'intégration, n nombre maximal de lignes, qe facteur entier puissance de 2, tol tolérance relative sur le résultat de l'intégration, h0 pas initial, h pas local, ya, yb valeur de la fonction aux bornes de l'intégration,

199

7. Dérivées et intégrales numériques

varl,va2 variables auxiliaires, somme somme intermédiaire, somme somha somme intermédiaire. Le nombre d'itérations (de lignes) est habituellement inférieur à 10.

200

7. Dérivées et intégrales numériques

7.4 EXERCICES SUR LES DÉRIVÉES ET LES INTÉGRALES 7.1 On désire calculer la dérivée première de la fonction analytique :

y xx x

=−

⋅ −2 4

3 2.

pour x = 2,0 . Dans ce but, on introduit la méthode simple de la sécante entre deux points de calcul placés de part et d'autre du point x. L'initialisation du calcul est effectué en adoptant un pas h = 0,1 . L'intervalle est, à chaque pas, divisé en deux et la dérivée approchée est calculée. Ecrivez le pseudo-code de cette méthode et testez le résultat en programmant la procédure générale correspondante. Calculez la valeur analytique de la dérivée. 7.2 Calculez la longueur de l'arc de parabole donnée par la relation analytique suivante :

y2 = 2,5 x, pour x compris entre 0,5 et 5,5 . Dans ce but, utilisez l'expression différentielle de la longueur d'un arc élémentaire :

ds = (dx2 + dy2)1/2. Utilisez le principe des différences finies pour remplacer les différentielles. Ecrivez le pseudo-code de cette méthode et programmez la procédure correspondante. 7.3 Calculez la longueur de la spirale d'Archimède, exprimée en coordonnées polaires, par la relation :

r = 0,4 phi, pour phi compris entre 0,0 et 2 pi. Introduisez dans ce but l'expression de l'arc élémentaire en coor-données polaires. Ecrivez le pseudo-code de cette méthode et programmez la procédure générale correspondante. 7.4 Le mouvement d'une masse s'effectue à la vitesse donnée par la relation analytique d'un mouvement amorti :

x = 6,5 exp(-0,25 t) • cos(5 pi t) . On désire trouver deux fonctions discrètes exprimant l'une la vitesse, l'autre l'accélération. Recher-chez 1. le pseudo-code du calcul de l'accélération à partir des valeurs discrètes de la vitesse en utilisant la

formule de Newton. 2. la procédure permettant d'effectuer cette même opération sur une fonction discrète quelconque. 3. le tableau de valeurs pour la fonction proposée pour des temps compris entre 0 et 0,25 seconde

par pas de 0,01 seconde. 7.5 Soit la fonction analytique suivante :

y x x x= ⋅ + +2 2 5ln .e j

Etablissez un tableau de valeurs discrètes exprimant la valeur de la fonction y = f(x) pour x compris entre 0 et 2 par incrément de 0,1. Calculez numériquement les dérivées première et seconde pour x = 0,0 ; x = 0,8 et x = 2,0 . 7.6 Soit la fonction analytique suivante :

y x x x= ⋅ + +3 2 5 4ln .,e j

Déterminez, par intégration numérique, la valeur de l'intégrale pour x compris entre 0 et 1,0 en intro-duisant : 1. la méthode des trapèzes, 2. la méthode de Simpson. L'incrément est choisi à Δx = 0,05 dans ce domaine d'évaluation.

201

7. Dérivées et intégrales numériques

7.7 Ecrivez le pseudo-code de l'intégration d'une fonction analytique par la méthode dite des trois huitièmes et la procédure correspondante. Appliquez cette méthode à l'intégration de la fonction suivante :

y xx x

=⋅ + ⋅

1 375

2 4960 885 1 437

,

,, ,.

pour x compris entre 0,5 et 4,5 . Le nombre d'incréments est initialisé à 8 dans un premier calcul, puis à 16 dans un second calcul. (Rep : somme = 3,32713). 7.8 Ecrivez le pseudo-code de l'intégration d'une fonction analytique par la méthode de la para-bole moyenne. Programmez la procédure correspondante. Utilisez cette méthode pour calculer l'inté-grale de la fonction :

y = 100 • sin(0,1 x) , pour x compris entre 0 et 5 pi. Comparez le résultat de l'intégration numérique avec le résultat analy-tique. 7.9 Ecrivez le pseudo-code de l'intégration d'une fonction analytique par la méthode des cubiques successives. Programmez la procédure correspondante. Utilisez cette méthode pour calculer l'intégra-le de la fonction analytique :

y = 0,1 x - 0,02 x2 pour x compris entre 0 et 5. Comparez le résultat de l'intégration avec le résultat trouvé analytique-ment. 7.10 Intégrez numériquement la fonction :

y xx

=sin( ) ,

pour x compris entre 0 et 0,5 pi. Adoptez dans ce but 16 pas de calcul et la méthode des trapèzes. Comparez le résultat du calcul numérique avec l'intégrale exacte donnée par un développement en série (voir formulaires). 7.11 Une fonction discrète y = fx) se définit par un tableau de valeurs : x = 0,04 0,07 0,10 0,13 0,16 0,19 0,22 0,25 y = 0,406 0,885 1,369 1,763 1,989 1,991 1,743 1,250 Intégrez cette fonction par la méthode la plus appropriée. 7.12 Ecrivez la procédure de l'intégration par la méthode de Romberg en introduisant le tableau T à deux dimensions. Introduisez cette méthode dans le calcul de l'intégrale de la fonction analytique :

yx x x

=+ ⋅ + +

11 1 2( )

,

pour x compris entre 0,2 et 2,0. L'erreur sur le résultat numérique de cette intégration doit être infé-rieure à 10-5 (Somme = 0,375979). Quel est le nombre de lignes nécessaires à ce calcul ? 7.13 Soit une fonction discrète donnée par le tableau ci-après x = 0,50 0,75 1,00 1,25 1,50 y = 1,5483 2,2101 2,7283 2,9928 2,8589 Calculez les coefficients des quatre fonctions spline cubique en supposant les dérivées premières initiale et finale calculées au moyen de l'algorithme proposé. Recherchez les polynômes d'interpo-lation et intégrez analytiquement chacun des polynômes dans les domaines proposés (Δx = 0,25).

202

8. Equations différentielles ordinaires

CHAPITRE 8

ÉQUATIONS DIFFÉRENTIELLES ORDINAIRES Ce chapitre comprend un exposé sur les solutions numériques d'équations différentielles ordi-naires. Après une introduction sur les méthodes élémentaires, il traite les algorithmes des solutions numériques des équations différentielles du premier et du second ordre, en particulier par les méthode dites de Runge-Kutta. Il est complété par quelques méthodes dites à pas liés. Il est possible de rédui-re les équations différentielles d'ordre supérieur en un ensemble d'équations différentielles du premier ordre. Les équations différentielles peuvent présenter des comportements particuliers rendant difficile, voire même impossible, la solution numérique. C'est en général les conditions aux limites, soit initiale, soit initiale et finale, qui dictent la méthode à introduire dans la solution. Choisissons un exemple très simple d'équation différentielle. Un modèle mécanique se compose d’une masse m en déplacement rectiligne dans un milieu résistant, la force de frottement dépend de la vitesse du corps v. Le corps est retenu par un lien élastique non linéaire. L'équation usuelle de la mécanique s'écrit sous la forme suivante :

m az + c . vzp + k . zq = 0,

ou encore :

m zt

c zt

k z⋅ + ⋅FHGIKJ + ⋅ =

dd

dd

pq

2

2 0.

Le mouvement de cette masse se décrit par une équation différentielle dite de second ordre. Dans le cas général, l'équation différentielle d'ordre n se présente comme suit :

F(x,y,y',y",y"' .... y(n)) = 0 . Résoudre une équation différentielle consiste à trouver l'ensemble des fonctions y vérifiant cette re-lation.

8.1 ÉQUATIONS DIFFÉRENTIELLES DU PREMIER ORDRE : MÉTHODES À PAS SÉPARÉS

Le but de ce chapitre est de résoudre, dans un premier temps, l'équation différentielle générale de premier ordre :

y yx

x y' (= = , ).dd

f

c’est-à-dire à trouver la fonction : y = f(x) à partir de l'expression de la fonction dérivée y' = f(x,y). Le calcul numérique de la fonction à partir de la valeur de sa dérivée peut s'effectuer principalement selon deux grands groupes de solutions.

1. Méthodes à pas séparés Ces méthodes permettent de calculer la valeur suivante yi+1 à partir de l'équation différentielle des valeurs du point précédent (xi,yi). Elles présentent la configuration suivante :

y y h x yi i i i+ = + ⋅1 Φ ( , ). Parmi celles-ci, nous étudierons principalement les méthodes dites de Runge-Kutta. 2. Méthodes à pas liés Elles nécessitent la connaissance préalable de yi pour une ou plusieurs valeurs de xi situées en dehors de l'intervalle de calcul [xi,xi+1]. Elles seront étudiées dans le sous-chapitre 8.2.

203

8. Equations différentielles ordinaires

8.1.1 SOLUTIONS ÉLÉMENTAIRES En supposant le problème déjà résolu, la solution de l'équation différentielle peut se représenter, dans le plan O x y, par une courbe :

y = f(x). telle que la pente en un point donné P(x,y) corresponde à la valeur de l'équation différentielle calculée en ce même point. 8.1.1.1 PROBLÈME DE CAUCHY Ce fait suggère une méthode grossière pour résoudre numériquement l'équation différentielle du premier ordre. On associe à chaque point P(x,y) une pente donnée par l'équation différentielle primi-tive et on trace en ce point un segment de droite ayant cette pente. On obtient ainsi un champ direc-tionnel. Exemple : Soit l'équation différentielle : y’ = f(x, y) = 1 + x – y.

Pour la construction du champ directionnel, il est plus indiqué de construire les courbes de pente constante, les isoclines, définies par l'équation :

y = f(x,y) = constante. Par exemple, pour cette équation différentielle y' = f(x,y) = 1 + x - y, nous trouvons : y=0 = 1 + x - y Æ y = x + 1 ; y=1 = 1 + x - y Æ y = x ; y=2 = 1 + x - y Æ y = x - 1 . Dans ce cas particulier, y = f(x) représente une famille de droites parallèles. De plus, nous nous aper-cevons qu'il existe une infinité de solutions qui dépendent d'une constante arbitraire. En pratique, il est clair que nous nous intéressons seulement à une solution particulière de l'équation différentielle générale et qu'il nous faudra préciser par quel point la courbe doit passer, comme par le point initial x0 : y(x0) = y0 .

C'est le problème de Cauchy ou dit à conditions initiales. En résumé, le problème à résoudre se pré-sente sous la forme suivante : - soit x tel que : x(a) ≤ x ≤ x(b) ;

- trouver : y = f(x) dans l'intervalle [ x(a) , x(b) ] vérifiant :

y'(x) = f(x,y) , y(x0) = y0 .

204

8. Equations différentielles ordinaires

La solution obtenue est une solution particulière de l'équation différentielle. Si la solution de l'équation différentielle est imposée par les valeurs aux bornes de l'intervalle d'intégration, ce type de solution se nomme problème avec conditions aux limites. Ce genre de problème ne sera pas traité dans le logi-ciel. Remarquons encore en complément que les équations à résoudre sont dites équations résolues. Cela signifie qu'il est possible d'isoler la dérivée première y' à gauche du signe d'égalité : y' = f(x,y) .

Le terme à droite ne contient que les variables x et y . L'équation différentielle :

y' + ey' = sin(y') - x ,

n'est pas une équation résolue et ne peut pas se résoudre par les méthodes que nous allons voir. 8.1.1.2 MÉTHODE D’EULER La méthode d'Euler est une application directe de la discussion précédente. Partant d'un point donné P(x0,y0) , nous calculons en ce point la pente à la courbe par :

y0 = f(x0,y0)

Connaissant la pente à la courbe en ce point, il est possible de trouver un nouveau point P(x1,y1) en avançant d'une longueur de pas :

h = Δx = x1 – x0. Il est clair que l'erreur de discrétisation sera d'autant plus grande que le nombre de pas sera petit dans l'intervalle adopté. Une augmentation du nombre de pas, dans le même intervalle pourrait pro-voquer d'autre part une amplification de l'erreur d'arrondi. À partir d'un point quelconque :

P(xi,yi), la méthode de Euler consiste à : 1. Calculer la pente de la courbe recherchée donnée par l'expression :

yi'= tan(αi) = f(xi,yi). 2. Calculer les coordonnées du point suivant : - abscisse : xi+1, = xi + h , - ordonnée : yi+1 = yi + h . yi’ = yi + h . f(xi,yi) .

3. Répétez les points 1 et 2 jusqu'à atteindre la fin de l'intervalle d'évaluation, l'intervalle étant divisible exactement par le pas adopté dans l'évaluation. Exemple simple :

205

8. Equations différentielles ordinaires

Soit à résoudre, par la méthode d'Euler, l'équation différentielle suivante : y’ = f(x,y) = y ,

avec comme conditions initiales : pour x = 0, y = 1 .

Le calcul manuel s'effectue entre les limites [ 0,0 ; 0,5 ] par incrément ou pas Δx = 0,1 . En appliquant la méthode d'Euler, nous obtenons la formule :

yi+1 = yi + 0,1 yi’ = 1,1 yi . La solution analytique de cette équation différentielle simple est :

y = exp(x) = ex. La valeur exacte de la fonction recherchée pour x = 0,5 est

y = exp(0,5) = 1,6487213... Le calcul des valeurs successives de la fonction y = f(x) , au moyen de la méthode d'Euler, peut se résumer dans le tableau numérique ci-après.

Résultat de l'évaluation de l'équation différentie le y' = y

xi yi yi’ yi+1 Exact

0,0 0,1 0,2 0,3 0,4 0,5

1,0 1,1 1,21

1,331 1,4641

1,61051

1,0 1,1

1,21 1,331

1,4641 1,61051

1,1 1,21

1,331 1,4641

1,61051 1,771561

1,0 1,105171 1,221403 1,349859 1,491825 1,648721

Ce tableau donne aussi, dans sa dernière colonne, la valeur exacte de la fonction recherchée. Pour le dernier point du tableau, l'erreur est Δy = 0,0382, soit 2,3%. La déviation de la courbe calculée par rapport à la courbe exacte peut être diminuée en introduisant des méthodes plus perfectionnées. En doublant le nombre de pas, le résultat numérique serait yx=0,5 = 1,628895, soit une erreur de 1,2%. 8.1.1.3 MÉTHODE DE HEUN L'idée de base de la méthode de Heun est d'introduire non pas la pente initiale, mais la pente moyenne calculée dans l'intervalle d'évaluation.

Calculons le nouveau point de coordonnées à l'aide de la méthode d'Euler : - abscisse : xi + h, - ordonnée : yi + h . yi', située sur la droite d1 :

206

8. Equations différentielles ordinaires

- soit : y*i+1 = yi + h . f(xi,yi). Cette formule est appelée le prédicteur puisqu'elle prédit une première approximation pour yi+1.En ce nouveau point, calculons la pente à la courbe qui est celle de la droite d2. La pente de la droite d correspond à la moyenne des pentes des droites d1 et d2. Une parallèle d à la droite d passant par le point (xi,yi) interceptera l'ordonnée passant par xi, au point recherché (xi+1,yi+1). La pente de la droite d, donc également celle de la droite d est exprimée par :

Φ ( , , ) ( , ) ( , )'x y h x y x h y h yii i i i i if f= ⋅ + + + ⋅12

.

L’équation de la droite d est donc : y y x x x y h= + − ⋅i i i i( ) ( , , ) .Φ

Il en découle l’algorithme de calcul :

y y h x y h

x y h x y x h y h y

i i i i

i i i i i i iavec : f f

+ = + ⋅

= ⋅ + + + ⋅

1

12

Φ

Φ

( , , ) ,

( , , ) ( , ) ( , ) .'

Ces dernières formules sont appelées le correcteur puisqu'elles corrigent la première approximation y*i+1, données précédemment. Cette méthode porte aussi le nom de méthode de Runge-Kutta du second ordre. 8.1.1.4 MÉTHODE D'EULER MODIFIÉE Une autre manière de résoudre le même problème consiste à introduire le même prédicteur que précédemment, mais de calculer son intersection avec l'ordonnée passant par l'abscisse xi + 0, 5 h. C'est le point P de la figure ci-après. Il faut ensuite trouver la pente de la droite d en ce point P par l'expression :

Φ ( , , ) ( , , , )'x y h x h y h yi i i i if .= + + ⋅0 5 0 5

où : .y y x x x y hi i i i i' ( ) ( , , )= + − ⋅Φ

Le correcteur est de nouveau donné par l'expression :

yi+1 = yi + h . Φ(xi,yi,h) . Ces diverses relations définissent une deuxième méthode du second ordre appelée méthode d'Euler modifiée. Certains auteurs appellent Φ la fonction d'incrément. Elle n'est rien d'autre qu'une appro-ximation appropriée de la fonction f(x,y) sur l'intervalle [xi,xi+1]. Les deux relations de la méthode d'Euler modifiée sont donc :

207

8. Equations différentielles ordinaires

yi+1 = yi + h . Φ(xi,yi,h), avec Φ(xi,yi,h) = f(xi + 0,5 h , yi + 0,5 h. yj’).

Il est possible d'écrire ces relations, pour employer la terminologie en usage dans les mathématiques numériques, sous la forme d'une somme pondérée de deux évaluations k1 et k2 de la dérivée sur l'intervalle [xi,xi+1] :

(xi,yi,h) = a1 . k1 + a2 . k2, où a1 et a2 sont les coefficients de pondération. Grâce à cette nouvelle relation, les trois méthodes élé-mentaires étudiées jusqu’à maintenant peuvent se résumer dans le tableau ci-après.

Pondération pour les méthodes du premier et du second ordre

Premier ordre Second ordre

Euler Heun Euler modifiée

k1 = f(xi,yi) k1 = f(xi,yi) k2 = f(xi + h , yi + h . k1)

k1 = f(xi,yi) k2 = f(xi + 0,5 h , yi + 0,5 h k1)

yi+1 = yi + h . k1 yi+1 = yi + 0,5 h (k1 + k2) yi+1 = yi + h k2 8.1.1.5 EXEMPLE NUMÉRIQUE SIMPLE Résolvons la même équation différentielle que précédemment, soit :

y’ = f(x,y) = y , dans les mêmes conditions initiales : pour x = 0 , y = 1 . Adoptons également le même pas d'intégration h = 0,1 et introduisons tout d'abord la méthode de Heun. Dans ce cas particulier, les coefficients k1 et k2 deviennent : k1 = f(xi,yi) = yi, k2 = f(xi+h , yi+h.k1) = 1,1 yi . La nouvelle valeur de la fonction se trouve par :

yi+1 = yi + 0,5 h (k1 + k2) = 1,105 yi . Le tableau suivant donne le résultat de l'intégration numérique et la valeur exacte de la solution.

Intégration par la méthode de Heun : y' = y

Point Abscisse Valeur de la fonction No xi Méthode de Heun Méthode analytique 0 0,0 1,000000 1,000000 1 0,1 1,105000 1,105171 2 0,2 1,221025 1,221403 3 0,3 1,349233 1,349859 4 0,4 1,490902 1,491825 5 0,5 1,647447 1,648721 La qualité du résultat de l'intégration numérique est déjà nettement supérieure à celle de la méthode d'Euler du premier ordre. 8.1.1.6 MÉTHODE ITÉRATIVE DE HEUN À partir d'un point point déterminé (xi,yi), calculons une première approximation de la fonction yi+1 en utilisant la méthode d'Euler :

y*i+1 = yi + h . f(xi,yi) .

208

8. Equations différentielles ordinaires

Améliorons le résultat en introduisant la méthode de Heun, c'est-à-dire en calculant la moyenne des pentes de la sécante :

yi+1 = yi + 0,5 h . [f(xi,yi) + f(xi+1,y*i+1)].

Dans cette relation, la valeur recherchée et inconnue de la fonction yi+1 figure dans les deux membres de l'égalité. Comme la fonction y' = f(x,y) est quelconque, mais connue, yi+1 ne peut pas être expli-citée. Nous pouvons par contre améliorer l'évaluation de yi+1 en adoptant une méthode itérative. L'ex-pression générale de cette méthode est :

yi+1(ν+1) = yi + 0,5 h . [f(xi,yi) + f(xi+1,yi+1

(ν))] , avec: ν = 0, 1, 2, . . . À chaque pas, le contrôle de la valeur de la fonction yi+1 permet de déceler la modification et l’amé-lioration de l'approximation. Le calcul est interrompu lorsque le nombre de chiffres significatifs désiré est atteint. Algorithme de la méthode itérative Dans l'algorithme proposé, la signification des variables utilisées est la suivante : xmin, xmax bornes de l'évaluation, n nombre d'incréments ou de pas, erreur différence absolue admissible entre deux itérations successives, h pas, y0 valeur initiale de la fonction, x variable indépendante, f(...) fonction représentant y' = f(x,y), y(j) valeur de la fonction à l'itération j. A L G 0 R I T H M E Méthode de Heun avec itérations

1. Initialisation Lis : xmin,xmax,y0,n,erreur

h ⇐ (xmax-xmin)/n x ⇐ xmin

2. Affichage et calcul Ecris : 0,x,y0,0 Pour i ⇐ 1,n,1 fais procédure HEUN Ecris : i,x,y0,j Fin faire i

Procédure HEUN avec itérations y(0) ⇐ y0+h*f(x,y0) Pour j ⇐ 1,10,1 fais

y(j) ⇐ y0+h*(f(x,y0) +f(x+h,y(j-1)))/2 si |y(j)-y(j-1)| ⇐ erreur alors x ⇐ x+h; y0 ⇐ y(j)

retour après l'appel HEUN fin si fin faire j

Cet algorithme est utilisé pour résoudre toujours la même équation différentielle. Le résultat de l'éva-luation est donné dans le tableau ci-dessous, le pas du calcul étant 0,05. L'erreur admissible dans le calcul a été admise égale à 10-6.

209

8. Equations différentielles ordinaires

Solution numérique de l'équation différentielle y' = y par la méthode de Heun avec itérations

No xi Fonction yi Nb itérations

0 1 2 3 4 5 6 7 8 9

10

0,00 0,05 0,10 0,15 0,20 0,25 0,30 0,35 0,40 0,45 0,50

1,0000000 1,0512820 1,1051939 1,1618705 1,2214536 1,2840922 1,3499431 1,4191709 1,4919489 1,5684591 1,6488929

0 3 3 3 3 3 4 4 4 4 4

Ce tableau a été calculé au moyen de l'algorithme proposé. Les valeurs réelles, utilisées dans l'algo-rithme, sont exprimées en double précision (12 à 14 chiffres significatifs).

8.1.2 MÉTHODE D' EULER - ROMBERG Cette méthode autorise la solution numérique d'une équation différentielle du premier ordre. Elle utilise principalement, comme son nom l'indique, la méthode élémentaire d'Euler complétée par le schéma de Romberg. L'avantage essentiel de cette méthode est de pouvoir fixer la limite de l'erreur à l'intérieur des pas d'intégration. 8.1.2.1 PRINCIPE DE LA MÉTHODE D'EULER - ROMBERG Le calcul des approximations successives de la fonction part du problème de Cauchy dans lequel les conditions initiales :

y(x0) = y0, et l'équation différentielle : y' = f(x,y), sont connues. Le principe du calcul itératif comprend les pas suivants 1. Application successive, dans le même pas, de la méthode d'Euler : - sur le pas entier avec : y*i+1 = yi + h . f(x,y). - division du pas en deux et nouveau calcul de y*i+1. - nouvelle division par deux et nouveau calculs. 2. Extrapolation linéaire afin d'améliorer la précision et la convergence. 3. Arrêt du calcul lorsque la différence entre deux calculs successifs est inférieure à l'erreur. L'approximation yi+1 est obtenue en construisant un tableau de la même manière que dans la méthode d'intégration de Romberg, voir sous 7.3.5 . Le schéma de Romberg démarre en calculant le premier pas. Nous voulons écrire ce résultat sous la forme condensée suivante :

y00 = y*i+1 = yi + h0 f(xi,yi) .

Le pas h0 = xi+1 - xi est divisé en deux parties égales et la méthode d'Euler est appliquée sur ces deux tronçons h1 = h0/2. Le résultat de ce calcul donne les relations ci-après : x0 = xi y0 = yi f0 = f(xi,yi) . x1 =xi+ h1 y1 = y0 + h1 . f0 f1 = f(x1,y1) . x2 = x1 + 2 h1 y2 = y1 + h1 . f1 y0

1 = y2. Les éléments de la première colonne du tableau de Romberg sont les résultats de l'approximation donnée par la formule d'Euler et calculés sur des tronçons de plus en plus petits. La formule de récur-rence prend la forme suivante :

210

8. Equations différentielles ordinaires

y y ym

mk m 1

k 1mk

m=⋅ −

−−+

−22 1

1 .

L’allure générale du schéma de Romberg, allié à la méthode d'Euler, peut se représenter par les li-gnes et colonnes suivantes. h0 y0

0 L = 1 h0 / 2 y1

0 y01

L = 2 h0 / 22 y20 y1

1 y02

. . . . . . . . . . . . . . . . . . L = k h0 / 2k yk

0 y1k-1 . . . y1

k-1 y0k

8.1.2.2 ALGORITHME DE LA MÉTHODE D'EULER - ROMBERG L'algorithme de la méthode comprend principalement les opérations successives suivantes : 1. Définition de l'équation différentielle : y' = f(x,y) , des bornes d'intégration xmin, xmax, du nombre de

pas n et du pas h = (xmax - xmin)/n , 2. Approximation de yi+1 par la formule d'Euler sur le pas entier. 3. Construction du tableau de Romberg en divisant successivement le pas précédent en deux à cha-

que itération. 4. Test de la convergence et calcul de l'erreur entre deux valeurs successives du tableau. Si la préci-

sion est atteinte, le compteur de pas primitif est incrémenté et le jeu recommence en 2. Les principales variables utilisées sont les suivantes : x(i) variable indépendante xi, y(i) fonction yi, xmax borne supérieure de l'intégration, n nombre de pas, err erreur admissible sur l'approximation, Na nombre maximal d'itérations dans un pas, de lignes dans le schéma de Romberg, h pas, T(i) élément de la première colonne du schéma de Romberg, f(x,y) fonction donnée dans l'équation différentielle, xc,yc valeur provisoire de calcul, mm puissance de 2.

A L G 0 R I T H M E

Solution d'une équation différentielle par la méthode d'Euler-Romberg

1. Initialisation Lis : x(0),y(0),n,xmax,err,Na h ⇐ (xmax-x(0))/n

2. Sous-programme de calcul Pour i ⇐ 1,n,1 fais xc ⇐ x(i-1); yc ⇐ y(i-1) T(1) ⇐ y(i-1)+h*f(xc,yc) L ⇐ 1; Lm ⇐ 2 répète xc ⇐ x(i-1); yc ⇐ y(i-1) Pour j ⇐ 1,Lm,l fais

xc ⇐ xc+h/Lm yc ⇐ yc+h/Lm*f(xc,yc) fin faire j T(L+1) ⇐ yc; m ⇐ 1

211

8. Equations différentielles ordinaires

k ⇐ L; mm ⇐ 2 Et ⇐ 1 Si k > 1 alors fais répète T(k) ⇐ (mm*T (k+l)-T(k)/(mm-1) Et ⇐ |(T(k)-T(k-1))| m ⇐ m+1; k ⇐ k-1 mm ⇐ 2*mm; jusqu'à ce que (Et < err) OU (k = 1) fin si Si k=l alors fais L ⇐ L+1; Lm ⇐ 2*Lm fin si jusqu'à ce que (L = Na) OU (Et < err); x(i) ⇐ x(i-1)+h; y(i) ⇐ t(k); y1(i) ⇐ f(x(i),y(i)); Fin faire i (et du sous-programme}

3. Affichage des résultats Pour i ⇐ 0,n,l fais Ecris : i, x(i),y(i),f(x(i),y1(i)) Fin faire i

8.1.3 MÉTHODES DU QUATRIÈME ORDRE Toutes les méthodes à pas séparées, même les méthodes itératives entrevues précédemment, présentent toujours la configuration générale suivante :

yi+1 = yi + Φ(xi,yi,h) . h. Les méthodes du premier et du second ordre ont été étudiées aux sous-chapitres précédents. Dans la plupart des cas, la solution numérique de l'équation différentielle du premier ordre s'effectue en intro-duisant une méthode du quatrième ordre, nommée le plus souvent par méthode de Runge-Kutta. 8.1.3.1 PROPRIÉTÉS DES MÉTHODES À PAS SÉPARÉS Nous ne voulons pas justifier ici les diverses propriétés demandées aux méthodes numériques de résolution des équations différentielles, mais plutôt citer les divers points à prendre en considération dans une étude plus complète. Les démonstrations sont très souvent assez complexes. Elles font intervenir le développement en série de Taylor du même ordre que celui de la méthode. L'erreur de troncature est donnée par les termes négligés dans le développement. 1. Convergence La méthode numérique converge, si dans l'intervalle [xa,xb], pour une suite de valeurs yi calculées, l'écart avec la solution exacte diminue lorsque la valeur du pas h tend vers zéro. 2. Stabilité La méthode numérique est dite stable si l'erreur tolérée à chaque pas diminue ou reste de même ordre de grandeur lors des pas suivants. Elle est dite instable lorsque, après un certain nombre de pas, l'approximation yi+1 s'éloigne tellement de la valeur vraie de la fonction yi+1 que la solution est complètement faussée. Pour les algorithmes d'intégration des équations différentielles ordinaires, on peut distinguer deux sortes d'instabilité : 2.1 l'instabilité inhérente : Certaines équations différentielles ne peuvent pas, lors du choix de condi-

tions initiales particulières, être intégrées par les méthodes numériques. On ne peut pas remédier à cet état de fait.

212

8. Equations différentielles ordinaires

2.2 l'instabilité numérique : Celle-ci est due au choix de la méthode d'intégration, particulièrement au choix du pas d'intégration h. Un seul remède possible consiste à changer la taille du pas h ou de la méthode numérique introduite dans la solution.

2.3 Très souvent, lorsque la méthode utilisée est instable, l'amplification des erreurs est d'allure ex-ponentielle. Après quelques calculs, les résultats provoquent un dépassement de capacité de la représentation des nombres (et de l'affichage !).

3. Consistance Le schéma de calcul de yi+1 = yi + Φ(xi,yi,h) . h est consistant si :

1 01hy y x y hi⋅ − − →+i i ib g b gΦ , ,

quand h Æ 0 . Cette relation signifie que la méthode doit être une approximation plausible de la solution. Si la mé-thode est stable et consistante, alors elle devrait converger pour n'importe quelle valeur initiale. 8.1.3.2 MÉTHODES DE RUNGE - KUTTA Les méthodes de Runge et de Kutta utilisent toutes les deux un schéma général du quatrième ordre de la forme : k1 = f(xi,yi),

k2 = f(xi + a1 h ⋅ yi + a2 h k1),

k3 = f(xi + b1 h ⋅ yi + b2 h k2),

k4 = f(xi + h ⋅ yi + c2 h k3).

Les erreurs d'évaluation et d'approximation sont bien plus faibles que celles obtenues par les mé-thodes du second ordre. Elles sont facilement programmables, donc d'usage très courant.

1. Méthode de Runge Dans la méthode de Runge (1924), les quatre évaluations successives sont effectuées : - la première : au point initial, - la seconde : au point d'abscisse xi + 0,5 h, - la troisième : au point d'abscisse xi + 0,5 h, - la quatrième : au point d'abscisse xi + h. Les valeurs des évaluations sont :

k1 = f(xi ⋅ yi),

k2 = f(xi + 0,5 h ⋅ yi + 0,5 h k1),

k3 = f(xi + 0,5 h ⋅ yi + 0,5 h k2),

k4 = f(xi + h ⋅ yi + h k3).

L’évaluation de la nouvelle valeur de la fonction yi+1 s'effectue par la relation :

y y h k k k ki i+ = + ⋅ + + +1 1 2 362 ( ) .4

2. Méthode de Kutta Dans la méthode de Kutta, les quatre évaluations successives sont effectuées : - la première : au point initial, - la seconde : au point d'abscisse xi + (1/3) h, - la troisième : au point d'abscisse xi+ (2/3) h, - la quatrième : au point d'abscisse xi + h.

Les valeurs des évaluations sont :

k1 = f(xi , yi),

213

8. Equations différentielles ordinaires

k2 = f(xi + h/3 ⋅ yi + h k1/3),

k3 = f(xi + 2 h/3 ⋅ yi - h k1/3 + h k2)

k4 = f(xi + h ⋅ yi + h k1 - h k2 + h k3).

L'évaluation de la nouvelle valeur de la fonction yi+1 s'effectue par la relation :

y y h k k k ki i+ = + ⋅ + + +1 1 2 383( ) .4

L'erreur globale des méthodes de Runge et Kutta, sur n intervalles de pas h, est de l'ordre de h4. 8.1.3.3 ALGORITHME DES MÉTHODES DE RUNGE ET KUTTA La méthode d'initialisation de l'intégration numérique, à partir des bornes et du nombre de pas, est la même pour les deux méthodes de calcul. L'algorithme proposé ici fait appel soit à la méthode de Runge, soit à la méthode de Kutta.

A L G 0 R I T H M E

Méthodes de Runge et de Kutta

1. Initialisation Lis : xmin,xmax,y0,n h ⇐ (xmax-xmin)/n

2. Appel de l'une des procédures x(0) ⇐ xmin; y(0) ⇐ y0 fi Appel Procédure Runge fi Appel Procédure Kutta

3. Affichage des résultats Pour i ⇐ 0,n,1 fais Ecris : i,x(i),y(i) fin faire i (Fin de l'algorithme)

4. Procédure Runge Pour i ⇐ 1,n,1 fais

j ⇐ i-1 kl ⇐ f(x(j),y(j)) k2 ⇐ f(x(j)+0.5*h,y(j)+0.5*h*kl) k3 ⇐ f(x(j)+0.5*h,y(j)+0.5*h*k2) k4 ⇐ f(x(j)+h,y(j)+h*k3) x(i) ⇐ x(j)+h

y(i) ⇐ y(j)+h*(^k1+2*(k2+k3)+k4)/6 Fin faire i

5. Procédure Kutta Pour i ⇐ 1,n,1 fais

j ⇐ i-1 kl ⇐ f(x(j),y(j)) k2 ⇐ f(x(j)+h/3,y(j)+h*k1/3) k3 ⇐ f(x(j)+2*h/3,y(j)-h*ki/3+h*k2) k4 ⇐ f(x(j)+h,y(j)+h*(kl-k2+k3)) x(i) ⇐ x(j)+h) y(i) ⇐ y(j)+h*(k1+3*(k2+k3)+k4)/8 Fin faire i

214

8. Equations différentielles ordinaires

Les variables utilisées ici correspondent à celles du texte. La fonction y' = f xj,yj) est programmée par f(x(j),y(j)) . Les autres variables sont principalement : xmin,xmax bornes de l'intégration, n nombre de pas, y0 valeur initiale de la fonction, x(i) variable indépendante xi, y (i) fonction yi, k1, k2, k3, k4 valeurs des coefficients d’évaluations. Pour utiliser cet algorithme, il ne faut pas oublier d'expliciter l'équation différentielle sous la forme gé-nérale : y’ = f(xi,yi), c’est-à-dire d'isoler y' à gauche du signe d'égalité. 8.1.3.4 APPLICATION DE L'ALGORITHME DES MÉTHODES DE RUNGE–KUTTA Soit à résoudre l'équation différentielle : y' = x2 . y . Les bornes de l'intégration étant : 0,0 £ x £ 1,0 ; avec la condition intiale : x0 = 0 et y0 = 1.0 . La solution analytique de l'équation différentielle est : y = exp(x3/3). Le tableau ci-après donne le résultat de l'évaluation par les deux méthodes et la valeur de la fonction exacte.

Solutions numériques de l'équation différentielle : y' = x2•y Point Variable Méthode utilisée No x Runge Kutta Fonction y 0 0.000 1.00000000 1.00000000 1.00000000 1 0.100 1.00033339 1.00033339 1.00033339 2 0.200 1.00267022 1.00267023 1.00267023 3 0.300 1.00904061 1.00904064 1.00904062 4 0.400 1.02156250 1.02156254 1.02156252 5 0.500 1.04254689 1.04254696 1.04254691 6 0.600 1.07465532 1.07465544 1.07465534 7 0.700 1.12112574 1.12112597 1.12112577 8 0.800 1.18609527 1.18609568 1.18609532 9 0.900 1.27506853 1.27506927 1.27506862 10 1.000 1.39561222 1.39561352 1.39561243 8.1.3.5 MÉTHODE DE GILL La méthode de Gill est aussi une méthode du quatrième ordre qui se prête bien à la solution nu-mérique d'équations différentielles dans les ordinateurs dits très rapides. Les évaluations successives s'effectuent aux points suivants : - la première : au point initial xi, - la seconde : au point d'abscisse xi + 0,5 h, - la troisième : au point d'abscisse xi + 0,5 h, - la quatrième : au point d'abscisse xi + h. Les valeurs des évaluations sont : k1 = f(xi,yi),

k2 = f(xi + 0,5 h , yi + 0,5 h k1),

215

8. Equations différentielles ordinaires

k3 = f(xi + 0,5 h , yi + a h k1 + b h k2),

k4 = f(xi + h , yi - c h k2 + d h k3),

avec : a = ( 2 - 1)/2, b = (2 - 2 )/2, c = 0,5 2 , d = (2 + 2 )/2. L'évaluation de la nouvelle valeur de la fonction yi+1 se trouve par l'expression :

y y h k k ki i+ = + ⋅ + − ⋅ + + ⋅ +1 1 2 362 2 2 2( ) ( ) k4 .

L'algorithme de la procédure de Gill est donnée ci-après., l'initialisation et l'écriture des résultats étant les mêmes que pour les méthodes de Runge et Kutta entrevues précédemment.

A L G O R I T H M E

6. Procédure de Gill ra05 ⇐ (0,5)^0.5 Pour i ⇐ 1,n,1 fais j ⇐ i-1 k1 ⇐ h*f(x(j),y(j)) k2 ⇐ h*f(x(j)+h/2,y(j)+k1/2) k3 ⇐ h*f(x(j)+h/2, y(j)+(ra05-0.5)*k1+(1-ra05)*k2) k4 ⇐ h*f(x(j)+h,y(j)-ra05*k2+(1+ra05)*k3) x(i) ⇐ x(j)+h y(i) ⇐ k1+2*((1-ra05)*k2+(1+ra05)*k3)+k4)/6 Fin faire i

(fin de la procédure Gill} 8.1.3.6 CHOIX DU PAS D'INTÉGRATION L'avantage essentiel des méthodes à pas séparés est de pouvoir choisir et surtout de pouvoir mo-difier le pas en cours de calcul. L'inconvénient est de devoir évaluer plusieurs fois, par exemple quatre fois, la valeur de l'expression de l'équation différentielle. Le choix du pas influe directement sur la pré-cision du résultat. Une estimation de la valeur initiale de la longueur du pas h peut être obtenue par la relation :

hL

≈ ⋅1

5

où : L ≥ I D f(x,y) I . D désigne la dérivée partielle de la fonction f(x,y) par rapport à la seconde varia-ble y . Il existe ensuite différents critères qui permettent de contrôler si la longueur du pas est satisfai-sante ou non, c'est-à-dire si elle ne donne pas lieu à une trop grande erreur de discrétisation ou, au contraire, à un trop grand nombre d'opérations, donc à une augmentation de l'erreur d'arrondi. Celui qui exige le moins d'évaluations numériques, pour les deux méthodes de Runge et Kutta, consiste à calculer, à la fin de chaque pas, la valeur du rapport :

k k kk k

= ⋅−−

⋅2 i2 i3

i1 i2

Pour 0.1 £ k £ 0.2 , la précision est généralement suffisante dans le résultat. Il faudra par contre aug-menter la longueur du pas pour k < 0,1 et la diminuer pour k > 0,2 .

216

8. Equations différentielles ordinaires

8.2 ÉQUATIONS DIFFÉRENTIELLES DU PREMIER ORDRE : MÉTHODES À PAS LIÉS

Dans les méthodes à pas séparés, les divers calculs de la fonction y’i = f(xi,yi) sont indépendants des valeurs de l'étape précédente. Ces méthodes imposent plusieurs approximations afin d'atteindre des résultats précis. Dans les méthodes dites à pas liés, le principe du calcul est de réutiliser les ré-sultats précédents. 8.2.1 MÉTHODES À PAS LIÉS EXPLICITES La nouvelle valeur de la fonction recherchée yi+1 est évaluée à partir des approximations précé-dentes yi , yi-1, , yi-2, etc. La formule générale de la nouvelle approximation est : yi+1 = a0 yi + a1 yi-1 + a2 yi-2 + . . . + ak yi-k + + h . [b-1 f(x,y)i+1 + b0 f(x,y)i + b1 f(x,y)i-1 + b2 f(x,y)i-2 + . . .+ bk f(x,y)i-k] .

Cette même expression développée peut s'écrie sous la forme condensée suivante :

y a y h b x yi j i j jj

k

j

k

f+ −==

= ⋅ + ⋅ ⋅∑∑110

( , ) .i j−

Les calculs de la fonction y' = f(x,y) sont effectués seulement aux points de définition de la variable indépendante, soit en x0, x1, x2, . . . , xj, . . . , xn-1, xn. 8.2.1.1 CONSIDÉRATIONS GÉNÉRALES Les méthodes à pas liés sont généralement plus rapides que les méthodes à pas séparés. Leur précision est très souvent suffisante. Une difficulté intervient pour les premiers pas d'intégration puis-que le nombre de valeurs de la fonction yi n'est pas suffisant pour obtenir les valeurs précédentes de la fonction. Pour démarrer, ces méthodes introduisent l'une des méthodes à pas séparés suffisam-ment précise dans les premiers intervalles d'intégration. Le schéma est dit explicite lorsque b-1 = 0 dans la relation ci-dessus. La valeur de la fonction yi+1 peut s'obtenir directement par application de l'une des formules particulières yi+1 = schéma. Le schéma est dit implicite lorsque b-1 ≠ 0 dans la relation ci-dessus. Il faut alors résoudre une équa-tion de la forme : yi+1 = Φ yi+1 , pour pouvoir trouver la nouvelle valeur de la fonction. L’erreur de troncature, dans les méthodes à pas liés, se trouve à partir du développement classique de Taylor. Désignons par y(xi) la valeur exacte de la fonction et par yi son approximation.

y x y x h y x h y x h y x hp

y x h hip( ) ( ) ( ) ' ( ) ( )

!' ' ( ) ( )

!' ' ' ' ( ) ... ( )

!( ) ( )( )

i j i i i

p

ipj j j j

+ = + + ⋅ + ⋅ + + ⋅ + ⋅2 3

2 3ε .

Pour la fonction f(xi+j,yi+j), nous obtenons :

f j jpi j i j i i

pp

ip( , ) ' ( ) ' ' ( ) ... ( )

( )!( ) ( )( )x y y x h y x h y x h h+ + .

= + + +−

⋅ + ⋅1

Exemple : Calcul de l'erreur de troncature, d'ordre 2, dans la formule de schéma implicite. Utilisons dans ce but la méthode de Heun en introduisant la moyenne de deux pentes et exprimons yi+1 par : yi+1 = yi + (h/2) . (fi + fi+1) . L'erreur de troncature peut s'exprimer par la différence entre la valeur exacte et l'approximation : Erreur = y(xi+1) – yi+1 = y(xi+1) – yi - (h/2) . (fi + fi+1). Nous pouvons écrire (h/2) . fi = (hl2) . y’(xi),

217

8. Equations différentielles ordinaires

et : (h/2).fi+1 = (h/2).y’(xi+h) = (h/2).y’(xi) + (h2/2!).y’’(xi) + (h3/3!).y’’’(xi) + h3-ε(h) ,.

d'où Erreur = ⋅ + ⋅h y x h hi

33

12' ' ' ( ) ( ) .ε

8.2.1.2 RECHERCHE GÉNÉRALE DES SCHÉMAS D'APPROXIMATION Connaissant les points de définition de la variable indépendante xi, xi-1, xi-2, . . . , et en supposant que nous connaissions également les valeurs exactes de la fonction aux mêmes points yi, yi-1, yi-2, . . . , nous pouvons admettre que cette fonction peut se représenter par un polynôme P(x). Une nouvelle valeur de la fonction s'exprime alors par :

y y xx

x

i i m P di m

i

+ −= + ⋅−

+z11 ( ) .x

x

x

D'après cette relation, l'intervalle d'intégration [xi-m,,xi+1] dépasse l'intervalle de définition [xi-m,xi]. Il devient nécessaire de procéder à une extrapolation. Dans les méthodes implicites, la valeur y(xi+1) peut être approximée par la formule de prédiction :

y y xx

x

ip

i m P di m

i

+ −= + ⋅−

+z11 ( ) .

Cette relation sert à évaluer la fonction y’i+1 = fi+1 = f(xi+1,yi+1). Une réévaluation de la fonction suit cette première opération en introduisant une formule de correction utilisant un nouveau polynôme algé-brique P*(x) :

y y xx

x

ic

i m P * di m

i

+ −= + ⋅−

+z11 ( ) .

Les coefficients des polynômes sont recherchés en partant par exemple de la formule d'interpolation de Newton en sens inverse puisque le pas est constant et les abscisses décroissantes. Une seconde voie pour obtenir les coefficients des polynômes consiste à remplacer dans l'expression générale yi+1 les dérivées successives par les dérivées de xn. 8.2.1.3 MÉTHODES D'ADAMS - MOULTON Nous donnons ici l'une des nombreuses méthodes à pas liés en introduisant les relations du pré-dicteur et du correcteur. 1. Schéma de calcul Nous proposons les schémas de premier et de second ordres d'Adams-Moulton. Prédicteur :

- ordre 1 : y y h y yiP

i i i+ −= + ⋅ −1 123( ) . ' '

- ordre 2 : y y h y y yiP

i i i+ −= + ⋅ − +1 11223 16 5( )i−2

' ' ' .

Correcteur :

- ordre 1 : y y h y yic

i i+1 i+ −= + ⋅ +1 12( ) . ' '

- ordre 2 : y y h y y yic

i i+1 i+ −= + ⋅ + −1 1125 8( )i

' ' ' .

2. Algorithme de la méthode Cet algorithme utilise des valeurs préliminaires de la solution obtenue par la méthode de Runge du quatrième ordre. Cette initialisation est utilisée sur deux pas. L'algorithme proposé contient trois parties : initialisation, méthode de Runge et méthode d'Adams-Moulton. Les valeurs initiales sont in-troduites comme dans l'algorithme de Runge et Kutta. Dans cet algorithme, les variables proposées ont la signification suivante : xmin borne inférieure d'intégration, y0 valeur initiale de la fonction recherchée,

218

8. Equations différentielles ordinaires

h pas d'intégration (constant), i compteur, x(i) variable indépendante, y(i) valeur de la fonction recherchée, y1(i) valeur de la dérivée y' au pas i, kl,k2,k3,k4 poids dans l'évaluation de Runge, f(x,y) fonction y'= fx,y), ypred prédicteur.

A L G 0 R I T H M E Procédure à pas liés d'Adams-Moulton

1. Initialisation x(0) ⇐ xmin; y(0) ⇐ y0 y1(0) ⇐ f(xmin,y0)

2. Méthode de Runge 4 kl ⇐ f(x(i),y(i)) k2 ⇐ f(x(i)+h/2,y(i)+h*k1/2) k3 ⇐ f(x(i)+h/2,y(i)+h*k2/2) k4 ⇐ f(x(i)+h,y(i)+h*k3) x(i+l) ⇐ x(i)+h y(i+l) ⇐ y(i)+h*(k1+2*(k2+k3)+k4)/6 y1(i+1) ⇐ f(x(i+1),y(i+1))

3. Méthode du second ordre Pour i ⇐ 0,1,1 appelle Runge4 fin faire i Pour i ⇐ 2,n-1,1 fais x(i+1) ⇐ x(i)+h ypred ⇐ y(i)+h*(23*y1(i)-16*y1(i-1)+5*y1(i-2))/12 ypred ⇐ f(x(i+1),yp) y(i+1) ⇐ y(i)+h*(5*ypred+8*y1(i)-y1(i-1))/12 y1(i+1) ⇐ f(x(i+1),y(i+1)) Fin faire i

8.2.1.4 MÉTHODES DE MILNE Une autre collection de méthodes à pas liés se compose des formules proposées par Milne. Ces relations font intervenir un calcul de la fonction yi+1 en partant d'un point situé bien avant le point pré-cédent. Dans ces méthodes, les coefficients sont symétriques. 1. Schéma de calcul Nous proposons le schéma de second et de quatrième ordres. Prédicteur :

- ordre 2 : y y h y y yiP

i-3 i i i+ −= + ⋅ − +1 143

2 2( )−2' ' ' .

- ordre 4 : y y h y y y y yiP

i-5 i i i i i+ − −= + ⋅ − + − +1 1 2310

11 14 26 14 11( )' ' ' ' '− −3 4 .

Correcteur :

- ordre 2 : y y h y y yic

i-1 i+1 i+ −= + ⋅ + +1 134( )1

' ' ' .

- ordre 4 : y y h y y y y yic

i-3 i+1 i i i i+ −= + ⋅ + + + +1 1245

7 32 12 32 7( )− −2 3' ' ' ' ' .

219

8. Equations différentielles ordinaires

2. Test des diverses formules ou schémas de calcul Les quatre méthodes proposées dans ce sous-chapitre sont utilisées pour résoudre l'équation dif-férentielle : y' = x2 . y, les bornes d'intégration étant : 0,0 £ x £ 1,0; avec les conditions initiales : x0 = 0 et y0 = 1,0.

Solutions numériques de l'équation différentielle : y' = x2.y

Point x Adams Adams Milne Milne No Ordre 1 Ordre 2 Ordre 2 Ordre 4 0 0.00 1.00000000 1.00000000 1.00000000 1.00000000 1 0.10 1.00033339 1.00033339 1.00033339 1.00033339 2 0.20 1.00283722 1.00267022 1.00267022 1.00267022 3 0.30 1.00938049 1.00904448 1.00904061 1.00904061 4 0.40 1.02209071 1.02157466 1.02156380 1.02156250 5 0.50 1.04329342 1.04257369 1.04254865 1.03477180 6 0.60 1.07567091 1.07470563 1.07465892 1.07437184 7 0.70 1.12249053 1.12121195 1.12113055 1.12101972 8 0.80 1.18793176 1.18623507 1.18610289 1.18577664 9 0.90 1.27756170 1.27528773 1.27507868 1.26720456 10 1.00 1.39904153 1.39594927 1.39562679 1.39431941 Les résultats sont à comparer avec ceux de l'évaluation par Runge et Kutta sous 8.1.3.4. Ce dernier tableau donne la valeur exacte de la solution de l'équation différentielle. 8.2.2 MÉTHODES À PAS LIÉS IMPLICITES Dans les méthodes purement implicites, la méthode générale de solution utilise des approxi-mations successives en partant d'une valeur approchée de yi+1. L'application des formules est poursuivie jusqu'à ce que la différence entre deux itérations soit inférieure à l'erreur admissible. Un premier calcul peut s'effectuer au moyen d'une formule de prédiction suivie d'une formule itérative de correction.

220

8. Equations différentielles ordinaires

8.3 SYSTÈMES D’ÉQUATIONS DIFFÉRENTIELLES DU PREMIER ORDRE De nombreux problèmes techniques font apparaître des systèmes d'équations différentielles de premier ou de second ordre. Nous voulons traiter ici le cas simple d'un système d'équations différen-tielles du premier ordre. 8.3.1 PRINCIPE DE LA SOLUTION Considérons un système de n équations différentielles du premier ordre pour les variables dépen-dantes y1, y2, y3, . . . , yn, x étant la variable indépendante : y’1 = f1(x,y1,y2,y3, . . . ,yn), y’2 = f2(x,y1,y2,y3, . . . ,yn), y’3 = f3(x,y1,y2,y3, . . . ,yn), . . . . . . . . . . . . . . . . . . . . y’n = fn(x,y1,y2,y3, . . . ,yn).

Cette collection d'équations différentielles du premier ordre est sous une forme résolue. Les conditions initiales sont données pour les points ayant une abscisse commune à x0. y1 (x0) = y1,0, y2 (x0) = y2,0, y3 (x0) = y3,0, . . . . . . . . . . . . yn (x0) = yn,0.

La solution d'un tel système n'est, en principe, pas plus difficile que celle d'une seule équation diffé-rentielle ordinaire du premier ordre. Il suffit d'appliquer, à chaque pas d'intégration, l'algorithme sélec-tionné pour chacune des n équations en parallèle. 8.3.2 SYSTÈME DE DEUX ÉQUATIONS DIFFÉRENTIELLES Montrons le principe de la solution générale au cas particulier d'un système constitué par deux équations différentielles du premier ordre. Donnons l'algorithme de la solution en introduisant la mé-thode de Runge du quatrième ordre. Les deux équations différentielles doivent s'écrire en isolant à gauche du signe d'égalité les dérivées écrites ici y' et z'. Les variables à programmer sont : x variable indépendante, y,z variables dépendantes. Dans cet algorithme, les variables proposées ont la signification suivante xmin, xmax bornes inférieure et supérieure d'intégration, n nombre de pas, h pas (constant), x(i) variable indépendante des deux E.D., y(i),z(i) variables dépendantes des deux E.D., y0,z0 valeurs initiales à x0, y1(i),z1(i) valeurs de la dérivée, fnyy(...) partie droite de la première équation différentielle, fnyz(...) partie droite de la seconde équation différentielle, k1, k2, k3, k4 poids ou coefficients dans la méthode de Runge pour la première quation, l1,l2,l3,l4 poids ou coefficients dans la méthode de Runge pour la seconde équation, i,j compteurs de boucle.

221

8. Equations différentielles ordinaires

A L G 0 R I T H M E Solution d'un système de 2 équations différentielles du premier ordre

1. Initialisation Lis : xmin,xmax,n,y0,z0 x(0) ⇐ xmin y(0) ⇐ y0; z(0) ⇐ z0 y1(0) ⇐ fnyy(xmin,y0,z0) z1(0) ⇐ fnyz(xmin,y0,z0)

2. Calcul des valeurs des fonctions Pour i ⇐ 1,n,1 fais j ⇐ i-1 k1 ⇐ h*fnyy(x(j),y(j),z(j)) l1 ⇐ h*fnyz(x(j),y(j),z(j)) k2 ⇐ h*fnyy(x(j)+0.5*h,y(j)+0.5*k1,z(j)+0.5*l1) l2 ⇐ h*fnyz(x(j)+0.5*h,y(j)+0.5*k1,z(j)+0.5*l1) k3 ⇐ h*fnyy(x(j)+0.5*h,y(j)+0.5*k2,z(j)+0.5*l2) l3 ⇐ h*fnyz(x(j)+0.5*h,y(j)+0.5*k2,z(j)+0.5*l2) k4 ⇐ h*fnyy(x(j)+h,y(j)+k3,z(j)+l3) l4 ⇐ h*fnyz(x(j)+h,y(j)+k3,z(j)+l3) x(i) ⇐ x(j)+h y(i) ⇐ y(j)+(k1+2*(k2+k3)+k4)/6 z(i) ⇐ z(j)+(l1+2*(l2+l3)+l4)/6 y1(i) ⇐ fnyy(x(i),y(i),z(i)) z1(i) ⇐ fnyz(x(i),y(i),z(i)) Fin faire i

3. Affichage des résultats Pour i ⇐ 0,n,1 fais Ecris : i,x(i),y(i),y1(i)z(i),z1(i) Fin faire i

Exemple : Soit à résoudre le système de deux équations différentielles :

ddyx

z+ = 0, et ddzx

y+ =4 0.

Les conditions initiales sont : pour x = 0 : y(x0) = 2 et z(x0) = 0.

Solution numérique d'un système de 2 équations différentielles du premier ordre Point Variable Variable y Variable z No x Fonction fnyy(x,y,z) Fonction fnyz(x,y,z) 0 0.00 2.000000 0.00000 0.000000 -8.00000 1 0.10 2.040133 0.80533 -0.805333 -8.16053 2 0.20 2.162142 1.64299 -1.642987 -8.64857 3 0.30 2.370923 2.54658 -2.546579 -9.48369 4 0.40 2.674855 3.55237 -3.552372 -10.69942 5 0.50 3.086136 4.70073 -4.700732 -12.34455 6 0.60 3.621272 6.03774 -6.037744 -14.48509 7 0.70 4.301738 7.61707 -7.617067 -17.20695 8 0.80 5.154845 9.50208 -9.502083 -20.61938 9 0.90 6.214828 11.76844 -11.768442 -24.85931 10 1.00 7.524229 14.50710 -14.507099 -30.09692

222

8. Equations différentielles ordinaires

Les fonctions à introduire dans l'algorithme sont : fnyy = - z et fnyz = - 4 y La solution analytique de ce système d'équations différentielles est : y = C1 e2x + C2 e-2x et z = -2 (C1 e2x - C2 e-2x) , avec: C1 = C2 = 1. Pour x = 1, les deux fonctions valent : y(x=1) = 7,524391 et z(x=1) = -14.507442. Le résultat de l'intégration numérique est pleinement satisfaisant dans ce cas.

8.4 ÉQUATIONS DIFFÉRENTIELLES D’ORDRE SUPÉRIEUR Pour résoudre une équation différentielle d'ordre plus grand que le premier, il est possible de ra-mener l'intégration de cette équation différentielle à l'intégration d'un système d'équations diffé-rentielles du premier ordre. 8.4.1 MÉTHODE GÉNÉRALE L'intégration d'une équation différentielle ordinaire du nième ordre pour une fonction y(x) : y(n)(x) = f (x,y,y’,y’’,y’’’, . . . , y(n-2),y(n-1)),

où : y yx

( ) ,kk

k

dd

=

avec les conditions initiales : y(x0) = y0, y’(x0) = y’0, y(n-1) = y0

(n-1), peut être ramenée à l'intégration d'un système d'équations différentielles du premier ordre grâce aux substitution : y(k) = yk+1 avec k = 1,2,3, . . . ,n-1. Cette substitution donne le système équivalent : y’1’ = y2 = f1 (x,y,y1,y2, . . . ,yn), y’2’ = y3 = f2 (x,y,y1,y2, . . . ,yn), y’3’ = y4 = f3 (x,y,y1,y2, . . . ,yn), . . . . . . . . . . . . . . . . . . . . . y’n-1’ = yn = fn-1 (x,y,y1,y2, . . . ,yn), y’n’ = fn (x,y,y1,y2, . . . ,yn). Les conditions initiales sont données par l'expression générale : y(k)(x0) = y(k) = yk+1 (x0) = yk+1,0 , avec : k = 0, 1,2,3 . . . n-1.

Exemple : Considérons l'équation différentielle du second ordre : y’’ + x . y' + 3 y = 0. Les conditions initiales sont : - pour x0 = 0, y(x0) = 1 et y’(x0) = 0. Les substitutions proposées donnent successivement les expressions suivantes y’(0) = y1, y’ = y2 = f1 (x,y1,y2), y" = y3 -x . y2 - 3 y1 = f2 (x,y1,y2). Après ces substitutions, les conditions initiales deviennent x0 = 0, y10 = 1, y20 = 0.

223

8. Equations différentielles ordinaires

Cet exemple est solutionné au moyen de l'algorithme pour un système de deux équations diffé-rentielles du premier ordre. Les fonctions à programmer sont alors : fnyy = z, fnyz = - (x*z + 3*y)

L'intégration s'effectue sur 10 pas pour 0,0 £ x £ 1, 0, le pas d'intégration valant ainsi h = 0,1.

Solution numérique de l'équation différentielle du second ordre Valeurs calculées au moyen d'une précision de 10 chiffres

No x Fonction f(x,y1,y2) y' y" 0 0.00 1.0000000 0.0000000 0.0000000 -3.0000000 1 0.10 0.9850625 -0.2975075 -0.2975075 -2.9254367 2 0.20 0.9409916 -0.5802754 -0.5802754 -2.7069196 3 0.30 0.8699598 -0.8345833 -0.8345833 -2.3595043 4 0.40 0.7754214 -1.0486582 -1.0486582 -1.9068008 5 0.50 0.6618780 -1.2134329 -1.2134329 -1.3789177 6 0.60 0.5345799 -1.3230702 -1.3230702 -0.8098975 7 0.70 0.3991875 -1.3752173 -1.3752173 -0.2349105 8 0.80 0.2614226 -1.3709785 -1.3709785 O.3125150 9 0.90 0.1267347 -1.3146240 -1.3146240 0.8029576 10 1.00 0.0000085 -1.2130771 -1.2130771 1.2130516 8.4.2 ÉQUATION DIFFÉRENTIELLE DU SECOND ORDRE L'équation différentielle du second ordre peut aussi se résoudre en introduisant la méthode de Runge sur la double intégration de l'équation différentielle. Les relations proposées pour trouver la valeur de la fonction et de sa dérivée sont données ci-après. k1 = h . f (xj,yj,y'i),

k2 = h . f (xi + 0,5 h, y’i + 0,5 h . (y’i + 0,25 k1), yi + 0,5 k1),

k3 = h . f (x, + 0,5 h, y’i + 0,5 h . (y’i + 0,25 k1), y’i + 0,5 k2),

k4 = h . f (xi + h, h . (y'i + 0,5 k3), y'i + k4).

Les nouvelles valeurs de la fonction et de sa dérivée se calculent par les deux expressions :

y y h y k k ki ii+ = + ⋅ + ⋅ + +LNM

OQP1 1

16

' ( )2 3 .

y y k k k ki 1 i+ = + + + +' ' ( )16

21 2 3 4 .

Appliqué à la même équation différentielle du second ordre, le calcul numérique donne pratiquement les mêmes résultats que précédemment.

224

8. Equations différentielles ordinaires

8.5 EXERCICES : ÉQUATIONS DIFFÉRENTIELLES

8.1 Trouvez le tableau de valeurs discrètes de la fonction y = f(x) dont l'équation différentielle présente la forme proposée y' = f (x,y). Les limites d'intégration sont données entre parenthèses. La valeur de la variable indépendante est représentée par x, celle de la variable dépendante par y. Donnez le résultat pour 5, 10 et 20 pas d'intégration. Comparez les valeurs obtenues pour la fonction et pour sa dérivée première, y' + y cos x - 0,32 sin(2 x) = 0 ( 0 £ x £ 0,5 pi) y(x0) = 2,0 . 3 y' - 4 exp(-0,2 x) + 7 x = 0 ( 0 £ x £ 2,0) y(x0) = 10,0 y' y + (9 -x2) + 2 sin x = 0 ( 0,5 £ x £ 1,5) y(x0,5) = -1,0 y’ - (1 + x2) / (1 + y2) = 0 ( 0,5 £ x £ 1,0) y(x0,5) = 0,5 y’ (x2 -y x2) - y2 + x y2 = 0 ( 0,2 £ x £ 0,5) y(x0,2) = 5 8.2 Intégrez les équations différentielles suivantes dans les limites d'intégration proposées entre parenthèses. Les valeurs initiales de chaque fonction sont également données. Indiquez le résultat du calcul numérique sous forme d'un tableau de valeurs en utilisant 5, 10 et 20 pas d'intégration. (x + y) dx + (y - x) dy = 0 (0,2 £ x £ 1,0) y(x0,2) = 1,0 (x + 3 y + 1) dx - (x - 4) dy = 0 (0,5 £ x £ 1,5) y(x0,5) = 1,0 (x + 2 y + 1) dx - (2 x + 4 y - 1) dy = 0 (0,5 £ x £ 1,0) y(x0,5) = 1,0 8.3 Intégrez les équations différentielles suivantes dans les limites d'intégration proposées entre parenthèses. Les valeurs initiales de chaque fonction sont également données. Exprimez le résultat du calcul numérique sous forme d'un tableau de valeurs en utilisant au moins 5, 10 ou 20 incréments. Comparez les valeurs numériques de la fonction pour les divers nombres de pas. y' - 2y/(1 + x)-(1 + x)3 = 0 (0,1 £ x £ 0,5) y(x0,1) = 1,0 y' - 3 y / x - (2 + x) / (x + 0,5) = 0 (1,0 £ x £ 1,5) y(x0,5) = 2,0 y + (1 - 3 x) y / x2 - 2 = 0 (0,5 £ x £ 2,5) y(x0,5) = 0,0 8.4 Intégrez les équations différentielles suivantes du second ordre dans les limites d'intégration proposées entre parenthèses. Les valeurs initiales de la fonction et de sa dérivée sont également données. Exprimez le résultat du calcul numérique sous la forme d'un tableau de valeurs en adoptant au moins 5, 10 ou 20 pas. Comparez les résultats obtenus pour la fonction et sa dérivée en fonction du nombre de pas adopté. y’’ - 6 x y' + 8 y – 2.5 x = 0 (0,0 £ x £ 1, 0) y(x0,0) = 1,0 y’(x0,0) = 0,5 y’’ - y - 8 x + 0. 5 = 0 (0,5 £ x £ 1,5) y(x0.5) = 0,0 y’(x0.5) = 1,0 y’’ - 3 y'+ 2 y = exp(-0,5 x).sin(2 x) (0,0 £ x £ pi) y(x0,0) = 1,0 y’(x0,0) = 0,0 8.5 Intégrez les équations différentielles suivantes du second ordre dans les limites d'intégration proposées entre parenthèses. Les valeurs initiales de la fonction et de ses dérivées sont également données. Exprimez le résultat du calcul numérique sous la forme d'un tableau de valeurs en adoptant au moins 5, 10 ou 20 pas. Comparez les résultats obtenus pour la fonction et sa dérivée en fonction du nombre de pas adopté. y" - 6 y' + 8 x = 1,5 sin(2 x) (0,0 £ x £ 0,5 pi) y(x0,0) = 4,0 y’(x0,0) = 3,0 y" + 2 y = 1 / (1 + cos(2 x)) (0,0 £ x £ pi) y(x0,0) = 10,0 y’(x0,0) = 10,0 y y’’ = 2 y2 + 1 (0,0 £ x £ 1,0) y(x0,0) = 1,0 y’(x0,0) = 1,0

225

8. Equations différentielles ordinaires

8.6 Un système composé de deux équations différentielles du premier ordre présente la confi-guration suivante, le symbole t étant introduit pour le temps : 4 dx/dt – dy/dt + 3 x = sin t, dx/dt + y = cos t . La solution affichée dans le livre d'exercices (N. Piskounov : Calcul différentiel et intégral) de ce sys-tème est : x = C1 e-t + C2 e-3 t ,

y = C1 e-t + C2 e-3 t + cos t . Contrôlez numériquement la solution en admettant pour les constantes : C1 = 1,0 et C2 = 2,0. Adop-tez dans ce but un intervalle d'intégration [0,b]. 8.7 Un système composé de deux équations différentielles du premier ordre présente la configu-ration suivante : dy/dx = z - y, dz/dx = - y - 3 z . La solution affichée dans le livre d'exercices (N. Piskounov -. Calcul différentiel et intégral) de ce système est : y = (C1 + C2 x) e-2 x ,

z = (C2 – C1 – C2 x) e-2 x. Contrôlez numériquement la solution en admettant pour les constantes : C1 = 0,5 et C2 = 1,0. Adoptez dans ce but un intervalle d'intégration [0,b].

226

MATHÉMATIQUES NUMÉRIQUES

BIBLIOGRAPHIE [1] Bakhvalov : Méthodes Numériques. Editions MIR, Moscou 1976. [2] Ducamp Marc, Alain Reverchon : Mathématiques. Analyse en Turbo Pascal versions 5.5 et 6.0.

Editions Eyrolles Paris 1991. Cet ouvrage contient le code d'un interpréteur de formules mathématiques, écrit en Turbo Pascal, style de programmation orientée objets (POO), utilisé ici dans les logiciels.

[3] Faddéev d.,I. Sominski -, Recueil d'exercices d'algèbre supérieure. Editions MIR, Moscou 1972. [4] Jordan_Engeln, F. Reuter : Numerische Mathematik für Ingenieure. B.I. Wissenschaftsverlag,

Mannheim, Wien, Zürich, 1978 [5] Kurosh A.: Cours d'algèbre supérieure. Editions MIR, Moscou 1971. [6] Noble Ben -. Numerisches Rechnen. BI Hochschultachenbücher 1966/70. [7] Nowakowski Claude : Méthodes de calcul numérique. Guide pratique. Tome 1. Editions du P.S.I.,

Lagny-sur-Marne 1981. [8] Nowakowski Claude : Méthodes de calcul numérique. Guide pratique, Tome 2. Editions du P.S.I.,

Lagny-sur-Marne 1983. [9] Press William H., B.P. Flannery, S.A. Teukolsky, W.T. Vetterling «. Numerical Recipes. The art of

scientific computing. Cambridge University Press, Cambridge 1989. [10] Selder Helmut : Einführung in die numerische Mathematik für Ingenieure. Cari Hanser Verlag

München 1973. [11] Stiefel E.L. : Einführung in die numerische Mathematik. Teubner 1969. [12] Wolfram Stephen .- Mathematica. A system for doing mathematics by computer. Second Edition.

Addision-Wesley Publishing Company, Inc., Redwood City Californie 1991. [13] Zurmühl R. : Praktische Mathematik für Ingenieure und Physiker. Springer Verlag 1965.