Comment établir qu'une méthode itérative pour les grands systèmes linéaires est convergente dans la pratique?

11

En science informatique, nous rencontrons souvent de grands systèmes linéaires que nous devons résoudre par des moyens (efficaces), par exemple par des méthodes directes ou itératives. Si nous nous concentrons sur ces derniers, comment pouvons-nous établir qu'une méthode itérative pour résoudre un grand système linéaire est convergente dans la pratique?

Il est clair que nous pouvons faire des essais et des erreurs ( cf.Pourquoi mon solveur linéaire itératif ne converge-t-il pas? ) Et s'appuyer sur des méthodes itératives qui garantissent la convergence par des preuves ou ont une base d'expérience solide (par exemple les méthodes du sous-espace Krylov telles que CG et GMRES pour les systèmes symétriques et non symétriques respectivement).

Mais que peut-on faire pour établir la convergence dans la pratique? et que fait-on?

Allan P. Engsig-Karup
la source
1
Grande question! Lorsque vous dites «établir la convergence», voulez-vous dire «établir que la solution converge» ou «établir que la convergence se produira»? Je sais, par exemple, que l'objet PETSc KSP a quelques techniques par défaut pour tester la convergence (la norme d'erreur diminue, le nombre maximum d'itérations). Est-ce le genre de réponse que vous recherchez?
Aron Ahmadia
@aron: Je pense qu'il sera intéressant de voir des réponses abordant les deux problèmes.
Allan P. Engsig-Karup

Réponses:

6

Pour de nombreuses équations différentielles partielles apparaissant dans la nature, en particulier avec de fortes non-linéarités ou anisotropies, le choix d'un préconditionneur approprié peut avoir un effet important sur la convergence rapide, lente ou pas du tout de la méthode itérative. Des exemples de problèmes qui sont connus pour avoir des préconditionneurs rapides et efficaces comprennent les équations différentielles partielles fortement elliptiques, où la méthode multigrille atteint fréquemment une convergence rapide. Il existe un certain nombre de tests que l'on peut utiliser pour évaluer la convergence; ici, je vais utiliser la fonctionnalité de PETSc comme exemple, car il s'agit sans doute de la bibliothèque la plus ancienne et la plus mature pour la résolution itérative de systèmes clairsemés d'équations linéaires (et non linéaires).

PETSc utilise un objet appelé KSPMonitor pour surveiller la progression d'un solveur itératif et décider si le solveur a convergé ou divergé. Le moniteur utilise quatre critères différents pour décider s'il doit s'arrêter. Vous trouverez plus de détails sur la discussion ici dans la page de manuel de KSPGetConvergedReason () .

Nous supposons que l'utilisateur résout le système d'équations suivant pour : Nous appelons la supposition actuelle et définissons le résidu fonction du style de préconditionnement:A x = b x rx

Ax=b

x^r^
  1. Préconditionnement à gauche(P1(Axb)) r =P - 1 (A x -b)

    r^=P1(Ax^b)
  2. Préconditionnement No / Right(AP1Px=b) r =A x -b

    r^=Ax^b

Critères de convergence

  1. Tolérance absolue - Le critère de tolérance absolue est satisfait lorsque la norme du résidu est inférieure à la constante prédéfinie : ra t o latol
    r^atol
  2. Tolérance relative - Le critère de tolérance relative est satisfait lorsque la norme du résidu est inférieure à la norme du côté droit par un facteur de constante prédéfinie :rtol
    r^rtolb
  3. Autres critères - La résolution itérative peut également converger en raison de la détection d'une petite longueur de pas ou d'une courbure négative.

Critères de divergence

  1. Nombre maximal d'itérations - Le nombre d'itérations qu'un solveur peut effectuer est limité par le nombre maximal d'itérations. Si aucun des autres critères n'a été satisfait lorsque le nombre maximal d'itérations est atteint, le moniteur revient comme divergé.

  2. NaN résiduel - Si à tout moment le résidu est évalué à NaN, le solveur revient comme divergé.

  3. Divergence de la norme résiduelle Le moniteur retourne comme divergé si à tout moment la norme du résidu est supérieure à la norme du côté droit par un facteur de constante prédéfinie : dtol

    r^dtolb
  4. Répartition du solveur La méthode Krylov elle-même peut signaler une divergence si elle détecte une matrice singulière ou un préconditionneur.

Aron Ahmadia
la source