Metody numeryczne dla nieciągłych ODE rs

15

jakie są najnowocześniejsze metody numerycznego rozwiązywania ODE z nieciągłą prawą stroną? Najbardziej interesują mnie częściowe gładkie funkcje prawej strony, np. Znak.

Próbuję rozwiązać równanie następującego typu:

x˙=vv˙={(|Fexternal||Ffriction|)sign(Fexternal):|Fexternal|<|Ffriction|0:Inaczej
Andrey Shevlyakov
źródło
Cześć @AndreyShevlyakov i witamy w Scicomp! Czy jest jakaś szczególna klasa ODE, którą jesteś zainteresowany?
Paweł
Cześć Paweł! Tak, obecnie próbuję wdrożyć rodzaj tarcia typu stick-slip.
Andrey Shevlyakov
Czy mógłbyś uwzględnić równania, które chcesz rozwiązać w swoim pytaniu? Pomoże to zawęzić metody stosowane w przypadku problemu.
Paweł
Dodałem przykład do postu
Andriej Szewlyakow
1
Kiedy pracowałem nad ACSL, zawierał on root-finder, abyś mógł poszukać czasu, w którym prędkość była równa zeru, a następnie zacząć od nowa od nowa z nowym rhs.
Mike Dunlavey,

Odpowiedzi:

13

Zobacz nową książkę Davida Stewarta (2011) na ten temat, Dynamika z nierównościami: uderzenia i twarde ograniczenia . Problemy z tarciem kulombowskim wymieniono kilkakrotnie w rozdziałach analizy.

Rozdział 8 poświęcony jest metodom numerycznym dla nie gładkich ODE i DAE. Opowiada się przede wszystkim za w pełni niejawnymi metodami Runge-Kutta ze specjalnym leczeniem nierównomierności. Uwaga Sekcja 8.4.4, która wskazuje, że jeśli nie zlokalizujesz dokładnie punktów braku gładkości, wszystkie metody obniżają się do dokładności pierwszego rzędu , dlatego ukryty Euler (z modyfikacjami dla braku gładkości) jest popularny w praktyce. Ponadto rozwiązania problemów z nieskończonymi nierównościami wymiarowymi nie są na ogół gładkie, dlatego teoria podaje tylko O (O(h) zbieżności, jednak w praktyce, O ( h )O(h1/2))O(h) jest często obserwowany.

Jed Brown
źródło
Wielkie dzięki! Czy wiesz, czy gdzieś są dostępne wdrożenia?
Andrey Shevlyakov,
Nie wiem o tym, ale implementacja prostych schematów nie powinna być zbyt trudna, jeśli masz solver na statyczne nierówności wariacyjne.
Jed Brown
2

sol(t,x(t))R>0<0

Na przykład, jeśli masz ruchomą masę z blokiem, odległość między masą a blokiem można wykorzystać jako funkcję przecięcia zera.

Wiele solverów ODE (np. CVDE SUNDIALS) automatycznie sprawdza, czy którakolwiek z funkcji przekraczania zera zmieniła swój znak podczas ostatniego kroku czasowego. W takim przypadku do znalezienia dokładnej lokalizacji katalogu głównego używana jest metoda znajdowania katalogu głównego. Solver można następnie zrestartować w tej konkretnej pozycji. Odbywa się to albo automatycznie przez solver, albo ręcznie przez kod wywołujący.

Florian Brucker
źródło
Do celów wyszukiwania: można również mówić o „lokalizacji zdarzenia”; Hairer / Nørsett / Wanner ma miłą dyskusję na ten temat.
JM