Lineares Gleichungssystem lösen mit Hilfe von Gauss-Seidel und Multigrid (Mehrgitter)
27. Okt 2014, 14:25
Hallo,
es geht um die Berechnung von Unbekannten in einem linearen Gleichungssystem A x = b.
Mein Hobby ist Aerodynamik-Berechnungen im Modellflugbereich.
Dabei wird das Modell in viele kleine Panels zerlegt und dieses Panelsystem wird dann mit einem Anströmvektor beaufschlagt.
Ziel ist dann die Kraftverteilung auf jedem Panel zu berechnen.
Jedes Panel beeinflußt dabei alle anderen Panels und so erhalten wir eine Einflußmatrix A .
Der Zielvektor b läßt sich durch den Anstömvektor und die Panel-Normalvektoren berechnen.
Also A und b sind gegeben.
Unbekannt ist x.
Die Matrix A ist dabei stark Diagonaldominant, so das das auch das Gauss-Seidel konvergiert.
Bis dato habe ich trotzdem das Gauss-Eliminationsverfahren benutzt, weil es die Unbekannten halt exakt löst.
Der Versuch mit dem Gauss-Seidel funktioniert auch, bringt aber kaum einen Geschwindigkeitsvorteil weil ich sehr viele Nachkommastellen haben möchte, teilweise große Matritzen habe und da konvergiert es halt sehr langsam.
Nun habe ich von Mehrgitter-Verfahren (Multigrid) gelesen und auch das WWW schon durchwühlt.
Habe viele Skripte mit vielen für mich unverständlichen Formeln gefunden, aber keinen brauchbaren Quelltext.
Hat von euch jemand so etwas (Multigrid / Mehrgitter) schon mal in Pascal gebastelt.
Wäre genial.
Gruß
Frank
|