Préconditionneur
En algèbre linéaire et en analyse numérique, un préconditionneur d'une matrice est une matrice telle que le conditionnement de est plus petit que celui de .
Description
Le préconditionnement est surtout utilisé dans les méthodes itératives pour la résolution d'un système linéaire (méthode du gradient, méthode du gradient conjugué, ...).
Au lieu de résoudre,
on préfère résoudre
qui permet de diminuer considérablement le nombre d'itérations dans la méthode de résolution (itérative). On dit que le système est "mieux" conditionné.
Ici, on a écrit un préconditionneur à gauche[1]. On peut aussi écrire un préconditionneur à droite. Dans ce cas, la résolution se fait en deux temps :
On peut, dans la même idée, écrire un préconditionneur à droite et à gauche, ou Modèle:Lang[2], c'est-à-dire :
Exemples
En général, on ne calcule pas explicitement , mais on utilise des algorithmes pour trouver un inverse approché de . Dans certaines méthodes numériques (intégrales de frontières avec décomposition multipôles, ...), on préfère définir le produit matrice-vecteur, ce qui permet de réduire le stockage de(s) matrice(s), donc certains types de préconditionneur seront préférés.
Préconditionneurs simples
Ces préconditionneurs simples sont très utilisés pour leur intérêt pratique, car simples à calculer et efficaces pour des matrices creuses.
Dans la suite, on décompose Modèle:Mvar en trois matrices : Modèle:Mvar, avec Modèle:Mvar sa diagonale, Modèle:Mvar, une matrice triangulaire inférieure stricte et Modèle:Mvar, une matrice triangulaire supérieure stricte.
- Préconditionneur de Jacobi
Il s'agit d'un des préconditionneurs les plus simples : la matrice Modèle:Mvar est choisie comme étant la diagonale de la matrice du système Modèle:Mvar.
Il est intéressant dans le cas des matrices à diagonale dominante.
- Préconditionneur de Gauss-Seidel
La matrice Modèle:Mvar est choisie comme étant la partie inférieure de la matrice :.
- SOR (Modèle:Lang)
- SSOR (Modèle:Lang)
Inverses approchés
- SPAI (Modèle:Lang)
Le préconditionneur Modèle:Math est la matrice minimisant , où est la norme de Frobenius. Cela revient à résoudre des problèmes de moindres carrés pour chaque colonne de la matrice Modèle:Mvar.
Factorisations incomplètes
Les préconditionneurs reposant sur des factorisations incomplètes utilisent les résultats sur les décomposition de matrices en produit de matrices aux formes ou propriétés particulières. Ces matrices n'étant pas forcément aussi creuses et leur calcul pouvant être lui-même assez lourd, il est plus simple de chercher des approximations "aussi creuses" que Modèle:Mvar, et d'utiliser ces approximations comme préconditionneurs.
Cette méthode est intéressante dans le cas des matrices Modèle:Mvar creuses, pour lesquelles les matrices recherches seront aussi creuse que Modèle:Mvar : pour , pour une décomposition , on va imposer :
- Factorisation LU incomplète
Pour une matrice Modèle:Mvar, on utilise la décomposition LU Modèle:Math avec Modèle:Mvar une matrice triangulaire inférieure et Modèle:Mvar une matrice triangulaire supérieure dont tous les coefficients diagonaux sont égaux à 1. Le préconditionneur de la factorisation LU incomplète (ILU) pour Modèle:Mvar consiste à chercher deux matrices proches de Modèle:Mvar et Modèle:Mvar[3]Modèle:,[4].
On désigne également cette factorisation par ILU(0), les factorisations ILU(k) reposent sur la décomposition LU de Modèle:Math.
- Factorisation de Cholesky incomplète
Dans le cas où Modèle:Mvar est symétrique définie positive, on sait qu'elle admet une décomposition appelée factorisation de Cholesky Modèle:Math avec Modèle:Mvar une matrice triangulaire inférieure. Le préconditionneur de la factorisation de Cholesky incomplète pour Modèle:Mvar consiste à chercher une matrice Modèle:Mvar proche de Modèle:Mvar.