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

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.


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.


Zu Suchzwecken: Man kann auch von "Veranstaltungsort" sprechen; Hairer / Nørsett / Wanner haben eine nette Diskussion darüber.
JM
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.