Ich frage mich, ob der Thomas-Algorithmus (nachweislich?) Der schnellste Weg ist, ein symmetrisch diagonal dominiertes, dünn besetztes tridiagonales System in Bezug auf die algorithmische Komplexität zu lösen (ohne nach Implementierungspaketen wie LAPACK usw. zu suchen). Ich weiß, dass sowohl der Thomas-Algorithmus als auch das Multigrid -Komplexität haben, aber vielleicht ist der konstante Faktor für Multigrid geringer? Es scheint mir nicht, dass Multigrid schneller sein könnte, aber ich bin nicht positiv.
Hinweis: Ich denke an den Fall, dass die Matrizen sehr groß sind. Es sind entweder direkte oder iterative Methoden zulässig.
Die kurze Antwort lautet, dass der Thomas-Algorithmus in fast allen Fällen schneller ist als jedes iterative Schema. Die Ausnahme wäre vielleicht die Anwendung einer einzelnen Iteration eines sehr einfachen iterativen Schemas wie Gauß-Seidel, aber es ist sehr unwahrscheinlich, dass dies eine akzeptable Lösung ergibt. Dies ignoriert auch Parallelverarbeitungsprobleme.
quelle
Multigrid-Schleifen auch auf einem Kern können vom Optimierer vektorisiert werden. Obwohl die Anzahl der Vorgänge hilfreich sein kann, sollten wir nicht vergessen, dass Prozessoren auch in der seriellen Welt Vektorparallelität aufweisen und daher die Zeit bis zur Lösung möglicherweise nicht genau das ist, was wir aus der Kostenanalyse vorhersagen.
quelle