Advanced Games Physics
13. Kapitel

Empfehlungen für die Verfahrenswahl

Welcher ODE-Solver ist der richtige?

Hier hast Du Gelegenheit, die Leistungsfähigkeit der drei "hochwertigen" ODE-Solver, RUNGE-KUTTA, DORMAND-PRINCE und BDF (GEAR), an verschiedenen Beispielen zu überprüfen. Diese Vergleiche können durchaus als Maßstab für weitere Lösungen und Aufgaben dienen.


Am Beispiel des mathematischen Pendels werden mittels energetischer Vergleiche die Stabilität der einzelnen Lösungs­verfahren überprüft.
download processing
download p5.js
run program

Ergebnisdiskussion: Alle drei Verfahren liefern sehr genaue Ergebnisse. Am besten schneidet der DP45-Algorithmus mit Energieverlusten um ca. 0,3·10-6% ab, gefolgt vom BDF-Verfahren mit Energieverlusten um ca. 0,1·10-3% und dem RK-Verfahren 0,2·10-3%. Dass alle drei Verfahren im Verlaufe der Zeit Energie verlieren deutet auf ein stabiles Verhalten. Eine Verringerung der Schrittweite führt zu weiteren Verbesserungen.


In diesem Beispiel des Doppelpendels, das bekanntlich besonders hohe Anforderungen an die Stabilität der Solver stellt, werden die beiden Startwinkel des Doppelpendels, sowie die Reibung mittels Scrollbar eingestellt, so können die verschiedenen Solver unter gleichen Startbedingungen getestet werden.
download processing
download p5.js
run program

Ergebnisdiskussion: Bei kleinen Schrittweiten gibt es kaum Unterschiede zwischen den drei Solvern. Ist aber die Schrittweite gleich der Bildwechseldauer entstehen rasch Unterschiede in den Bewegungsmustern. Es ist deutlich zu sehen, dass es nicht nur bei der Energieerhaltung Abweichungen gibt.
Auch hier schneidet der DP45 am besten ab.

Und noch ein Vergleich, diesmal handelt es sich um das bekannte Feder-Masse-System:

Bitte einen Augenblick Geduld
während das Programm geladen wird!


Abb. Vergleich der drei mächtigsten ODE-Solver

In diesem Beispiel wird auf die tatsächliche Bildwechselfrequenz, die ja die Schrittweite bestimmt, keine Rücksicht genommen. Es wird jeweils eine vorgegebene Anzahl von Schritten ohne Pausen hintereinander abgearbeitet. Daher können so auf schnellstem Weg Kenntnisse über die Eigenschaften der einzelnen Solver gewonnen werden.
Hier werden neben den Qualitätsmerkmalen Energie-Stabilität und Frequenz-Treue auch die Rechenzeitaufwändungen der drei Verfahren gegenüber gestellt. Was die ersten beiden Parameter betrifft, ist der DP45_Algorithmus eindeutig im Vorteil, aber zu welchem Preis! Der Rechenzeitaufwand liegt etwa 100 mal höher als bei den anderen Verfahren! Dennoch werden unter diesen Bedingungen und dank der Rechenleistung moderner Prozessoren nur etwa 1.4·10-6% der Zeit eines Bildwechsels für die Berechnung einer einfachen Differentialgleichung nach dem DP45-Verfahren benötigt!
download p5.js

Kriterien zur Verfahrenswahl

Welcher ODE-Solver ist der richtige? Welche Empfehlungen kann ich geben? Das Motto in der Spielepraxis sollte lauten:

So natürlich wie möglich - so genau wie nötig!
  1. Lösungsverfahren, die jede Differentialgleichung (egal welcher Ordnung) lösen, gibt es nicht!
  2. Beginne die Entwicklung eines Teilprojektes, das die Lösung einer Differential­gleichung verlangt, stets mit einer Verlust freien Anordnung. So kannst Du die Stabilität der Lösung am besten beurteilen.
  3. Versuche zunächst eine Lösung mit dem symplektischen Euler-Cauchy-Verfahren. Prüfe, ob das Ergebnis Deinen Erwartungen entspricht. Ich meine damit die physikalische Plausibilität der Lösung!
  4. Mache, auch wenn das Ergebnis klar und plausibel erscheint, eine Vergleichs­rechnung mit einem genaueren Verfahren, z.B. dem leapfrog-Verfahren. Vergleiche die Ergebnisse des ersten Lösungsversuches mit diesem Ergebnis. Gibt es große Abweichungen, lohnt sich ein weiterer Versuch mit einem noch genaueren Verfahren...
  5. Entwickle oder benutze ein Fehlermaß, wie z.B. die Beobachtung der Gesamtenergie oder die Parametertreue. Ziehe diese Fehlermaße in die Bewertung Deiner gewählten Lösungsmethode ein. Aber bedenke, ein Fehlermaß ist hilfreich bei der Beurteilung eines Verfahrens, aber leider kein Beweis für die Stabilität der Lösung!
  6. Treten Instabilitäten auf, kann dem in gewissen Grenzen durch die Erhöhung der Reibungsverluste entgegen gewirkt werden.
  7. Bei offensichtlich instabilen Lösungsversuchen, sollte aber ein implizites Verfahren wie das BDF (Gear)-Verfahren, in Betracht gezogen werden.
  8. Und misstraue den Aussagen in der Literatur und dem Internet! Vieles, was Du findest, ist abgeschrieben und nie wirklich getestet worden.


Der idealisierte Fall - keine Reibung - ist in erster Linie für Genauigkeits- bzw. Stabilitätsuntersuchungen von Interesse. In der Spielepraxis tritt immer eine Reibung auf. So können diese Reibungsverluste u.a. mit dazu verwendet werden, unliebsame Energiezuwächse (d.h. unzureichende Stabilität) infolge unzureichender Lösungsgenauigkeit einer Differentialgleichung zu verdecken.

Lösungsmethoden: numerische oder analytische Lösung?

Unbestritten erlauben die numerischen Lösungsverfahren für Differential­gleichungen 2. Ordnung die Behandlung auch sehr komplizierter Differential­gleichungen, sofern es um die Berechnung der Momentangeschwindigkeiten bzw. -orte von bewegten Objekten handelt. Wie wir oben gesehen haben, können solche Kenngrößen mit beliebiger Genauigkeit von Zeitfenster zu Zeitfenster berechnet werden. Allerdings erlauben die hier vorgestellten Verfahren keine Prognosen über künftige Geschwindigkeiten und Orte, wie es z.B. die exakte Lösung der DGl. für den freien Fall bzw. den schrägen Wurf ermöglicht. Eine solche Prognose ist erforderlich, wenn beispielsweise der Ort oder der Zeitpunkt einer Kollision mehrerer bewegter Körper vorhergesagt werden soll. Hier sind die analytischen Lösungen der Differentialgleichungen unumgänglich!