Für die Lösung großer linearer Systeme mit iterativen Methoden ist es häufig von Interesse, Vorkonditionierung einzuführen, zB anstelle von M - 1 aufzulösen ( A x = b ) , wobei M hier für die linke Vorkonditionierung des Systems verwendet wird. Normalerweise sollten wir haben M - 1 ≈ A - 1 und bilden die Grundlage für (viel mehr) effiziente Lösung oder Reduzierung der Rechenressourcen (zB Speicher) im Vergleich mit der Lösung des ursprünglichen Systems (dh wenn M = A). Welche Richtlinien sollten wir jedoch verwenden, um den Vorkonditionierer auszuwählen? Wie machen Praktiker das für ihr spezifisches Problem?
linear-algebra
iterative-method
preconditioning
Allan P. Engsig-Karup
quelle
quelle
Antworten:
Ich wollte ursprünglich keine Antwort geben, weil dies eine sehr lange Behandlung verdient, und hoffentlich wird es noch jemand anderes geben. Ich kann jedoch mit Sicherheit einen sehr kurzen Überblick über den empfohlenen Ansatz geben:
Beispiele für 3 sind verschobene Laplace-Versionen von Helmholtz und die jüngsten Arbeiten von Jinchao Xu zur Vorkonditionierung des biharmonischen Operators mit Laplace-Operatoren.
quelle
Andere haben bereits die Frage der Vorkonditionierung von sogenannten "monolithischen" Matrizen kommentiert, z. B. die diskretisierte Form einer Skalargleichung wie der Laplace-Gleichung, der Helmholtz-Gleichung oder, wenn Sie sie verallgemeinern wollen, der Vektorwert Elastizitätsgleichung. Für diese Dinge ist es klar, dass Multigrid (entweder algebraisch oder geometrisch) der Gewinner ist, wenn die Gleichung elliptisch ist, und für andere Gleichungen ist es nicht ganz so klar - aber so etwas wie SSOR funktioniert oft ziemlich gut (für irgendeine Bedeutung von "angemessen").
Für mich war die große Offenbarung, was bei nicht monolithischen Problemen zu tun ist, zum Beispiel für den Stokes-Operator Als ich vor ungefähr 15 Jahren mit der numerischen Analyse begann, hoffte man, dass die gleichen Techniken auf solche Matrizen wie oben angewendet werden könnten, und die Forschungsrichtung bestand darin, entweder direkt Multigrid zu versuchen oder Verallgemeinerungen von SSOR zu verwenden (unter Verwendung von " point smoothers "wie Vanka) und ähnliche Methoden. Aber das ist verblasst, da es nicht sehr gut funktioniert.
Was dies ersetzt hat, war das, was anfänglich als "physikalisch-basierte Vorkonditionierer" und später einfach (und vielleicht genauer) als "Block-Vorkonditionierer" von Silvester und Wathen bezeichnet wurde. Diese basieren oft auf Blockeliminierungen oder Schur-Ergänzungen und die Idee ist, einen Vorkonditionierer so aufzubauen, dass man Vorkonditionierer für einzelne Blöcke wiederverwenden kann, von denen bekannt ist, dass sie gut funktionieren. Im Fall der Stokes-Gleichung verwendet beispielsweise der Silvester / Wathen-Vorkonditionierer die Matrix
Diese Idee, mit den einzelnen Blöcken, aus denen die Matrix besteht, zu arbeiten und Vorkonditionierer wiederzuverwenden, hat sich als enorm leistungsfähig erwiesen und unsere heutigen Vorstellungen zur Vorkonditionierung von Gleichungssystemen grundlegend verändert. Dies ist natürlich relevant, da es sich bei den meisten tatsächlichen Problemen tatsächlich um Gleichungssysteme handelt.
quelle
Jack hat ein gutes Verfahren angegeben, um einen Vorkonditionierer zu finden. Ich werde versuchen eine Adresse mit der Frage "Was macht einen guten Vorkonditionierer aus?" Die operative Definition lautet:
Dies gibt uns jedoch keinen Einblick in die Konstruktion eines Vorkonditionierers. Die meisten Vorkonditionierer basieren auf der Manipulation des Operator-Spektrums. Im Allgemeinen konvergieren Krylov-Methoden schneller, wenn Eigenwerte in Gruppen zusammengefasst werden (siehe Matrixiterationen oder meromorphe Funktionen und lineare Algebra) . Manchmal können wir nachweisen, dass ein Vorkonditionierer nur aus wenigen eindeutigen Eigenwerten besteht, z. B. Ein Hinweis zur Vorkonditionierung für unbestimmte lineare Systeme .
Ein Beispiel für eine gemeinsame Strategie ist Multigrid. Entspannungskonditionierer (hier Smoothers) wie SOR entfernen im Fehler hochfrequente Anteile. Wenn das Residuum auf ein grobes Gitter projiziert wird, werden niederfrequente Fehlerkomponenten höher und können erneut von SOR angegriffen werden. Diese grundlegende Strategie liegt komplizierteren MG-Versionen wie AMG zugrunde. Beachten Sie, dass der Solver die niedrigsten Fehlerfrequenzen genau auflösen muss.
Eine andere Strategie besteht darin, die Gleichung in kleinen Teilräumen zu lösen. Genau das tun Krylov-Löser. In der einfachsten Form ist dies die Kaczmarz-Methode oder die Additiv-Schwarz-Methode . Die fortgeschrittene Theorie, Domain Decomposition , konzentriert sich auf die spektrale Approximation des Fehlers an der Grenzfläche, da angenommen wird, dass die Domänen ziemlich genau gelöst sind.
Dann gibt es eine Reihe von Dingen, die Betreiber in der Nähe produzierenEIN
quelle