Wie kann ich ein nichtlineares Problem vor der Linearisierung vorbereiten?

8

Wenn ich daran denke, nichtlineare Gleichungen zu lösen, denke ich im Allgemeinen daran, zuerst zu linearisieren und dann einen Vorkonditionierer auf die lineare Matrix anzuwenden. Mir kam der Gedanke, dass es möglich sein könnte, die nichtlinearen Gleichungen zu konditionieren, bevor sie linearisiert werden. Gibt es allgemeine Strategien zur Vorkonditionierung nichtlinearer Gleichungen, die unabhängig von der Struktur des Gleichungssystems sind?

Paul
quelle

Antworten:

7

Natürlich kann jeder ungefähre nichtlineare Löser als nichtlinearer Vorkonditionierer verwendet werden. Wenn Ihr System beispielsweise eine Richtungssteifigkeit aufweist, können Sie eine 1D-Aufnahmemethode als Vorkonditionierer verwenden. Ein weiteres nützliches Beispiel sind die nichtlinear vorkonditionierten ungenauen Newton-Algorithmen von Cai und Keyes (2002) .

In PETSc können nichtlineare Methoden wie Quasi-Newton , nichtlineare konjugierte Gradienten , nichtlineares GMRES (auch bekannt als Anderson-Beschleunigung) und nichtlinearer Richardson mit einem nichtlinearen Vorkonditionierer verwendet werden. Der nichtlineare Vorkonditionierer ist eine andere SNESImplementierung, möglicherweise eine benutzerdefinierte "Shell" -Implementierung.

Jed Brown
quelle
4

F.(x)=0F.(x)22L.U.B.F.(x)22B.=(L.U.)- -1r=B.F.(x)L.U.r=F.(x)

B.(x)F.(x)

Arnold Neumaier
quelle