Chapitre 12

Décompositions matricielles et calcul numérique

Décompositions LU, QR et en valeurs singulières, conditionnement et applications (compression, moindres carrés, ACP).

Objectifs du chapitre

À la fin de ce chapitre, vous serez capable de:

  • calculer la décomposition d'une matrice carrée, l'utiliser pour résoudre plusieurs systèmes de même matrice et pour calculer un déterminant, et expliquer pourquoi le pivotage partiel est indispensable en arithmétique flottante;
  • calculer la décomposition de Cholesky d'une matrice symétrique définie positive;
  • obtenir la décomposition par le procédé de Gram–Schmidt ou par des réflexions de Householder, et l'appliquer aux moindres carrés et au calcul des valeurs propres;
  • énoncer et démontrer le théorème de décomposition en valeurs singulières , l'interpréter géométriquement et en lire le rang, les quatre sous-espaces fondamentaux, les normes et la pseudo-inverse;
  • définir le conditionnement , démontrer l'inégalité et en tirer les bonnes pratiques du calcul numérique;
  • décrire les applications de la SVD tronquée (compression, analyse en composantes principales) et les méthodes itératives de Jacobi et de Gauss–Seidel.

Pourquoi factoriser une matrice?

Les chapitres précédents ont construit les objets de l'algèbre linéaire: systèmes, matrices, déterminants, espaces vectoriels, orthogonalité, valeurs propres. Ce dernier chapitre change de point de vue et pose la question de l'ingénieur: comment calcule-t-on tout cela, vite et sûrement, sur un ordinateur? Quelques situations typiques.

  • Des milliers de systèmes de même matrice. Dans une simulation par éléments finis, la matrice de rigidité d'une structure ne change pas d'un pas de temps à l'autre; seul le second membre (les charges) change. Résoudre pour en refaisant chaque fois l'élimination de Gauss serait un gaspillage: on veut factoriser une fois, résoudre souvent.
  • Ajuster des données bruitées. Un géomètre mesure des distances et des angles entre des dizaines de points; les inconnues (les coordonnées) sont bien moins nombreuses que les mesures. Le système est surdéterminé et il faut le résoudre au sens des moindres carrés (chapitre 7), sans que les erreurs de mesure soient amplifiées par le calcul.
  • Compresser une image. Une photographie de pixels est une matrice d'un million de coefficients. Peut-on la remplacer par une matrice de rang , stockée avec dix fois moins de nombres, sans perte visible?
  • Trouver les directions principales d'un nuage de points. Des capteurs enregistrent cent grandeurs à chaque instant. Ces cent colonnes sont-elles vraiment indépendantes, ou le phénomène se décrit-il avec trois combinaisons bien choisies?

À chacune de ces questions répond une factorisation: écrire comme un produit de matrices plus simples (triangulaires, orthogonales, diagonales), pour lesquelles toutes les opérations sont faciles. Les décompositions , et en valeurs singulières (SVD) sont les outils de base de l'algèbre linéaire numérique; elles constituent le cœur de la bibliothèque LAPACK, que NumPy, MATLAB, R ou Julia appellent en coulisses. Comprendre ce qu'elles font, ce qu'elles coûtent et quand elles échouent est indispensable pour utiliser ces logiciels intelligemment.

La décomposition LU

De l'élimination de Gauss à A = LU

Revenons à l'élimination de Gauss du chapitre 1 sur une matrice carrée , en supposant que l'on n'ait jamais besoin d'échanger deux lignes. Pour annuler le coefficient sous le pivot , on effectue avec le multiplicateur (calculé sur la matrice courante). Au chapitre 2, nous avons vu que cette opération revient à multiplier à gauche par la matrice élémentaire , triangulaire inférieure à diagonale de . À la fin de l'élimination, on a obtenu une matrice triangulaire supérieure :

Démonstration. Chaque est inversible d'inverse (on vérifie que car pour ). Donc

le produit étant pris dans l'ordre de l'élimination (colonne d'abord). Développons ce produit: un terme croisé contient le scalaire , nul dès que ; or dans l'ordre choisi, le facteur précède le facteur seulement si , de sorte que toujours. Tous les termes croisés s'annulent et

qui est bien la matrice triangulaire inférieure unitaire contenant les multiplicateurs. Pour l'unicité, si avec inversible, alors sont inversibles (leurs déterminants sont non nuls) et . Le membre de gauche est triangulaire inférieur unitaire (produit et inverse de telles matrices le sont, chapitre 2), le membre de droite triangulaire supérieur: la seule matrice qui soit les deux à la fois est . Donc et .

Résoudre A x = b: substitution avant, substitution arrière

Une fois connue, le système s'écrit et se résout en deux systèmes triangulaires:

Le premier se résout de haut en bas (, puis , etc.), le second de bas en haut.

An × n=1000100101Linférieure, diagonale de 1·uuuu0uuu00uu000uUsupérieure (pivots uᵢᵢ)coût ≈ 2n³/3une seule foissecond membre bL y = bsubstitution avantU x = ysubstitution arrièresolution xpour chaque second membre: deux systèmes triangulaires, coût ≈ 2n² opérations
Figure 12.1. La factorisation A = LU sépare le travail en deux phases: la factorisation elle-même (coût de l'ordre de 2n³/3 opérations), effectuée une seule fois, et la résolution de deux systèmes triangulaires (2n² opérations) pour chaque second membre.

Coût. Comptons les opérations flottantes (additions et multiplications, flops). L'élimination de la colonne modifie un bloc de lignes et colonnes, à raison de deux flops par coefficient: au total flops pour la factorisation. Chaque substitution triangulaire coûte environ flops, soit par second membre. Pour , la factorisation demande environ flops et chaque résolution : on peut résoudre plus de trois cents systèmes pour le prix d'une factorisation. Calculer puis multiplier coûterait trois fois plus cher ( flops pour l'inverse) et, nous le verrons, serait moins précis.

Exercice

Vous devez résoudre pour seconds membres différents, avec de taille . Quelle stratégie est la plus économique?

Le pivotage partiel

L'hypothèse «aucun échange de lignes» n'est pas seulement une commodité théorique: la matrice , inversible, n'a pas de décomposition LU (le premier pivot est nul). Plus grave, en arithmétique flottante, un pivot petit est presque aussi dangereux qu'un pivot nul.

La parade est le pivotage partiel: à chaque étape, on choisit comme pivot le coefficient de plus grande valeur absolue dans la colonne courante (sur et sous la diagonale) et l'on échange les lignes en conséquence. Tous les multiplicateurs vérifient alors , ce qui empêche l'amplification catastrophique ci-dessus. Les échanges de lignes se résument en une matrice de permutation (chapitre 2).

Nous admettons ce théorème; l'idée est simple. À chaque étape, la colonne courante (sous la diagonale incluse) n'est pas entièrement nulle, sinon la matrice serait singulière: le pivot de plus grande valeur absolue est donc non nul. On montre ensuite qu'un échange de lignes effectué à l'étape peut être «remonté» avant toutes les opérations d'élimination précédentes, à condition d'échanger aussi les lignes correspondantes des multiplicateurs déjà stockés dans ; toutes les permutations se regroupent ainsi dans , et l'on est ramené au théorème 12.1 pour la matrice . Le système devient : on permute le second membre, puis on substitue comme en (12.1). C'est exactement ce que fait scipy.linalg.lu_factor ou l'opérateur \ de MATLAB pour une matrice carrée quelconque.

Exercice

Remettez dans l'ordre les étapes de la résolution de par décomposition LU avec pivotage partiel.

Glissez les éléments pour les mettre dans le bon ordre

    1.
  • Ranger les multiplicateurs dans et la matrice échelonnée dans , de sorte que
  • 2.
  • Permuter le second membre: former
  • 3.
  • À chaque étape de l'élimination, choisir dans la colonne courante le coefficient de plus grande valeur absolue, échanger les lignes et enregistrer l'échange dans
  • 4.
  • Résoudre par substitution avant
  • 5.
  • Résoudre par substitution arrière

Déterminant via LU

Le déterminant d'un produit est le produit des déterminants (chapitre 3), celui d'une matrice triangulaire est le produit de ses coefficients diagonaux, et selon la parité du nombre d'échanges. De on tire donc

Pour la matrice de l'exemple 12.1, (aucun échange). C'est ainsi que numpy.linalg.det calcule un déterminant: en flops, et non par le développement selon une ligne, dont le coût en est prohibitif dès .

La décomposition de Cholesky

Lorsque est symétrique définie positive — cas des matrices de rigidité en mécanique des structures, des matrices des moindres carrés, des matrices de covariance en statistique — on peut faire deux fois mieux.

Démonstration. Au chapitre 11, nous avons vu qu'une matrice symétrique est définie positive si et seulement si tous ses mineurs principaux dominants ( le bloc en haut à gauche) sont strictement positifs. L'élimination de Gauss sans échange sur transforme en le bloc , sans changer son déterminant: , d'où le -ième pivot . Aucun pivot n'est nul et le théorème 12.1 donne de manière unique. Notons et , triangulaire supérieure unitaire: . La symétrie de donne , qui est une autre décomposition LU de (facteur inférieur unitaire , facteur supérieur ). Par unicité, , donc . Comme les sont positifs, existe et : le facteur est triangulaire inférieur à diagonale . L'unicité découle de celle de la décomposition LU: si , alors avec la diagonale de , ce qui force et .

Algorithme. On identifie les coefficients de colonne par colonne, ce qui donne, pour ,

Le coût est d'environ flops, la moitié de la décomposition LU, et aucun pivotage n'est nécessaire (la stabilité est automatique: on montre que ). Si une racine carrée d'un nombre négatif apparaît, c'est que n'était pas définie positive: l'algorithme de Cholesky est d'ailleurs le test numérique standard de positivité.

La décomposition QR

Gram–Schmidt vu comme une factorisation

Le procédé de Gram–Schmidt (chapitre 7) transforme une famille libre de en une famille orthonormée qui engendre les mêmes sous-espaces emboîtés: pour tout . Rangeons les en colonnes d'une matrice et les en colonnes de .

Démonstration. Le procédé de Gram–Schmidt construit, pour ,

avec parce que . En posant pour , et pour , la relation ci-dessus se réécrit

ce qui est exactement la -ième colonne de l'égalité matricielle .

Les réflexions de Householder

Le procédé de Gram–Schmidt est parfait sur le papier, mais en arithmétique flottante il perd progressivement l'orthogonalité: si deux colonnes sont presque parallèles, la soustraction est une différence de nombres proches, et les erreurs d'arrondi dominent le petit reste . Les bibliothèques numériques calculent autrement: en appliquant à une suite de réflexions orthogonales qui annulent, colonne après colonne, les coefficients sous la diagonale, exactement comme l'élimination de Gauss, mais avec des matrices orthogonales à la place des matrices élémentaires.

Démonstration. 1. Posons , la matrice de la projection orthogonale sur la droite (chapitre 7). Elle est symétrique et . Donc est symétrique et

ce qui prouve à la fois l'orthogonalité et .

  1. Notons et . Alors et . Par conséquent

Géométriquement, et ont la même longueur; la réflexion par rapport à l'hyperplan médiateur de ces deux vecteurs (orthogonal à leur différence ) envoie l'un sur l'autre. Par exemple, pour , , , et

L'algorithme de Householder. On choisit qui envoie la première colonne de sur : la première colonne de est nulle sous la diagonale. On recommence avec une réflexion agissant sur les lignes à (bloc-diagonale avec en position ) pour annuler la deuxième colonne sous la diagonale, sans toucher à la première, et ainsi de suite. Après étapes, , d'où avec orthogonale (chaque est son propre inverse). Les premières colonnes de forment le du théorème 12.4 (au signe des colonnes près).

Exercice

Soit et . Calculez le coefficient (ligne 1, colonne 1) de la matrice de Householder .

Application aux moindres carrés

Au chapitre 7, la solution au sens des moindres carrés de (système surdéterminé, ) était obtenue par les équations normales . La décomposition QR en donne une version plus stable.

Démonstration. Comme est de rang , est inversible et les équations normales ont une solution unique (chapitre 7). Remplaçons par : puisque , et . Les équations normales s'écrivent donc ; comme est inversible (diagonale strictement positive), l'est aussi et l'on peut simplifier: .

L'algorithme QR pour les valeurs propres

La décomposition QR a une seconde application, surprenante: elle est au cœur de l'algorithme standard de calcul des valeurs propres, celui de numpy.linalg.eig. Le polynôme caractéristique, si commode au chapitre 9, est inutilisable numériquement: ses coefficients sont extrêmement sensibles aux arrondis et ses racines le sont encore plus.

Principe. Partant de , on factorise puis on multiplie les facteurs dans l'ordre inverse:

Comme , on a : toutes les matrices sont orthogonalement semblables à et ont les mêmes valeurs propres (chapitre 6). Le fait remarquable, que nous admettons, est le suivant: si est symétrique à valeurs propres de valeurs absolues distinctes, converge vers la matrice diagonale des valeurs propres, rangées par valeur absolue décroissante, et les produits convergent vers la matrice orthogonale des vecteurs propres. Pour une matrice quelconque, tend vers une forme triangulaire supérieure (forme de Schur), dont la diagonale porte les valeurs propres.

La décomposition en valeurs singulières

Les décompositions LU et QR sont des outils de calcul. La décomposition en valeurs singulières (SVD, singular value decomposition) est davantage: elle révèle la structure géométrique complète d'une matrice quelconque, même rectangulaire, même de rang déficient, là où la diagonalisation exige une matrice carrée et diagonalisable.

Le théorème

Démonstration. La matrice est symétrique, et semi-définie positive: pour tout , . Par le théorème spectral (chapitre 11), elle possède une base orthonormée de vecteurs propres associés à des valeurs propres (positives par la remarque précédente appliquée à : ). Soit le nombre de valeurs propres strictement positives; posons et, pour ,

Ces vecteurs sont orthonormés: . On complète en une base orthonormée de (théorème de la base incomplète puis Gram–Schmidt), rangée dans . Pour , donc . Au total, pour et sinon, ce qui s'écrit matriciellement , et étant orthogonale, .

La démonstration est constructive, mais ce n'est pas ainsi que les logiciels calculent la SVD: former élève le conditionnement au carré (théorème 12.13 plus bas). L'algorithme de Golub et Kahan (1965) réduit à une forme bidiagonale par des réflexions de Householder, puis applique une variante de l'algorithme QR.

Interprétation géométrique

Lisons de droite à gauche sur un vecteur : est une isométrie (rotation ou réflexion) qui envoie la base orthonormée sur la base canonique; étire l'axe d'un facteur (et écrase les axes ); est une nouvelle isométrie qui envoie la base canonique sur . Toute application linéaire est une rotation, suivie d'un étirement le long d'axes orthogonaux, suivie d'une rotation. En particulier, l'image de la sphère unité de est un ellipsoïde de (éventuellement aplati) dont les demi-axes sont les vecteurs .

cercle unitéVᵀaprès Vᵀ (rotation)Σaprès Σ (étirement)Uaprès U (rotation)v₁v₂e₁e₂σ₁e₁σ₂e₂σ₁u₁σ₂u₂A = U Σ Vᵀ avec A = (1/2,5)·[[3, 0], [4, 5]]: σ₁ ≈ 2,68, σ₂ ≈ 0,89; A v₁ = σ₁u₁ et A v₂ = σ₂u₂
Figure 12.2. Géométrie de la SVD dans le plan. Le cercle unité, avec les vecteurs singuliers v₁ et v₂, est envoyé par Vᵀ sur lui-même (v₁, v₂ vont sur e₁, e₂), puis étiré par Σ en une ellipse d'axes σ₁e₁ et σ₂e₂, puis tourné par U: l'image finale est l'ellipse de demi-axes σ₁u₁ et σ₂u₂.

Explorateur de la décomposition en valeurs singulières

Faites varier les coefficients de A = [[a, b], [c, d]]. Le cercle unité (gris) est envoyé sur une ellipse (accent) dont les demi-axes sont σ₁u₁ et σ₂u₂; les vecteurs v₁ et v₂ (pointillés) sont les points du cercle envoyés sur ces demi-axes.

-3-2-1123v₁v₂σ₁u₁σ₂u₂A = [[1,5, 0,5], [0,4, 1,0]] — cercle unité en pointillés, image A(cercle) en couleur
σ1
1,766
σ2
0,736
κ2(A) = σ12
2,40
rang
2
|det A| = σ1σ2
1,300
‖A‖F
1,913
a (ligne 1, colonne 1)1,5
b (ligne 1, colonne 2)0,5
c (ligne 2, colonne 1)0,4
d (ligne 2, colonne 2)1,0

Rang et sous-espaces fondamentaux

Démonstration. Par (12.11), pour tout , , et réciproquement chaque est dans l'image: , de dimension puisque les sont orthonormés donc libres. D'autre part, pour , donc ; par le théorème du rang (chapitre 5), , et l'inclusion est une égalité. Les deux autres formules s'obtiennent en appliquant ce qui précède à , qui est une SVD de avec les rôles de et échangés.

Ce théorème donne des bases orthonormées des quatre sous-espaces fondamentaux d'un coup, et rend visible le théorème du chapitre 7 selon lequel et . Par exemple, pour , on trouve , de valeurs propres et : une seule valeur singulière , donc ; engendre et engendre ; engendre et engendre . Numériquement, le rang d'une matrice se calcule en comptant les valeurs singulières supérieures à un seuil (par défaut dans NumPy): l'élimination de Gauss, elle, ne sait pas distinguer un pivot nul d'un pivot de .

Normes matricielles

Démonstration. Soit unitaire et , unitaire lui aussi car est orthogonale. Alors , avec égalité pour , c'est-à-dire . Pour Frobenius, , en utilisant (chapitre 9).

La pseudo-inverse

Démonstration. Posons et . Comme est orthogonale, . Le second terme ne dépend pas de ; le premier est nul, donc minimal, si et seulement si pour , les composantes restant libres. Parmi ces minimiseurs, est minimale lorsque pour ; le vecteur obtenu est exactement , soit .

Reprenons et . Le système n'a pas de solution () et, étant de rang , les solutions au sens des moindres carrés forment une droite entière. La pseudo-inverse est , d'où . On vérifie que est bien la projection orthogonale de sur , et que est orthogonal à , ce qui en fait le minimiseur le plus court. C'est ce que calcule numpy.linalg.lstsq pour un système de rang déficient.

Exercice

Une matrice a pour valeurs singulières , et . Laquelle de ces affirmations est vraie?

Conditionnement et erreurs d'arrondi

Nombres flottants

Un ordinateur représente les réels en virgule flottante: en double précision (norme IEEE 754, type float de Python), un nombre s'écrit avec une mantisse de 52 bits. Entre deux flottants consécutifs, l'écart relatif est l'epsilon machine : chaque opération arithmétique élémentaire est effectuée avec une erreur relative au plus , soit environ 16 chiffres significatifs justes. Cela paraît beaucoup, mais nous avons vu avec le pivot qu'un algorithme mal conçu peut perdre tous ces chiffres en une seule soustraction. La question centrale est la suivante: en quoi la précision de la solution dépend-elle de la précision des données?

Le conditionnement d'une matrice

Démonstration. Si est inversible, alors , qui est une SVD de (matrices orthogonales et , matrice diagonale de coefficients , à réordonner). Par la proposition 12.9, et .

Géométriquement, est le rapport du grand au petit demi-axe de l'ellipsoïde image de la sphère unité (explorateur ci-dessus): une matrice mal conditionnée aplatit la sphère en une galette, et l'on ne peut plus distinguer, dans l'image, des directions qui étaient très différentes au départ. Le théorème suivant transforme cette image en une borne d'erreur.

Démonstration. Par soustraction des deux systèmes, , donc et . D'autre part , soit . En multipliant membre à membre ces deux inégalités entre nombres positifs,

Le conditionnement est donc le facteur d'amplification des erreurs relatives: si les données sont connues à près et , la solution n'est garantie qu'à près. Avec des données en double précision (), une matrice de conditionnement ne laisse que 6 chiffres justes. La borne est atteinte lorsque est dans la direction de (le plus étiré) et dans celle de (le plus écrasé); on démontre une inégalité analogue pour une perturbation de la matrice.

Exercice

Calculez le conditionnement spectral de la matrice de l'exemple 12.7.

Conséquences pratiques

Démonstration. De on tire , avec . C'est une diagonalisation orthogonale de la matrice symétrique définie positive , donc aussi sa SVD: ses valeurs singulières sont les et .

Stabilité inverse. Le conditionnement décrit la sensibilité du problème; la qualité de l'algorithme se mesure autrement. Un algorithme est dit stable au sens inverse (backward stable) si la solution calculée est la solution exacte d'un problème voisin: avec de l'ordre de . La décomposition QR de Householder et la SVD sont stables au sens inverse; la décomposition LU avec pivotage partiel l'est en pratique (Wilkinson, 1961). Combinée à (12.14), la stabilité inverse donne la règle d'or: erreur relative sur la solution .

Applications

Compression d'image par SVD tronquée

Une image en niveaux de gris de pixels est une matrice ; sa SVD (12.11) l'écrit comme somme de «couches» d'importance décroissante. En ne gardant que les premières, on obtient la SVD tronquée

matrice de rang qui ne demande de stocker que nombres au lieu de .

Nous admettons l'optimalité (la démonstration, courte mais astucieuse, se trouve dans Trefethen et Bau); les valeurs des erreurs, elles, découlent directement de la proposition 12.9 appliquée à , dont les valeurs singulières sont .

image A (8 × 8)64 nombres, ‖A‖F = 4,57rang 1: σ₁u₁v₁ᵀ17 nombres, erreur 1,24 (27 %)rang 2: σ₁u₁v₁ᵀ + σ₂u₂v₂ᵀ34 nombres, erreur 0,63 (14 %)valeurs singulières: σ₁ ≈ 4,40, σ₂ ≈ 1,06; l’erreur de rang k vaut √(σ²ₖ₊₁ + … + σ²₈) (Eckart–Young)
Figure 12.3. Une «image» synthétique de 8 × 8 pixels (gradient horizontal, carré clair, bande diagonale) et ses approximations de rang 1 et 2 par SVD tronquée. Le rang 1 ne retient qu'un produit d'un profil de ligne par un profil de colonne; le rang 2 restitue déjà le carré central. Les erreurs sont calculées en norme de Frobenius.

Pour une photographie de pixels, garder valeurs singulières demande nombres au lieu de , soit un taux de compression d'environ ; comme les valeurs singulières d'une image naturelle décroissent vite, le résultat est reconnaissable, quoique flou dans les détails. Le principe — représenter les données dans une base adaptée et négliger les petites composantes — est le même que dans les formats JPEG (base de cosinus) et dans la réduction de dimension des données.

Analyse en composantes principales

L'analyse en composantes principales (ACP) cherche les directions dans lesquelles un nuage de points de est le plus dispersé. Soit la matrice des données centrées (une ligne par observation, une colonne par variable, la moyenne de chaque colonne ramenée à ). La matrice de covariance empirique est , et la variance des données projetées sur une direction unitaire vaut . Par la SVD , on a : les composantes principales sont les vecteurs singuliers à droite de , et la variance portée par la -ième vaut . La preuve que maximise est celle de la proposition 12.9.

Systèmes surdéterminés en géodésie et positionnement

Le récepteur GPS d'un smartphone reçoit à chaque instant les signaux de huit à douze satellites, et cherche quatre inconnues: ses trois coordonnées et le décalage de son horloge. Les équations de distance sont non linéaires; on les linéarise autour d'une position approchée (méthode de Gauss–Newton), ce qui donne à chaque itération un système surdéterminé résolu par QR. La géodésie fait de même à grande échelle: la compensation par moindres carrés du réseau de triangulation suisse (cadre de référence MN95 de swisstopo) ajuste des dizaines de milliers de mesures pour quelques milliers de coordonnées inconnues. Gauss lui-même a inventé la méthode des moindres carrés pour ce type de problème, lors du levé du royaume de Hanovre.

Méthodes itératives pour les grands systèmes

Lorsque atteint le million, la décomposition LU (coût , mémoire ) est hors de portée. Mais les matrices issues des équations aux dérivées partielles sont creuses: chaque ligne n'a que quelques coefficients non nuls, et le produit ne coûte que quelques flops. Les méthodes itératives n'utilisent que ce produit. Écrivons avec la diagonale (supposée sans zéro), la partie strictement inférieure et la partie strictement supérieure. Le système équivaut à , ce qui suggère l'itération de Jacobi:

La méthode de Gauss–Seidel utilise immédiatement les composantes déjà mises à jour:

Nous admettons ce théorème; l'idée du critère est que l'erreur vérifie , donc , et si et seulement si les valeurs propres de sont de module inférieur à (chapitre 10).

Un aperçu des solveurs creux

Dans un calcul par éléments finis (chapitre 7 du cours de mécanique des structures), la matrice de rigidité d'un maillage de nœuds a coefficients dont seuls quelques sont non nuls. Deux familles de solveurs se partagent le travail. Les solveurs directs creux effectuent une décomposition LU ou de Cholesky en renumérotant les inconnues pour limiter le remplissage (les zéros de qui deviennent non nuls dans ); ils sont robustes et permettent de traiter de nombreux seconds membres. Les solveurs itératifs, héritiers de Jacobi et de Gauss–Seidel — méthode du gradient conjugué pour les matrices symétriques définies positives, GMRES en général — ne demandent que des produits matrice-vecteur et une mémoire proportionnelle à ; leur vitesse de convergence dépend directement du conditionnement, que l'on réduit par un préconditionnement (résoudre avec facile à inverser). Le choix entre les deux, et le réglage du préconditionneur, sont le quotidien du calcul scientifique.

Synthèse

  • LU: l'élimination de Gauss est la factorisation ( triangulaire inférieure unitaire des multiplicateurs, échelonnée); coût , puis par second membre; le pivotage partiel () est indispensable en flottants; . Pour symétrique définie positive, Cholesky donne pour la moitié du coût, sans pivotage.
  • QR: Gram–Schmidt écrit ( à colonnes orthonormées, triangulaire supérieure); les réflexions de Householder (symétriques, orthogonales) donnent le même résultat de façon stable. Moindres carrés: . L'algorithme QR () calcule les valeurs propres.
  • SVD: pour toute matrice; ; rotation–étirement–rotation, l'image de la sphère unité est un ellipsoïde de demi-axes ; le rang est le nombre de ; et contiennent des bases orthonormées des quatre sous-espaces fondamentaux; , ; pseudo-inverse et moindres carrés de norme minimale.
  • Conditionnement: , ; ; on perd chiffres; , d'où la préférence pour QR; ne jamais inverser pour résoudre.
  • Applications: SVD tronquée et théorème d'Eckart–Young (compression, débruitage), analyse en composantes principales (composantes , variances ), moindres carrés en géodésie et GPS.
  • Grands systèmes: méthodes itératives de Jacobi et de Gauss–Seidel (convergence si diagonale strictement dominante ou, pour Gauss–Seidel, symétrique définie positive), solveurs creux directs et itératifs préconditionnés.

Série d'exercices du chapitre 12

Exercice 1 sur 5
Exercice

Pourquoi les logiciels effectuent-ils un pivotage partiel lors de la décomposition LU?

Problème guidé

Décomposition LU, seconds membres multiples et conditionnement

On considère la matrice . On veut la factoriser une fois, puis résoudre pour deux seconds membres et , calculer et estimer le conditionnement pour la norme (maximum des sommes des valeurs absolues des colonnes).

  1. 1

    Factorisation A = LU

    Le premier pivot est , d'où et . Après élimination de la première colonne, la deuxième ligne devient et la troisième .

    Exercice

    Calculez le multiplicateur , puis vérifiez que .

  2. Deux seconds membres

  3. Déterminant

  4. Conditionnement pour la norme 1

Exercices

Vous pouvez afficher le corrigé directement sous chaque énoncé après avoir cherché la solution.

Exercice 12.1 · Décomposition LU et résolution

Soit .

  1. Calculer la décomposition sans échange de lignes.
  2. Résoudre pour par substitution avant puis arrière.
  3. En déduire et la première colonne de (résoudre ).
Solution

1. Colonne 1: pivot , , ; donne et donne . Colonne 2: pivot , ; donne . Donc

Vérification de la troisième ligne de : .

2. : , , . Puis : , , . Donc , ce que confirme .

3. . Pour : (car , ), puis , , . La première colonne de est ; on vérifie . Les deux autres colonnes s'obtiennent de même avec et , pour un coût total de trois paires de substitutions, sans refaire l'élimination.

Exercice 12.2 · Décomposition QR et moindres carrés

Soit et .

  1. Calculer la décomposition par le procédé de Gram–Schmidt.
  2. Résoudre le problème des moindres carrés à l'aide de (12.8).
  3. Retrouver le résultat par les équations normales et calculer le résidu .
Solution

1. , , . Puis , , , , . Donc

2. . Le système donne, de bas en haut, , soit , puis , soit .

3. et . La différence des deux équations donne , puis , d'où : même résultat (notons que , comme dans la démonstration du théorème 12.6). Le résidu vaut , de norme . Ce résidu est orthogonal aux deux colonnes de : et .

Exercice 12.3 · SVD d'une matrice 2 × 2

Soit .

  1. Calculer les valeurs singulières de .
  2. Déterminer une SVD complète.
  3. Donner , , , et décrire l'image du cercle unité par .
Solution

1. , de valeurs propres , soit et . Les valeurs singulières sont et .

2. Vecteurs propres orthonormés de : pour et pour . Alors

D'où

Vérification: le produit des deux dernières matrices est , et change le signe de la seconde ligne, ce qui redonne . Ici est une réflexion (rotation de composée avec une symétrie) et une réflexion d'axe horizontal.

3. ; ; . L'image du cercle unité est l'ellipse de demi-grand axe (horizontal) et de demi-petit axe (vertical): c'est l'ellipse d'équation . Son aire vaut , conformément à l'interprétation du déterminant du chapitre 3.

Exercice 12.4 · Conditionnement d'un système perturbé

Soit et . On utilise la norme des vecteurs, , et la norme matricielle subordonnée .

  1. Vérifier que est la solution de , calculer et .
  2. On remplace par avec . Calculer , puis les erreurs relatives et , et comparer leur rapport à .
  3. Interpréter géométriquement.
Solution

1. . Le déterminant vaut , donc

Sommes des colonnes en valeur absolue: et . Donc .

2. : la solution perturbée est . Erreurs relatives: , soit , et . Le rapport vaut , inférieur à mais du même ordre: la perturbation choisie est presque la pire possible, car est portée par la colonne de de plus grande norme. Une erreur de mesure d'un centième sur une donnée a changé la solution de en .

3. Les deux droites et ont pour pentes et : elles sont presque parallèles. Une translation infime de la seconde droite déplace le point d'intersection très loin le long de la première. En termes de SVD, et : l'image du cercle unité est une ellipse mille fois plus longue que large ().

Exercice 12.5 · Valeurs singulières et invariance orthogonale

Soit de SVD , avec les valeurs singulières ().

  1. Montrer que pour toute matrice orthogonale , la matrice a les mêmes valeurs singulières que . En déduire et, si et inversible, . Expliquer en quoi cela justifie la stabilité de l'algorithme de Householder.
  2. Montrer que si est carrée et symétrique de valeurs propres , ses valeurs singulières sont les nombres rangés par ordre décroissant. En déduire pour symétrique inversible.
  3. Montrer que pour toute matrice carrée inversible, avec égalité si et seulement si est un multiple non nul d'une matrice orthogonale.
  4. Soit . Montrer que (cas des égalités du théorème d'Eckart–Young).
Solution

1. Le produit de deux matrices orthogonales est orthogonal: . Donc est une SVD de , avec la même matrice : les valeurs singulières de sont celles de (elles sont bien définies indépendamment de la SVD choisie, comme racines carrées des valeurs propres de ). Par la proposition 12.9, , et par la proposition 12.11, . Le même argument vaut pour avec orthogonale .

L'algorithme de Householder ne fait que multiplier par des matrices orthogonales : à chaque étape, la matrice courante a exactement le même conditionnement que , et une erreur d'arrondi introduite à une étape est transmise aux suivantes avec , sans amplification. Au contraire, l'élimination de Gauss multiplie par des matrices non orthogonales, dont la norme peut être grande si les multiplicateurs le sont, d'où la nécessité du pivotage.

2. Par le théorème spectral (chapitre 11), avec orthogonale et . Alors a pour valeurs propres , donc les valeurs singulières de sont . On peut d'ailleurs exhiber la SVD: en écrivant avec (avec la convention ), on a est orthogonale; il reste à réordonner les par ordre décroissant en permutant simultanément les colonnes de et de . Si est inversible, aucun n'est nul et . Pour une matrice non symétrique, cette formule est fausse: la matrice de l'exercice ch12-s3 a ses deux valeurs propres égales à mais .

3. puisque . Il y a égalité si et seulement si , c'est-à-dire si toutes les valeurs singulières sont égales à un même , soit et avec orthogonale. Réciproquement, si avec orthogonale et , alors , toutes les valeurs singulières valent et . Les matrices parfaitement conditionnées sont donc exactement les similitudes: elles transforment la sphère unité en une sphère, et n'amplifient aucune direction au détriment d'une autre.

4. , où est obtenue de en remplaçant par . C'est une SVD de à l'ordre des valeurs singulières près (il suffit de déplacer simultanément la première colonne de et celle de en position , en décalant les colonnes d'un cran vers la gauche, pour retrouver l'ordre décroissant); ses valeurs singulières sont donc et . Par la proposition 12.9, . Le théorème d'Eckart–Young affirme de plus qu'aucune matrice de rang ne fait mieux: pour de rang , est de dimension et rencontre le plan en un vecteur unitaire au moins; alors , d'où . Cet argument de dimension est exactement celui de la démonstration générale.

Références

  • Trefethen, L. N. et Bau, D., Numerical Linear Algebra, SIAM, Philadelphie, 1997 (leçons 4–5 sur la SVD, 7–11 sur QR et les moindres carrés, 12–22 sur le conditionnement et la stabilité, 20–23 sur LU et Cholesky).
  • Strang, G., Introduction to Linear Algebra, 5e éd., Wellesley-Cambridge Press, chap. 2.6 (LU), 4.4 (QR), 7 (SVD) et 9 (algèbre linéaire numérique).
  • Lay, D. C., Lay, S. R. et McDonald, J. J., Algèbre linéaire et applications, 5e éd., Pearson, chap. 2.5, 6.4 et 7.4–7.5.
  • Golub, G. H. et Van Loan, C. F., Matrix Computations, 4e éd., Johns Hopkins University Press, Baltimore, 2013.
  • Quarteroni, A., Sacco, R. et Saleri, F., Méthodes numériques: algorithmes, analyse et applications, Springer, Milan, 2007 (auteurs de l'EPFL et du Politecnico di Milano).
  • Higham, N. J., Accuracy and Stability of Numerical Algorithms, 2e éd., SIAM, 2002 (pour la stabilité inverse et le pivotage).

Connectez-vous pour enregistrer votre progression.

Connexion pour poser des questions sur ce chapitre.