Méthode de surrelaxation successive
En analyse numérique, la méthode de surrelaxation successive (en anglais : Modèle:Lang, abrégée en SOR) est une variante de la méthode de Gauss-Seidel pour résoudre un système d'équations linéaires. La convergence de cet algorithme est généralement plus rapide. Une approche similaire peut être appliquée à bon nombre de méthodes itératives.
Cette méthode aurait été découverte simultanément par Modèle:Lien et Stan Frankel en 1950 dans le but de résoudre automatiquement des systèmes linéaires avec des ordinateurs ; mais les méthodes de surrelaxations étaient déjà utilisées auparavant : qu'il suffise de citer la méthode de Lewis Fry Richardson ou la méthode de R. V. Southwell (1946). Ces méthodes étaient conçues pour le calcul à la main et requéraient une expertise certaine afin d'assurer la convergence. Ces méthodes ne pouvaient être retranscrites sur ordinateur. Ces limitations ont été discutées dans la thèse de David Young[1]
Formulation
On considère un système linéaire de n équations avec n inconnues notées x (qui est un vecteur) :
où :
A étant la somme d'une matrice diagonale notée D et de deux matrices triangulaires (respectivement inférieure et supérieure) notées L et U :
le système d'équations linéaires peut être reformulé par :
pour tout ω > 0.
La méthode de surrelaxation successive est une méthode itérative initialisée par le choix d'un arbitraire, et où chaque itération consiste à déterminer à l'aide de selon la formule suivante :
La matrice de gauche (D+ωL) étant triangulaire, il est aisé de calculer par :
Le choix du facteur de relaxation n'est pas trivial et dépend des coefficients de la matrice. Pour une matrice définie positive, on peut démontrer que l'algorithme est convergent pour tout . Toutefois, on veut une convergence aussi rapide que possible. Notons que pour un facteur de relaxation de 1, on tombe sur la méthode de Gauss-Seidel
Algorithme
Entrée: A, b, ω
Sortie:
On choisit une solution initiale arbitraire . Répéter jusqu'à convergence
- Boucler i de 1 à n
- Boucler j de 1 à i − 1
- Fin (boucle j)
- Boucler j de i + 1 à n
- Fin (boucle j)
- Boucler j de 1 à i − 1
- Fin (boucle i)
- Vérifier la convergence.
Fin (boucle répétition)
Note:
peut aussi être écrit . Ceci économise une multiplication à chaque itération.
Autre applications de la méthode
Modèle:Article principal Une technique similaire peut être utilisée pour toute méthode itérative. On suppose que l'itération peut être écrite sous la forme :
alors la méthode modifiée devient :
ou de manière équivalente :
En pratique, le choix est utilisé pour accélérer la convergence tandis que le choix est souvent utilisé pour faire converger un processus divergent.
Il existe de nombreuses méthodes pour décider de la valeur à donner au paramètre , basées sur le comportement de l'algorithme. En principe ces méthodes permettent d'avoir une convergence superlinéaire dans beaucoup de cas, mais elles peuvent échouer dans certains cas.
Voir aussi
Notes
Références
- Superrelaxation successive - SOR sur cfd-online
- Modèle:MathWorld
- Modèle:En Yousef Saad, Iterative Methods for Sparse Linear Systems, Modèle:1st edition, PWS, 1996
- Modèle:En Templates for the Solution of Linear Systems par Jack Dongarra sur netlib