Module MÉNUM : MÉthodes NUMériques
Transcription
Module MÉNUM : MÉthodes NUMériques
ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. UED ESM Étude et modélisation des Systèmes Mécaniques Intégration numérique Module MÉNUM : MÉthodes NUMériques Jean-luc CHARLES [email protected] Arts & Métiers ParisTech Bordeaux 2010-2011 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 1 / 121 ESM–MENUM Présentation Arithm. Flottante Objectifs “Acquérir certaines méthodes numériques et notions mathématiques utiles aux sciences de l’ingénieur.” Équations Différentielles Systèmes Linéaires “Connaı̂tre les champs d’application et les limites de ces méthodes.” Équations non-linéaires Interp./Approx. Intégration numérique Programme/Plan 1 Arithmétique flottante, erreurs numériques. 2 Résolution Numérique des Équations différentielles : Méthode des différences finies. Schémas numériques : Euler, Runge-Kutta... 3 Résolution des système linéaires. 4 Résolution des équations non linéaires. 5 Interpolation, approximation. 6 Intégration numérique. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 2 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Organisation Enseignants (2010-2011) : Jean-luc CHARLES, Éric DUCASSE, Étienne PRULIÈRE 10 amphis de 1h “10h ED - 6h TP” = “16h” à partir de rentrée 2010 : 2 ED MENUM de 4h 4 fois (2h MENUM intégrés dans TDP 4h ESM) = 16h Évaluation : bilan des connaissances Amphi 1 2 épreuves de contrôle continu : 1 2 contrôle-cours (15 minutes en début d’ED1) contrôle final (30 minutes en fin d’amphi 10) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques Équations Différentielles 3 / 121 Arithmétique flottante - Nombres flottants Rappel : représentation binaire des entiers naturels 8 bits b7 b6 b5 b4 b3 b2 b1 b0 : 28 = 256 valeurs dans [0,255] 16 bits b15 b14 b13 ...b2 b1 b0 : 216 = 65536 valeurs dans [0,65535] 32 bits b31 b30 b29 ...b2 b1 b0 : 232 = 4 294 967 296 valeurs dans [0,4294967295] ... Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Rappel : représentation binaire signée des entiers relatifs bit de signe complément à 2 = (complément à 1) + 1 : soit à représenter l’entier relatif −49 sur un octet en complément à 2 ✓ représentation binaire : 49d = (32 + 16 + 1)d = 001100012 ✓ complément à un : 110011102 ✓ (complément à un) + 1 : 110011112 ✓ binaire en complément à 2 : −49d = 110011112 ✓ Vérification : −49d + 50d = 110011112 + 001100102 = 12 = 1d complément à 2 sur 8 bits : 256 valeurs dans [-128, 127] complément à 2 sur 16 bits : 65536 valeurs dans [-32768, 32767] complément à 2 sur 32 bits : 4 294 967 296 valeurs dans [-2147483648, 2147483647] v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 4 / 121 ESM–MENUM Présentation Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques Arithmétique flottante Équations Différentielles Systèmes Linéaires ■ Nombres flottants Équations non-linéaires ❏ Arrondi Interp./Approx. Intégration numérique ❏ Norme IEEE 754 ❏ Erreurs numériques v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Arithm. Flottante Nombres Flottants 5 / 121 Arithmétique flottante - Nombres flottants Représentation d’un nombre réel x en virgule flottante sur p chiffres en base β Arrondi Norme IEEE 754 Erreurs numériques Équations Différentielles x = ± d0 , d1 d2 . . . dp−1 β e 0 6 di 6 β − 1 Systèmes Linéaires Équations non-linéaires ✓ m = d0 , d1 d2 . . . dp−1 : mantisse (significant) constituée de p chiffres significatifs Interp./Approx. Intégration numérique ✓ e : exposant (entier borné : e ∈ [emin , emax ]) ✓ β : base (entier : 2, 10, 16 ...) ✓ En faisant varier e, on peut faire «flotter» la virgule (le point) ✓ Remarque : en représentation virgule fixe, la valeur de l’exposant e est fixée ✓ Représentation normalisée : → d0 est non nul : 1 6 d0 6 β − 1 → représentation flottante unique. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 6 / 121 ESM–MENUM Présentation Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques Arithmétique flottante Équations Différentielles Systèmes Linéaires ❏ Nombres flottants Équations non-linéaires ■ Arrondi Interp./Approx. ❏ Norme IEEE 754 Intégration numérique ❏ Erreurs numériques v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 7 / 121 Arithmétique flottante - Arrondi Présentation Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques Représentation d’un nombre réel x par un nombre en virgule flottante Juste x vaut exactement d0 , d1 d2 . . . dp−1 β e Équations Différentielles Systèmes Linéaires Arrondie si x est compris entre 2 flottants qui ne différent que par le dernier chiffre √ si le nombre de chiffres de x > p (exemple : π,1/3, 2) Équations non-linéaires Interp./Approx. Intégration numérique ✓ Lorsqu’on approxime x par le flottant le plus proche, on fait une erreur d’arrondi ∆x sur le dernier chiffre : ∆x 1 6 β −p+1 x 2 ✓ Le nombre ε = β −p+1 est appelé précision-machine (epsilon-machine) ✓ 1 −p+1 β 2 est le plus petit nombre positif qui, ajouté à 1, donne un résultat différent de 1 en arithmétique flottante v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 8 / 121 ESM–MENUM Présentation Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques Arithmétique flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique ❏ Nombres flottants ❏ Arrondi ■ Norme IEEE 754 ❏ Erreurs numériques v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 9 / 121 Arithmétique flottante - Norme IEEE 754 Présentation Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Norme IEEE 754 ✓ La norme IEEE 754 (1985) spécifie 4 classes de représentation des nombres réels au format binaire flottant ainsi que les opérations associées ✓ Les flottants IEEE les plus utilisés : simple et double précision : Tableau récapitulatif β Nombre de chiffres significatifs p emin emax Nombre total de bits stockés Bit de signe Nombre de bits partie fractionnaire Nombre de bits de l’exposant E (biais de l’exposant) Précision machine ε Plus petit flottant positif xmin+ Plus grand flottant xmax simple 2 24 −126 127 32 1 23 8 127 ∼ 1.2 10−7 ∼ 1.17 10−38 ∼ 3.40 1038 double 2 53 −1022 1023 64 1 52 11 1023 ∼ 2.22 10−16 ∼ 2.22 10−308 ∼ 1.79 10308 ✓ Implémentation matérielle des représentation et calculs flottants IEEE 754 dans les architecture microprocesseurs (Intel, AMD...) → performances v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 10 / 121 ESM–MENUM Arithmétique flottante - Norme IEEE 754 Présentation Arithm. Flottante Nombres Flottants Arrondi Codage binaire IEEE 754 Norme IEEE 754 b31 signe flottant simple précision (32 bits) b30 . . . b23 b22 . . . b0 e + 127 partie fract. de la mantisse b63 signe flottant double précision (64 bits) b62 . . . b52 b51 . . . b0 e + 1023 partie fract. de la mantisse Erreurs numériques Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique L’exposant e est décalé d’un biais (+127 ou +1023) permettant de représenter un exposant négatif sur 8 (ou 11) bits non signés. Exemple de codage IEEE Représentation binaire IEEE du nombre x = −118.625d . v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation 11 / 121 Arithmétique flottante - Norme IEEE 754 Valeur décimale d’un flottant binaire IEEE Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique x = (−1)s ∗ (1.m)d ∗ 2(e−E )d ✓ s : bit de signe ✓ 1.m : mantisse, dont la partie entière vaut 1 (imposée), et dont la partie fractionnaire est donnée par les bits IEEE correspondants ✓ E : décalage fixe (127 en simple précision, 1023 en double précision) ✓ Flottant simple précision : 7 1 x = (−1)b31 (1 + b22 2−1 + b21 2−2 + · · · + b0 2−23 ) 2(b30 2 +···+b24 2 +b23 −127) ✓ Flottant double précision : 10 1 x = (−1)b63 (1 + b51 2−1 + b50 2−2 + · · · + b0 .2−52 ) 2(b62 2 +···+b53 2 +b52 −1023) cas particuliers IEEE : représentations dénormalisées ✓ Le nombre 0 a une représentation IEEE où tous les bits (exposant et mantisse) sont nuls (le bit de signe peut être 0 ou 1) ✓ Des représentations IEEE binaires dénormalisées permettent de représenter : les valeurs entre 0 et le plus petit flottant positif (plus grand négatif) les “Non-Nombre” comme : ±∞ (division d’un nombre flottant par zéro par exemple) NaN : Not a Number (racine carrée d’un nombre négatif par exemple) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 12 / 121 ESM–MENUM Arithmétique flottante - Norme IEEE 754 Présentation Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Exemple Python (console) >>> import numpy as np >>> print np.finfo(float) Machine parameters for float64 --------------------------------------------------------------------precision= 15 resolution= 1.0000000000000001e-15 machep= -52 eps= 2.2204460492503131e-16 negep = -53 epsneg= 1.1102230246251565e-16 minexp= -1022 tiny= 2.2250738585072014e-308 maxexp= 1024 max= 1.7976931348623157e+308 nexp = 11 min= -max --------------------------------------------------------------------- v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 13 / 121 Arithmétique flottante - Norme IEEE 754 Présentation Arithm. Flottante Exemple : taille des types de base en C++ Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques 1 2 3 Équations Différentielles 4 Systèmes Linéaires 6 Équations non-linéaires 7 5 Interp./Approx. Intégration numérique 8 9 10 11 #include <iostream> using namespace std; main() { cout << "short int : " << sizeof(short int) << " bytes\n"; cout << "int : " << sizeof(int) << " bytes\n"; cout << "long int : " << sizeof(long int) << " bytes\n"; cout << "float : " << sizeof(float) << " bytes\n"; cout << "double : " << sizeof(double) << " bytes\n"; cout << "long double: " << sizeof(long double)<< " bytes\n"; } Compilation/exécution PC 32 bits short int : int : long int : float : double : long double: 2 bytes 4 bytes 4 bytes 4 bytes 8 bytes 12 bytes Compilation/exécution PC 64 bits <--IEEE--> <--IEEE--> short int : int : long int : float : double : long double: 2 bytes 4 bytes 8 bytes 4 bytes 8 bytes 16 bytes v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 14 / 121 ESM–MENUM Présentation Arithmétique flottante - Norme IEEE 754 Exemple C++ Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques 1 2 3 4 Équations Différentielles 5 Systèmes Linéaires 7 Équations non-linéaires 8 6 9 Interp./Approx. 10 Intégration numérique 12 11 13 14 15 16 17 18 #include <iostream> #include <limits> using namespace std; main() { cout << "Float (min, max, epsi): " << numeric_limits<float>::min() <<", " << numeric_limits<float>::max() <<", " << numeric_limits<float>::epsilon() <<endl; cout << "# decimal digit for a Float : " <<numeric_limits<float>::digits10 <<endl<<endl; cout << "Double (min, max, epsi): " << numeric_limits<double>::min() <<", " << numeric_limits<double>::max() <<", " << numeric_limits<double>::epsilon() <<endl; cout << "# decimal digit for a Double : " << numeric_limits<double>::digits10 <<endl; } À l’exécution : Float (min, max, epsi): 1.17549e-38, 3.40282e+38, 1.19209e-07 # decimal digit for a Float : 6 Double (min, max, epsi): 2.22507e-308, 1.79769e+308, 2.22045e-16 # decimal digit for a Double : 15 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation 15 / 121 Arithmétique flottante - Norme IEEE 754 Exemple Mathematica Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique du 31/01/10 ; compilé LaTeX le 31 janvier 2011 Précision machine Mathematica =v2.8flottant IEEE double précision 16 / 121 ESM–MENUM Présentation Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques Arithmétique flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique ❏ Nombres flottants ❏ Troncature et arrondi ❏ Norme IEEE 754 ■ Erreurs numériques v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 17 / 121 Arithmétique flottante - Erreurs numériques Présentation Arithm. Flottante Nombres Flottants Arrondi Erreurs numériques Norme IEEE 754 Erreurs numériques Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique ✓ L’ensemble des nombres binaires flottants IEEE est un ensemble fini de valeurs discrètes (codage sur un nombre fini de bits) : il ne correspond qu’à une petite partie de R → Erreur de discrétisation ◮ Il n’y a que ∼ 4.3 milliards (232 ≃ 4.3 109 ) nombre réels simple précision représentables ! ! il en manque une infinité ! ! ! ! ◮ Il n’y a que ∼ 18 milliards de milliards (264 ≃ 18 1018 ) de nombre réels double précision représentables ! ! il en manque une infinité ! ! ! ! ✓ En arithmétique flottante, un nombre x ∈ R qui n’a pas de représentation IEEE exacte est représenté par le nombre flottant le plus proche (tronqué et/ou arrondi au plus près) : → Erreur d’arrondi numérique ✓ Les opérations en virgule flottante (⊕, ⊖, ⊗, ⊘) n’ont pas exactement les mêmes propriétés que les opérations correspondantes dans R (+, -, *, /). Par exemple ⊕ n’est pas toujours associative ! v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 18 / 121 ESM–MENUM Présentation Arithmétique flottante - Erreurs numériques Exemple Mathematica Arithm. Flottante Nombres Flottants Arrondi Norme IEEE 754 Erreurs numériques Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Mathematica : Précision Machine 6= Précision Arbitraire v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 19 / 121 Arithmétique flottante - Erreurs numériques Présentation Arithm. Flottante Nombres Flottants Exemple C++ Arrondi Norme IEEE 754 Erreurs numériques 1 2 Équations Différentielles 4 Systèmes Linéaires 5 Équations non-linéaires Interp./Approx. Intégration numérique 3 6 7 8 9 10 11 12 13 14 #include <iostream> #include <iomanip> unsing namespace std; int main() { cout.precision(7); cout.setf(ios::scientific, ios::floatfield); float x1=10000003.0, x2=10000000.0, x3=7.501; float x12 = x1-x2, x123 = x12+x3; float y23 = -x2+x3, y123 = x1+y23; cout << "x1 : " << x1 << ", x2 : "<< x2 << ", x3 : "<< x3 << endl; cout << "(10000003.0 - 10000000.0)+ 7.501 = "<< x123 << endl; cout << " 10000003.0 + (-10000000.0 + 7.501) = "<< y123 << endl; } À l’exécution : x1 : 1.0000003e+07, x2 : 1.0000000e+07, x3 : 7.5009999e+00 (10000003.0 10000000.0)+ 7.501 = 1.0500999e+01 10000003.0 + (-10000000.0 + 7.501) = 1.1000000e+01 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 20 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Équations Différentielles ■ Introduction ❏ Différences Finie ❏ Problème à valeur initiale ❏ Schémas numériques ❏ Schémas à un pas Schéma d’Euler Schémas d’Euler modifié Schémas d’Euler-Cauchy Schéma de Kranck-Nicholson Schéma de Runge-Kutta ❏ Schémas à pas liés Schémas de Gear v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies 21 / 121 Équations différentielles - Introduction Classification des équations différentielles ✓ EDO Équations Différentielles Ordinaires (ODE, Ordinary Differential Equation) Équation de la forme : F (x, y , y ′ , ..., y (n) ) = 0 Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés ✓ EDP Équations aux Dérivées Partielles (PDE, Partial Differential Equation) font intervenir les dérivées partielles d’une fonction Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique ✓ PVI Problèmes à valeur initiale (Initial Value Problem : IVP) Problèmes différentiels pour lesquels on connait une valeur initiale (condition initiale). ′ y (x) = f (x, y (x)) ∀x ∈ [a, b] Exemple : le problème de Cauchy y (a) = y0 Sous certaines hypothèses de régularité de la fonction f (continuité + Lipschitz), on peut garantir l’unicité de la solution. ✓ PVL Problèmes à valeur aux limites (Boundary Value Problem : BVP) Problèmes différentiels pour lesquels des valeurs sont affectées sur une frontière du domaine (conditions limites). v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 22 / 121 ESM–MENUM Équations différentielles - Introduction Présentation Arithm. Flottante Équations Différentielles Introduction Résolution numérique : principe La résolution numérique d’une équation différentielle conduit à définir un Schéma numérique discrétisé : Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique ✓ Discrétisation des variables variables continues -> variables discrètes Exple : x est remplacée par xi = i h (h : pas de discrétisation) ✓ Discrétisation des fonctions les fonctions recherchées sont approchées sur un ensemble fini de points discrets Exple : y fonction de x est approchée sur l’ensemble discret {xi }i =0,...,n ✓ Discrétisation des opérateurs de dérivation remplacés par des estimateurs discrets (différences finies ...). ➩ l’équation différentielle à résoudre est remplacée une formulation algébrique discrète, plus ou moins simple à résoudre (système d’équations (linéaires / non-linéaires), suite réccurente, ...) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 23 / 121 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 24 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Équations Différentielles ❏ Introduction ■ Différences Finies ❏ Problème à valeur initiale ❏ Schémas numériques ❏ Schémas à un pas Schéma d’Euler Schémas d’Euler modifié Schémas d’Euler-Cauchy Schéma de Kranck-Nicholson Schéma de Runge-Kutta ❏ Schémas à pas liés Schémas de Gear ESM–MENUM Équations différentielles - Différences Finies Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Principe des différences finies Exemple Principe Évaluation numérique (discrète) approchée de la dérivée d’une fonction y définie sur un intervalle [a, b] ; PB à valeur initiale Schémas numériques Schémas à un pas Méthode Développement de y autour de x à l’ordre n (Taylor, nécessite y dérivable n fois) Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. y (x + h) = y (x) + hy ′ (x) + Intégration numérique h3 ′′′ hn (n) h2 ′′ y (x) + y (x) + . . . + y (x) + O(hn+1 ) 2! 3! n! ✓ [a, b] est discrétisé en n parties d’égale amplitude (pas) : h = (b − a)/n ✓ x est discrétisée en n + 1 valeurs discrètes (xi ) : xi = a + i h, i = 0, . . . , n ✓ O(hn+1 ) est le reste, qui se comporte comme hn+1 quand h → 0. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Introduction 25 / 121 Équations différentielles - Différences Finies Notations utilisées : yi est l’approximation numérique de y (xi ) yi′ est l’approximation numérique de y ′ (xi ) (n) yi est l’approximation numérique de y (n) (xi ) ... Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Approximations numériques de la dérivée première (ordre 1) ✓ Approximation à l’ordre 1 de la dérivée première progressive (forward, à droite) au point xi : Systèmes Linéaires Équations non-linéaires y ′ (xi ) = y (xi +1 ) − y (xi ) + O(h) → h yi′ = yi +1 − yi h (1) Interp./Approx. Intégration numérique ✓ Approximation à l’ordre 1 de la dérivée première rétrograde (backward, amont, à gauche) au point xi : y ′ (xi ) = y (xi ) − y (xi −1 ) + O(h) → h yi′ = yi − yi −1 h (2) Rq : on peut aussi construire des approximations d’ordre 2 de la dérivée gauche ou droite. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 26 / 121 ESM–MENUM Équations différentielles - Différences Finies Présentation Arithm. Flottante Équations Différentielles Approximations numériques de la dérivée première (ordre 2) Introduction Différences Finies ✓ Approximation à l’ordre 2 de la dérivée première centrée au point xi : Exemple PB à valeur initiale y ′ (xi ) = Schémas numériques Schémas à un pas y (xi +1 ) − y (xi −1 ) + O(h2 ) → 2h yi′ = yi +1 − yi −1 2h (3) Schémas à pas liés Systèmes Linéaires Équations non-linéaires Approximation numérique de la dérivée seconde (ordre 2) Interp./Approx. Intégration numérique ✓ Estimation à l’ordre 2 de la dérivée seconde centrée au point xi : y ′′ (xi ) = y (xi +1 ) − 2y (xi ) + y (xi −1 ) + O(h2 ) → h2 yi′′ = yi +1 + yi −1 − 2yi h2 (4) ✓ ... v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 27 / 121 Équations différentielles - Différences Finies Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Exemple : ′′ u (x) + c(x)u(x) u ′ (0) soit l’EDO suivante ku(1) + u ′ (1) = = = f (x) ∀x ∈]0, 1[ α β f et c sont 2 fonctions supposées connues ; α, β et k sont des constantes réelles. Schémas numériques Schémas à un pas Schémas à pas liés Résolution par la méthodes des différences finies à l’ordre 2 : Systèmes Linéaires ✓ l’intervalle [0, 1] est discrétisé en n parties d’égale amplitude h = Équations non-linéaires ✓ x est discrétisée par la suite (xi ) : xi = i h, i ∈ [0, n] Interp./Approx. Intégration numérique 1 n ✓ approximation numérique à l’ordre 2 de la dérivée u ′′ : ui −1 − 2ui + ui +1 ui′′ = h2 ′ ✓ calcul de u (0) = α ⇒ approx. numérique de u ′ à droite (ordre 2) : 1 ui′ = [−3ui + 4ui +1 − ui +2 +] 2h ✓ calcul de ku(1) + u ′ (1) = β ⇒ approx. numérique de u ′ à gauche (ordre 2) : 1 [ui −2 − 4ui −1 + 3ui ] ui′ = 2h v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 28 / 121 ESM–MENUM Équations différentielles - Différences Finies Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique L’équation différentielle à résoudre est remplacée par le système algébrique discret obtenu en substituant tous les opérations de dérivation par leurs formulations discrètisées : 1 [u + (h2 ci − 2)ui + ui +1 ] = f (xi ), ∀i ∈ [1, n − 1] 2 i −1 h 2 1 3 u2 = α − u0 + u1 − 2h h 2h 1 un−2 − 2 un−1 + (k + 3 )un = β 2h h 2h qui constitue un système de n + 1 équations algébriques à n + 1 inconnues. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation 29 / 121 Équations différentielles - Différences Finies Sous forme matricielle : A.U = F , avec Arithm. Flottante U = (u0 , u1 , u2 , . . . , ui , . . . , un−2 , un−1 , un )t Équations Différentielles F = (α, f1 , f2 , . . . , fi , . . . , fn−2 , fn−1 , β)t Introduction Différences Finies Exemple et pour la matrice A : PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique 3 − 2h 2 h 2 h2 1 − 2h 0 0 0 0 0 0 1 h2 0 0 0 0 0 0 1 h2 0 0 0 0 0 ... 0 0 0 0 1 h2 0 0 0 ... 0 0 1 h2 0 1 h2 c1 − 0 1 h2 0 0 ... ... 0 0 0 1 h2 0 0 0 0 ... ... 0 0 0 0 0 1 h2 0 0 0 0 0 0 1 h2 0 0 0 0 0 0 1 2h c2 − 2 h2 ci − 2 h2 cn−2 − 2 h2 cn−1 − − h2 2 h2 1 h2 k+ v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 3 2h 30 / 121 ESM–MENUM Équations Différentielles Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique ❏ Introduction ❏ Différences Finie ■ Problème à valeur initiale ❏ Schémas numériques ❏ Schémas à un pas Schéma d’Euler Schéma d’Euler modifié Schéma d’Euler-Cauchy Schéma de Kranck-Nicholson Schéma de Runge-Kutta ❏ Schémas à pas liés Schémas de Gear v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 31 / 121 Équations différentielles - Problème à valeur initiale Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple Le problème de Cauchy (scalaire, ordre 1) On cherche y : x ∈ [a, b] −→ y (x) ∈ R qui satisfait : PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique avec y ′ (x) = y ′ (x) y (a) = = f (x, y (x)) α ∀x ∈]a, b[ (5) dy (x) , α ∈ R donné et f : [a, b] × R −→ R connue. dx Exemples Problème de Cauchy linéaire : y ′ (x) y (0) Problème de Cauchy non-linéaire : = = y ′ (x) y (0) 3y (x) − 3x 1 ∀x > 0 p 3 ∀x > 0 = = 0 y (x) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 32 / 121 ESM–MENUM Équations différentielles - Problème à valeur initiale Présentation Arithm. Flottante Équations Différentielles Introduction Le problème de Cauchy (vectoriel, ordre 1) on cherche une fonction Y : x ∈ [a, b] −→ Y (x) ∈ Rp qui satisfait : Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique avec Y ′ (x) = Y ′ (x) Y (a) = = F (x, Y (x)) A ∀x ∈]a, b[ (6) dY (x) , A ∈ Rp donné et F : [a, b] × Rp −→ Rp connue. dx Exemples Y ′ (x) F (x, Y(x)) 1 = Y (0) 0 xy1 + y2 y1 (x) et F (x, Y (x)) = Avec Y (x) = y2 (x) y12 + y2 équivaut au syst. d’EDO ′ y1 (x) = x y1 (x) + y2 (x)) y1 (0) = 1 avec ′ 2 y2 (x) = y1 (x) + y2 (x) y2 (0) = 0 Le problème de Cauchy = v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 33 / 121 Équations différentielles - Problème à valeur initiale Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Le problème de Cauchy d’ordre n On cherche y : x ∈ [a, b] −→ y (x) ∈ R qui satisfait : y (n) (x) y (a) y ′ (a) (n−1) y (a) = = = ... = f (x, y (x), y ′ (x), ..., y (n−1) (x)) α0 α1 ∀x ∈]a, b[ (7) αn−1 d n y (x) dy (x) ... y (n) (x) = , (α0 , α1 , ..., αn−1 ) ∈ Rn donné et dx dx n f : [a, b] × Rn −→ R connue. avec y ′ (t) = Propriété Tout problème de Cauchy d’ordre n > 1 peut se ramener par un changement de variable simple à un problème de Cauchy d’ordre 1 (traité en ED). ➪ Par la suite on se restreindra au problème de Cauchy scalaire d’ordre 1. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 34 / 121 ESM–MENUM Équations différentielles - Problème à valeur initiale Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Theorem (Existence et Unicité (Cauchy-Lipschitz)) Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique - Si f est continue sur [a, b] × R et si il existe une constante L > 0 telle que |f (x, v ) − f (x, w )| 6 L|v − w | ∀v , w ∈ R, ∀x ∈ [a, b] alors le problème de Cauchy admet une solution unique. - Si F est continue sur [a, b] × Rp et si il existe une constante L > 0 telle que ||F (x, V ) − F (x, W )|| 6 L||V − W || ∀V , W ∈ Rp , ∀x ∈ [a, b] alors le problème de Cauchy admet une solution unique. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 35 / 121 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 36 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Équations Différentielles ❏ Introduction ❏ Différences Finie ❏ Problème à valeur initiale ■ Schémas numériques ❏ Schémas à un pas Schéma d’Euler Schéma d’Euler modifié Schéma d’Euler-Cauchy Schéma de Cranck-Nicholson Schéma de Runge-Kutta ❏ Schémas à pas liés Schémas de Gear ESM–MENUM Équations différentielles - Schémas numériques Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Différentes familles de schémas numériques ✓ Schémas explicites : yi +1 se calcule directement à partir des valeurs précédentes yi , yi −1 , ... Schémas numériques Schémas à un pas Schémas à pas liés ✓ Schémas implicites : le calcul de yi +1 nécessite de résoudre une équation supplémentaire (souvent non-linéaire). Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique ✓ Schémas à un pas (à pas séparé, à pas libre) : explicites : yi +1 ne dépend que de yi implicites : yi +1 dépend de yi et de yi +1 ✓ Schémas à pas liés : explicites : yi +1 dépend de tout ou partie des valeurs précédentes jusqu’à i implicites : idem avec en plus yi +1 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 37 / 121 Équations différentielles - Schémas numériques Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Différents types d’erreurs ✓ erreur de discrétisation locale ei = y (xi ) − yi (au pas i ) ✓ erreur de discrétisation globale e = max |ei | i Schémas à un pas Schémas à pas liés ✓ erreur de consistance (troncature) locale Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique τi = y (xi ) − yi si yi −1 = y (xi −1 ) (différence au pas i entre solution numérique yi et solution exacte y (xi ) si le pas précédent était exact) ✓ erreur de consistance globale : les erreurs locales se cumulent au fur et à mesure des itérations 1 max |τi | h i (n est de l’ordre de grandeur de 1/h (n = (b − a)/h) ) τ = v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 38 / 121 ESM–MENUM Équations différentielles - Schémas numériques Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Propriétés des schémas numériques ✓ Convergence : traduit le fait que la solution numérique tend vers la solution du problème continu Exemple PB à valeur initiale ∀i ≥ 0, lim ei = |y (xi ) − yi | = 0 Schémas numériques h→0 Schémas à un pas Schémas à pas liés ✓ Consistance : si l’erreur de consistance globale τ tend vers zéro avec h Systèmes Linéaires lim τ = 0 Équations non-linéaires Interp./Approx. Intégration numérique h→0 ✓ Stabilité : amplification/atténuation des erreurs au cours du calcul (arrondis, troncature, méthode), inconditionnelle ou sous conditions (sur le pas de discrétisation par exemple) Theorem (Lax) Pour un problème bien posé, consistance et stabilité impliquent la convergence. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 39 / 121 Équations différentielles - Schémas numériques Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Propriétés des schémas numériques ✓ Ordre : traduit la précision de la solution numérique Un schéma numérique de pas h est d’ordre p si l’erreur de consistance globale est d’ordre p τ = O(hp ) Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique ✓ A-Stabilité (Le terme A-stable vient du mathématicien Suéduois Dahlquist) Idée : tester la stabilité sur des problèmes “raides” simples (stiff problem) : ′ y (x) = −a y (x) ∀x > 0 , a > 0 donné y (0) = y0 la solution est connue : y (x) = y0 e −a x (décroissante) et lim y (x) = 0 x→∞ v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 40 / 121 ESM–MENUM Équations différentielles - Schémas numériques Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Principaux schémas numériques ✓ à un pas Euler (explicite et implicite) Euler modifié (explicite) Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Euler-Cauchy (explicite) Crank-Nicholson (implicite) Runge-Kutta (RK2, RK4, ...) (explicite) Interp./Approx. Intégration numérique ✓ à pas liés Nystrom Adams-Bashforth-Moulton Gear ... v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 41 / 121 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 42 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Équations Différentielles ❏ Introduction ❏ Différences Finie ❏ Problème à valeur initiale ❏ Schémas numériques ■ Schémas à un pas Schéma Euler Schéma d’Euler modifié Schéma d’Euler-Cauchy Schéma de Cranck-Nicholson Schéma de Runge-Kutta ❏ Schémas à pas liés Schémas de Gear ESM–MENUM Équations différentielles - Schémas à un pas Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Schéma d’Euler Le principe consiste à approcher localement la fonction y en utilisant l’approximation d’ordre 1 de la dérivée 1 l’intervalle [a, b] est discrétisé en n + 1 points : xi = a + ih ; 2 au point x = x0 on connaı̂t la valeur exacte de y (x0 ) : α on pose donc y0 = y (x0 ) = α ; 3 en utilisant le développement de Taylor à l’ordre 1 : y (x1 ) = y (x0 + h) = y (x0 ) + hy ′ (x0 ) + O(h2 ) = y0 + hy ′ (x0 ) + O(h2 ) Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique 4 5 6 on calcule la dérivée en x0 par : y ′ (x0 ) = f (x0 , y (x0 )) = f (x0 , y0 ) on obtient au final une approximation de y (x1 ) en tronquant le reste : y1 = y0 + hf (x0 , y0 ) on réitère en résolvant le même problème : y ′ (x) = f (x, y (x)), mais vérifiant maintenant : y (x1 ) = y1 ; 7 le même raisonnement conduit à : y2 = y1 + hf (x1 , y1 ) 8 et ainsi de suite . . . ⇒ résolution locale ➩ Schéma d’Euler (explicite) : yi +1 = yi + h f (xi , yi ) ➩ Schéma d’Euler (implicite) : yi +1 = yi + h f (xi +1 , yi +1 ) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 43 / 121 ESM–MENUM y ′ (x0 ) Présentation y ′ (x2 ) y ′ (x1 ) y ′ (x3 ) Arithm. Flottante Équations Différentielles y4 y3 Introduction Différences Finies Exemple y2 PB à valeur initiale y (x) Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires y1 Équations non-linéaires Interp./Approx. Intégration numérique y0 x0 x1 x2 x3 x4 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 44 / 121 ESM–MENUM Équations différentielles - Schémas à un pas Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Schéma d’Euler : Stabilité ✓ Traduit la façon dont le schéma numérique amplifie/amortit les perturbations introduites à chaque pas (erreurs d’arrondi, de discrétisation ...) yi +1 = yi + hf (xi , yi ) ✓ Avec le schéma d’Euler explicite y0 = α Soit ρi : perturbation à l’étape i , et y¯i = yi + ρi le schéma perturbé s’écrit alors ỹi +1 = y¯i + hf (xi , y¯i ) y0 = α + ρ0 ➪ Facteur d’amplification : ✓ schéma stable si ỹi +1 − yi +1 , dépend du problème à résoudre y¯i − yi ỹi +1 − yi +1 < 1, instable sinon y¯i − y ✓ schéma inconditionnellement stable s’il est stable ∀h > 0 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 45 / 121 Équations différentielles - Schémas à un pas Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Schéma d’Euler : A-Stabilité ✓ On teste la stabilité du schéma d’Euler sur le problème “raide” : ′ y (x) = −a y (x) ∀x > 0 pour a > 0 donné y (0) = y0 ✓ avec le schéma Euler explicite : yn+1 = (1 − ah)yn ⇒ yn = y0 (1 − ah)n 2 ➪ stabilité conditionnelle si |1 − ah| < 1 ⇔ h < a 1 ✓ avec le schéma Euler implicite : yn+1 = yn ⇒ yn = y0 1 + ah ➪ stabilité inconditionnelle car lim yn = 0 1 1 + ah n n→∞ v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 46 / 121 ESM–MENUM Présentation Équations différentielles - Schéma à un pas Exemple : problème de de Cauchy Arithm. Flottante Équations Différentielles Introduction y ′ (x) = −2y (x) ∀x > 0 y (0) = 1 Coeff. d’amplification du schéma explicite : |1 − 2h| < 1 ⇔ h < 1 Le schéma implicite est inconditionnellement stable Différences Finies 1 Exemple PB à valeur initiale Euler exp Schémas numériques Euler imp Schémas à un pas Schémas à pas liés ref 0.5 Systèmes Linéaires Équations non-linéaires 0 Interp./Approx. Intégration numérique -0.5 -1 0 4 2 6 8 10 Résolution par les schémas numériques d’Euler explicite et implicite, h = 0.9 ⇒ n = 12 points. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Équations différentielles - Schéma à un pas Exemple : problème de de Cauchy Arithm. Flottante Équations Différentielles Introduction Différences Finies 47 / 121 y ′ (x) = −2y (x) ∀x > 0 y (0) = 1 Coeff. d’amplification du schéma explicite : |1 − 2h| < 1 ⇔ h < 1 Le schéma implicite est inconditionnellement stable 4 Exemple Euler exp Euler imp ref PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés 2 Systèmes Linéaires Équations non-linéaires 0 Interp./Approx. Intégration numérique -2 -4 0 2 4 6 8 10 Résolution par les schémas numériques d’Euler explicite et implicite, h = 1.1 ⇒ n = 10 points. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 48 / 121 ESM–MENUM Équations différentielles - Schémas à un pas Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Schéma d’Euler modifié ✓ Idée : on a déjà vu (différences finies) que l’estimateur centré de la dérivée première est meilleur (ordre 2) Exemple PB à valeur initiale Schémas numériques Schémas à un pas ✓ Au lieu d’utiliser la pente au point xi pour approximer yi +1 par la tangente, on peut utiliser la pente “au point milieu” xi + 1 = xi + h/2 2 Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique ✓ On approxime yi + 1 par Euler explicite : yi + 1 = yi + 2 2 h f (xi , yi ) 2 ✓ On approxime la dérivée par yi′+ 1 = f (xi + 1 , yi + 1 ) = f (xi + 2 2 2 h h , yi + f (xi , yi )) 2 2 ➩ Schéma d’Euler modifié yi +1 = yi + h f (xi + h h , yi + f (xi , yi )) 2 2 ✓ Schéma explicite d’ordre 2, A-stable pour h < 2/a v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 49 / 121 Équations différentielles - Schémas à un pas Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schéma d’Euler-Cauchy ✓ Idée : au lieu d’utiliser la pente au point xi pour approximer yi +1 par la tangente, on prend la moyenne des pentes estimées aux points xi et xi +1 Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires ✓ On approxime les dérivées par Euler explicite : yi′ = f (xi , yi ) yi′+1 = f (xi +1 , yi +1 ) = f (xi + h, yi + h f (xi , yi )) Interp./Approx. Intégration numérique ➩ Schéma d’Euler-Cauchy yi +1 = yi + h [f (xi , yi ) + f (xi + h, yi + h f (xi , yi ))] 2 ✓ Schéma explicite d’ordre 2, A-stable pour h < 2/a. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 50 / 121 ESM–MENUM Équations différentielles - Schémas à un pas Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schéma de Crank-Nicholson ✓ Idée : formulation implicite du schéma d’Euler-Cauchy Schémas numériques Schémas à un pas Schémas à pas liés ➩ Schéma de Crank-Nicholson yi +1 = yi + Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique h [f (xi , yi ) + f (xi +1 , yi +1 )] 2 ✓ Ne fournit pas explicitement yi +1 , mais une équation plus ou moins compliquée en yi +1 Nécessite en général d’utiliser une méthode numérique de résolution d’équation non-linéaire. ✓ Schéma implicite d’ordre 2, inconditionnellement A-stable. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 51 / 121 Équations différentielles - Schémas à un pas Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Schéma de Runge-Kutta 4 ✓ Formulation générale des schémas RKn (Runge-Kutta à n approximations) p−1 n−1 X X yi +1 = ui + βpl Kl ) αp Kp , K0 = h f (xi , yi ), Kp = h f (xi + λp h, yi + p=0 l =0 Les coefficients αp , λp et βpl sont choisis pour fournir un schéma d’ordre le plus élevé possible ✓ Le schéma Runge-Kutta le plus utilisé est le schéma RK4 ➩ Schéma de Runge-Kutta 4 1 yi +1 = yi + [K0 + 2K1 + 2K2 + K3 ] 6 K0 = h f (xi , yi ) K0 h ) K1 = h f (xi + , yi + 2 2 K1 h ) K2 = h f (xi + , yi + 2 2 K3 = h f (xi + h, yi + K2 ) ✓ RK4 est un schéma explicite d’ordre 4, conditionnellement A-stable. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 52 / 121 ESM–MENUM Équations différentielles - Schémas à un pas Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas à un pas : Récapitulatif Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Schéma Euler (explicite) Euler (implicite) Euler modifié Euler Cauchy Cranck-Nicholson Runge-Kutta 4 Expl./Impl. E I E E I E Ordre O(h) O(h) O(h2 ) O(h2 ) O(h2 ) O(h4 ) A-Stabilité conditionnelle (2/a) inconditionnelle conditionnelle (2/a) conditionnelle (2/a) inconditionnelle conditionnelle v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 53 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Équations Différentielles ❏ Introduction ❏ Différences Finie ❏ Problème à valeur initiale ❏ Schémas numériques ❏ Schémas à un pas Schéma Euler Schéma d’Euler modifié Schéma d’Euler-Cauchy Schéma de Cranck-Nicholson Schéma de Runge-Kutta ■ Schémas à pas liés Schémas de Gear v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 54 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Équations différentielles - Schémas à pas liés Schémas de Gear ✓ Idée : les schémas de Gear sont construits sur la base d’une intégration numérique par interpolation polynomiale ✓ schémas à pas liés ⇒ nécessitent de calculer les premiers pas avec des schémas à un pas ➩ Schéma de Gear à 2 pas, implicite , d’ordre 2 y0 donné y1 calculé par un schéma à un pas 1 2h 4 f (xi +1 , yi +1 ) yi +1 = yi − yi −1 + 3 3 3 ➩ Schéma de Gear à 3 pas, implicite , d’ordre 3 y0 donné y1 , y2 calculés par un schéma à un pas 18 9 2 2h yi +1 = yi − yi −1 − yi −2 + f (xi +1 , yi +1 ) 11 11 11 11 ➩ Schéma de Gear à 4 pas, implicite , d’ordre 4 y0 donné y1 , y2 , y3 calculés par un schéma à un pas 48 36 16 3 12h yi +1 = yi − yi −1 + yi −2 − yi −3 + f (xi +1 , yi +1 ) 25 25 25 25 11 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 55 / 121 Équations différentielles - Schémas à pas liés Présentation Arithm. Flottante Équations Différentielles Introduction Différences Finies Exemple PB à valeur initiale Schémas numériques Schémas à un pas Schémas à pas liés Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 56 / 121 ESM–MENUM Systèmes Linéaires Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique Énnoncé du problème On se propose de résoudre un système linéaire Ax = b A = (aij ) ∈ Mn (R) est la matrice (carrée) du système b = (b1 , b2 , . . . , bn )t ∈ Rn est le vecteur second membre x = (x1 , x2 , . . . , xn )t ∈ Rn est le vecteur des n inconnues Hypothèse : système de Cramer A matrice carrée de dimension n x n det(A) 6= 0 ⇒ La solution est unique ! Les systèmes linéaires issus des problèmes de l’ingénieur (différences finies, éléments finis ...) sont souvent très gros, typiquement : - 1D : quelques 102 à quelques 103 d’inconnues - 2D : quelques 102 à quelques 104 d’inconnues - 3D : quelques 102 à quelques 106 d’inconnues (une inconnue = un nombre double précision IEEE754 = 8 octets) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 57 / 121 Systèmes Linéaires Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Résolution analytique (Cramer) ✓ Résolution analytique : xi est exprimé en fonction d’un déterminant obtenu en remplaçant la i e colonne de la matrice par le vecteur b : Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique xi = a11 a21 ... an1 ... ... ... ... a1,i −1 a2,i −1 ... an,i −1 b1 b2 ... bn a1,i +1 a2,i +1 ... an,i +1 ... ... ... ... a1n a2n ... ann det(A) ✓ Le calcul d’un déterminant n x n, n grand, nécessite ∼ e.n! opérations élémentaires en virgule flottante (flop) ✓ La résolution analytique ⇒ calcul de n + 1 déterminants n x n soit ∼ e.(n + 1)! opérations ✓ Exple : n = 50 ⇒ e 51! ∼ 4.1066 opérations en virgule flottante avec un PC traitant ∼ 1 Gflop : il faut ∼ 1058 s, soit ∼ 1050 ans ! ⇒ La résolution analytique n’est possible qu’avec des systèmes de très petite taille ! ! v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 58 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique Systèmes Linéaires Algorithme de résolution numérique Fournit la solution du sytème linéaire en un nombre fini d’opérations élémentaires (*,/,+,-) Stabilité : caractérise la sensibilité de l’algorithme aux perturbations numériques possibles (cf erreurs IEEE754) Pour les systèmes linéaires, la stabilité dépend fortement du conditionnement du system (cf TD MENUM) Complexité : nombre (ordre de grandeur) d’opérations élémentaires (*,/,+,-) Algorithmes directs Fournissent la solution du sytème linéaire en un nombre fini, prévisible d’opérations élémentaires (*,/,+,-) GAUSS, triangularisation du système à résoudre LU, factorisation de la matrice A en produit LU de 2 matrices triangulaires (U est la triangularisation de Gauss, L n’a que des 1 sur sa diagonale) LDU, factorisation de la matrice A en produit LDU de 2 matrices triangulaires, inférieure (Lower), supérieure (Upper) et une matrice diagonale CHOLESKY, cas particlier de factorisation dans le cas où A est réelle symétrique définie positive : A = Lt L ... v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles 59 / 121 Systèmes Linéaires Algorithmes itératifs L’algorithme se présente sous forme itérative : x (k+1) = Φ(x (k) ) Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique où x (k) ∈ Rn est le vecteur solution (approchée) à l’étape k ➱ La solution x du système linéaire A.x = b est la limite de la suite récurrente (x (k) )k∈N ➱ Il faut se préoccuper de la convergence de la suite récurrente ➱ Il faut définir un test d’arrêt, par exemple : kx (k+1) − x (k) k 6 ǫ ou mieux (pourquoi ...) kA.x (k+1) − bk 6 ǫ Algorithmes itératifs par splitting La matrice A est décomposée additivement en A = E + F JACOBI, GAUSS-SEIDEL ... Relaxation : accélération/ralentissement de la convergence des méthodes itératives v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 60 / 121 ESM–MENUM Présentation Arithm. Flottante Systèmes Linéaires - Méthode Directes Résolution directe d’un système triangulaire supérieur Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique (0) a x 11 1 + a12 x2 a22 x2 + + ... ... + + a1,n−1 xn−1 a2,n−1 xn−1 ... + + a1,n xn a2,n xn = = b1 b2 an,n xn = bn ➪ La résolution directe par élimination est triviale : - on calcule xn grâce à la ligne n (det(A) 6= 0 ⇒ aii 6= 0, ∀i ) : xn = bn /an,n , - on élimine xn dans la ligne n − 1 pour obtenir xn−1 , - ... et ainsi de suite en remontant jusqu’à x1 . Algorithme de résolution d’un système triangulaire supérieur xn ← bn /an,n for i = n − 1 to 1 do n X 1 aij xj ) (bi − xi ← aii j=i +1 end for Le nombre d’opérations est ≈ 21 n2 + n2 La complexité de l’algorithme est en O(n2 /2) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Arithm. Flottante Systèmes Linéaires - Méthode Directes Résolution directe d’un système triangulaire inférieur a11 x1 a21 x1 (0) .. . an,1 xn Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique 61 / 121 + a22 x2 + an,2 x2 + ... + an,n xn = = b1 b2 = bn ➪ La résolution directe par élimination est triviale : - on calcule x1 grâce à la ligne 1 (det(A) 6= 0 ⇒ aii 6= 0, ∀i ) : x1 = b1 /a11 , - on élimine x1 dans la ligne 2 pour obtenir x2 , - et ainsi de suite en descendant jusqu’à xn . Algorithme de résolution d’un système triangulaire inférieur x1 ← b1 /a1,1 for i = 2 to n do i −1 X 1 (bi − aij xj ) xi ← aii j=1 end for Le nombre d’opérations est ≈ 12 n2 + n2 La complexité de l’algorithme est en O(n2 /2) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 62 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique Systèmes Linéaires - Méthode Directes Cas général : Méthode directe du pivot de Gauss Idée : remplacer a11 x1 a21 x1 (0) ... an,1 x1 Ax = b par MAx = Mb, où U = MA est une matrice triangulaire + + a12 x2 a22 x2 + + ... ... + + a1,n−1 xn−1 a2,n−1 xn−1 + + a1,n xn a2,n xn = = b1 b2 + an,2 x2 + ... + an,n−1 xn−1 + an,n xn = bn On élimine x1 dans lesP lignes 2...n en tirant sa valeur de la ligne 1 (si pivot a11 6= 0) : x1 = (b1 − nj=2 a1j xj )/a11 À l’étape (1), on obtient un (0) (0) a11 x1 + a12 x2 (1) a22 x2 (1) ... (1) an,2 x2 système équivalent : ... + a1,n−1 xn−1 (0) + (0) = ... + a2,n−1 xn−1 + (1) b1 + (1) a1,n xn a2,n xn = b2 + ... + an,n−1 xn−1 (1) + an,n xn (1) = bn (1) (0) (1) - la ligne (1) est inchangée : a1j = aij ∀ j = 1, . . . , n et b1 (1) - les coefficients aij (1) et bi (1) (0) aij = aij − (0) = b1 ai 1 a1j (0) a11 (0) (0) (1) , bi (0) = bi − ai 1 b1 (0) a11 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM (1) pour i , j = 2, . . . , n sont donnés par : (0) (0) (1) (0) + 63 / 121 Systèmes Linéaires - Méthode Directes Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives En itérant, à l’étape (k) : (k) (k−1) (k) (k−1) - la ligne k est inchangée : akj = akj ∀ j = k, . . . , n et bk = bk (k) - les coefficients aij (k) et bi Équations non-linéaires Interp./Approx. (k) aij = (k−1) aij − pour i , j = k, . . . , n sont donnés par : (k−1) (k−1) akj , (k−1) akk aik Intégration numérique (k) bi = (k−1) bi − (k−1) (k−1) bk (k−1) akk aik En itérant jusqu’à l’étape (n − 1), on fini par obtenir un système triangulaire supérieur : (n − 1) (0) a11 x1 + a12 x2 (0) + ... + (0) = (1) a1,n xn a22 x2 + ... + (1) b1 a2,n xn ... (n−1) an,n xn = b2 = (0) (1) (n−1) bn v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 64 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique Systèmes Linéaires - Méthode Directes Algorithme de la méthode de Gauss for k = 1 to n − 1 do // boucle sur les étapes for i = k + 1 to n do // boucle sur les lignes aik bi ← bi − bk akk for j = k + 1 to n do // boucle sur les colonnes aik aij ← aij − akj akk end for end for end for L’algorithme de Gauss modifie à la fois la matrice A et le second membre b (calcul “en place”) Si l’un des pivots akk est nul pendant une des étapes, on effectue une permutation de lignes pour trouver un pivot non nul Afin de limiter la propagation des erreurs d’arrondi il faut choisir le pivot le plus grand possible à chaque étape Une fois le système triangularisé, la résolution suit la méthode directe de résolution d’un système triangulaire supérieur Seul le triangle supérieur calculé dans A doit être pris en compte Le nombre d’opérations est ≈ 32 n3 La complexité de l’algorithme est en O(n3 ) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 65 / 121 Systèmes Linéaires - Méthode Directes Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique Méthode directe LDU La matrice A est factorisée selon : 1 0 d11 . . .. A = .. ln,n · · · 1 0 0 .. . dnn 1 0 ··· .. . u1,n .. . = LDU 1 La résolution de Ax = b équivaut alors à résoudre : Lz = b Dy = z (LDU)x = b ⇔ Ux = y avec b donné, résolution du système triangulaire inférieur : Lz = b avec z connu, résolution du système diagonal : Dy = z (yi = zi /dii ) avec y connu, résolution du système triangulaire supérieur : Ux = z Au total, 2 triangularisations et une diagonalisation (indépendantes de b) La complexité de l’algorithme (coût des triangularisations) est en O(n3 ) L’algorithme ne modifie pas le second membre b v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 66 / 121 ESM–MENUM Systèmes Linéaires - Méthodes itératives Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique Algorithmes itératifs par splitting ✓ La matrice A est décomposée additivement en A = E + F ✓ Ainsi : Ax = b ⇔ Ex = b − Fx ✓ D’où l’idée de construire une suite récurrente de vecteurs : - choix de x (0) (initialisation) - x (k+1) est donné par la relation de récurrence Ex (k+1) = b − Fx (k) ✓ Si cette suite converge : lim x (k) = s k→∞ alors s est solution de Es = b − Fs ⇔ As = b : s est solution ! ✓ On choisit les matrices E et F de sorte que le système Ex (k+1) = b − Fx (k) soit facile à résoudre (matrices triangulaires, diagonales ...) ✓ On utilise les matrices de la décomposition additive : A = L + D + U (attention ce n’est pas la même chose que la factorisation A = LDU !) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 67 / 121 Systèmes Linéaires - Méthodes itératives Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Convergence Méthodes Directes Méthodes Itératives Équations non-linéaires Ex (k+1) = b − Fx (k) ⇔ x (k+1) = E −1 b − E −1 Fx (k) = γ + Cx (k) C = E −1 F est la matrice du splitting Interp./Approx. Intégration numérique Theorem La suite définie par x (k+1) = γ + Cx (k) converge quel que soit le vecteur initial x (0) si et seulement si le rayon spectral de C est inférieur à 1. Rayon spectral d’une matrice C : ρ(C ) = max|λi |, avec λi : i-ième valeur propre de C . i v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 68 / 121 ESM–MENUM Systèmes Linéaires - Méthodes itératives Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique Test d’arrêt Nécessaire à l’arrêt de la récurrence x (k+1) = E −1 b − E −1 Fx (k) 2 sorties possibles : - k est supérieur à un nombre maximun d’itérations arbitrairement fixé (temps de calcul, mémoire, ...) - kx (k) − sk est devenu suffisamment petit. s n’est pas connu ⇒ on utilise le résidu à l’étape k : r (k) = kAx (k) − bk kAx (k) − bk 6 ǫ , avec ǫ petit (≈ 10−3 à 10−6 ) Ax (k) − b k k 6 ǫ (résidu relatif) x (0) Attention à kx (k+1) − x (k) k 6 ǫ ! ! ! Rappel sur les normes vectorielle sX : X |xi |2 , kxk∞ = max |xi | kxk1 = |xi |, kxk2 = i i i v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires 69 / 121 Systèmes Linéaires : Méthodes itératives Méthode itérative de Jacobi A = E + F = |{z} D + (L + U) | {z } E =D F =L+U La matrice du splitting est : C = E −1 F = D −1 (L + U) Condition nécessaire et suffisante de convergence : ρ(C ) < 1 Interp./Approx. Intégration numérique Algorithme de Jacobi D(x (k+1) − x (k) ) = b − Ax (k) = r (k) (k) (k+1) xi = (k) xi n X r 1 (k) (k) + aij xj ] = xi + i [bi − aii aii j=1 ∀i ∈ [1, n] Utilisable uniquement si tous les termes diagonaux sont non-nuls à chaque étape k, on a 2 boucles successives : (k) - une pour le calcul de ri , ∀i ∈ [1, n] (k+1) - une pour le calcul de xi (k) = xi + rik aii ∀i ∈ [1, n]. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 70 / 121 ESM–MENUM Systèmes Linéaires : Méthodes itératives Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Choix de kmax et ǫ Choix du test d’arrêt : kAx (k) − bk1 6 ǫ Stockage : vecteurs x = (x1 , x2 , ..., xn )t et r = (r1 , r2 , ..., rn )t Algorithme de Jacobi Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique k ←0 for i = 1 to n xi ← 0 // initialisation de x (0) end for do t←0 // cumul pour la norme 1 du résidu for i = 1 to nP ri ← bi − nj=1 aij xj t ← t + |ri | end for for i = 1 to n xi ← xi + ri /aii end for k ←k+1 while t > ǫ and k < kmax v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation 71 / 121 Systèmes Linéaires : Méthodes itératives Méthode itérative de Gauss-Seidel Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique A = E + F = (L + D) + U | {z } |{z} E =L+D F =U La matrice du splitting est : C = E −1 F = (L + D)−1 U Condition nécessaire et suffisante de convergence : ρ(C ) < 1 Algorithme de Gauss-Seidel D(x (k+1) − x (k) ) = b − (D + U)x (k) − Lx (k+1) (k+1) xi i −1 n X X 1 (k) (k+1) (k) bi − aij xj aij xj − = xi + aii j=i j=1 | {z } ∀i ∈ [1, n] (k) ri Utilisable uniquement si tous les termes diagonaux sont non-nuls différence avec Jacobi : on utilise les (i − 1) ème nouvelles valeurs (k+1) xj , j = 1, . . . , i − 1 ! ! ! v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 72 / 121 ESM–MENUM Systèmes Linéaires : Méthodes itératives Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Choix de kmax et ǫ Choix du test d’arrêt : kAx (k) − bk1 6 ǫ Stockage : vecteur x = (x1 , x2 , ..., xn )t Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique Algorithme de Gauss-Seidel k ←0 for i = 1 to n xi ← 0 // initialisation de x (0) end for do t←0 // cumul pour la norme 1 du résidu for i = 1 to P n r ← bi − nj=1 aij xj t ← t + |r | xi ← xi + r /aii end for k ←k+1 while t > ǫ and k < kmax v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. 73 / 121 Systèmes Linéaires : Méthodes itératives Condition suffisante de convergence des méthodes Jacobi et Gauss-Seidel Si A est une matrice à diagonale fortement dominante (ligne) : X ∀i , |aii | > |aij | j6=i alors les algorithmes de Jacobi et Gauss-Seidel convergent quelle que soit la valeur initiale x (0) . Intégration numérique Relaxation La relaxation permet d’amplifier ou d’amortir (sur-relaxer ou sous-relaxer) l’écart entre x (k+1) et x (k) entre 2 itérations sur-relaxer ⇒ accélérer la convergence sous-relaxer ⇒ ralentir la convergence E E = L+D Gass-Seidel relaxé : F = U F = = L + ω1 D (1 − ω1 )D + U Condition nécessaire de convergence : on montre que Gauss-Seidel relaxé ne peut converger que si ω ∈]0, 2[ Remarque : pour ω = 1 ⇒, on reetrouve Gauss-Seidel normal. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 74 / 121 ESM–MENUM Systèmes Linéaires : Méthodes itératives Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Méthodes Directes Méthodes Itératives Gauss-Seidel relaxé Équations non-linéaires Interp./Approx. Intégration numérique (k+1) xi = (k) xi i −1 n X X ω (k) (k+1) aij xj bi − aij xj − + aii j=i j=1 | {z } ∀i ∈ [1, n] (k) ri même algorithme que Gauss-Seidel en remplaçant xi ← xi + ri /aii par xi ← xi + ωri /aii v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 75 / 121 Systèmes Linéaires : Méthodes itératives Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Choix de kmax , ǫ et ω Choix du test d’arrêt : kAx (k) − bk1 6 ǫ Stockage : vecteur x = (x1 , x2 , ..., xn )t Méthodes Directes Méthodes Itératives Équations non-linéaires Interp./Approx. Intégration numérique Algorithme de Gaus-Seidel relaxé k ←0 for i = 1 to n xi ← 0 // initialisation de x (0) end for do t←0 // cumul pour la norme 1 du résidu for i = 1 to P n r ← bi − nj=1 aij xj t ← t + |r | xi ← xi + ωr /aii end for k ←k+1 while t > ǫ and k < kmax v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 76 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Équations non-linéaires Équations non-linéaires Résoudre f (x) = 0 où f est une fonction non linéaire. On peut avoir 0, 1, ... n ou une infinité de solutions ... Les algorithmes généraux sont itératifs : on construit une suite de réels (x (n) ) qui converge vers une solution x̄ de f (x) = 0 Méthode par dichotomie lim |x̄ − x (n) | = 0 Méthode de Newton n→∞ Méthode de la sécante Méthode du Point Fixe on appelle ordre de la convergence le nombre p > 0 tel que : Interp./Approx. ∃c 6= 0, |x (n+1) − x̄| Intégration numérique n→∞ = c|x (n) − x̄|p La constante c dépend de f . Les algorithmes généraux sont d’ordre 1, les plus rapides sont d’ordre 2. Exemple d’algorithmes généraux : - méthode par dichotomie, - méthode Newton (méthode des tangentes) - méthode de la sécante - méthode du point fixe ... Pour utiliser les algorithmes généraux itératifs, il faut au préalable localiser un intervalle [a, b] contenant une solutionx̄ . v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation 77 / 121 Équations non-linéaires Méthode par dichotomie Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Méthode de Newton Méthode de la sécante Méthode du Point Fixe Interp./Approx. Intégration numérique Soit f continue et monotone sur [a, b] possèdant un zéro x̄ ∈]a, b[ : f (x̄) = 0 et f (a)f (b) < 0 (n) (n) On encadre la solution par 2 suites (xg ) et (xd ) telles que (n) lim xg n→∞ (n) = lim xd n→∞ = x̄ Construction itérative : (0) (0) - initialisation : (xg , xd ) = (a, b) (0) - on pose c = (xg (0) + xd )/2 : (0) (1) si f (c)f (xg ) < 0 : xg (1) xg sinon : = c et - et ainsi de suite , c = ... (1) xd (0) = xg = (0) xd (1) et xd =c v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 78 / 121 ESM–MENUM Équations non-linéaires Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Méthode de Newton Méthode de la sécante Méthode du Point Fixe Interp./Approx. Intégration numérique Méthode par dichotomie (n) Valeur approchée de x̄ : xg (n) par défaut ou xd (n) par excès (n) (n) Test d’arrêt : |f (xg )| < ǫ ou |f (xd )| < ǫ ou |xg (n) − xd | < ǫ Erreur de méthode : 1 1 1 1 (n−1) (n−2) (0) (n) | 6 2 |x̄ − xg |... 6 n |x̄ − xg | 6 n |b − a|) |x̄ − xg | 6 |x̄ − xg 2 2 2 2 La convergence est linéaire ; ce n’est pas très rapide, mais on sait à priori quelle est la précision obtenue après n itérations. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 79 / 121 Équations non-linéaires Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Méthode de Newton Méthode de la sécante Méthode du Point Fixe Interp./Approx. Intégration numérique Choix de ǫ (n) Choix du test d’arrêt : |f (xg )| 6 ǫ Algorithme de la méthode par dichotomie xg ← a, xd ← b // initialisation while |f (xg )| > ǫ centre ← (xg + xd )/2 if f (centre)f (xg ) < 0 xd = centre else xg = centre endif end while v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 80 / 121 ESM–MENUM Équations non-linéaires Présentation Arithm. Flottante Méthode de Newton Équations Différentielles f (x) Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Méthode de Newton f (x (0) ) f (x (1) ) x̄ Méthode de la sécante Méthode du Point Fixe x (0) x (1) Interp./Approx. Intégration numérique x (2) x Soit f de classe C 2 sur [a, b], possèdant un zéro x̄ ∈ [a, b] On construit une suite où x (n+1) est le point d’intersection entre la tangente au point (x (n) , f (x (n) ) et l’axe x : x (n+1) = x (n) − f (x (n) ) f ′ (x (n) ) L’inconvénient de la méthode est qu’il faut pouvoir calculer la dérivée f ′ (x (n) ) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 81 / 121 Équations non-linéaires Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Méthode de Newton Méthode de la sécante Méthode du Point Fixe Interp./Approx. Intégration numérique Méthode de Newton L’algorithme ne converge pas toujours ! ⇒ Il faut utiliser une valeur initiale x (0) suffisamment proche de x̄ Lorsque l’algorithme converge, la convergence est rapide : Pour n assez grand : |x̄ − x (n) | 6 |x̄ − x (n−1) |2 : la convergence est quadratique ! Test d’arrêt : |f (x (n) )| < ǫ ou n > nmax en cas de non-convergence v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 82 / 121 ESM–MENUM Équations non-linéaires Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Choix Choix Choix Choix de ǫ de nmax de x0 pour l’initialisation du test d’arrêt : |f (x (n) )| 6 ǫ Méthode de Newton Méthode de la sécante Méthode du Point Fixe Interp./Approx. Intégration numérique Algorithme de Newton x (0) ← x0 // initialisation n←0 do (n) x (n+1) ← x (n) − f′(x (n)) f (x ) n←n+1 while |f (x (n) )| > ǫ and n < nmax v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 83 / 121 Équations non-linéaires Présentation Arithm. Flottante Équations Différentielles Méthode de la sécante f (x) Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Méthode de Newton Méthode de la sécante f (x n−1 ) f (x n ) x̄ Méthode du Point Fixe Interp./Approx. x n−1 x n x n+1 x Intégration numérique Soit f de classe C 2 sur [a, b], possèdant un zéro x̄ On construit une suite où x (n+1) est le point d’intersection de la droite reliant (x (n−1) , f (x (n−1) )) et (x (n) , f (x (n) )) avec l’axe x : x (n+1) = x (n) − f (x (n) ) x (n) − x (n−1) f (x (n) ) − f (x (n−1) ) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 84 / 121 ESM–MENUM Équations non-linéaires Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Méthode de Newton Méthode de la sécante Méthode du Point Fixe Interp./Approx. Intégration numérique Méthode de la sécante L’algorithme ne converge pas toujours ! ⇒ Il faut utiliser des valeurs initiales x (0) et x (1) proches de x̄ Lorsque l’algorithme converge, la convergence est rapide : √ Pour n assez grand : |x̄ − x (n) | 6 |x̄ − x (n−1) |ρ avec ρ = 1+2 5 ≈ 1.618 Test d’arrêt : |f (x (n) )| 6 ǫ ou n > nmax en cas de non-convergence ! v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 85 / 121 Équations non-linéaires Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Méthode de Newton Méthode de la sécante Méthode du Point Fixe Interp./Approx. Intégration numérique Choix Choix Choix Choix de ǫ de nmax de x0 et x1 pour l’initialisation du test d’arrêt : |f (x (n) )| 6 ǫ Algorithme de la sécante x (0) ← x0 , x (1) ← x1 // initialisation n←1 do (n) (n−1) x (n+1) ← x (n) − f (x (n) ) x(n) −x (n−1) f (x )−f (x ) n←n+1 while |f (x (n) )| > ǫ and n < nmax v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 86 / 121 ESM–MENUM Équations non-linéaires Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Méthode de Newton Méthode de la sécante Méthode du Point Fixe Interp./Approx. Intégration numérique Méthode du Point Fixe Soit f continue et monotone sur [a, b] possèdant un zéro x̄ ∈ [a, b] : f (x̄) = 0 et f (a)f (b) < 0 L’équation f (x) = 0 est mise sous une forme équivalente : F (x) = x On définit une suite récurrente par : - choix de x (0) - x (n+1) = F (x (n) ) Il existe souvent de nombreuses possibilités pour la fonction F Le choix de la fonction F détermine la convergence ou la divergence de l’algorithme ! v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 87 / 121 Équations non-linéaires Présentation Arithm. Flottante Équations Différentielles Fonction contractante Une fonction g est contractante sur [a, b] si et seulement si : Systèmes Linéaires Équations non-linéaires ∃K < 1 ∀(x, x ′ ) ∈ [a, b]x[a, b] |g (x ′ ) − g (x)| 6 |x ′ − x| Méthode par dichotomie Méthode de Newton Méthode de la sécante Méthode du Point Fixe Méthode du Point Fixe Interp./Approx. Intégration numérique Theorem (point fixe local) Si la fonction F est contractante sur [a, b], et si F ([a, b]) ⊂ [a, b] alors - l’équation F (x) = x admet une soulution unique x̄ ∈ [a, b] - la suite définie par x (n+1) = F (x (n) ) converge vers x̄, ∀x (0) ∈ [a, b] Convergence : si F est de classe C 1 l’algorithme du point fixe est d’ordre 1 (lorsqu’il converge) Test d’arrêt : |f (x (n) )| 6 ǫ ou n > nmax en cas de non-convergence ! v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 88 / 121 ESM–MENUM Équations non-linéaires Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Méthode de Newton Méthode de la sécante Méthode du Point Fixe Interp./Approx. Intégration numérique Choix Choix Choix Choix de ǫ de nmax de x0 pour l’initialisation du test d’arrêt : |f (x (n) )| 6 ǫ Algorithme du Point Fixe x (0) ← x0 // initialisation n←1 do x (n+1) ← F (x (n) ) n←n+1 while |f (x (n) )| > ǫ and n < nmax v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 89 / 121 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 90 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Méthode par dichotomie Méthode de Newton Méthode de la sécante Méthode du Point Fixe Interp./Approx. Intégration numérique ESM–MENUM Interpolation/Approximation Présentation Arithm. Flottante Interpolation/Approximation Équations Différentielles Interp. y3 Systèmes Linéaires Approx. y2 Équations non-linéaires y1 Interp./Approx. y0 Interp. polynomiale Approximation Intégration numérique x0 x1 x2 x3 x4 But : faire passer une fonction “simple” par un ensemble de points. Interpolation la fonction DOIT passer PAR TOUS les points Approximation la fonction doit passer “LE PLUS PRÈS POSSIBLE” de tous les points. Exemples : fonction connue mais complexe : il est plus simple d’utiliser la fonction interpolée/approchée (valeur en tout point, dérivation, intégration, ...) ; points expérimentaux : interpoler/approximer permet de travailler sur une fonction continue (valeur en tout point, dérivation, intégration, ...). v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 91 / 121 Interpolation polynomiale Présentation Arithm. Flottante Équations Différentielles Interpolation polynomiale Systèmes Linéaires Soient les n + 1 points d’interpolation (x0 , y0 ), (x1 , y1 ), ..., (xn , yn ). Équations non-linéaires Interp./Approx. Interp. polynomiale La fonction d’interpolation est recherchée sous forme d’un polynôme de degré inférieur ou égal à n, Pn (x) = a0 + a1 x + · · · + an x n , qui doit passer par tous les points d’interpolation : Approximation Intégration numérique ∀i ∈ {0, 1, ..., n}, Pn (xi ) = yi ⇔ n X ak xik = yi k=0 On obtient un système de n + 1 équations à n + 1 inconnues (a0 , a1 , ..., an ), de déterminant non-nul ssi les abscisses xi sont distinctes. On ne résoud que très rarement ce système directement, il existe des méthodes plus efficaces : interpolation de Lagrange, interpolation par fonction spline ... v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 92 / 121 ESM–MENUM Interpolation de Lagrange Présentation Arithm. Flottante Équations Différentielles Polynôme de Lagrange Systèmes Linéaires Polynôme de Lagrange : Équations non-linéaires Li (x) = Interp./Approx. n Y x − xj x − xj j6=i i j =0 Interp. polynomiale Approximation Intégration numérique Polynôme d’interpolation : Pn (x) = Lni (x) = n X yi Li (x) i =0 Remarques : L’interpolation de Lagrange n’impose pas des abscisses équiréparties ; L’interpolation polynomiale n’est pas stable et la convergence n’est pas assurée. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 93 / 121 Interpolation de Lagrange Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires ➪ Le polynôme d’interpolation peut présenter des oscillations importantes quand n augmente (phénomène de Runge) : Équations non-linéaires Interp./Approx. Interp. polynomiale 1 1 0.5 0.5 0 0 Approximation Intégration numérique 1H1+x^2L -0.5 1H1+x^2L -0.5 Lagrange H5 pts équi-répartisL Lagrange H9 pts équi-répartisL -1 -1 -4 -2 0 2 4 -4 -2 0 2 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 4 94 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Interpolation de Lagrange ➪ La qualité de l’interpolation (le polynôme d’interpolation) dépend des positions des abscisses ➪ On montre que les points de Tchebytchev sont le meilleur choix (Ils minisent l’erreur d’interpolation et réduisent l’instabilité de l’interpolation) : Équations non-linéaires ∀i ∈ {0, 1, ..., n}, xi = Interp./Approx. a+b a−b (2(n − i ) + 1)π + cos 2 2 2(n + 1) Interp. polynomiale Approximation Intégration numérique 1 1 0.5 0.5 0 0 1H1+x^2L -0.5 1H1+x^2L -0.5 Lagrange H5 pts TchebytchevL -1 Lagrange H9 pts TchebytchevL -1 -4 -2 0 2 4 -4 -2 0 2 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 4 95 / 121 Interpolation par fonction spline Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. L’interpolation polynomiale n’est pas convergente : ➪ éviter de l’utiliser avec un grand nombre de points d’interpolation (polynôme de degré élevé avec risques d’oscillations d’amplitude importante). Quand le nombre de points d’interpolation est élevé, on utilise plutôt des fonctions splines, qui sont des polynômes définis par morceaux (le degré du polynôme est indépendant du nombre de points d’interpolation). Interp. polynomiale Approximation Intégration numérique Fonction spline Soit a 6 x0 < x1 < · · · < xn 6 b, et yi = f (xi ). Soit k un entier compris entre 1 et n + 1 (n est grand et k <<). Theorem Il existe une unique fonction σ de classe C 2k−2 sur [a, b] qui interpole les points (xi , yi )i =0,...,n et qui soit formée de morceaux de polynômes : - de degré (k − 1) sur [a, x0 ] et [xn , b] ; - de degré (2k − 1) ailleurs. C’est la fonction spline d’interpolation d’ordre k des points (xi , yi )i =0,...,n . v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 96 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Interp. polynomiale Approximation Intégration numérique Interpolation par fonction spline Exemple : Fonction spline d’ordre 2. On note : σ0 la restriction de σ à l’intervalle [a, x0 ] : σ0 = σ|[a,x0 ] ; σn+1 la restriction de σ à l’intervalle [xn , b] : σn = σ|[xn ,b] ; σi la restriction de σ à l’intervalle [xi −1 , xi ], i = 1, 2, ..., n : σi = σ|[xi −1 ,xi ] ; Nombre total d’inconnues : σ0 et σn+1 sont des polynômes de degré 1 (a0 x + b0 et an+1 x + bn+1 ) → 2x2 inconnues : a0 , b0 et an , bn ; pour i = 1, 2, ..., n, σi est un polynôme de degré 3 (ai + bi x + ci x 2 + di x 3 ) → nx4 inconnues : ai , bi , ci et di . soit : 4(n + 1) inconnues à calculer pour caractériser le fonction spline σ. Nombre total d’équations : Continuité de σ sur [a, b] : ∀i ∈ [0, n], σi (xi ) = σi +1 (xi ) = yi → 2(n + 1) équations ′ Continuité de σ sur [a, b] : ′ ′ ∀i ∈ [0, n], σi (xi ) = σi +1 (xi ) → n + 1 équations ′′ Continuité de σ sur [a, b] : ′′ ′′ ∀i ∈ [0, n], σi (xi ) = σi +1 (xi ) → n + 1 équations → système linéaire (tridiagonal, symétrique) résolu par une méthode numérique similaire à Gauss. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation 97 / 121 Approximation Approximation (discrète/continue) Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires y2 y1 y0 Interp./Approx. Interp. polynomiale Approximation x0 x1 x2 x3 x4 Intégration numérique On connaı̂t une fonction de manière discrète (résultats expérimentaux, numériques) avec une certaine incertitude : on désire représenter “au mieux” cet ensemble de points par une fonction continue ; On cherche à remplacer des résultats “bruités” par un lissage continu ... Les données du problèmes sont : problème discret les n + 1 points d’interpolation (x0 , y0 ), (x1 , y1 ), ..., (xn , yn ) problème continu la fonction f à approximer sur l’intervalle [a, b] On cherche une fonction g telle que : problème discret l’ensemble des points {g (xi )} approxime “au mieux” {yi } problème continu g approxime “au mieux” la fonction f sur [a, b] v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 98 / 121 ESM–MENUM Approximation : Méthode des moindres carrés discrets Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Méthode des moindres carrés discrets Soient n + 1 points discrets donnés : (x0 , y0 ), (x1 , y1 ), ..., (xn , yn ) Soient n + 1 poids ωi (ωi > 0 ; le plus souvent, ωi = 1) Soit g fonction de x, dépendant de r + 1 paramètres ai : g (a0 , a1 , ..., ar ; x) (n est “grand”, r est “petit”) Interp. polynomiale Approximation Intégration numérique On définit la distance (quadratique, pondérée par la suite (ωi )) entre le vecteur ~y = (yi )i =1,...,n et le vecteur ~ g = (g (xi ))i =1,...,n : v u n uX ωi [g (xi ) − yi ]2 d2 (~y , ~ g) = t i =0 ∂ 2 On recherche les ai qui minimisent d2 (~f , ~ g) : d (~y , ~ g ) = 0, pour i = 0, ..., r ∂ai 2 n X ∂ ωj [g (a0 , a1 , ..., ar ; xj ) − yj ] soit : g (a0 , a1 , ..., ar ; xj ) = 0 , pour i = 0, ..., r ∂ai j=0 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 99 / 121 Approximation polynomiale par les moindres carrés discrets Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Interp. polynomiale Approximation Intégration numérique Approximation polynomiale par les moindres carrés discrets La fonction g est recherchée sous la forme d’un polynôme de degré r : g (a0 , a1 , ..., ap ; x) = Pr (x) = a0 + a1 x + · · · + ar x r La minimisation de d2 (~y , ~ g ) donne alors : n X ωj (a0 + a1 xj + · · · + ar xjr − yj )xji = 0 ∀i ∈ [0, r ], j=0 P P D’où le système à résoudre ( ≡ nj=0 ) : P ωj P ωj xj P ωj xj2 ... P ωj xjr P ωj xj P ωj xj2 ... P ωj xjr P ωj xj2 P ωj xj3 ... P ωj xjr +1 P ωj xj3 P ωj xj4 ... P ωj xjr +2 P ωj xj2r ... P ... ωj xjr +1 P ... ωj xjr +2 ... a 0 a1 a2 ... ar P ωj yj P ωj yj xj P = ωj yj xj2 ... P ωj yj xjr La système à résoudre (r + 1 équations à r + 1 inconnues) est souvent mal conditionné ! On travail généralement avec r “petit”, en double précision. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 100 / 121 ESM–MENUM Approximation polynomiale par les moindres carrés continus Présentation Arithm. Flottante Approximation polynomiale par les moindres carrés continus Équations Différentielles Soit la fonction f définie sur l’intervalle [a, b] ; Systèmes Linéaires Soit la fonction poids ω définie sur [a, b] vérifiant ω(x) > 0 (le plus souvent, ω(x) = 1) ; Équations non-linéaires Interp./Approx. Interp. polynomiale Approximation Intégration numérique On définit la distance (quadratique pondérée par ω) entre 2 fonctions f et g par : s Z b d2 (f , g ) = ω(x)[f (x) − g (x)]2 dx a Comme pour le cas discret, la fonction g est recherchée sous la forme d’un polynôme de degré r : g (a0 , a1 , ..., ar ; x) = Pr (x) = r X j=0 aj x j = a0 + a1 x + · · · + ar x r La minimisation de la distance d22 (f , g ) donne alors : ∂ ∀i ∈ [0, r ], ∂ai Z a b ω(x)[a0 + a1 x + · · · + ar x r − f (x)]x i = 0 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 101 / 121 Approximation polynomiale par les moindres carrés continus Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Interp. polynomiale Approximation Intégration numérique Approximation polynomiale par les moindres carrés continus R R On retrouve un système linéaire à résoudre ( ≡ ab ) : R ω(x)dx R ω(x)xdx R ω(x)x 2 dx ... R ω(x)x r dx ω(x)x r dx R ω(x)xdx ... R R ω(x)x 2 dx ... R ω(x)x 3 dx ... ω(x)x r +1 dx a1 R r +2 ω(x)x dx a2 ... R 2r ar ω(x)x dx ... R ω(x)x r +1 dx ... ... R a0 R ω(x)f (x)dx R ω(x)f (x)xdx R ω(x)f (x)x 2 dx = ... R ω(x)f (x)x r dx On a encore un système linéaire à résoudre (r + 1 équations à r + 1 inconnues) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 102 / 121 ESM–MENUM Intégration Numérique : Introduction Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires But (1D) Calculer la valeur numérique d’intégrales définies du type I [f ] = Z b f (x)dx a f fonction continue sur l’intervalle [a, b] Interp./Approx. Intégration numérique Introduction Formules de Newton-Cotes Principe : Formule de quadrature Idée : remplacer le calcul de I [f ] par le calcul d’une somme discrète Formules de Newton-Cotes Méthode des Rectangles I [f ] ≈ In [f ] = Méthode du Point Milieu n X wi f (xi ) (8) i =0 Méthode des Trapèzes Récapitulatif Quadrature de Gauss Les x0 < x1 < · · · < xn sont les points d’intégration Les coefficients wi sont les poids Les poids et/ou les points d’intégration sont choisis de façon que (8) soit exacte pour des polynômes de plus haut degré possible v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 103 / 121 Intégration Numérique : Introduction Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Introduction Formules de Newton-Cotes Propriétés des quadratures La quadrature est fermée si x0 = a et xn = b, ouverte sinon Quadrature de degré de précision d : - exacte pour tout polynôme de degré 6 d - inexacte pour au moins un polynôme de degré d + 1 L’ordre de la quadrature est celui de l’erreur de méthode : I [f ] − In [f ] La quadrature converge pour f ⇔ lim In (f ) = I (f ) n→∞ Formules de Newton-Cotes Méthode des Rectangles 2 Familles de quadrature Méthode du Point Milieu En fonction de la répartition des points d’intégration : Méthode des Trapèzes Récapitulatif Quadrature de Gauss xi régulièremet espacés dans l’intervalle [a, b] (xi +1 = xi + h) ➪ Formules de Newton-Cotes ouvertes ou fermées, simples ou composites positionnement optimisé des xi dans l’intervalle [a, b] ➪ Formules de Gauss (Gauss-Legendre, ...) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 104 / 121 ESM–MENUM Intégration Numérique : Formules de Newton-Cotes Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Introduction Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles Méthode du Point Milieu Méthode des Trapèzes Récapitulatif Quadrature de Gauss Type d’intégration Z b f (x)dx , a et b finis, f continue sur [a, b] a Principe Interpolation polynomiale de degré faible (0,1,2,3 ...) de l’intégrande f de degré 0 ➪ méthode du rectangle, du point milieu de degré 1 ➪ méthode du trapèze de degré 2 ➪ méthode de Simpson rarement au-delà, car risques d’oscillation des polynômes d’interpolation de degré élevé ... v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 105 / 121 Intégration Numérique : Formules de Newton-Cotes Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Formules simples Interpolation de f sur l’intervalle entier [a, b] Pour une interpolation polynomiale de degré d, on utilise d + 1 points Intégration numérique Introduction Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles Méthode du Point Milieu Méthode des Trapèzes Récapitulatif Formules composites L’intervalle d’intégration [a, b] est divisé en n sous-intervalles Z b X Z xi +1 f (t) dt = f (t) dt Somme de Riemann : I [f ] = a n xi La formulation simple est utilisée pour calculer l’intégrale dans chaque sous-intervalle Quadrature de Gauss v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 106 / 121 ESM–MENUM Présentation Intégration Numérique : Formules de Newton-Cotes interpolation de degré 0 : Méthode du Rectangle Arithm. Flottante Interpoler f par un polynôme de degré 0 (constante) passant par (a, f (a)) ou (b, f (b)) p0 (x) = f (ξ), ξ = a ou ξ = b Équations Différentielles Systèmes Linéaires Équations non-linéaires Quadrature simple fermée : Interp./Approx. Z b f (x)dx ≈ a ou ξ = b Intégration numérique Introduction Z b a p0 (x)dx = (b − a)f (ξ) Le degré d’exactitude est 0, l’erreur est E (f ) = Formules de Newton-Cotes ξ=a (b − a)2 ′ f (η), η ∈ [a, b] 2 Formules de Newton-Cotes Méthode des Rectangles Méthode des Trapèzes f f Méthode du Point Milieu f (a) f (a) Récapitulatif Quadrature de Gauss f (b) f (b) I = (b − a)f (a) a I = (b − a)f (b) x b a b v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique x 107 / 121 Intégration Numérique : Formules de Newton-Cotes Méthode composite des Rectangles En utilisant les n + 1 points d’intégration équidistants xi = a + ih, h = (b − a)/n Z b a f (x)dx ≈ In [f ] = n (b − a) X f (ξi ) n i =1 ξi = xi −1 ou ξi = xi Le degré d’exactitude est 0, l’erreur globale est d’ordre 1 : en (f ) = O(h) La formule composite des Rectangles converge : lim en (f ) = 0 n→∞ Introduction Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles f f (xi ) Méthode du Point Milieu Méthode des Trapèzes Récapitulatif f (x1 ) In [f ] Quadrature de Gauss f (x0 ) x0 x1 xi xn x v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 108 / 121 ESM–MENUM Intégration Numérique : Formules de Newton-Cotes Présentation Arithm. Flottante Équations Différentielles interpolation de degré 0 : Méthodes du Point Milieu Interpoler f par un polynome de degré 0 (constante) p0 (x) = f ((a + b)/2) Interp./Approx. Quadrature simple ouverte : Z b Z b a+b f (x)dx ≈ p0 (x)dx = (b − a)f 2 a a Intégration numérique Le degré d’exactitude est 1, l’erreur est E (f ) = Systèmes Linéaires Équations non-linéaires Introduction (b − a)3 ′′ f (η), η ∈ [a, b] 24 Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles Méthode du Point Milieu f ) f ( a+b 2 Méthode des Trapèzes Récapitulatif In [f ] Quadrature de Gauss a (a + b)/2 b x v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique 109 / 121 Intégration Numérique : Formules de Newton-Cotes Méthode composite du point milieu En utilisant les n + 1 points d’intégration équidistants xi = a + ih, h = (b − a)/n Z b n xi −1 + xi (b − a) X f f (x)dx ≈ In [f ] = n 2 a i =1 Le degré d’exactitude est 1, l’erreur globale est d’ordre 2 : en (f ) = O(h2 ) La formule composite des Points Milieux converge : lim en (f ) = 0 n→∞ Introduction Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles f f (xi ) Méthode du Point Milieu Méthode des Trapèzes Récapitulatif f (x1 ) In [f ] Quadrature de Gauss f (x0 ) x0 x1 xi xn x v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 110 / 121 ESM–MENUM Intégration Numérique : Formules de Newton-Cotes Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Introduction interpolation de degré 1 : Méthodes du Trapèze Interpoler f par un polynome de degré 1 passant par (a, f (a)) et (b, f (b)) (interpolation de Lagrange) et on intègre Z b Z b f (a) + f (b) p1 (x)dx = (b − a) f (x)dx ≈ Quadrature simple : 2 a a Le degré d’exactitude est 1, l’erreur est E (f ) = − (b − a)3 ′′ f (η), η ∈ [a, b] 12 Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles f Méthode du Point Milieu Méthode des Trapèzes Récapitulatif In [f ] Quadrature de Gauss a b x v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique 111 / 121 Intégration Numérique : Formules de Newton-Cotes Méthode composite des Trapèzes En utilisant les n + 1 points d’intégration équidistants xi = a + ih, h = (b − a)/n " # Z b n−1 X h f (a) + f (b) + 2 f (xi ) f (x)dx ≈ In [f ] = 2 a i =1 Le degré d’exactitude est 1, l’erreur globale est d’ordre 2 : en (f ) = O(h2 ) La formule composite des trapèzes converge : lim en (f ) = 0 n→∞ Introduction Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles f f (xi ) Méthode du Point Milieu Méthode des Trapèzes Récapitulatif f (x1 ) In [f ] Quadrature de Gauss f (x0 ) x0 x1 xi xn x v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 112 / 121 ESM–MENUM Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Introduction Formules de Newton-Cotes Intégration Numérique : Formules de Newton-Cotes interpolation de degré 2 : Méthodes de Simpson On interpole f par un polynome de degré 2 passant par f (a), f (b) et f ((a + b)/2) (interpolation de Lagrange) et on intègre Quadrature simple : Z b Z b a+b b−a f (a) + 4f + f (b) p2 (x)dx = f (x)dx ≈ 6 2 a a Le degré d’exactitude est 3, l’erreur est E (f ) = − (b − a)5 (4) f (η), η ∈ [a, b] 90 Formules de Newton-Cotes Méthode des Rectangles f Méthode du Point Milieu Méthode des Trapèzes Récapitulatif Quadrature de Gauss In [f ] a (a + b)/2 b x v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 113 / 121 Intégration Numérique : Formules de Newton-Cotes Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Introduction Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles Méthode du Point Milieu Méthode des Trapèzes Méthode composite de Simpson Nombre pair n = 2m d’intervalles délimités par n + 1 points d’intégration équidistants xi = a + ih, i = 0, ..., n et h = (b − a)/n Z b n/2 n/2−1 X X h f (x2j−1 ) + f (b) f (x2j ) + 4 f (a) + 2 f (x)dx ≈ In [f ] = 3 a j=1 j=1 Le degré d’exactitude est 3, l’erreur est d’ordre 4 en h : en (f ) = O(h4 ) La formule composite de Simpson converge : lim en (f ) = 0 n→∞ Récapitulatif Quadrature de Gauss v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 114 / 121 ESM–MENUM Intégration Numérique : Formules de Newton-Cotes Présentation Arithm. Flottante Équations Différentielles Méthodes de Newton-Cotes simples degré polynôme interpolant f 0 0 1 2 Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Introduction Méthode type Rectangle Point milieu Trapèze Simpson fermé ouvert fermé fermé degré exactitude 0 1 1 3 Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles Méthode du Point Milieu Méthode des Trapèzes Récapitulatif Quadrature de Gauss Méthodes de Newton-Cotes Composites degré du polynôme interpolant f 0 0 1 2 Méthode type Rectangles Points milieux Trapèzes Simpson composite fermé ouvert fermé fermé degré exactitude 0 1 1 3 ordre erreur 1 2 2 4 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 115 / 121 Intégration Numérique : Quadrature de Gauss Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique But Généralisation des formules de quadrature Newton-Cotes nécessaire : la fonction f possède des singularités dans [a, b] : valeur ∞ en un point de [a, b] la fonction f est discontinue (mais intégrable) sur [a, b] les limites d’intégration a ou b sont infinies Introduction Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles Méthode du Point Milieu Méthode : Formule de quadrature pondérée Z a b f (x)w (x)dx ≈= Méthode des Trapèzes Récapitulatif n X ai f (xi ) (9) i =1 w est une fonction de pondération Quadrature de Gauss le signe de w doit être constant sur [a, b] (on supposera w (x) > 0) w inclut les singularités de l’intégration, de façon que f soit régulière et puisse être approximée par un polynôme. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 116 / 121 ESM–MENUM Intégration Numérique : Quadrature de Gauss Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Introduction Formules de Newton-Cotes Formules de Newton-Cotes Quadrature de Gauss Quadrature de Gauss à n points : Z a b f (x)w (x)dx ≈ n−1 X ai f (xi ) i =0 Les points n points d’intégrations xi et poids ai sont calculés pour une intégration exacte des polynomes jusqu’au degré 2n − 1 Méthode des Rectangles À nombre de point égal, une quadrature de Gauss est toujours meilleure qu’une quadrature de Newton-Coste Méthode du Point Milieu Les quadratures de Gauss sont convergentes Méthode des Trapèzes Très utilisée dans les codes de calcul par éléments finis ! ! Récapitulatif Quadrature de Gauss v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 117 / 121 Intégration Numérique : Quadrature de Gauss Présentation Arithm. Flottante Équations Différentielles Théoreme fondamental Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Introduction Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles Méthode du Point Milieu Soit le produit scalaire pondéré < g |h >= b w (x)g (x)h(x)dx a Soit X0 , X1 , ..., Xn un ensemble de polynômes orthogonaux au sens du produit scalaire pondéré, tel que Xj soit de degré j Soient (xi )i =0,...,n−1 les n racines du polynôme Xn Soient (Li )i =0,...,n−1 les polynômes de Lagrange associés aux points d’intégrations (xi )i =0,...,n−1 Z b w (x)Li (x)dx Soient les coefficients ai définis par ai = a Méthode des Trapèzes Récapitulatif Z ➪la quadrature à n points Z a Quadrature de Gauss d’exactitude 2n − 1 b f (x)w (x)dx ≈ n−1 X ai f (xi ) est de degré i =0 v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 118 / 121 ESM–MENUM Intégration Numérique : Quadrature de Gauss Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Familles de Polynômes orthogonaux usuels w (x) Interp./Approx. Intégration numérique 1 Introduction Formules de Newton-Cotes e −x Formules de Newton-Cotes Méthode des Rectangles Méthode du Point Milieu Méthode des Trapèzes Récapitulatif e −x √ 2 1 1 − x2 produit scalaire < h|g > Z 1 h(x)g (x)dx Z−1 +∞ e −x h(x)g (x)dx 0 Z +∞ 2 e −x h(x)g (x)dx Z−∞ 1 h(x)g (x) √ dx 1 − x2 −1 Polynômes orthogonaux Intervalle Legendre ] − 1, 1[ Laguerre ]0, +∞[ Hermite ] − ∞, +∞[ Tchebychev ] − 1, 1[ Quadrature de Gauss v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 ESM–MENUM 119 / 121 Intégration Numérique : Quadrature de Gauss Présentation Arithm. Flottante Équations Différentielles Systèmes Linéaires Équations non-linéaires Interp./Approx. Intégration numérique Introduction Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles Méthode du Point Milieu Méthode des Trapèzes Récapitulatif Quadrature de Gauss Utilisation des quadratures de Gauss Dans les cas les plus courants la fonction f est régulière sur [a, b] ➪ on utilise une fonction poids w (z) = 1 l’intégrale sur [a, b] peut se ramener à une integrale sur [−1, 1] par le b−a a+b + x changement de variable z = 2 2 Z b Z b−a 1 a+b b−a f (z)dz = I = f + x dx 2 2 2 a −1 la quadrature de Gauss-Legendre à n points permet alors d’écrire n−1 b−a X a+b b−a I ≈ ai f + xi 2 i =0 2 2 le calcul se fait en prennant les valeurs des ai et des xi dans les tables. v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 120 / 121 ESM–MENUM Présentation Intégration Numérique : Quadrature de Gauss Abscisses et poids / Gauss-Legendre Arithm. Flottante nb point 1 2 Équations Différentielles Systèmes Linéaires Équations non-linéaires 3 Interp./Approx. Intégration numérique ai 2.0 1.0 1.0 5/9 8/9 5/9 xi 0√ 1/ √3 -1/ p 3 - 3/5 p0 3/5 Introduction Formules de Newton-Cotes Formules de Newton-Cotes Méthode des Rectangles Méthode du Point Milieu Abscisses et poids / Gauss-Laguerre nb point 2 Méthode des Trapèzes ai √ (2 + √2)/4 (2 − 2)/4 xi√ 2 − √2 2+ 2 Récapitulatif Quadrature de Gauss Abscisses et poids / Gauss-Tchebytchev nb point n ai π/(n + 1) xi cos(2i π/(2n + 2)) (cf “Abramowitz, M. and Stegun, I. A. (Eds.). Handbook of Mathematical Functions with Formulas”) v2.8 du 31/01/10 ; compilé LaTeX le 31 janvier 2011 121 / 121