Numerische Methoden für diskontinuierliche rs ODEs

15

Was sind die neuesten Methoden zur numerischen Lösung von ODEs mit diskontinuierlicher rechter Seite? Mich interessieren vor allem stückweise glatte rechte Seitenfunktionen, zB sign.

Ich versuche die Gleichung von folgendem Typ zu lösen:

x˙=vv˙={(|Fextern|-|FReibung|)Zeichen(Fextern):|Fextern|<|FReibung|0:Andernfalls
Andrey Shevlyakov
quelle
Hallo @AndreyShevlyakov und willkommen bei Scicomp! Gibt es eine bestimmte Klasse von ODE, an der Sie interessiert sind?
Paul
Hallo Paul! Ja, ich versuche derzeit, eine Art Stick-Slip-Reibungsmodell zu implementieren.
Andrey Shevlyakov
Könnten Sie die zu lösenden Gleichungen in Ihre Frage einbeziehen? Auf diese Weise können Sie die für Ihr Problem geltenden Methoden eingrenzen.
Paul
Ich habe dem Beitrag ein Beispiel hinzugefügt
Andrey Shevlyakov
1
Als ich an ACSL arbeitete, enthielt es einen Root-Finder, sodass Sie nach dem Zeitpunkt suchen konnten, zu dem die Geschwindigkeit gleich Null war, und dann mit dem neuen rhs neu starten konnten.
Mike Dunlavey

Antworten:

13

Siehe das neue Buch von David Stewart (2011) zu diesem Thema, Dynamics with Inequalities: Impacts and Hard Constraints . Coulomb-Reibungsprobleme werden in den Analysekapiteln mehrfach erwähnt.

Kapitel 8 befasst sich mit numerischen Methoden für nicht glatte ODEs und DAEs. Es befürwortet meistens vollständig implizite Runge-Kutta-Methoden mit einer speziellen Behandlung der Nichtglätte. Beachten Sie Abschnitt 8.4.4, in dem darauf hingewiesen wird, dass alle Methoden auf die Genauigkeit erster Ordnung herabgesetzt werden, wenn Sie die Punkte der Nichtglätte nicht genau lokalisieren. Daher ist implizites Euler (mit Modifikationen für Nichtglätte) in der Praxis beliebt. Außerdem sind Lösungen von Problemen mit unendlich großen Ungleichungen im Allgemeinen nicht stückweise glatt, daher liefert die Theorie nur O (Ö(h) Konvergenz, obwohl inPraxis, O ( h )Ö(h1/2)Ö(h) wird oft beobachtet.

Jed Brown
quelle
Vielen Dank! Wissen Sie, ob irgendwo Implementierungen verfügbar sind?
Andrey Shevlyakov
Nicht dass ich wüsste, aber die Implementierung einfacher Schemata sollte nicht zu schwierig sein, wenn Sie einen Löser für statische Variationsungleichungen haben.
Jed Brown
2

Wie Mike Dunlavey bereits in einem Kommentar ausgeführt hat, wird dies häufig mit sogenannten Nulldurchgangsfunktionen durchgeführt , dh Funktionen , die von > 0 bis < kreuzenG(t,x(t))R>0<0

Wenn Sie beispielsweise eine sich bewegende Masse mit einem Block haben, kann der Abstand zwischen der Masse und dem Block als Nulldurchgangsfunktion verwendet werden.

Viele ODE-Löser (z. B. SUNDIALS CVODE) prüfen automatisch, ob eine der Nulldurchgangsfunktionen im letzten Zeitschritt ihr Vorzeichen geändert hat. Wenn dies der Fall ist, wird eine Wurzelsuchmethode verwendet, um den genauen Ort der Wurzel zu bestimmen. Der Solver kann dann an dieser bestimmten Position neu gestartet werden. Dies erfolgt entweder automatisch durch den Solver selbst oder manuell durch den aufrufenden Code.

Florian Brucker
quelle
Zu Suchzwecken: Man kann auch von "Veranstaltungsort" sprechen; Hairer / Nørsett / Wanner haben eine nette Diskussion darüber.
JM