Analyse Numérique Thomas Cluzeau Maı̂tre de Conférences École Nationale Supérieure d’Ingénieurs de Limoges Parc ester technopole, 16 rue d’atlantis 87068 Limoges Cedex [email protected] http://www.unilim.fr/pages_perso/thomas.cluzeau Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Maths à l’ENSIL en TC1 • Harmonisation en fonction du test de la rentrée Analyse Algèbre linéaire • Tronc Commun (TC) - 1ière année Mathématiques pour l’ingénieur (TC1 - S1) Analyse numérique (TC1 - S2) Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Analyse Numérique : organisation et évaluation • Organisation : Cours : 7 séances d’1h30 TDs et TPs : 12h 4 séances de TDs d’1h30 3 séances de TPs Matlab : 1 de 3h et 2 d’1h30. • Évaluation : Note du TP de 3h (Compte rendu) - 1/4 note finale 1 examen final de 1h30 avec documents - 3/4 note finale Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Plan du cours 1 Arithmétique des ordinateurs et analyse d’erreurs 2 Résolution d’un système d’équations linéaires (Partie 1) : méthodes directes 3 Conditionnement d’une matrice pour la résolution d’un système linéaire 4 Résolution d’un système d’équations linéaires (Partie 2) : méthodes itératives 5 Interpolation polynomiale 6 Intégration numérique 7 Résolution d’équations et de systèmes d’équations non linéaires Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Chapitre 1 Arithmétique des ordinateurs et analyse d’erreurs Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Arithmétique flottante • Comment les réels sont-ils représentés dans un ordinateur ? Théorème (Système des nombres à virgule flottante) Soit β un entier strictement supérieur à 1. Tout nombre réel x non nul peut se représenter sous la forme x = sgn(x) β e X dk , βk k≥1 où sgn(x) ∈ {+, −} est le signe de x, les dk sont des entiers tels que 0 < d1 ≤ β − 1 et 0 ≤ dk ≤ β − 1 pour k ≥ 2, et e ∈ Z. De plus, cette écriture est unique (sauf pour les décimaux : 2, 5 = 2, 499999 . . . ). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemples • Système décimal : β = 10 et dk ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 3 0, 0038 = 0, 38.10−2 = + 10−2 ( 10 + 1082 ) 1 4 2 8 0 1 7 = 0, 142857 . . . = + 10 ( 10 + 102 + 103 + 104 + · · · ). Développement décimal d’un nombre rationnel est périodique : 1 = 0, 142857142857142857 . . . 7√ 1 + 1042 + 1013 + 1044 + · · · ) − 2 = −1, 4142 . . . = − 101 ( 10 3 π = 3, 14159 . . . = + 101 ( 10 + 1012 + 1043 + 1014 + · · · ) • Historiquement, β = 10 car nous avons 10 doigts ! • Ordinateurs : β = 2 (numération binaire), β = 8 (num. octale), ou encore β = 16 (num. hexadécimale) • Unicité basée sur d1 6= 0 : 0, 0038 = 0, 38.10−2 3 = + 10−2 ( 10 + 0 = 0, 038.10−3 = + 10−1 ( 10 + Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique 8 ) 102 3 + 1083 ) 102 Le système F (1) On définit l’ensemble F ⊂ R par : d2 dt d1 e + 2 + · · · + t , emin ≤ e ≤ emax F = y ∈ R | y = ±β β β β ou encore F = y ∈ R | y = ± m β e−t , emin ≤ e ≤ emax Ceci correspond aux deux écritures : 3 0, 0038 = + 10−2 ( 10 + 8 ) 102 0, 0038 = + 38.10−4 avec β = 10, e = −2, t = 2, e − t = −4 • m s’appelle la mantisse. Notation : m = d1 d2 . . . dt • Notons que 0 ∈ / F. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique β Le système F (2) Pour y 6= 0, on a m β e−t = β e ( d2 d1 dt 1 + 2 + · · · + t ) ≥ β e =⇒ m ≥ β t−1 β β β β β m = d1 d2 . . . dt = d1 β t−1 + · · · + dt−k β k + · · · + dt−1 β + dt < β t On a donc montré que β t−1 ≤ m < β t . • F est un système de nombres à virgule flottante (floating point number system). Notation : F (β, t, emin , emax ). • Il dépend de quatre paramètres : 1 la base β (chiffres utilisés 0, 1, . . . , β − 1), 2 la précision t (# chiffres utilisés pour représenter la mantisse), 3 emin et emax qui définissent le domaine des exposants. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple : F (2, 3, −1, 3) • Un réel y ∈ F (2, 3, −1, 3) s’écrit : 1 d2 d3 e y =2 + + , −1 ≤ e ≤ 3, 2 4 8 d2 , d3 ∈ {0, 1} 0, 25 0 0, 5 1 2 3 4 5 6 7 • Écart entre deux nombres consécutifs ×2 à chaque puissance de 2 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique 8 Standard IEEE 754 et epsilon machine • Dans le standard IEEE 754 utilisé par Matlab, on a β = 2 et : en simple précision : t = 24, emin = −125, emax = 128, en double précision : t = 53, emin = −1021, emax = 1024. Définition On appelle epsilon machine et on note M la distance de 1 au nombre flottant suivant. • Par exemple, pour F (2, 3, −1, 3), on a M = 0, 25 • Dans Matlab, c’est la variable eps. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Écart entre deux nombres consécutifs Proposition Pour F (β, t, emin , emax ), on a M = β 1−t . Proof. On a 1 = 1 β β β = 10 . . . 0 β. β Nombre suivant : 10 . . . 1 β = ( β1 + 1 βt ) β = 1 + β 1−t . Lemme Dans le système de nombres à virgule flottante F (β, t, emin , emax ), l’écart |y − x| entre un nombre flottant x (non nul) et un nombre flottant y (non nul) adjacent vérifie β −1 M |x| ≤ |y − x| ≤ M |x|. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Représentation physique et arrondi • Représentation physique : simple précision 32 bits (bit = binary digit), 8 bits sont réservés à l’exposant et 24 bits (dont 1 pour le signe) à la mantisse. double précision 64 bits, 11 bits sont réservés à l’exposant et 53 bits (dont 1 pour le signe) à la mantisse. • Arrondi : 1 par troncature : par exemple avec 3 chiffres, 0, 8573 . . . devient 0, 857. 2 au plus près : 0, 8573 . . . devient 0, 857. 3 au représentant le plus proche dont la dernière décimale est paire (rounding to even) : 0, 8573 . . . devient 0, 858. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Formalisation Définition Soit G = G (β, t) = {y ∈ R | y = ±m β e−t } sans conditions sur l’exposant e. L’application fl : R → G , x 7→ fl(x) est appelée opération d’arrondi. • Étant donné un domaine F (β, t, emin , emax ), il y a alors dépassement de capacité si : 1 |fl(x)| > max{|y | | y ∈ F }. On parle d’overflow 2 |fl(x)| < min{|y | | y ∈ F }. On parle d’underflow Sinon, x est dans le domaine de F . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Erreur d’arrondi Définition Soit x un réel et x une valeur approchée de x. L’erreur absolue e est défini par e = |x − x|. L’erreur relative est | xe |. Le pourcentage d’erreur est l’erreur relative multipliée par 100. • En pratique, on ne connait en général pas la valeur exacte x mais on peut souvent avoir une idée de l’erreur maximale e que l’on a pu commettre : dans ce cas, on majore la quantité | xe | Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Estimation de l’erreur d’arrondi - unité d’erreur d’arrondi Théorème Soit x un réel. Si x est dans le domaine F (β, t, emin , emax ), alors il existe δ ∈ R avec |δ| < u = 12 β 1−t = 12 M tel que fl(x) = x (1 + δ). • L’erreur relative sur l’arrondi est égale à |δ| < u : le nombre u s’appelle unité d’erreur d’arrondi • Exemple : standard IEEE 754 utilisé par Matlab, on a u = 2−24 ≈ 5, 96.10−8 en simple précision u = 2−53 ≈ 1, 11.10−16 en double précision. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Modèle de l’arithmétique flottante • Modèle Standard (utilisé par le standard IEEE) : √ Soit x, y ∈ F (β, t, emin , emax ). Pour op ∈ {+, −, ×, ÷, }, on définit x op y = fl(x op y ) = (x op y ) (1 + δ), |δ| < u = 1 1−t 1 β = M 2 2 • Nous allons maintenant nous intéresser aux erreurs faites par op Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Analyse d’erreurs : non-associativité • Contrairement à op, l’opération op n’est pas associative: (x op y ) op z 6= x op (y op z) • Ceci est dû aux erreurs d’arrondi ! Par exemple, supposons que les réels soient calculés avec 3 chiffres significatifs et arrondis à la décimale la plus proche et cherchons à calculer la somme x + y + z avec x = 8, 22, y = 0, 00317 et z = 0, 00432. x + y = 8, 22 donc (x + y ) + z = 8, 22 y + z = 0, 01 donc x + (y + z) = 8, 23 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Analyse d’erreurs : erreurs d’arrondi sur une somme • Calculer S = u1 + u2 + · · · + un dans F (β, t, emin , emax ) • On calcule alors les sommes partielles Si par la récurrence S0 = 0, Si = Si−1 + ui • Si ui connus exactement, alors les erreurs d’arrondi ∆Si commises sur le calcul des sommes partielles Si vérifient ∆Si ≤ ∆Si−1 + δ (Si−1 + ui ) = ∆Si−1 + δSi , |δ| < u • L’erreur globale sur S = Sn vérifie donc ∆S ≤ δ (S2 + · · · + Sn ), ∆S ≤ δ (un + 2 un−1 + 3 un−2 + · · · + (n − 1) u2 + (n − 1) u1 ). Erreur minimale en sommant d’abord les termes les plus petits Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Analyse d’erreurs : erreurs d’arrondi sur un produit • Calculer P = u1 u2 . . . un dans F (β, t, emin , emax ) • On calcule alors les produits Pi par la récurrence P0 = 1, Pi = Pi−1 ui • Si ui connus exactement, alors les erreurs d’arrondi ∆Pi commises sur le calcul des Pi vérifient ∆Pi ≤ (∆Pi−1 ) ui + δ (Pi−1 ui ) = ∆Pi−1 ui + δPi , |δ| < u • L’erreur globale sur P = Pn vérifie donc ∆P ≤ (k − 1)δ Pn . Contrairement au cas de l’addition, la majoration de l’erreur ne dépend pas de l’ordre des facteurs. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Phénomènes de compensation (1) • Phénomènes qui se produisent lorsque l’on tente de soustraire des nombres très proches √ √ • Exemple 1 : E = x + 1 − x avec x > 0 Sous Matlab, on obtient : pour x = 109 , E = 1, 5811.10−5 pour x = 1016 , E = 0 ! 1 √ Si l’on remarque que E = √x+1+ , alors, en utilisant cette x nouvelle formule, on trouvera : pour x = 109 , E = 1, 5811.10−5 pour x = 1016 , E = 5, 000.10−9 ! Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Phénomènes de compensation (2) • Phénomènes qui se produisent lorsque l’on tente de soustraire des nombres très proches • Exemple 2 : équation du second degré x 2 − 1634 x + 2 = 0. Supposons que les calculs soient effectués avec 10 chiffres significatifs. Les formules habituelles donnent √ 1634 2 0 ∆ = − 2 = 667487, ∆0 = 816, 9987760 2 1634 √ 0 x1 = + ∆ = 817 + 816, 9987760 = 1633, 998776, 2 1634 √ 0 x2 = − ∆ = 817 − 816, 9987760 = 0, 0012240. 2 perte de 5 chiffres significatifs sur x2 ! Pour y remédier, on peut utiliser la relation x1 x2 = 2 et calculer 2 2 x2 = = = 0, 001223991125. x1 1633, 998776 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Phénomènes d’instabilité numérique (1) • Phénomènes d’amplification d’erreur d’arrondi : se produisent pour des calculs récurrents ou itératifs R 1 xn Exemple 1 : calcul de In = 0 10+x dx, n ∈ N • Calcul direct : I0 = ln 11 10 , In = 1 − 10 In−1 n calcul de In par récurrence • Numériquement, résultats très mauvais ! • Explication : erreur d’arrondi ∆In vérifie ∆In ≈ 10 ∆In−1 et croit exponentiellement: l’erreur sur I0 est multipliée par 10n sur In . Cette formule de récurrence ne peut pas nous permettre de calculer la valeur de I36 par exemple Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Phénomènes d’instabilité numérique (2) • Phénomènes d’amplification d’erreur d’arrondi : se produisent pour des calculs récurrents ou itératifs Exemple 1 : calcul de In = xn 0 10+x R1 dx, n∈N • Pour remédier à ce problème, on peut renverser la récurrence : 1 1 In−1 = 10 n − In . • on obtient alors ∆In−1 ≈ 1 10 10 ≤ 10 + x ≤ 11 =⇒ • Approximation In ≈ ∆In . 1 1 ≤ In ≤ 11 (n + 1) 10 (n + 1) 1 11 (n+1) valeur de départ pour notre 1 récurrence renversée. Exemple, I46 ≈ 11 (46+1) , on obtient pour I36 −10 une erreur relative meilleure que 10 . • Importance du coefficient d’amplification d’erreur Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Phénomènes d’instabilité numérique (3) • Phénomènes d’amplification d’erreur d’arrondi : se produisent pour des calculs récurrents ou itératifs Exemple 2 : On considère la suite définie par (J.-M. Muller) : u = 2, 0 u1 = −4, 1130 3000 + , un = 111 − un−1 un−1 un−2 • Limite théorique 6 mais en pratique 100 ! Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Phénomènes d’instabilité numérique (4) • Explication : solution générale de un = 111 − un = 1130 3000 + : un−1 un−1 un−2 α 100n+1 + β 6n+1 + γ 5n+1 , α 100n + β 6n + γ 5n où α, β et γ dépendent des valeurs initiales u0 et u1 • α 6= 0 convergence vers 100, sinon convergence vers 6 (β 6= 0) • Dans notre exemple (u0 = 2, u1 = −4) : α = 0, β = −3 et γ = 4 À cause des erreurs d’arrondi, même les premiers termes calculés seront différents des termes exacts et donc la valeur de α correspondant à ces termes calculés sera très petite mais non-nulle ce qui suffira à faire en sorte que la suite converge vers 100 au lieu de 6. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Erreur amont et erreur aval • Considérons un problème que l’on résout à l’aide d’un algorithme numérique : entrée x y = f (x) • En pratique, compte tenu des erreurs d’arrondis, étant donnée une entrée x, nous allons obtenir une sortie y 6= y = f (x) • Erreur aval : |y − y | • Erreur amont (ou erreur inverse) : plus petit δx tel que la solution algébrique f (x + δx) correspondant à l’entrée x + δx soit égale à y . • Erreur aval ≈ erreur amont × Conditionnement. • Erreur amont plus intéressante : nous renseigne sur le problème qui est réellement résolu par l’algorithme numérique en pratique, nous ne connaissons en général qu’une valeur approchée de l’entrée Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Outils théoriques de l’analyse d’erreurs • Formule (x × y ) + z avec x, y et z dans F (β, t, emin , emax ). • On a alors : fl((x × y ) + z) = [fl(x × y ) + z] (1 + δ1 ) = [(x × y ) (1 + δ2 ) + z] (1 + δ1 ) = (x × y ) (1 + δ2 ) (1 + δ1 ) + z (1 + δ1 ), Lemme Si pour tout i = 1, . . . , k, Q on a |δi | < u et si k u < 1, alors il existe k ku θk tel que |θk | ≤ 1−k et i=1 (1 + δi ) ≤ 1 + θk . u • Notation < k >= Qk i=1 (1 + δi ) avec < j > . < k >=< j + k >. fl((x × y ) + z) = (x × y ) < 2 > +z < 1 > 2u ≤ (x × y ) (1 + 1−2 u ) + z (1 + Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique u 1−u ). Chapitre 2 Résolution d’un système d’équations linéaires (Partie 1) : méthodes directes Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Systèmes linéaires • Beaucoup de problèmes se réduisent à la résolution numérique d’un système d’équations linéaires • Deux grandes classes de méthodes : 1 Méthodes directes : déterminent explicitement la solution après un nombre fini d’opérations arithmétiques 2 Méthodes itératives (sur R ou C mais pas Fp ) : consistent à générer une suite qui converge vers la solution du système • Autres méthodes non abordées dans ce cours : Méthodes intermédiaires : Splitting, décomposition incomplètes Méthodes probabilistes comme celle de Monte-Carlo Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Objet de l’étude a1,1 x1 + a1,2 x2 + · · · a2,1 x1 + a2,2 x2 + · · · (S) .. . an,1 x1 + an,2 x2 + · · · + a1,n xn = b1 + a2,n xn = b2 .. . + an,n xn = bn • Données : les ai,j et b1 , . . . , bn dans K avec K = R ou C • Inconnues : x1 , . . . , xn dans K Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Écriture matricielle (S) A x = b, a1,1 a1,2 . . . a1,n .. a2,1 . . . . A= . .. ∈ Mn×n (K) .. .. . . an,1 . . . . . . an,n x1 b1 x = ... ∈ Kn , b = ... ∈ Kn xn bn • Dans ce chapitre, A est inversible ! Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Motivation (1) • Pourquoi ce problème se pose-t-il ? • En effet, les formules de Cramer donnent la solution : ∀ i ∈ {1, . . . , n}, a1,1 . . . a1,(i−1) b1 a1,(i+1) . . . a1,n .. .. .. . . . an,1 . . . an,(i−1) bn an,(i+1) . . . an,n xi = det(A) • Regardons le nombre d’opérations nécessaires ! Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique . Motivation (2) • Regardons le nombre d’opérations nécessaires ! Lemme Le nombre d’opérations nécessaires pour résoudre le système à l’aide des formules de Cramer est de (n + 1) (n n! − 1) opérations à virgule flottante. • Lorsque n = 100, nombre d’opérations de l’ordre de 9, 4.10161 ! Ordi. fonctionnant à 100 megaflops, environ 3.10146 années ! Impossible d’utiliser Cramer pour résoudre de grands systèmes ! Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Résolution d’un système triangulaire • Idée des méthodes directes : se ramener à la résolution d’1 (ou 2) système triangulaire • A triangulaire supérieure : (S) s’écrit : a1,1 x1 + a1,2 x2 + · · · + a1,n xn = b1 a2,2 x2 + · · · + a2,n xn = b2 (S) .. .. . . an,n xn = bn . • A inversible ⇒ les ai,i sont non nuls Système facile à résoudre : algorithme de substitution rétrograde Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Résolution d’un système triangulaire : exemple • On considère le système triangulaire supérieur : 5 x3 = 1 x1 + 2 x2 + −4 x2 − 16 x3 = − 25 (S) −17 x3 = − 17 8 3ième équation : x3 = 1 8 −5/2 + 16 x3 = −4 1 − 2 x2 − 5 x3 1ière équation : x1 = = 1 2ième équation : x2 = 1 8 1 8 • Idem si A triang. inf. : algorithme de substitution progressive Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Système triangulaire : # opérations et propriétés Lemme La résolution d’un système d’équations linéaires triangulaire se fait en n2 opérations à virgule flottante. Lemme (Propriétés) Soient A, B ∈ Mn×n (K) deux matrices triangulaires supérieures. On a alors les résultats suivants : 1 A B est triangulaire supérieur 2 Si A et B sont à diagonale unité (i.e., n’ont que des 1 sur la diagonale), alors A B est à diagonale unité 3 4 Si A est inversible, alors A−1 est aussi triangulaire supérieure Si A est inversible et à diagonale unité, alors A−1 est aussi à diagonale unité. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique 3 méthodes directes étudiées dans la suite 1 Méthode de Gauss : système (M A) x = M b avec M A triang. sup. (sans calculer explicitement M). • Associée à la factorisation A = L U de la matrice A avec L triang. inf. et U triang. sup., A x = b ⇔ L y = b, U x = y 2 Méthode de Cholesky • Associée à la factorisation de Cholesky A = R T R avec R triang. sup., A x = b ⇔ R T y = b, R x = y • Méthode valable pour A symétrique et définie positive 3 Méthode de Householder • Associée à la factorisation A = Q R avec R triang. sup. et Q ortho., Q produit de n − 1 matrices de Householder Hi . • A x = b s’écrit alors Hn−1 · · · H2 H1 A x = Hn−1 · · · H2 H1 b facile à résoudre car Hn−1 · · · H2 H1 A triang. sup. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de Gauss : description (1) • (S) : A x = b avec A inversible (1) • On pose b (1) = b et A(1) = A = (ai,j ) (S (1) ) : A(1) x = b (1) Étape 1 (1) • A inversible ⇒ on suppose (quitte à permuter lignes) a1,1 6= 0. C’est le premier pivot de l’élimination de Gauss (1) • Pour i = 2, . . . , n, on remplace Li par Li − gi,1 L1 où gi,1 = Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique ai,1 (1) a1,1 Méthode de Gauss : description (2) • On obtient alors (S (2) ) : A(2) x = b (2) avec : (2) (1) a1,j = a1,j , j = 1, . . . , n (2) ai,1 = 0, i = 2, . . . , n (2) (1) (1) ai,j = ai,j − gi,1 a1,j , (2) (1) b = b1 1(2) (1) (1) bi = bi − gi,1 b1 , • La matrice A(2) et (1) a1,1 0 A(2) = 0 . . . 0 i, j = 2, . . . , n i = 2, . . . , n le vecteur b (2) sont donc de la forme (1) (1) (1) a1,2 . . . a1,n b (2) (2) a2,2 . . . a2,n 1(2) b2 .. .. (2) . . , b = .. . .. .. . . (2) bn (2) (2) an,2 . . . an,n Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique : Méthode de Gauss : description (3) Étape k • On a ramené le système à (S (k) ) : A(k) x = b (k) avec (k) A (1) a1,1 0 0 . .. = 0 .. . .. . 0 ... a1,k (1) ... a1,n a2,k (2) ... a2,n (3) ... . a3,k .. . a3,n .. . 0 ak,k (k) ... ak,n 0 .. . ak+1,k .. . (k) . . . ak+1,n .. . 0 an,k ... (2) a2,2 (3) 0 .. . a3,3 .. . ... 0 .. . .. . 0 ... Thomas Cluzeau (Univ. de Limoges - ENSIL) .. (k) Analyse Numérique (1) (2) (3) (k) (k) ... (k) an,n Méthode de Gauss : description (4) (k) • A inversible ⇒ on suppose (quitte à permuter lignes) ak,k 6= 0. C’est le kième pivot de l’élimination de Gauss (k) • Par le même principe qu’à l’étape 1 et en utilisant gi,k = i > k, on obtient (1) a1,1 0 0 . .. A(k+1) = 0 .. . .. . 0 ai,k (k) ak,k pour alors (S (k+1) ) : A(k+1) x = b (k+1) avec ... (1) . . . a1,k+1 ... a1,n a2,k (2) ... ... a2,n (3) ... ... . a3,k .. . a3,n .. . 0 ak,k (k) ... ... ak,n 0 .. . 0 .. . 0 0 (2) a2,2 (3) 0 .. . a3,3 .. . ... 0 .. . .. . 0 ... (1) ... .. Thomas Cluzeau (Univ. de Limoges - ENSIL) (k+1) (2) (3) (k) (k+1) ak+1,k+1 . . . ak+1,n .. .. . . (k+1) (k+1) an,k+1 . . . an,n Analyse Numérique Méthode de Gauss : description (5) Étape n − 1 • Le système (S (n) ) : A(n) x supérieure avec (1) a 1,1 0 A(n) = 0 . . . 0 = b (n) obtenu est triangulaire ... (2) a2,2 (3) 0 .. . a3,3 .. . ... 0 (1) . . . a1,n (2) a2,n (3) a3,n .. .. . . (n) 0 an,n • On peut le résoudre par l’algorithme de substitution rétrograde Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de Gauss : exemple (1) x1 + 2 x2 + 5 x3 = 1, (1) (S) = (S ) 3 x1 + 2 x2 − x3 = 21 , 5 x2 + 3 x3 = 1. (1) • Le premier pivot de l’élimination de Gauss est donc a1,1 = 1 et on (1) (1) a g2,1 = 3, g3,1 = 0. La première étape fournit donc (S (2) ) x1 + 2 x2 + 5 x3 = 1, −4 x2 − 16 x3 = − 52 , 5 x2 Thomas Cluzeau (Univ. de Limoges - ENSIL) + 3 x3 Analyse Numérique = 1. Méthode de Gauss : exemple (2) (2) • Le second pivot de l’élimination de Gauss est donc a2,2 = −4 et (2) on a g3,2 = − 54 . On obtient donc le système (S (3) ) x1 + 2 x2 + 5 x3 = 1, −4 x2 − 16 x3 = − 52 , −17 x3 = − 17 8 . • Algorithme de substitution rétrograde Thomas Cluzeau (Univ. de Limoges - ENSIL) x1 = x2 = x3 = Analyse Numérique 1 8 Point de vue numérique : stratégies de choix du pivot (1) • Au cours de l’exécution de l’élimination de Gauss, si on tombe sur un pivot nul, alors on permute la ligne en question avec une ligne en dessous pour se ramener à un pivot non nul (ceci est toujours possible car A est supposée inversible). Certains choix de pivots peuvent s’avérer plus judicieux que d’autres. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Point de vue numérique : stratégies de choix du pivot (2) Exemple : considérons le système (S) : A x = b où α 1 1 A= , b= , α ∈ R∗ 1 1 2 • On suppose de plus α 6= 1 de sorte que A est inversible • Solution x1∗ = 1 1−α , x2∗ = 1−2 α 1−α • Supposons maintenant que α est très petit (0 α < 1) et appliquons l’élimination de Gauss Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Point de vue numérique : stratégies de choix du pivot (3) • Premier pivot α, g2,1 = (2) A = 1 α α 1 0 1− (S (2) ) : A(2) x = b (2) avec 1 α , b (2) = 1 2− 1 α . − α1 x2 ≈ − α1 d’où x2 ≈ 1 et x1 ≈ 0 ce qui est faux ! • L’erreur ne provient pas seulement du fait que α est très petit car si on multiplie la première ligne par une puissance de 10 quelconque, on va trouver la même erreur ... Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Point de vue numérique : stratégies de choix du pivot (4) • Notons x2 = x2∗ + δx2 où |δx2 | est l’erreur absolue sur x2 • On a alors x1 = Erreur δx1 = 1 α 1 − x2∗ δx2 1 − x2 = − , α α α δx2 sur x1 très amplifiée par rapport à δx2 . • Cause = déséquilibre entre coeffs de x1 et x2 sur la ligne du pivot • Pour y remédier, échanger les lignes et appliquer Gauss avec 1 comme pivot. On obtient alors 1 1 2 (2) A = , b= , 0 1−α 1 − 2α d’où x2 ≈ 1 et x1 ≈ 1 ce qui est correct. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Élimination de Gauss à pivot partiel • À l’étape k, on échange les lignes k et k 0 (k 0 ≥ k) de A(k) de telle (k) (k) sorte que : |ak,k | = max{|ai,k |, i ≥ k}. Exemple : pour x1 + 2 x2 + 5 x3 = 1 (S) : 3 x1 + 2 x2 − x3 = 12 5 x2 + 3 x3 = 1 à la première étape, on permute les lignes 1 et 3 x1 + 2 x2 − x3 0 (S ) : x1 + 2 x2 + 5 x3 5 x2 + 3 x3 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique 2: = 1 2 = 1 = 1 Élimination de Gauss à pivot total • À l’étape k, on échange à la fois les lignes k et k 0 (k 0 ≥ k) et les colonnes k et k 00 (k 00 ≥ k) de telle sorte que : (k) (k) |ak,k | = max{|ai,j |, i ≥ k, j ≥ k}. Attention : Si on échange des colonnes, cela modifie l’ordre des composantes de x donc il faut penser à rétablir le bon ordre à la fin. Exemple : pour x1 + 2 x2 + 5 x3 = 1 (S) : 3 x1 + 2 x2 − x3 = 12 5 x2 + 3 x3 = 1 à la première étape, on permute les colonnes 1 5 x3 + 2 x2 + x1 0 (S ) : −x3 + 2 x2 + 3 x1 3 x3 + 5 x2 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique et 3 : = 1 = 1 2 = 1 Lien avec la factorisation LU d’une matrice (1) Définition On appelle factorisation LU de A une facto. A = L U avec L triang. inf. et U triang. sup. (de la même taille que A). Lemme À l’étape k de l’élimination de Gauss, 1 (0) 0 .. . .. . (0) 1 0 Gk = 0 . . . 0 −gk+1,k 1 .. .. .. . . . 0 ... 0 −gn,k (0) on a A(k+1) = Gk A(k) où ... 0 .. . (k) a ... 0 , gi,k = i,k (k) (0) ak,k .. . 1 On a de plus b (k+1) = Gk b (k) . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Lien avec la factorisation LU d’une matrice (2) Définition Soit A ∈ Mn×n (K). Les mineurs fondamentaux Dk , k = 1, . . . , n de A sont les déterminants des sous-matrices de A formées par les k premières lignes et les k premières colonnes de A : Dk = det ((ai,j )1≤i,j≤k ) , k = 1, . . . , n. Théorème Soit A ∈ Mn×n (K) une matrice carrée inversible. Les propriétés suivantes sont équivalentes : (i) L’élimination de Gauss s’effectue sans permutation de lignes ; (ii) Il existe L ∈ Mn×n (K) triangulaire inférieure inversible et U ∈ Mn×n (K) triangulaire supérieure inversible telles que A = LU ; (iii) Tous les mineurs fondamentaux de A sont non nuls. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Lien avec la factorisation LU d’une matrice (3) Lemme Avec les notations précédentes, on a 1 0 ... ... 0 .. .. g2,1 . 1 . . −1 . . . (Gn−1 Gn−2 · · · G1 ) = g3,1 g3,2 1 . . . .. .. .. .. . . . . 0 gn,1 gn,2 . . . gn,n−1 1 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Lien avec la factorisation LU d’une matrice (4) Corollaire Soit A ∈ Mn×n (K) une matrice carrée inversible. Si tous les mineurs fondamentaux de A sont non nuls, alors avec les notations précédentes, l’élimination de Gauss fournit la factorisation LU de A suivante : 1 g2,1 A = g3,1 . .. gn,1 0 1 ... .. . g3,2 .. . 1 .. . gn,2 ... ... .. . .. . gn,n−1 (1) a 1,1 0 0 . . . 0 0 1 0 .. . .. . ... ... (2) a2,2 0 .. . (3) a3,3 . .. ... 0 0 .. . • Remarque : la matrice L obtenue est à diagonale unité. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique (1) a1,n (2) a2,n (3) a3,n .. . (n) an,n . Factorisation LU : exemple Pour la matrice du système x1 + 2 x2 + 5 x3 = 1 3 x1 + 2 x2 − (S) : 1 0 1 2 5 3 2 −1 = 3 1 0 5 3 0 − 54 | {z } | {z Thomas Cluzeau (Univ. de Limoges - ENSIL) = 1 2 5 x2 + 3 x3 = 1 on a : A x3 L 0 1 2 5 0 0 −4 −16 0 0 −17 1 {z } }| U Analyse Numérique Lien avec la factorisation LU d’une matrice (5) Proposition Soit A ∈ Mn×n (K) une matrice carrée inversible admettant une factorisation LU. Alors il existe une unique factorisation LU de A avec L à diagonale unité. • Lorsque A admet une factorisation LU, la résolution du système d’équations linéaires (S) : A x = b se ramène à la résolution de deux systèmes linéaires triangulaires. En effet : L y = b, A x = b ⇐⇒ L U x = b ⇐⇒ U x = y. • En pratique, on résout donc d’abord L y = b puis connaissant y on résout U x = y . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Matrice de permutation Définition On appelle matrice de permutation associée à une permutation σ ∈ Sn , la matrice Pσ = (δiσ(j) ) où δij = 1 si i = j, δij = 0 sinon. • Exemple : 0 0 1 0 0 0 1 0 0 0 σ : (1, 2, 3, 4, 5) 7→ (3, 2, 5, 1, 4) Pσ = 0 0 0 0 1 . 1 0 0 0 0 0 0 0 1 0 • Multiplier A à gauche (resp. à droite) par une matrice de permutation revient alors à permuter des lignes (resp. les colonnes) • Les matrices de permutation sont orthogonales : Pσ−1 = PσT . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Lien avec la factorisation LU d’une matrice (6) • Nous avons vu une CNS pour qu’une matrice inversible admette une factorisation LU. Lorsque cette factorisation LU n’existe pas, on peut tout de même utiliser le théorème suivant : Théorème Soit A ∈ Mn×n (K) une matrice carrée inversible. Il existe une matrice de permutation P telle que P A admette une factorisation LU. • Notons que dans ce cas, on a : A x = b ⇐⇒ P A x = P b ⇐⇒ L U x = P b ⇐⇒ Ly Ux = P b, = y. • En pratique, on résout donc d’abord L y = P b puis connaissant y on résout U x = y . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Coût de l’algorithme de Gauss Lemme Soit A ∈ Mn×n (K) une matrice carrée inversible. Résoudre un système linéaire (S) : A x = b via l’élimination de Gauss nécessite 3 un nombre d’opérations à virgule flottante équivalent à 2 3n lorsque n tend vers l’infini. Ce coût asymptotique est aussi celui du calcul de la factorisation LU de A. • Pour n = 100, cela donne 6, 6.105 opérations à virgule flottante à comparer à 9, 4.10161 avec Cramer • Avec un ordinateur fonctionnant à 100 megaflops, cela prendra moins de 7 millièmes de secondes. À comparer avec 3.10146 années pour Cramer Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Faut-il inverser une matrice ? • Étant donnée la factorisation LU de A, le coût du calcul de 3 l’inverse A−1 de A lorsque n tend vers l’infini est de 4 3n opérations à virgule flottante • Au total, lorsque n tend vers l’infini, il faut donc 2 n3 opérations à virgule flottante pour calculer l’inverse de A Asymptotiquement (i.e., lorsque n tend vers l’infini), il faut 3 fois plus d’opérations à virgule flottante pour calculer l’inverse de A que pour résoudre le système linéaire A x = b en utilisant l’élimination de Gauss ⇒ Il ne faut pas calculer l’inverse d’une matrice pour résoudre un système linéaire Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Résolution de plusieurs systèmes de même matrice A • Soit A ∈ Mn×n (K) une matrice carrée inversible et supposons que l’on ait à résoudre K systèmes linéaires avec la même matrice A et N seconds membres b [1] , . . . , b [K ] • Gauss à chacun de ces systèmes K 4 n3 +9 n2 −7 n 6 flops • Facto. LU de A résolution puis successive des 2 K systèmes 4 n3 +3 n2 −7 n triangulaires + 2 K n2 flops 6 • Calcul de l’inverse A−1 de A puis résolution successive des systèmes en posant x [i] = A−1 b [i] 2 n3 + 2 K n2 flops Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de Cholesky (1) • Alternative à Gauss pour matrices symétriques et définies positives Définition Une matrice A ∈ Mn×n (K) est dite symétrique si elle est égale à sa transposée, i.e., AT = A. Définition Soit K = R ou C. Le produit scalaire canonique sur Kn est défini comme l’application h. , .i : Kn × Kn → K, (u, v ) 7→ hu, v i qui vérifie : P Si K = R, hu, v i = v T u = ni=1 ui vi (produit scalaire euclidien), P Si K = C, hu, v i = v T u = ni=1 ui vi (produit scalaire hermitien). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de Cholesky (2) Définition Une matrice A ∈ Mn×n (K) est dite définie positive, resp. semi définie positive si pour tout x ∈ Rn non nul, on a hA x, xi > 0, resp. hA x, xi ≥ 0. 1 2 3 Une matrice définie positive est inversible ; Si A ∈ Mn×n (K) est inversible, alors AT A est symétrique et définie positive ; Si A = (ai,j ) ∈ Mn×n (K) est définie positive, alors ai,i > 0 pour tout i = 1, . . . , n. Théorème Une matrice réelle A ∈ Mn×n (R) est symétrique définie positive ssi il existe une matrice L = (li,j )1≤i,j≤n ∈ Mn×n (R) triangulaire inférieure inversible telle que A = L LT . De plus, si pour tout i = 1, . . . , n, li,i ≥ 0, alors L est unique. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Algorithme de Cholesky Entrèe : A = (ai,j )1≤i,j≤n ∈ Mn×n (R) symétrique et définie positive. Sortie : L = (li,j )1≤i,j≤n ∈ Mn×n (R) tel que A = L LT . √ 1 l a1,1 ; 1,1 = 2 Pour i de 2 à n par pas de 1, faire : li,1 = 3 ai,1 l1,1 ; Pour j de 2 à n par pas de 1, faire : Pour i de 1 à j − 1 par pas de 1, faire : li,j = 0 ; q Pj−1 2 lj,j = aj,j − k=1 lj,k ; Pour i de j + 1 à n par pas de 1, faire : li,j = 4 Pj−1 ai,j − k=1 li,k lj,k lj,j ; Retourner L = (li,j )1≤i,j≤n ∈ Mn×n (R). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Coût de l’algorithme de Cholesky Proposition L’algorithme de Cholesky décrit ci-dessus nécessite n extractions de racines carrées et un nombre d’opérations à virgule flottante 3 équivalent à n3 lorsque n tend vers l’infini. • Asymptotiquement, presque deux fois moins d’opérations à virgule flottante que pour LU Il est conseillé de l’utiliser lorsque A est réelle symétrique et définie positive Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Matrices de Householder • Ici A ∈ Mn×n (R) est une matrice réelle inversible Définition On appelle matrice (élémentaire) de Householder une matrice H de la forme Hu = In − 2 u u T , où u ∈ Rn est un vecteur unitaire c’est-à-dire de norme 1 pour la norme passociée au produit scalaire canonique sur Rn définie par kuk = hu, ui. • Exemple : pour n = 3, on peut considérer le vecteur T u = √16 −1 1 2 qui vérifie bien kuk = 1. On obtient alors 2 1 2 la matrice de Householder Hu = 31 1 2 −2 . 2 −2 −1 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Matrices Orthogonales Définition Une matrice A ∈ Mn×n (K) est dite orthogonale si elle est réelle, i.e., A ∈ Mn×n (R) et si A AT = AT A = In . Proposition Toute matrice de Householder H est symétrique et orthogonale. Proposition Pour tout vecteur u ∈ Rn tel que kuk = 1, on a Hu u = −u. De plus, si v ∈ Rn est orthogonal à u, i.e., hu, v i = 0, alors Hu v = v . • Hu représente la symétrie orthogonale par rapport à u ⊥ Lemme Soit x et y deux vecteurs de Rn tels que x 6= y et kxk = ky k. Alors il existe un vecteur unitaire u ∈ Rn tel que Hu x = y . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Principe de la méthode de Householder • Méthode basée sur les deux propositions suivantes : Proposition Soit v un vecteur non nul de Rn . Alors il existe une matrice de Householder H et un réel α tels que H v = α e1 , où e1 = (1, 0, . . . , 0)T est le premier vecteur de la base canonique de Rn . Proposition Soit u = (ui ) un vecteur unitaire de Rn tel que u1 = · · · = up = 0 pour p < n. On décompose alors u en deux blocs : u = (0 z)T avec z ∈ Rn−p . La matrice de Householder alors Hu se décompose Ip 0 par blocs de la manière suivante : Hu = . 0 Hz Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Principe de la méthode de Householder A= × × × × × × × × × × Thomas Cluzeau (Univ. de Limoges - ENSIL) × × × × × × × × × × × × × × × Analyse Numérique Principe de la méthode de Householder A= × × × × × × × × × × Thomas Cluzeau (Univ. de Limoges - ENSIL) × × × × × × × × × × × × × × × Analyse Numérique Principe de la méthode de Householder H1 A = × 0 0 0 0 Thomas Cluzeau (Univ. de Limoges - ENSIL) × × × × × × × × × × × × × × × × × × × × Analyse Numérique Principe de la méthode de Householder H1 A = × 0 0 0 0 Thomas Cluzeau (Univ. de Limoges - ENSIL) × × × × × × × × × × × × × × × × × × × × Analyse Numérique Principe de la méthode de Householder H 2 H1 A = × × × × × 0 × × × × 0 0 × × × 0 0 × × × 0 0 × × × Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Principe de la méthode de Householder H 2 H1 A = × × × × × 0 × × × × 0 0 × × × 0 0 × × × 0 0 × × × Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Principe de la méthode de Householder H 3 H2 H1 A = × × × × × 0 × × × × 0 0 × × × 0 0 0 × × 0 0 0 × × Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Principe de la méthode de Householder H 3 H2 H1 A = × × × × × 0 × × × × 0 0 × × × 0 0 0 × × 0 0 0 × × Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Principe de la méthode de Householder H4 H3 H 2 H1 A = × × × × × 0 × × × × 0 0 × × × 0 0 0 × × 0 0 0 0 × Donc A = (H4 H3 H2 H1 )T R. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique =R Exemple (1) 2 x1 + x2 + 2 x3 = 1, x1 + x2 + 2 x3 = 1, (S) : 2 x1 + x2 + x3 = 1. Étape 1 • 1ière colonne de A donnée par (S) : a1 = (2 • v1 = a1 ka1 k − e1 = • u1 = v1 kv1 k = √1 6 1 3 (−1 1 −1 1 2 1 2)T 2)T T 2 1 2 • Matrice de Householder Hu1 = 13 1 2 −2 2 −2 −1 9 5 8 x1 5 4 x2 = 1 A x = b ⇔ Hu1 A x = Hu1 b ⇔ 0 1 0 −1 −1 x3 −1 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple (2) Étape 2 • Dans R2 et on considère le vecteur a2 = (1 • z20 = − 1)T a2 ka2 k − e10 où e10 = (1, 0) 1 −1 z20 1 • z2 = kz 0 k et Hz2 = √2 2 −1 −1 T 1 0 • u2 = 0 z2 et Hu2 = 0 Hz2 9 A x = b ⇔ Hu2 Hu1 A x = Hu2 Hu1 b ⇔ 0 0 Système triangulaire et x = (0 Thomas Cluzeau (Univ. de Limoges - ENSIL) √5 2 0 1 8 5 √ 2 − √3 2 x √5 1 x2 = 2 x3 0 0)T . Analyse Numérique Factorisation QR d’une matrice Définition Soit A ∈ Mn×n (R) une matrice carrée réelle inversible. On appelle factorisation QR de A une factorisation de la forme A = Q R avec Q ∈ Mn×n (R) orthogonale et R ∈ Mn×n (R) triangulaire supérieure. • Généralisation de l’exemple précédent pour A quelconque de taille n, on obtient n − 1 matrices de Householder H1 , . . . , Hn−1 telles que R = Hn−1 Hn−2 · · · H1 A triang. sup. • Q = (Hn−1 Hn−2 · · · H1 )−1 (orthogonale) de sorte que A = Q R Théorème Pour toute matrice réelle A ∈ Mn×n (R), il existe une matrice orthogonale Q ∈ Mn×n (R) produit d’au plus (n − 1) matrices de Householder et une matrice triangulaire supérieure R ∈ Mn×n (R) telles que A = Q R. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Coût de la factorisation QR Proposition La méthode de Householder pour résoudre un système linéaire nécessite un nombre d’opérations à virgule flottante équivalent à 4 n3 3 lorsque n tend vers l’infini. • Coût relativement élevé comparé à Gauss ou Cholesky. • Plus stable numériquement que Gauss ou Cholesky • Factorisation QR existe pour des matrices rectangulaires : utilisé pour des problèmes de moindres carrés (voir TP). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Chapitre 3 Conditionnement d’une matrice pour la résolution d’un système linéaire Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Normes vectorielles Soit E un espace vectoriel sur K = R ou C. Définition On appelle norme sur E une application k.k : E → R+ telle que : ∀ x ∈ E , (kxk = 0 ⇒ x = 0) ; ∀ λ ∈ K, ∀ x ∈ E , kλ xk = |λ| kxk ; ∀ (x, y ) ∈ E 2 , kx + y k ≤ kxk + ky k. • Normes classiques sur Rn : k.k1 , k.k2 et k.k∞ définies par : kxk1 = n X i=1 |xi |, kxk2 = n X !1 2 |xi |2 i=1 Thomas Cluzeau (Univ. de Limoges - ENSIL) 1 = hx, xi 2 , Analyse Numérique kxk∞ = max |xi | 1≤i≤n Normes matricielles et normes subordonnées Définition Une norme k.k sur Mn×n (K) est une norme matricielle si elle vérifie : ∀ (A, B) ∈ Mn×n (K)2 , kA Bk ≤ kAk kBk. • Exemple fondamental : normes dites subordonnées associées à une norme vectorielle : Théorème et Définition Soit k.k une norme vectorielle sur Kn . Pour toute matrice A ∈ Mn×n (K), on définit k.kM : Mn×n (K) → R+ par xk kAkM = supx∈Kn \{0} kA kxk . Alors k.kM est une norme matricielle. Elle est dite norme subordonnée à la norme vectorielle k.k. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Normes subordonnées classiques • Normes subordonnées associées aux normes vectorielles k.k1 , k.k2 et k.k∞ de Rn : ∀ A = (ai,j )1≤i,j≤n ∈ Mn×n (K) : kAk1 = max n X 1≤j≤n kAk2 = |ai,j | i=1 p ρ(A A∗ ) kAk∞ = max 1≤i≤n n X |ai,j | j=1 où : T A∗ = A désigne la matrice adjointe de A ρ(M) désigne le rayon spectral d’une matrice M cad le maximum des modules des valeurs propres de M. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Conditionnement d’une matrice : exemple Considérons le système 10 7 A= 8 7 linéaire (S) : A x = b avec 7 8 7 32 23 5 6 5 , b = 33 6 10 9 5 9 10 31 . • On remarque que : A est symétrique det(A) = 1 la solution de (S) est donnée par x = (1 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique 1 1 1)T Premier cas : b est perturbé (1) • Perturbons légèrement le second membre b et considérons 32, 1 22, 9 b0 = 33, 1 30, 9 • Si on résout le système (S 0 ) : A x 0 = b 0 , on trouve x 0 = (9, 2 − 12, 6 4, 5 − 1, 1)T La petite perturbation sur le second membre b entraı̂ne donc une forte perturbation sur la solution du système • D’une manière générale, pour A x = b et A (x + δx) = b + δb : kδxk kδbk ≤ kA−1 k.kAk. . kxk kbk Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Premier cas : b est perturbé (2) • Majoration optimale : il n’existe pas de borne plus petite qui soit valable pour tout système ! 1 0 •A= , b = (1 0)T , et δb = (0 12 )T 0 12 Solution de A x = b : x = (1 δx = (0 1)T kδxk kxk = 1, kδbk kbk = 0)T et celle de A δx = δb est 1 2 Or kA−1 k.kAk = 2 donc la borne est atteinte. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Deuxième cas : A est perturbée • Si on perturbe légèrement 10 7, 08 A00 = 8 6, 99 la matrice A : 7 8, 1 7, 2 5, 04 6 5 , 5, 98 9, 89 9 4, 99 9 9, 98 Solution de (S 00 ) : A00 x 00 = b : x 00 = (−81 107 − 34 22)T . • D’une manière générale, pour A x = b et (A + ∆A) (x + δx) = b : kδxk k∆Ak ≤ kA−1 k.kAk. kx + δxk kAk Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Conditionnement : définition Définition Soit k.k une norme matricielle subordonnée et A une matrice inversible. Le nombre Cond(A) = kA−1 k.kAk s’appelle le conditionnement de A relatif à la norme k.k. • Ce nombre mesure la sensibilité de la solution par rapport aux données du problème • Une matrice est : bien conditionnée si Cond(A) ≈ 1 mal conditionnée si Cond(A) 1 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemples • Matrices bien conditionnées 4 1 0 1 4 1 . .. A= 0 1 .. . . . . . . . 0 ... 0 ... .. . .. . .. . 1 0 .. . 0 1 4 Cond∞ (A) ≤ 3 • Matrices mal conditionnées : matrices Hn et Vn i−1 ! 1 j Hn = , Vn = i + j − 1 1≤i,j≤n n 1≤i,j≤n n 2 4 6 Cond(Hn ) 27 2, 8.104 2, 9.107 Thomas Cluzeau (Univ. de Limoges - ENSIL) Cond(Vn ) 8 5, 6.102 3, 7.104 Analyse Numérique Propriété du conditionnement Proposition Soit A une matrice réelle p et considérons la norme matricielle subordonnée kAk2 = ρ(A A∗ ). On a s ρ(A AT ) Cond2 (A) = kA−1 k2 .kAk2 = , σ(A AT ) où σ(M) désigne le minimum des modules des valeurs propres de M. ρ(A) . En particulier, si A est symétrique, alors on a Cond2 (A) = σ(A) Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Estimation théorique de l’erreur a priori (1) Théorème (Cas b perturbé) Soit A ∈ Mn×n (R) inversible et b ∈ Rn tels que A x = b et A (x + δx) = b + δb avec x 6= 0. Alors on a : kδbk kδxk kδbk 1 . ≤ ≤ Cond(A). , Cond(A) kbk kxk kbk Théorème (Cas A perturbée) Soit A ∈ Mn×n (R) inversible, b ∈ Rn et ∆A ∈ Mn×n (R) tels que kA−1 k.k∆Ak < 1. Alors A + ∆A est inversible. De plus si on suppose A x = b et (A + ∆A) (x + δx) = b avec x 6= 0, alors on a : Cond(A). k∆Ak kδxk kAk . ≤ kxk 1 − Cond(A). k∆Ak kAk Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Estimation théorique de l’erreur a priori (2) Théorème (Cas A et b perturbés) Soit A ∈ Mn×n (R) inversible, b ∈ Rn et ∆A ∈ Mn×n (R) vérifiant kA−1 k.k∆Ak < 1. Si l’on suppose que A x = b et (A + ∆A) (x + δx) = b + δb avec x 6= 0, alors on a : kδbk k∆Ak Cond(A) kδxk ≤ + . kxk kbk kAk 1 − Cond(A). k∆Ak kAk Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Estimation théorique de l’erreur a posteriori • A x = b, ? erreur commise sur la solution réellement calculée • x la solution exacte, y la solution obtenue. r = A y − b (résidu) Théorème ky − xk ≤ Cond(A). kr k .kxk. kbk • Conditionnement est grand ⇒ erreur relative peut être grande • Difficile à utiliser car en général conditionnement inconnu ! • C approximation de A−1 (par Gauss), R = A C − In Théorème Si kRk < 1, alors ky − xk ≤ kr k.kC k 1−kRk . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Chapitre 4 Résolution d’un système d’équations linéaires (Partie 2) : méthodes itératives Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Motivation • Les méthodes directes exigent un nombre de flops de l’ordre de n3 lorsque n devient grand ce qui les rend lentes ! Méthodes itératives deviennent indispensables dès que la taille n du système est grande, n ≥ 1000 • De tels systèmes apparaissent par exemple dans les techniques de résolution numérique d’équations aux dérivées partielles • Les matrices des systèmes obtenus sont en général creuses (cad qu’elles ont beaucoup de 0) et (semi) définies positives • Les méthodes itératives s’appliquent sur R ou C mais pas Fp ! Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple introductif (1) • Donnée : une fonction f : R2 → R • Problème : trouver une solution approchée ũ : Ω ⊂ R2 → R de : −∆ũ = f , ∀(x, y ) ∈ Ω =]0, 1[×]0, 1[, ũ = 0, ∀(x, y ) ∈ ∂Ω, où : ∆ũ = ∂ 2 ũ ∂x 2 + ∂ 2 ũ ∂y 2 désigne le laplacien de la fonction ũ ∂Ω la frontière de Ω Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple introductif (2) • Discrétisation de Ω =]0, 1[×]0, 1[ de pas h • ? fonction étagée u t.q. u → ũ lorsque h → 0 h= 1 , n+1 u= X ui,j χi,j i,j χi,j fonction caractéristique du pavé 1 1 1 1 Pi,j =](i − ) h, (i + ) h[×](j − ) h, (j + ) h[ 2 2 2 2 On note alors xi,j = (i h, j h) les nœuds du quadrillage. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple introductif (3) y 1 ←− Ω P2,3 • x2,3 h h Thomas Cluzeau (Univ. de Limoges - ENSIL) 1 Analyse Numérique x Exemple introductif (4) • Définition de la dérivée d’une fonction : h suffisamment petit : u(x + h2 , y ) − u(x − h2 , y ) ∂ ũ ≈ , ∂x h ∂ 2 ũ u(x + h, y ) − 2 u(x, y ) + u(x − h, y ) ≈ 2 ∂x h2 Approximations par différences finies f = X i,j fi,j χi,j 4 ui,j − ui−1,j − ui+1,j − ui,j−1 − ui,j+1 = h2 fi,j , u0,j = un+1,j = ui,0 = ui,n+1 = 0, • schéma numérique dit implicite Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple introductif (5) • Système linéaire associé : 4 −1 −1 4 M = 0 −1 .. .. . . 0 ... • Xj = (u1,j • Fj = (f1,j u2,j f2,j ... ... 0 ... 0 .. . −1 . . . .. .. . . 0 .. .. . . −1 0 −1 4 un,j )T , X = (X1T fn,j )T , F = (F1T ∈ Mn×n (R) X2T F2T XnT )T ... ... FnT )T • En définissant de plus X0 = Xn+1 = 0, le système précédent s’écrit: −Xj−1 + M Xj − Xj+1 = h2 Fj , Thomas Cluzeau (Univ. de Limoges - ENSIL) 1≤j ≤n Analyse Numérique Exemple introductif (6) A X = h2 F , M −In 0 −In M −In A = 0 −In . . . .. .. .. . . . 0 ... 0 ... 0 .. .. . . .. . 0 .. . −In −In M ∈ Mn2 ×n2 (R) • A est symétrique réelle, définie positive (donc en particulier inversible). Système linéaire tridiagonal par blocs de grande taille ( h → 0 équivaut à n → ∞) Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Modèle général d’un schéma itératif (1) • A ∈ Mn×n (K), b ∈ Kn et (S) : A x = b • Principe général : générer une suite de vecteurs qui converge vers la solution A−1 b • Idée : écrire (S) sous une forme équivalente permettant de voir la solution comme un point fixe : (S) ⇐⇒ B x + c = x B ∈ Mn×n (K) et c ∈ Kn bien choisis cad I − B inversible et c = (I − B) A−1 b • Exemple : A = M − N (M inversible), B = M −1 N et c = M −1 b Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Modèle général d’un schéma itératif (2) • On se donne alors x (0) ∈ Kn et on construit une suite de vecteurs x (k) ∈ Kn à l’aide du schéma itératif (?) x (k+1) = B x (k) + c, k = 1, 2, . . . . • Si (x (k) )k∈N est convergente, alors elle converge vers la solution A−1 b de (S) Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Convergence (1) Définition Une méthode itérative définie par (x (k) )k∈N pour résoudre un système A x = b est dite convergente si pour toute valeur initiale x (0) ∈ Kn , on a limk→+∞ x (k) = A−1 b. Lemme Si la méthode itérative est convergente et si on note x = A−1 b la solution, alors x (k) − x = B k (x (0) − x). • x (k) − x erreur à la k-ième itération en fonction de l’erreur initiale Thomas Cluzeau (Univ. de Limoges - ENSIL) estimation de cette erreur Analyse Numérique Convergence (2) Théorème Les assertions suivantes sont équivalentes : (i) (?) est convergente ; (ii) Pour tout y ∈ Kn , limk→+∞ B k y = 0 ; (iv) Pour toute norme matricielle k.k sur Mn×n (K), on a limk→+∞ kB k k = 0. • En pratique, caractérisations difficiles à vérifier Théorème Les assertions suivantes sont équivalentes : (i) (?) est convergente ; (ii) ρ(B) < 1, où ρ(B) désigne le rayon spectral de la matrice B ; (iii) Il existe une norme matricielle k.k sur Mn×n (K) subordonnée à une norme vectorielle k.k sur Kn telle que kBk < 1. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Vitesse de convergence (1) Définition Considérons un schéma itératif (?) convergent. Soit k.k une norme matricielle sur Mn×n (K) et soit k un entier tel que kB k k < 1. On appelle taux moyen de convergence associé à la norme k.k pour k itérations de x (k+1) = B x (k) + c le nombre positif h i1 k k . Rk (B) = − ln kB k Définition Considérons deux méthodes itératives convergentes (1) x (k+1) = B1 x (k) + c1 , k = 1, 2, . . . , (2) x (k+1) = B2 x (k) + c2 , k = 1, 2, . . . . Soit k un entier tel que kB1k k < 1 et kB2k k < 1. On dit que (1) est plus rapide que (2) relativement à la norme k.k si Rk (B1 ) ≥ Rk (B2 ). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Vitesse de convergence (2) Définition On appelle taux asymptotique de convergence le nombre R∞ (B) = lim Rk (B) = − ln(ρ(B)). k→+∞ Théorème Une méthode itérative est d’autant plus rapide que son taux asymptotique de convergence est grand cad que ρ(B) est petit. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Les méthodes itératives classiques • (S) : A x = b avec A inversible • Idée : déduire un schéma itératif d’une décomposition A = M − N, M inversible • En pratique, on suppose que les systèmes de matrice M sont faciles à résoudre (par ex. M diagonale, triangulaire, . . . ) • (S) s’écrit alors M x = N x + b cad x = B x + c avec B = M −1 N et c = M −1 b et on considère le schéma itératif associé : x (0) ∈ Kn , M x (k+1) = N x (k) + b. • On montre alors que I − B inversible et c = (I − B) A−1 b Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Trois exemples classiques (1) • Dans ce cours, 3 exemples classiques : les méthodes de Jacobi, Gauss-Seidel et de relaxation • Point de départ : décomposition de A = (ai,j )1≤i,j≤n sous la forme A = D − E − F avec : D = (di,j )1≤i,j≤n diagonale, telle que di,i = ai,i et di,j = 0 pour i 6= j ; E = (ei,j )1≤i,j≤n triangulaire inférieure stricte telle que ei,j = −ai,j si i > j et ei,j = 0 si i ≤ j ; F = (fi,j )1≤i,j≤n triangulaire supérieure stricte telle que fi,j = −ai,j si i < j et fi,j = 0 si i ≥ j ; Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple de décomposition A = D − E − F 2 −1 1 2 0 0 0 0 0 0 1 −1 2 2 2 = 0 2 0 − −2 0 0 − 0 0 −2 −1 −1 2 0 0 2 1 1 0 0 0 0 | {z } | {z } | {z } | {z } A D Thomas Cluzeau (Univ. de Limoges - ENSIL) E Analyse Numérique F Trois exemples classiques (2) • On suppose D inversible Méthode de Jacobi : M = D, N = E + F ; Méthode de Gauss-Seidel : M = D − E , N = F ; Méthode de relaxation : M = ω1 (D − ω E ), N = avec ω paramètre réel non nul. 1−ω ω D +F • Gauss-Seidel est un cas particulier de relaxation pour ω = 1. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de Jacobi : description • (S) : A x = b avec A inversible • A = M − N avec M = D inversible et N = E + F • Le schéma itératif s’écrit alors D x (k+1) = (E +F ) x (k) +b ⇐⇒ x (k+1) = D −1 (E +F ) x (k) +D −1 b Définition La matrice BJ = D −1 (E + F ) s’appelle la matrice de Jacobi associée à A. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Jacobi : mise en œuvre et complexité arithmétique • ? nombre de flops pour calculer x (k+1) à partir de x (k) • On a D x (k+1) = (E + F ) x(k) + b donc pour tout i = 1, . . . , n, D x (k+1) i = (E + F ) x (k) i + bi cad (k+1) ai,i xi =− n X (k) ai,j xj + bi j=1 j6=i ⇐⇒ (k+1) xi 1 = ai,i n X (k) . (− a x ) + b i,j i j j=1 j6=i Pour K itérations, on aura besoin de K n (2 n − 1) flops ! • Comparaison n = 1000 : Gauss 6, 6.108 et 100 it. de Jacobi 2.108 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Jacobi : convergence et exemple Théorème La méthode de Jacobi converge si et seulement si ρ(BJ ) < 1. 2 −1 1 2 2 précédente : • Exemple : pour la matrice A = 2 −1 −1 2 1 2 0 BJ = 0 0 1 2 0 0 0 1 2 − 12 2 −1 . 0 0 1 −1 −2 0 −2 = −1 0 0 1 1 0 1 1 1 2 2 • Valeurs propres : 0 et ± i de Jacobi diverge √ 2 5 √ donc ρ(BJ ) = Thomas Cluzeau (Univ. de Limoges - ENSIL) 5 2 Analyse Numérique > 1 et la méthode Méthode de Gauss-Seidel : description • (S) : A x = b avec A inversible • A = M − N avec M = D − E inversible et N = F • Le schéma itératif s’écrit alors (D−E ) x (k+1) = F x (k) +b ⇐⇒ x (k+1) = (D−E )−1 F x (k) +(D−E )−1 b Définition La matrice BGS = (D − E )−1 F s’appelle la matrice de Gauss-Seidel associée à A. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Gauss-Seidel : mise en œuvre et complexité arithmétique (1) • ? nombre de flops pour calculer x (k+1) à partir de x (k) • On a (D − E )x (k+1) = F x(k) + b donc pour tout i = 1, . . . , n, (D − E ) x (k+1) i = F x (k) i + bi c’est-à-dire (k+1) ai,i xi + i−1 X (k+1) ai,j xj =− j=1 n X (k) ai,j xj j=i+1 ce qui entraı̂ne (k+1) x1 n 1 X (k) = − a1,j xj + b1 , a1,1 j=2 et pour i = 2, . . . , n, Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique + bi , Gauss-Seidel : mise en œuvre et complexité arithmétique (2) (k+1) xi = 1 − ai,i i−1 X (k) ai,j xj j=1 + bi − n X (k) ai,j xj . j=i+1 Pour K itérations, on aura besoin de K n (2 n − 1) flops ! (idem Jacobi) • Gauss-Seidel plus intéressante en ce qui concerne la gestion de la mémoire ! (k) On peut écraser au fur et à mesure la valeur de xi et ne stocker au cours des calculs qu’un seul vecteur de taille n, e.g., le vecteur (k+1) (k+1) (k) (k) (x1 . . . xi xi+1 . . . xn )T , au lieu de deux vecteurs pour la méthode de Jacobi. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Gauss-Seidel : convergence et exemple Théorème La méthode de Gauss-Seidel converge si et seulement si ρ(BGS ) < 1. 2 −1 1 2 2 précédente : • Exemple : pour la matrice A = 2 −1 −1 2 −1 2 0 0 0 1 −1 2 0 0 0 −2 , BGS = 2 −1 −1 2 0 0 0 1 1 1 0 0 0 − 2 2 2 0 1 −1 1 1 1 0 0 −2 BGS = − 2 2 0 = 0 − 2 − 12 . 0 0 0 1 1 1 0 4 2 0 0 −2 • Valeurs propres : 0 et − 12 (mult. 2) donc ρ(BGS ) = Gauss-Seidel converge Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique 1 2 < 1 et Méthode de la relaxation : desciption • (S) : A x = b avec A inversible • Soit ω un paramètre réel non nul. On pose A = M − N avec M = ω1 (D − ω E ) inversible et N = 1−ω D +F ω • Le schéma itératif s’écrit alors 1 1−ω (k+1) (D − ω E ) x = D + F x (k) + b, ω ω x (k+1) = (D − ω E )−1 [(1 − ω) D + ω F ] x (k) + ω (D − ω E )−1 b. Définition La matrice BR (ω) = (D − ω E )−1 [(1 − ω) D + ω F ] s’appelle la matrice de relaxation associée à A et ω est le facteur de relaxation. Si ω < 1, on parle de sous-relaxation, si ω = 1, on retrouve la méthode de Gauss-Seidel et si ω > 1, on parle de sur-relaxation. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de la relaxation : convergence et exemple Théorème La méthode de relaxation converge si et seulement si ρ(BR (ω)) < 1. 2 −1 1 2 2 précédente : • Exemple : pour la matrice A = 2 −1 −1 2 1 1−ω 2ω 1 2 −2 ω + 1 − ω BR (ω) = ω (ω − 1) 2 1 1 3 − 4 ω − 14 ω 2 + 12 ω 2 ω (ω − 1) − 12 ω 1 2 2ω −ω 1 3 3 2 4ω − 4ω +1−ω • Valeurs propres et donc convergence dépendent de ω Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Cas particulier : matrice symétrique définie positive Théorème Soit A une matrice symétrique définie positive et écrivons A = M − N avec M inversible et M T + N définie positive. Alors la méthode itérative x (0) ∈ Kn , x (k+1) = M −1 N x (k) + M −1 b, converge. Corollaire Soit A une matrice symétrique définie positive. Alors la méthode de Gauss-Seidel converge. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Cas particulier : matrice à diagonale strictement dominante Définition Une matrice A = (ai,j )1≤i,j≤n est dite à diagonale strictement dominante si : ∀ i = 1, . . . , n, |ai,i | > n X |ai,j |. j=1 j6=i • Exemple : matrice du système linéaire obtenu par discrétisation de l’edp −∆ u = f . Théorème Soit A une matrice à diagonale strictement dominante. Alors A est inversible et les méthodes de Jacobi et de Gauss-Seidel convergent toutes les deux. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode alternative : gradient conjugué Le gradient conjugué Solution des systèmes linéaires (S) : A x = b avec A ∈ Mn×n (R) symétrique et définie positive. Un produit matrice×vecteur à chaque itération méthode bien adaptée aux systèmes creux et de grande taille La méthode construit une suite de vecteurs (x (k) )k=0,1,... telle que x (m) = A−1 b pour un indice m ≤ n méthode exacte en principe mais considérée comme une méthode itérative à cause des erreurs numériques. Dans les applications, le nombre d’itérations nécessaires est significativement plus petit que la taille du système, en particulier si on utilise des techniques de préconditionnement. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Rappel : matrices définies positives Définition Soit A ∈ Mn×n (R) symétrique. On dit que A est définie positive si pour tout x ∈ Rn non nul on a hAx, xi = x T Ax > 0. Définition équivalente : une matrice réelle symétrique A est définie positive si toutes ses valeurs propres sont positives. Théorème Si A ∈ Mn×n (R) symétrique est telle que aii > 0 pour i = 1, . . . , n, P |aii | ≥ P j6=i |aij | pour i = 1, . . . , n et il existe i0 tel que |ai0 i0 | > j6=i0 |ai0 j | (diagonale dominante), alors A est définie positive. 2 1 0 Exemple : A = 1 2 1 est définie positive. 0 1 2 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Matrices creuses A ∈ Mn×n (R) est creuse si le nombre d’éléments non nuls est un petit multiple de n. Exemples : matrices tridiagonales, matrices d’adjacence, discrétisation d’équations différentielles, . . . 0 0 5 10 10 20 15 20 30 25 40 30 50 35 40 60 0 5 10 15 20 nz = 118 25 30 35 40 Thomas Cluzeau (Univ. de Limoges - ENSIL) 0 10 20 30 nz = 180 40 50 Analyse Numérique 60 Produit scalaire défini par A Définition Soit A ∈ Mn×n (R) symétrique et définie positive. On définit la √ fonction k · kA : Rn −→ R+ comme kxkA = x T Ax. Proposition La fonction k · kA est une norme vectorielle. Définition Soit A ∈ Mn×n (R) symétrique définie positive. On dit que les vecteurs u, v ∈ Rn sont A-conjugués si u T Av = 0. u, v ∈ Rn 7−→ u T Av ∈ R est un produit scalaire sur Rn . u, v ∈ Rn sont A-conjugués s’ils sont orthogonaux par rapport au produit scalaire défini par A, i.e., u T Av = 0. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Un problème d’optimisation On considère le problème suivant : minimiser la fonction 1 φ(x) = x T Ax − b T x, 2 où la matrice A est symétrique et définie positive. Le minimum de φ est atteint pour x ∗ = A−1 b, et cette solution est unique. Minimiser φ(x) et résoudre Ax = b sont deux problèmes équivalents. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthodes du gradient Définition Le gradient de φ en x = (x1 , . . . , xn )T ∈ Rn est le vecteur ∇φ(x) = On a ∂φ ∂φ ∂φ , ,..., ∂x1 ∂x2 ∂xn T . 1 1 ∇φ(x) = Ax + AT x − b = Ax − b. 2 2 Définition La quantité r (x) = b − Ax = −∇φ(x) est appelée résidu du système (S) en x. On rappelle que −∇φ(x) donne la direction de plus forte pente pour φ(x) au point x. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthodes du gradient À l’étape k d’une méthode du gradient : on choisit une direction de descente pour φ(x), i.e., un vecteur p (k) tel que p (k)T ∇φ(x (k) ) < 0. on minimise φ(x) sur la droite passant par x (k) et de vecteur directeur p (k) x (k+1) = x (k) + αk p (k) , où αk est tel que φ(x (k+1) ) = min φ(x (k) + αp (k) ), α∈R d’où αk = r (k)T p (k) . p (k)T Ap (k) Proposition À chaque itération, le résidu r (k+1) est orthogonal au vecteur direction p (k) utilisé à l’étape précédente: r (k+1) T p (k) = 0. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de la plus forte pente On choisit p (k) = r (k) = −∇φ(x (k) ) direction de plus forte pente pour φ(x). Chaque direction de descente est orthogonale à la précédente, i.e., p (k+1)T p (k) = 0. Théorème Pour la méthode de la plus forte pente on a, à l’itération k : ∗ kx − x (k) kA ≤ Cond2 (A) − 1 Cond2 (A) + 1 Thomas Cluzeau (Univ. de Limoges - ENSIL) k kx ∗ − x (0) kA . Analyse Numérique Méthode de la plus forte pente Le choix p (k) = −∇φ(x (k) ) peut paraitre intuitivement assez efficace pour minimiser φ(x), vu qu’on se déplace au long de la direction de plus forte décroissance de la fonction. Mais dans certains cas la convergence de cette méthode pourrait être lente, notamment si la matrice A est mal conditionnée. Exemple : A est une matrice symétrique avec valeurs propres {e −2 , e 4 }, b = (1 1)T , Cond2 (A) = e 6 ≈ 403, 43. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de la plus forte pente 1 0 log 10 du résidu −1 −2 −3 −4 −5 −6 1 2 3 4 5 6 indice du résidu Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique 7 8 9 10 11 Gradient conjugué Choix de la direction de descente: (0) r si k = 0, p (k) = r (k) + βk p (k−1) si k ≥ 1, où βk est tel que p (k)T Ap (k−1) = 0. Les vecteurs direction p (k−1) et p (k) sont A-conjugués. (k)T (k−1) r Ap On a βk = − p(k−1)T = Ap (k−1) Thomas Cluzeau (Univ. de Limoges - ENSIL) r (k)T r (k) r (k−1)T r (k−1) et αk = Analyse Numérique r (k)T r (k) . p (k)T Ap (k) Gradient conjugué Lemme À chaque itération, le résidu est orthogonal au résidu calculé à l’itération précédente : r (k)T r (k−1) = 0. Théorème Soit Sk le sous-espace vectoriel de Rn engendré par les vecteurs p (0) , . . . , p (k−1) . Alors le vecteur x (k) défini par la méthode du gradient conjugué minimise φ(x) sur Sk : φ(x (k) ) = min φ(x), x∈Sk Thomas Cluzeau (Univ. de Limoges - ENSIL) k ≥ 1. Analyse Numérique Gradient conjugué Théorème Soit r (0) 6= 0 et h ≥ 1 tels que r (k) 6= 0 pour tout k ≤ h. Alors pour k, j = 0, . . . , h, avec k 6= j, on a r (k)T r (j) = 0 et p (k)T Ap (j) = 0. Autrement dit, les résidus forment un ensemble de vecteurs orthogonaux, et les vecteurs direction p (k) forment un ensemble de vecteurs A-conjugués. Corollaire Il existe m ≤ n tel que r (m) = 0. Autrement dit, le gradient conjugué calcule la solution x ∗ = A−1 b en n itérations au plus. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Gradient conjugué : l’algorithme Entrèe : A ∈ Mn×n (R) symétrique et définie positive, b ∈ Rn , x (0) ∈ Rn . Sortie : x ∈ Rn tel que Ax = b. 1 k = 0 ; 2 r (0) = b − Ax (0) ; 3 Tant que r (k) 6= 0, faire: si k = 0 alors faire : β0 = 0 ; p (0) = r (0) ; sinon faire : βk = r (k)T r (k) /r (k−1)T r (k−1) ; p (k) = r (k) + βk p (k−1) ; αk = r (k)T r (k) /p (k)T Ap (k) ; x (k+1) = x (k) + αk p (k) ; r (k+1) = r (k) − αk Ap (k) ; k =k +1 ; 4 Retourner x = x (k) . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Gradient conjugué: convergence et complexité Théorème ∗ kx − x (k) kA ≤ 2 !k p Cond2 (A) − 1 p kx ∗ − x (0) kA Cond2 (A) + 1 Critère d’arrêt : dans la pratique, kr (k) k2 < M kbk2 , et k borné par kmax n. Choix du vecteur initial x (0) : a priori arbitraire, par ex. le vecteur nul. Complexité : une multiplication matrice-vecteur par itération, donc complexité asymptotique équivalent à n2 flops pour une matrice creuse. Pas nécessaire de stocker A si on sait calculer le produit Ax. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Préconditionnement On souhaite accélérer la convergence d’une méthode itérative (e.g., le gradient conjugué). La convergence de la méthode du gradient conjugué est très rapide si la matrice A est proche de I, ou si ses valeurs propres sont bien regroupées. Idée : remplacer le système Ax = b par un système équivalent (même solution) mais mieux conditionné. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Préconditionnement Soit (S) : A x = b avec A symétrique et définie positive, et soit C ∈ Mn×n (R) inversible. On écrit le système transformé (S̃) : C −1 A x = C −1 b (S̃) : C −1 A(C T )−1 C T x = C −1 b (S̃) : à x̃ = b̃, où à = C −1 A(C −1 )T , x̃ = C T x et b̃ = C −1 b. à est aussi symétrique et définie positive, donc on peut appliquer le gradient conjugué à (S̃). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Préconditionnement Définition La matrice M = CC T est dite préconditionneur du système (S̃). Le choix du préconditionneur est fait de manière que : la matrice à soit mieux conditionnée que A, ou proche de la matrice identité, pour que le gradient conjugué converge rapidement, M soit inversible de manière stable et rapide (idéalement avec complexité asymptotique de l’ordre de n). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Gradient conjugué préconditionné : algorithme Entrèe : A ∈ Mn×n (R) symétrique et définie positive, b ∈ Rn , x (0) ∈ Rn , un préconditionneur M ∈ Mn×n (R) symétrique et défini positif. Sortie : x ∈ Rn tel que Ax = b. 1 k=0; 2 r (0) = b − Ax (0) ; 3 Tant que r (k) 6= 0, faire: résoudre Mz (k) = r (k) ; si k = 0 alors faire : β0 = 0 ; p (0) = z (0) ; sinon faire : βk = z (k)T r (k) /z (k−1)T r (k−1) ; p (k) = z (k) + βk p (k−1) ; αk = z (k)T r (k) /p (k)T Ap (k) ; x (k+1) = x (k) + αk p (k) ; r (k+1) = r (k) − αk Ap (k) ; k =k +1 ; 4 Retourner x = x (k) . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Choix d’un préconditionneur Le choix d’un préconditionneur est un problème délicat et il existe une vaste littérature à ce sujet. Exemple 1 : préconditionnement diagonal. On note A = (ai,j )1≤i,j≤n , M = (mi,j )1≤i,j≤n et on définit ai,i si i = j, mi,j = 0 si i 6= j. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Choix d’un préconditionneur Exemple 2 : préconditionnement de Cholesky incomplet. On choisit M = LLT , où L = (`i,j )1≤i,j≤n est une matrice triangulaire inférieure calculée comme suit: v u i−1 u X t `i,i = ai,i − `2i,r , i = 1, . . . , n r =1 ( `i,j = 0 1 `i,j ai,j − si ai,j = 0, si ai,j 6= 0, r =1 `i,r `j,r Pj−1 j = 1, . . . , i − 1, i = 2, . . . , n. La matrice L est définie de manière à préserver l’éventuelle structure creuse de A. Les éléments non nuls de L sont calculés comme pour le facteur de Cholesky de A. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Et si A n’est pas définie positive ? Si la matrice A n’est pas symétrique et définie positive, on ne peut pas appliquer le gradient conjugué au système Ax = b. Mais on peut appliquer le gradient conjugué au système AT Ax = AT b (méthode des équations normales). Attention : Cond(AT A) = Cond(A)2 . Il existe aussi des méthodes itératives adaptées aux matrices non symétriques : l’une des plus utilisées est la méthode GMRES. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Chapitre 5 Interpolation polynomiale Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Problème de l’interpolation 15 10 y 5 0 −5 −10 −15 0 0.5 1 1.5 2 2.5 3 3.5 x Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Problème de l’interpolation 15 y=f(x) y=p(x) noeuds 10 y 5 0 −5 −10 −15 0 0.5 1 1.5 2 2.5 3 3.5 x Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Problème de l’interpolation • Pn = Rn [x] : ensemble des poly. de degré ≤ n et à coeffs dans R. (espace vect. de dimension n + 1 sur R) • (a, b) ∈ R2 (a < b) et f : [a, b] → R continue sur [a, b] • On considère n + 1 points x0 , . . . , xn de l’intervalle [a, b] tels que a ≤ x0 ≤ x1 ≤ · · · ≤ xn ≤ b. • Problème (I )fm,n : ? existe Pm ∈ Pm tel que Pm (xi ) = f (xi ), ∀ i. • Pm (x) = λ0 + λ1 x + · · · + λm x m avec les λi dans R, alors ? λ0 , . . . , λm tels que : f (x0 ) 1 x0 x02 . . . x0m λ0 1 x1 x 2 . . . x m λ1 f (x1 ) 1 1 (S) : . . .. .. .. .. = .. . . . . 1 xn xn2 . . . xnm Thomas Cluzeau (Univ. de Limoges - ENSIL) λm Analyse Numérique f (xm ) Problème de l’interpolation Système linéaire n + 1 équations en m + 1 inconnues Proposition Le problème d’interpolation (I )fm,n admet une unique solution ssi m = n et les nœuds (xi )0≤i≤n sont deux à deux distincts. • Dans la suite, on s’intéresse au cas où le problème admet une unique solution et on le note (I )fn : la solution notée Pn (x ; f ) s’appelle polynôme d’interpolation de f aux nœuds (xi )0≤i≤n . • Problème qui apparait dans un contexte expérimental : calcul des valeurs d’une fonction f inconnue. • Il est naturel de supposer que l’on connait un minimum d’information sur la fonction f à interpoler. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Problème de l’interpolation En pratique, résoudre directement le système (S) n’est pas forcément une bonne idée, car : méthode couteuse (O(n3 )), le système est souvent mal conditionné, il n’est pas indispensable de calculer les coefficients de Pn (x; f ) en base monomiale; il y a d’autres bases de Pn qui se prêtent mieux à résoudre le problème de l’interpolation. Remarque: dans plusieurs applications on est surtout intéressé à évaluer Pn (x̃; f ) pour x̃ donné. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Base d’interpolation de Lagrange (1) Définition (n) Pour j ∈ {0, . . . , n}, le polynôme Lj (n) Lj (x) = défini par n Y (x − x0 ) · · · (x − xj−1 ) (x − xj+1 ) · · · (x − xn ) x − xi = , xj − xi (xj − x0 ) · · · (xj − xj−1 ) (xj − xj+1 ) · · · (xj − xn ) i=0 i6=j est appelé interpolant de base de Lagrange ou polynôme de base de Lagrange associé à la suite (xi )0≤i≤n et relatif au point xj . Proposition (n) Pour n ∈ N fixé, les (Lj (x))0≤j≤n forment une base de l’espace vectoriel Pn que l’on appelle base de Lagrange. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Base d’interpolation de Lagrange (2) Proposition Les interpolants de base de Lagrange vérifient les propriétés suivantes : 1 2 Pour tout j = 0, . . . , n, si on note gj la fonction de [a, b] dans R définie par ∀ i = 0, . . . , n, gj (xi ) = δij , alors (n) Pn (x ; gj ) = Lj (x) ; Q Si on pose πn+1 (x) = nj=0 (x − xj ) ∈ Pn+1 , alors, pour tout (n) j = 0, . . . , n, Lj (x) = 3 πn+1 (x) . 0 (x−xj ) πn+1 (xj ) Pour tout k = 0, . . . , n, x k = Thomas Cluzeau (Univ. de Limoges - ENSIL) Pn k j=0 xj (n) Lj (x). Analyse Numérique Méthode de Lagrange (1) • La méthode d’interpolation de Lagrange consiste à écrire le polynôme d’interpolation sur la base de Lagrange. Théorème Soit f : [a, b] → R et n + 1 nœuds (xi )0≤i≤n deux à deux distincts. Le polynôme d’interpolation de f aux nœuds (xi )0≤i≤n s’écrit alors : Pn (x ; f ) = n X (n) f (xj ) Lj (x). j=0 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de Lagrange (2) • Intérêt : pas besoin de résoudre un système linéaire pour écrire le polynôme d’interpolation • Son expression s’écrit facilement : par exemple, si on choisit les nœuds −1, 0, 1, on obtient : P2 (x ; f ) (x − 0) (x − 1) f (−1) = f (−1) = f (−1) − 2 f (0) + f (1) 2 f (1) − f (−1) x + x + f (0). 2 2 (−1 − 0) (−1 − 1) x(x − 1) 2 + f (0) (x + 1) (x − 1) = − f (0) (x 2 − 1) + f (1) Thomas Cluzeau (Univ. de Limoges - ENSIL) + f (1) (0 + 1) (0 − 1) x (x + 1) 2 , Analyse Numérique (x + 1) (x − 0) (1 + 1) (1 − 0) , Exemple (1) • f : [−4, 4] → R, x 7→ |x| • Nœuds (xj )0≤j≤8 = (−4, −3, −2, −1, 0, 1, 2, 3, 4) P8 (x ; f ) = 8 X j=0 (8) |xj | Lj (x) = 43 4 11 6 1 533 2 x − x + x − x 8. 420 144 360 1008 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple (2) y 3 2 1 x −3 −2 −1 Thomas Cluzeau (Univ. de Limoges - ENSIL) 0 1 Analyse Numérique 2 3 Efficacité et inconvénients (n) • On ne développe pas les Lj (x) sur la base monomiale. Pour évaluer le polynôme d’interpolation de Lagrange, on utilise la formule moins couteuse (complexité O( 32 n2 )) Pn (x ; f ) = πn+1 (x) n X f (xj ) 0 π (xj ) (x j=0 n+1 − xj ) , • Principal inconvénient : rajouter un nœud change complètement les interpolants de base de Lagrange et on doit donc recalculer entièrement le polynôme Pn (x ; f ). • Méthode permet aussi d’interpoler un nuage de points : on se donne une suite de valeurs discrètes (bi )0≤i≤n aux nœuds (xi )0≤i≤n et on cherche un polynôme Pn tel que Pn (xi ) = bi pour i = 0, . . . , n. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Base d’interpolation de Newton (1) Définition (n) Les polynômes Nj (n) N0 (x) (n) N1 (x) (n) N (x) 2. .. (n) Nj (x) .. . (n) Nn (x) définis pour j = 0, . . . , n par : = 1, = (x − x0 ), = (x − x0 ) (x − x1 ), = (x − x0 ) (x − x1 ) · · · (x − xj−1 ), = (x − x0 ) (x − x1 ) · · · (x − xn−1 ), sont appelés polynômes de base de Newton relatifs à la suite de points (xi )i=0,...,n−1 . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Base d’interpolation de Newton (2) • Remarque : là où on avait besoin de n + 1 points pour définir les (n) (n) Lj (x), j = 0, . . . , n, la définition des Nj (x), j = 0, . . . , n, ne nécessite que n points. Proposition (n) Pour n ∈ N fixé, les (Nj (x))0≤j≤n forment une base de l’espace vectoriel Pn . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Expression de l’interpolant de Newton • f : [a, b] → R et n nœuds (xi )0≤i≤n−1 P (n) • ? αi , i = 0, . . . , n tels que Pn (x ; f ) = ni=0 αi Ni (x). On a : Pn (x0 ; f ) = α0 = f (x0 ) =⇒ α0 = f (x0 ) Pn (x1 ; f ) = f (x0 ) + α1 (x1 − x0 ) = f (x1 ) =⇒ α1 = Pn (x2 ; f ) = f (x0 ) + f (x0 )−f (x1 ) x0 −x1 f (x0 ) − f (x1 ) x0 − x1 (x2 − x0 ) + α2 (x2 − x0 ) (x2 − x1 ) = f (x2 ) f (x0 ) − f (x2 ) =⇒ α2 = x0 − x2 − f (x0 ) − f (x1 ) x0 − x1 x2 − x1 En posant f [u, v ] = f (u) − f (v ) , u−v on a alors α1 = f [x0 , x1 ], α2 = f [x0 , x2 ] − f [x0 , x1 ] f [x0 , x1 ] − f [x1 , x2 ] = . x2 − x1 x0 − x2 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Différence divisée Définition Pour tout k ∈ N, on appelle différence divisée d’ordre k de f associée à la suite de points deux à deux distincts (xj )j∈N la quantité f [x0 , x1 , . . . , xk ] définie par : f [x0 ] = f (x0 ), ∗ ∀ k ∈ N , f [x0 , x1 , . . . , xk ] = f [x0 , x1 , . . . , xk−1 ] − f [x1 , x2 , . . . , xk ] x0 − xk Théorème Pn (x ; f ) = (n) k=0 f [x0 , x1 , . . . , xk ] Nk (x). Pn Corollaire (n) Pn (x ; f ) = Pn−1 (x ; f ) + f [x0 , x1 , . . . , xn ] Nn (x). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique . Calcul • Déf. de la base d’interpolation de Newton de Pn ne nécessite que la donnée de n nœuds mais le coefficients f [x0 , x1 , . . . , xn ] de (n) Nn (x) fait intervenir le nœud xn . • Calcul du polynôme d’interpolation de f sur la base de Newton relativement simple comparé à celui sur la base de Lagrange. Proposition f [x0 , x1 , . . . , xk ] = k X f (xj ) Qk j=0 l=0 l6=j (xj − xl ) = k X j=0 f (xj ) 0 πk+1 (xj ) Corollaire Soit Sk+1 l’ensemble des permutations sur {0, 1, . . . , k + 1}. Pour tout σ ∈ Sk+1 , on a f [xσ(0) , xσ(1) , . . . , xσ(k) ] = f [x0 , x1 , . . . , xk ]. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Algorithme de calcul des différences divisées x0 x1 x2 . . . . . . . . . xk−2 xk−1 xk f [x0 ] & −→ f [x0 , x1 ] & & f [x2 ] −→ f [x1 , x2 ] −→ f [x0 , x1 , x2 ] . . . . . . . . . . . . f [xk−2 ] & f [xk−1 ] −→ f [xk−2 , xk−1 ] ... & & f [xk ] −→ f [xk−1 , xk ] −→ f [xk−2 , xk−1 , xk ] f [x1 ] ... ··· f [x0 , . . . , xk−1 ] & f [x1 , . . . , xk ] −→ f [x0 , . . . , xk ] • Contrairement à Lagrange, l’ajout d’un nouveau nœud n’oblige pas à recalculer toutes les différences divisées : passer de n à n + 1 nœuds demande simplement le calcul de n différences divisées. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Erreur d’interpolation (1) Lemme Soit (xi )0≤i≤n tels que, pour tout i = 0, . . . , n, xi ∈ [a, b] et soit Pn (x ; f ) le polynôme d’interpolation de f aux nœuds (xi )0≤i≤n . Alors, avec les notations précédentes, pour tout x ∈ [a, b] tel que, pour tout i = 0, . . . , n, x 6= xi , on a : f (x) − Pn (x ; f ) = f [x0 , x1 , . . . , xn , x] πn+1 (x). Lemme Si f ∈ C n ([a, b]) est de classe C n sur [a, b], alors : ∃ ξ ∈]a, b[, f [x0 , x1 , . . . , xn ] = Thomas Cluzeau (Univ. de Limoges - ENSIL) 1 (n) f (ξ). n! Analyse Numérique Erreur d’interpolation (2) Théorème Soit (xi )0≤i≤n tels que, pour tout i = 0, . . . , n, xi ∈ [a, b] et soit Pn (x ; f ) le polynôme d’interpolation de f aux nœuds (xi )0≤i≤n . Si f ∈ C n+1 ([a, b]), alors : ∀ x ∈ [a, b], ∃ ξx ∈]a, b[, f (x) − Pn (x ; f ) = 1 f (n+1) (ξx ) πn+1 (x). (n + 1)! Corollaire Avec les mêmes hypothèses, on a : ∀ x ∈ [a, b], |f (x) − Pn (x ; f )| ≤ Thomas Cluzeau (Univ. de Limoges - ENSIL) |πn+1 (x)| sup |f (n+1) (y )|. (n + 1)! y ∈[a,b] Analyse Numérique Chapitre 6 Intégration numérique Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Objectif • On veut approcher de façon numérique la valeur d’intégrales de la forme Z b I (f ) = f (x) dx a • Remarques : En pratique, on ne connait pas forcément l’expression symbolique de f ; La plupart des fonctions n’admettent pas de primitives pouvant s’exprimer à l’aide de fonctions élémentaires. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Introduction • Hypothèse : fonctions que l’on cherche à intégrer numériquement sont continues sur l’intervalle [a, b]. • Soit x0 = a < x1 < x2 < · · · < xn−1 < xn = b une subdivision de l’intervalle [a, b]. • Théorie élémentaire de l’intégration Z I (f ) = b f (x)dx = lim a n→+∞ n−1 X f (ξj )(xj+1 − xj ) , ∀ j, ξj ∈ [xj , xj+1 ]. j=0 | {z } Somme de Riemann • Différents choix des ξj mènent aux méthodes classiques Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Formule des rectangles à gauche ξj = xj Irg (f ) = Pn−1 j=0 f (xj ) (xj+1 − xj ) y Formule des rectangles à gauche 0 a x1 x2 x3 x4 x5 x6 x7 b Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique x Formule des rectangles à droite ξj = xj+1 Ird (f ) = Pn−1 j=0 f (xj+1 ) (xj+1 − xj ) y Formule des rectangles à droite 0 a x1 x2 x3 x4 x5 x6 x7 b Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique x Formule du point milieu ξj = xj +xj+1 2 Ipm (f ) = Pn−1 xj +xj+1 (xj+1 − xj ) j=0 f 2 y Formule du point milieu 0 a x1 x2 x3 x4 x5 x6 x7 b Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique x Méthode des trapèzes It (f ) = Pn−1 j=0 f (xj )+f (xj+1 ) 2 (xj+1 − xj ) y Formule des trapèzes 0 a x1 x2 x3 x4 x5 x6 x7 b Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique x Liens avec l’interpolation polynomiale • Les méthodes des rectangles et la méthode du point milieu reviennent à interpoler f sur chaque intervalle [xj , xj+1 ] par le polynôme d’interpolation de degré 0 relatif à l’unique nœud ξj . • Ces formules seront donc exactes pour les fonctions constantes sur [a, b] et en particulier pour f ∈ P0 . • La méthode des trapèzes revient à interpoler f sur chaque intervalle [xj , xj+1 ] par le polynôme d’interpolation de degré 1. • Cette formule sera donc exacte pour f ∈ P1 . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Formalisation de l’intégration approchée • f une fonction de C([a, b]) ev des fonctions continues sur [a, b] • Hypothèse : on connaı̂t au moins les valeurs de f en certains points x0 , x1 , . . . , xn de l’intervalle [a, b] • On cherche alors une formule d’intégration approchée de la forme Z b f (x) dx ≈ I (f ) = a n X λk f (xk ) = I˜(n) (f ), k=0 où les λk sont à déterminer. • Terminologie : on parle aussi de méthode d’intégration numérique ou formule de quadrature. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Ordre d’une méthode d’intégration numérique Définition Une méthode d’intégration numérique est dite d’ordre N (N ∈ N) si elle est exacte sur PN . • Exemple : la méthode des rectangles à gauche ou à droite et la méthode du point milieu sont d’ordre 0 et celle des trapèzes est d’ordre 1. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthodologie et Erreur d’intégration • En pratique : connaissant les valeurs de f aux points x0 , . . . , xn , P (n) on remplace f par le polynôme d’interpolation nk=0 f (xk ) Lk (x) écrit dans la base de Lagrange Formule d’intégration approchée (exacte sur Pn ([a, b])) : Z b n X (n) (n) (n) I˜(n) (f ) = Ak f (xk ), Ak = Lk (x) dx. a k=0 Théorème Soit f ∈ C n+1 ([a, b]) et I˜(n) (f ) donnée ci-dessus. Alors on a la majoration suivante de l’erreur d’intégration : |I (f ) − I˜(n) (f )| ≤ Mn+1 (n + 1)! Z b |πn+1 (x)| dx, a avec Mn+1 = supx∈[a,b] |f (n+1) (x)| et πn+1 (x) = Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Qn j=0 (x − xj ). Formules de Newton-Cotes (1) (n) • Problème : calcul des Ak = Rb a (n) Lk (x) dx • Hypothèses : x0 = a, xn = b, n ≥ 1 et points d’interpolation équidistants Proposition Pour k = 0, 1, . . . , n, on a : (i) (n) Ak (b − a) (−1)n−k = n k! (n − k)! Z n n Y 0 j=0 j6=k (n) (n) (ii) An−k = Ak . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique (y − j) dy . Formules de Newton-Cotes (2) (1) (1) • Cas n = 1, on obtient A0 = A1 = b−a I˜(1) (f ) = (f (a) + f (b)) 2 (2) b−a 2 d’où (formule des trapèzes) (2) (2) 4 (b−a) • Cas n = 2, on obtient A0 = A2 = b−a d’où 6 et A1 = 6 b−a a+b (2) ˜ I (f ) = f (a) + 4 f ( ) + f (b) (formule de Simpson) 6 2 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique (n) Calcul pratique des coefficients Ak • En pratique, utiliser le fait que I˜(n) est exacte sur Pn ([a, b]) (1) (1) • Cas n = 1, a = −1 et b = 1 : I˜(1) (f ) = A0 f (−1) + A1 f (1) • I˜(1) exacte sur P1 ([−1, 1]) donc I˜(1) (1) = I (1) = Z 1 1 dx = 2, I˜(1) (x) = I (x) = −1 ( (1) Z 1 x dx = 0 −1 (1) (1) A0 + A1 = 2, (1) (1) −A0 + A1 = 0, (1) d’où A0 = A1 = 1. • Remarque : cette formule n’est pas exacte sur P2 ([−1, 1]) puisque R1 I (x 2 ) = −1 x 2 dx = 23 alors que I˜(1) (x 2 ) = 2. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Estimation de l’erreur Théorème Considérons l’erreur En (f ) = I (f ) − 1 Alors : Si n impair et f ∈ C n+1 ([a, b]), alors ∃ ξ ∈ [a, b] tel que : En (f ) = 2 (n) i=0 Ai f (xi ). Pn b−a n n+2 f (n+1) (ξ) (n + 1)! n Z t (t − 1) · · · (t − n) dt. 0 Si n pair et f ∈ C n+2 ([a, b]), alors ∃ ξ ∈ [a, b] tel que : En (f ) = b−a n n+3 f (n+2) (ξ) (n + 2)! Z n t 2 (t − 1) · · · (t − n) dt. 0 • Cas n = 2 : si f ∈ C 4 ([a, b]), alors l’erreur d’approximation f (4) (ξ) b−a commise par la formule de Simpson vaut −h5 où h = 90 2 et ξ ∈ [a, b]. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Stabilité des méthodes d’intégration (1) • Mesure la sensibilité de la méthode aux erreurs de calculs • Formule d’intégration approchée I˜(n) (f ) = (n) k=0 Ak f (xk ) Pn • Supposons les valeurs calculées des f (xk ) non exactes (n) k=0 Ak (f (xk ) Pn + k ) − (n) k=0 Ak f (xk ) Pn = (n) k=0 Ak k . Pn X n n X (n) (n) A ≤ max | | |Ak |, k k k 0≤k≤n k=0 et le terme (n) k=0 |Ak | Pn k=0 dépend de la méthode. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Stabilité des méthodes d’intégration (1) Définition P (n) La formule d’intégration numérique I˜(n) (f ) = nk=0 Ak f (xk ) est dite stable s’il existe M ∈ R tel que : ∀ n ∈ N, ∀ (0 , . . . , n ) ∈ P (n) Rn+1 , | nk=0 Ak k | ≤ M max0≤k≤n |k |. Théorème Avec les notations précédentes, une condition nécessaire et suffisante de stabilité est qu’il existe M ∈ R (indépendant de n) tel P (n) que nk=0 |Ak | ≤ M. • Formules de Newton-Côtes : pour certaines valeurs de k, (n) limn→∞ |Ak | = +∞ donc pour de grandes valeurs de n ces formules ne sont pas stables Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Formules d’intégration composées (1) • Ceux sont les plus utilisées en pratique • Principe : décomposer l’intervalle [a, b] en k intervalles [ai , ai+1 ], i = 0, . . . , k − 1 Z I (f ) = b f (x) dx = a k−1 Z X ai+1 ai i=0 | f (x) dx {z } Ii (f ) • Ii (f ) approché par une formule d’intégration numérique • Remarque : pour la stabilité, il est judicieux de choisir une formule avec un n petit comme par exemple celle de Simpson (n = 2) Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Formules d’intégration composées (2) : Simpson • Méthodes composées sont d’autant plus intéressantes que l’erreur d’approximation diminue lorsque la taille de l’intervalle diminue • Avec la formule de Simpson déjà vu, si l’on subdivise l’intervalle [a, b] en k sous intervalles avec k pair, on obtient la formule de Simpson composée k/2−1 k/2 X X h f (a0 ) + 2 f (a2 i ) + 4 f (a2 i−1 ) + f (ak ) , 3 i=1 avec h = b−a k , i=1 a0 = a, ak = b et ai = ai−1 + h. f (4) (ξ) • Si f ∈ C 4 ([a, b]), erreur d’approximation −k h5 où 180 b−a h= et ξ ∈ [a, b]. k Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple R1 2 On veut calculer numériquement 0 e −x dx avec erreur < 10−6 . Combien d’intervalles faut-il utiliser ? 2 2 f (x) = e −x , f (4) (x) = e −x (16x 4 − 48x 2 + 12), |f (ξ)| ≤ 12 ∀ξ ∈ [0, 1] 5 (4) f (ξ) f (4) (ξ) 1 b−a erreur = k = ≤ k 180 180k 4 15k 4 6 1/4 1 10 −6 on pose < 10 d’où k > ≈ 16, 0686 15k 4 15 donc k ≥ 17. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Autres approches Formules de quadrature de Gauss: famille de formules de quadrature assez précises, qui utilisent des polynômes d’interpolation. Les nœuds sont les zéros des polynômes d’interpolation, et/ou des points donnés. Méthodes adaptives: le nombre de nœuds est choisi suivant le comportement de la fonction. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Intégration numérique en Matlab Plusieurs implémentations sont disponibles: trapz: méthode des trapèzes, intervalles uniformes, quad: formule de Simpson, quadrature adaptive, integral: méthode adaptive globale. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Chapitre 7 Résolution d’équations et de systèmes d’équations non linéaires Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Problème considéré • f : R → R fonction d’une seule variable réelle • On cherche à résoudre l’équation f (x) = 0 = trouver une valeur approchée x d’un réel x̃ vérifiant f (x̃) = 0. • Mise en oeuvre pratique : on se donne une tolérance sur la solution cherchée. L’algorithme numérique utilisé doit alors avoir un critère d’arrêt dépendant de cette tolérance et nous assurant que la solution calculée a bien la précision recherchée • 2 possibilités : on sait à l’avance combien d’étapes de l’algorithme sont nécessaires à chaque étape, on vérifie une condition nous permettant d’arrêter le processus après un nombre fini d’étapes Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Vitesse de convergence (1) Définition Soit (xn )n∈N une suite convergente et soit x̃ sa limite. 1 On dit que la convergence de (xn )n∈N est linéaire de facteur K ∈ ]0, 1[ s’il existe n0 ∈ N tel que, pour tout n ≥ n0 , |xn+1 − x̃| ≤ K |xn − x̃|. 2 On dit que la convergence de (xn )n∈N est superlinéaire d’ordre p ∈ N, p > 1 s’il existe n0 ∈ N et K > 0 tels que, pour tout n ≥ n0 , |xn+1 − x̃| ≤ K |xn − x̃|p . Si p = 2, on parle de convergence quadratique et si p = 3 on parle de convergence cubique. • Remarque : K n’est pas unique. • En pratique il peut être difficile de prouver la convergence d’une méthode d’autant plus qu’il faut tenir compte des erreurs d’arrondis. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Vitesse de convergence (2) Définition Soit (xn )n∈N une suite convergent vers une limite x̃. On dit que la convergence de (xn )n∈N est linéaire de facteur K (resp. superlinéaire d’ordre p) s’il existe une suite (yn )n∈N convergent vers 0, linéaire de facteur K (resp. superlinéaire d’ordre p) au sens de la définition précédente telle que |xn − x̃| ≤ yn . • dn = − log10 (|xn − x̃|) mesure du nbre de décimales exactes de xn . Convergence d’ordre p ⇒ asymptotiquement, on a |xn+1 − x̃| ∼ K |xn − x̃|p d’où −dn+1 ∼ log10 (K ) − p dn et donc asymptotiquement xn+1 a p fois plus de décimales exactes que xn l’ordre p représente asymptotiquement le facteur multiplicatif du nombre de décimales exactes que l’on gagne à chaque itération Nous avons donc intérêt à ce qu’il soit le plus grand possible. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de dichotomie : principe • Méthode de localisation des racines d’une équation f (x) = 0 basée sur le théorème des valeurs intermédiaires Si f est continue sur [a, b] et f (a) f (b) < 0, alors il existe x̃ ∈]a, b[ tel que f (x̃) = 0. • Principe : 1 On part d’un intervalle [a, b] vérifiant la propriété f (a) f (b) < 0 2 On le scinde en deux intervalles [a, c] et [c, b] avec c = 3 On teste les bornes des nouveaux intervalles (on calcule f (a) f (c) et f (c) f (b)) pour en trouver un (au moins) qui vérifie encore la propriété, i.e., f (a) f (c) < 0 ou/et f (c) f (b) < 0. 4 On itère ensuite ce procédé un certain nombre de fois dépendant de la précision que l’on recherche sur la solution. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique a+b 2 Méthode de dichotomie : algorithme Entrèes : la fonction1 f , (a, b) ∈ R2 tels que f est continue sur [a, b] et f (a) f (b) < 0 et la précision . Sortie : xk+1 valeur approchée de x̃ solution de f (x̃) = 0 à près. 1 2 x0 ← a, y0 ← b ; ln(b − a) − ln() par pas de 1, faire : Pour k de 0 à E ln(2) xk + yk xk + yk > 0, alors xk+1 ← , yk+1 ← yk ; 2 2 xk + yk xk + yk Si f (xk ) f < 0, alors xk+1 ← xk , yk+1 ← ; 2 2 xk + yk Sinon retourner ; 2 Si f (xk ) f 3 1 Retourner xk+1 . Il suffit en fait de connaitre un moyen d’évaluer les valeurs de la fonction Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de dichotomie : remarques et preuve de l’algo. • Remarques sur l’algorithme précédent : Il construit une suite de segments emboı̂tés contenant tous x̃ À chaque passage dans la boucle : une évaluation de f En pratique, avec les arrondis, > 0 et < 0 ne veulent rien dire ! Théorème Le nombre minimum d’itérations de la méthode de dichotomie + 1, où nécessaire pour approcher x̃ à près est E ln(b−a)−ln() ln(2) E (x) désigne la partie entière d’un réel x. Proof. b−a 2n ≤⇔n≥ ln(b−a)−ln() . ln(2) Proposition La convergence de la dichotomie est linéaire de facteur 12 . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple On cherche un zéro de f (x) = x 3 + 4x cos(x) − 2 sur [0, 1], k xk f (xk ) 1 0, 5000000 −0, 1198349 2 0, 7500000 0, 6169415 3 0, 6250000 0, 2715483 4 0, 5625000 0, 8130836 · 10−1 −3 = 10 . 5 0, 5312500 −0, 1794720 · 10−1 6 0, 5468750 0, 3201580 · 10−1 7 0, 5390625 0, 7117271 · 10−2 8 0, 5351563 0, 5393982 · 10−2 9 0, 5371094 0, 8668900 · 10−3 10 0, 5361328 −0, 2263069 · 10−2 −3 ) En effet E ln(1−0)−ln(10 + 1 = 10. ln(2) Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode du point fixe (ou approximations successives) Définition Soit g : R → R. On dit que x ∈ R est un point fixe de g si g (x) = x. • Principe : associer à l’équation f (x) = 0 une équation de point fixe g (x) = x de sorte que trouver une solution de f (x) = 0 équivaut à trouver un point fixe de g . Lemme Soit (xn )n∈N la suite définie par x0 ∈ R donné et xn+1 = g (xn ). Si (xn )n∈N est convergente et g est continue, alors la limite de (xn )n∈N est un point fixe de g . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Fonctions contractantes Définition Soit g : Ω ⊆ R → R. On dit que g est lipschitzienne sur Ω de constante de Lipschitz γ (ou γ-lipschitzienne) si pour tout (x, y ) ∈ Ω2 , on a |g (x) − g (y )| ≤ γ |x − y |. On dit que g est strictement contractante sur Ω si g est γ-lipschitzienne sur Ω avec γ < 1. Proposition Soit g une fonction dérivable sur l’intervalle [a, b]. Si sa dérivée g 0 vérifie maxx∈[a,b] |g 0 (x)| = L < 1, alors g est strictement contractante sur [a, b] de constante de Lipschitz L. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Théorème du point fixe Théorème Soit g une application strictement contractante sur un intervalle [a, b] ⊂ R de constante de Lipschitz γ < 1. Supposons que l’intervalle [a, b] soit stable sous g , i.e., g ([a, b]) ⊆ [a, b] ou encore pour tout x ∈ [a, b], g (x) ∈ [a, b]. Alors g admet un unique point fixe x ∗ ∈ [a, b] et la suite définie par xn+1 = g (xn ) converge linéairement de facteur γ vers x ∗ pour tout point initial x0 ∈ [a, b]. De plus, γn |x1 − x0 |. ∀ n ∈ N, |xn − x ∗ | ≤ 1−γ • Erreur d’autant plus petite que γ est proche de 0 γ |xn − xn−1 | • De plus ∀ n ∈ N, |xn − x ∗ | ≤ 1−γ 1 ∗ Si γ ≤ 2 , alors |xn − x | ≤ |xn − xn−1 | test d’arrêt |xn − xn−1 | < qui certifiera une précision sur le résultat Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Mise en oeuvre Proposition Soit x ∗ ∈ [a, b] un point fixe d’une fonction g ∈ C 1 ([a, b]). Si |g 0 (x ∗ )| < 1, alors il existe un intervalle [α, β] ⊆ [a, b] contenant x ∗ pour lequel la suite définie par x0 ∈ [α, β] et xn+1 = g (xn ) converge vers x ∗ ; Si |g 0 (x ∗ )| > 1, alors pour tout x0 6= x ∗ , la suite définie par x0 et xn+1 = g (xn ) ne converge pas vers x ∗ ; Si |g 0 (x ∗ )| = 1, on ne peut pas conclure. • En pratique, on estime g 0 (x ∗ ) Si |g 0 (x ∗ )| > 1, alors on élimine la méthode, Si |g 0 (x ∗ )| < 1, on cherche un intervalle [α, β] ⊆ [a, b] dans lequel maxx∈[α,β] |g 0 (x)| < 1 et g ([α, β]) ⊆ [α, β]. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Première méthode de résolution de f (x) = 0 • Posons g (x) = x − f (x) • Thm du point fixe ⇒ CS pour que g admette un point fixe dans [a, b] : g contractante sur [a, b] de constante de Lipschitz γ < 1 de et [a, b] stable sous g ∀ x ∈ [a, b], |g 0 (x)| < γ ⇐⇒ |1 − f 0 (x)| < γ • Avec g (x) = x − λ f (x), on obtient : ∀ x ∈ [a, b], |1 − λ f 0 (x)| < γ < 1 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Première méthode de résolution de f (x) = 0 • Suite des itérés xn+1 = xn − λ f (xn ) y pente 1 λ f (x0 ) f (x1 ) • • • ••••• • x0 x1 x2 · · · x ∗ Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique x Première méthode de résolution de f (x) = 0 • Suite des itérés xn+1 = xn − λ f (xn ) • En effet: la droite de pente λ1 qui passe par (xn , f (xn )) a équation y − f (xn ) = 1 (x − xn ), λ donc le point d’intersection avec l’axe des abscisses y = 0 est donné par −λf (xn ) = x − xn ⇒ x = xn − λf (xn ). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Convergence Proposition On considère l’équation g (x) = x où g est une fonction au moins p + 1 fois dérivable avec p ≥ 1. Supposons que les hypothèses du théorème du point fixe soient vérifiées de sorte que g admette un unique point fixe x ∗ ∈ [a, b]. Si g 0 (x ∗ ) = g 00 (x ∗ ) = · · · = g (p) (x ∗ ) = 0 et g (p+1) (x ∗ ) 6= 0, alors la convergence de la méthode xn+1 = g (xn ) est superlinéaire d’ordre p + 1. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple On reprend l’exemple précédent: calculer le zéro de f (x) = x 3 + 4x cos(x) − 2 sur [0; 1]. La dérivée de f (x) est f 0 (x) = 3x 2 + 4 cos(x) − 4x sin(x) > 0. On a max[0;1] |f 0 (x)| = f 0 (0) = 4, méthode convergente pour λ < 21 . Pour avoir 5 décimales justes: 1 1 1 1 1 λ 2 3 4 5 6 n. itér. 25 5 7 11 15 (On observe que f 0 (x ∗ ) ≈ 3, 20). À partir de x0 = 0: k 1 2 3 4 5 6 7 λ = 13 0, 6666666 0, 5360014 0, 5368957 0, 5368347 0, 5368388 Thomas Cluzeau (Univ. de Limoges - ENSIL) λ = 14 0, 5000000 0, 5299587 0, 5354853 0, 5365698 0, 5367854 0, 5368283 0, 5368369 Analyse Numérique Méthode de Newton (1) • Revenons à ∀ x ∈ [a, b], |1 − λ f 0 (x)| < γ < 1 • La méthode convergera d’autant plus vite que γ est petite Idée : poser λ = 1 f 0 (x) cad g (x) = x − f (x) f 0 (x) . Définition La fonction d’itération de Newton associée à l’équation f (x) = 0 sur [a, b] est [a, b] → R, f (x) N : 7→ N (x) = x − 0 . x f (x) Cette fonction est définie pour f dérivable sur [a, b] et telle que f 0 ne s’annule pas sur [a, b]. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de Newton (2) y Méthode de Newton tangente f (x0 ) f (x1 ) • x0 • x1 Thomas Cluzeau (Univ. de Limoges - ENSIL) •• x2x ∗ Analyse Numérique x Convergence locale Théorème Soit f une fonction de classe C 2 sur un intervalle [a, b] de R. On suppose qu’il existe x̃ ∈ [a, b] tel que f (x̃) = 0 et f 0 (x̃) 6= 0 (x̃ est un zéro simple de f ). Alors il existe > 0, tel que pour tout x0 ∈ [x̃ − , x̃ + ], la suite des itérés de Newton donnée par xn+1 = N (xn ) pour n ≥ 1 est bien définie, reste dans l’intervalle [x̃ − , x̃ + ] et converge vers x̃ quand n tend vers l’infini. De plus, cette convergence est (au moins) quadratique. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple : calcul de la racine carrée • Équation f (x) = 0 avec f (x) = x 2 − a • On a alors N (x) = x − f (x) f 0 (x) =x− x 2 −a 2x = 1 2 x+ a x . • Si a = 2 et x0 = 1 on obtient : x0 = 1, 000000000000000 x1 = 1, 500000000000000 x2 = 1, 416666666666667 x3 = 1, 414215686274510 x4 = 1.414213562374690 x5 = 1, 414213562373095 √ • Matlab donne 2 = 1, 414213562373095 • Nombre de décimales justes double approximativement à chaque itération (convergence quadratique) • Dichotomie sur [1, 2] : 51 itérations pour v. a. à 10−15 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Zéro multiple et convergence globale Théorème Avec les notations, précédentes, si x̃ est un zéro de multiplicité m de f , i.e., f (x ∗ ) = f 0 (x ∗ ) = · · · = f (m−1) (x ∗ ) = 0 et f (m) (x ∗ ) 6= 0, alors la méthode itérative définie par xn+1 = Nm (xn ) avec f (x) Nm (xn ) = x − m 0 est d’ordre supérieure ou égal à 2. f (x) Théorème Soit f ∈ C 2 ([a, b]) vérifiant : f (a) f (b) < 0, ∀ x ∈ [a, b], f 0 (x) 6= 0, ∀ x ∈ [a, b], f 00 (x) 6= 0. Alors, en choisissant x0 ∈ [a, b] tel que f (x0 ) f 00 (x0 ) > 0, la suite (xn )n∈N définie par x0 et xn+1 = N (xn ) converge vers l’unique solution de f (x) = 0 dans [a, b]. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de la sécante (1) • Newton nécessite le calcul de la dérivée de la fonction f qui peut s’avérer difficile • Idée : remplacer la dérivée f 0 de f qui apparait dans la méthode de Newton par une différence divisée Définition Pour tout k ∈ N, on appelle différence divisée d’ordre k de f associée à la suite de points deux à deux distincts (xj )j∈N la quantité f [x0 , x1 , . . . , xk ] définie par : f [x0 ] = f (x0 ), xn+1 = xn − ∗ ∀ k ∈ N , f [x0 , x1 , . . . , xk ] = f (xn ) , f [xn , xn−1 ] f [x0 , x1 , . . . , xk−1 ] − f [x1 , x2 , . . . , xk ] x0 − xk où f [xn , xn−1 ] = Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique . f (xn ) − f (xn−1 ) xn − xn−1 Méthode de la sécante (2) • Initialisation : deux points x0 et x1 y Méthode de la sécante f (x0 ) f (x1 ) • x0 • • • x1 x2 x ∗ Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique x Convergence Théorème Soit f une fonction de classe C 2 sur un intervalle [a, b] de R. On suppose qu’il existe x̃ ∈ [a, b] tel que f (x̃) = 0 et f 0 (x̃) 6= 0 (x̃ est un zéro simple de f ). Alors il existe > 0, tel que pour tout x0 , x1 ∈ [x̃ − , x̃ + ], la suite des itérés de la méthode de la sécante est bien définie, reste dans l’intervalle [x̃ − , x̃ + ] et converge vers x̃ quand n tend vers √ l’infini. De plus, cette 1+ 5 convergence est d’ordre p = 2 ≈ 1, 618 (nombre d’or). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple: calcul de la racine carrée • Méthode de la sécante xn+1 = xn − xn2 − a xn2 − a = x − n 2 xn + xn−1 (xn2 − a) − (xn−1 − a) xn − xn−1 • Si a = 2 et x0 = x1 = 1 on obtient : x0 x1 x2 x3 x4 x5 x6 x7 = = = = = = = = 1, 000000000000000 1, 000000000000000 1, 500000000000000 1, 400000000000000 1, 413793103448276 1, 414215686274510 1, 414213562057320 1, 414213562373095 • + d’it. que Newton mais pas de calcul de dérivée Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Systèmes d’équations non linéaires f : Rn x = (x1 . . . xn )T → Rn 7 → f (x) = (f1 (x1 , . . . , xn ), . . . , fn (x1 , . . . , xn ))T . On cherche donc un vecteur x = (x1 . . . xn )T ∈ Rn tel que f1 (x1 , . . . , xn ) = 0, .. n f (x) = 0R ⇐⇒ . fn (x1 , . . . , xn ) = 0. • Méthode 1 vu précédemment se généralise : x (n+1) = x (n) + M −1 f (x (n) ), où M est une certaine matrice, et nous avons les mêmes résultats de convergence que dans le cas d’une seule équation. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Matrice Jacobienne Définition La matrice jacobienne d’une fonction f : Rn → Rn notée Jf est définie (lorsqu’elle existe) par : ∂f1 ∂x1 (x) ∂f2 ∂x1 (x) Jf (x) = .. . ∂fn (x) ∂x1 ∀ x = (x1 . . . xn )T ∈ Rn , Thomas Cluzeau (Univ. de Limoges - ENSIL) ∂f1 (x) . . . ∂x2 ∂f2 (x) . . . ∂x2 .. . .. . ∂fn (x) . . . ∂x2 Analyse Numérique ∂f1 (x) ∂xn ∂f2 (x) ∂xn . .. . ∂fn (x) ∂xn Méthode de Newton (1) • Méthode de Newton se généralise : x (0) ∈ Rn et −1 f (x (n) ), x (n+1) = x (n) − Jf x (n) −1 désigne l’inverse de la matrice jacobienne de f où Jf x (n) (n) évaluée en x . Théorème Soit f : Rn → Rn une fonction de classe C 2 sur une boule fermée B de Rn . On suppose qu’il existe un zéro x̃ de f dans B et que Jf (x̃) est inversible. Alors il existe > 0 tel que pour tout x (0) ∈ B tel que kx (0) − x̃k ≤ , la suite des itérés de la méthode de Newton ci-dessus est bien définie et converge vers x̃ quand n tend vers l’infini. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Méthode de Newton (2) • Calculer l’itéré n+ 1 à partir de l’itéré n : on a besoin d’inverser la matrice Jf x (n) • Pour éviter ce calcul d’inverse : Jf x (n) x (n+1) − x (n) = −f x (n) , • À chaque itération, calcul de l’inverse remplacé par la résolution d’un système d’équations linéaires ce qui est asymptotiquement moins couteux (Cf chapitre précédent) Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple (1) • Considérons le système d’équations non linéaires : x12 + 2 x1 − x22 − 2 = 0, (S) : 3 x1 + 3 x1 x22 − x23 − 3 = 0. • Notations précédentes : n = 2, f1 (x1 , x2 ) = x12 + 2 x1 − x22 − 2, et f2 (x1 , x2 ) = x13 + 3 x1 x22 − x23 − 3 • Matrice jacobienne de f : 2 x1 + 2 −2 x2 Jf (x1 , x2 ) = . 3 (x12 + x22 ) 6 x1 x2 − 3 x22 Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Exemple (2) • Point de départ : x (0) = (1 la méthode de Newton − 1)T . Calculons le premier itéré de • Formule d’itération pour n = 1 : Jf x (0) x (1) − x (0) = −f x (0) , c’est-à-dire 4 2 6 −9 (1) x1 − 1 (1) x2 + 1 ! =− 0 2 (1) . 1 • En résolvant ce système linéaire, on trouve x1 − 1 = − 12 et T (1) 1 11 5 x2 + 1 = 6 x (1) = 12 − 6 . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Autres méthodes • La méthode de la sécante ne se généralise pas facilement au cas de plusieurs équations En pratique : Méthode de Newton, Méthode x (n+1) = x (n) + M −1 f (x (n) ) en ajustant M au bout d’un certain nombre d’itérations. En général, M assez proche de Jf convergence d’ordre ≥ 1 Méthodes de Newton généralisées (utilisées en optimisation) Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Polynômes complexes Dans ce chapitre nous nous intéressons au polynômes de la forme p(z) = a0 + a1 z + . . . + an z n , où a0 , a1 , . . . , an ∈ C. Théorème (fondamental de l’algèbre) Tout polynôme non constant à coefficients complexes admet une racine complexe. Donc p(z) a n racines sur C (avec multiplicité). Exemple: les√racines de p(z) = z 3 − 1 sont α1 = 1, √ α2 = − 12 − 23 i, α3 = − 12 + 23 i. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Application de la méthode de Newton Etant donné z0 ∈ C, la méthode de Newton appliquée à p(z) définit une suite (système dynamique discret) z0 , z1 , z2 , . . . où p(zk ) zk+1 = zk − 0 , k ∈ N. p (zk ) Quels sont les comportement possibles pour une telle suite? Pour chaque racine αi de p(z) on définit le bassin d’attraction Bi ⊂ C comme l’ensemble des points z0 ∈ C tels que la suite de Newton définie à partir de z0 converge vers αi . Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Représentation graphique On choisit une fenêtre d’observation (rectangle R ⊂ C). On discrétise R nœuds zjk , j = 1, . . . , N, k = 1, . . . , M. Pour chaque zjk , on applique l’itération de Newton à partir de zjk : y a-t-il convergence, et si oui, vers quelle limite ? zjk représenté en noir si pas de convergence, zjk représenté en autre couleur (suivant la limite) si convergence. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Fractales Méthode de Newton appliquée à p(z) = z 3 − 1. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Fractales Méthode de Newton appliquée à p(z) = z 8 + 15z 4 − 16. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Cycles attractifs Soit p(z) = z 3 − 2z + 2. L’itération de Newton associée est zk+1 = zk − zk = 0 zk+1 = 1 zk3 − 2zk + 2 . 3zk2 − 2 zk+2 = 0 ... 0, 1, 0, 1, . . . est un cycle attractif. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Cycles attractifs Méthode de Newton appliquée à p(z) = z 3 − 2z + 2. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Autres méthodes: Halley La méthode de Halley est définie par l’itération zk+1 = zk − 2p(xk )p 0 (xk ) . 2(f 0 (xk ))2 − f (xk )f 00 (xk ) Convergence cubique au voisinage des racines. Newton et Halley sont exemples d’une famille plus générale de méthodes itératives pour le calcul des racines des polynômes (méthodes de König): zk+1 = zk + d (1/p)(d−1) (zk ) (1/p)(d) (zk ) (méthode d’ordre d). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Calcul des racines des polynômes: Newton Théorème (Hubbard, Schleicher, Sutherland 2001) Étant donné d ∈ N, on peut déterminer un ensemble fini de points Sd ⊂ C tel que, pour tout polynôme complexe p(z) de degré d et pour toute racine α de p(z), il existe au moins un point zα ∈ Sd tel que l’itération de Newton appliquée à partir de zα converge à α. En pratique, pour la méthode de Newton on a: convergence quadratique mais seulement si on est proche de la racine, comportement difficile à déterminer en dehors d’un voisinage suffisamment petit des racines. méthode généralement utilisée pour améliorer un calcul approché des racines. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Calcul des racines des polynômes: valeurs propres La matrice compagnon ou matrice de Frobenius associée au polynôme p(z) = z n + an−1 z n−1 + an−2 z n−2 + · · · + a1 z + a0 = 0 est définie comme A= 0 1 0 0 .. . 0 0 1 0 .. . 0 0 0 1 .. . ... ... ... ... .. . 0 0 0 ... Thomas Cluzeau (Univ. de Limoges - ENSIL) 0 0 0 0 .. . −a0 −a1 −a2 −a3 .. . 1 −an−1 Analyse Numérique Calcul des racines des polynômes: valeurs propres Théorème Le polynôme caractéristique de A est un multiple scalaire de p(z). Les valeurs propres de A sont racines de p(z), et inversement. Pour calculer toutes les racines de p(z) il suffit donc de calculer les valeurs propres de A. Des méthodes efficaces sont disponibles pour le calcul des valeurs propres (méthode QR: stable, complexité O(n3 )). Commande Matlab roots. Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique Calcul des racines des polynômes: conditionnement Exemples de polynômes mal conditionnés: Racines multiples: p(z) = (z − 1)n racine α = 1 de multiplicité n, on introduit une perturbation: p̃(z) = (z − 1)n − ε (ε > 0), le racines de p̃(z) sont αj = 1 + ωj ε1/n (ωj =racine n-ième de 1), exemple: si p(z) = (z − 1)3 , le polynôme perturbé p̃(z) = (z − 1)3 − 10−6 a 3 racines distinctes à distance 10−2 par rapport à 1. Polynôme de Wilkinson: w (z) = (z − 1) · (z − 2) · (z − 3) · . . . · (z − 20). Thomas Cluzeau (Univ. de Limoges - ENSIL) Analyse Numérique