quelles sont les méthodes de pointe pour la solution numérique des ODE à côté droit discontinu? Je suis surtout intéressé par les fonctions du côté droit par morceaux, par exemple le signe.
J'essaie de résoudre l'équation d'un type suivant:
quelles sont les méthodes de pointe pour la solution numérique des ODE à côté droit discontinu? Je suis surtout intéressé par les fonctions du côté droit par morceaux, par exemple le signe.
J'essaie de résoudre l'équation d'un type suivant:
Réponses:
Voir le nouveau livre (2011) de David Stewart sur ce sujet, Dynamics with Inequality: Impacts and Hard Constraints . Les problèmes de frottement coulombien sont mentionnés à plusieurs reprises dans les chapitres d'analyse.
Le chapitre 8 est consacré aux méthodes numériques pour les ODE et DAE non lisses. Il préconise principalement des méthodes Runge-Kutta totalement implicites avec un traitement spécial de la non-douceur. Remarque Section 8.4.4 qui souligne que si vous ne localisez pas avec précision les points de non-lissage, toutes les méthodes se dégradent au premier ordre de précision , donc Euler implicite (avec des modifications pour la non-douceur) est populaire dans la pratique. En outre, les solutions de problèmes avec les inégalités de dimension infinie ne sont généralement pas lisses par morceaux, par conséquent , la théorie ne fournit que O ( h 1 / 2 ) la convergence, bien que dans la pratique, O ( h ) est souvent observée.
La référence la plus importante que je connaisse est la thèse de David Stewart, qui a plus de 20 ans:
Le résumé fait référence à plusieurs travaux antérieurs importants. Un mot clé ici est l' inclusion différentielle .
Comme Mike Dunlavey l'a déjà souligné dans un commentaire, cela se fait souvent en utilisant des fonctions dites de passage par zéro , c'est-à-dire des fonctions qui passent de > 0 à < 0 (ou vice versa) lorsque le RHS a une discontinuité.
Par exemple, si vous avez une masse mobile avec un bloc, la distance entre la masse et le bloc peut être utilisée comme une fonction de passage à zéro.
De nombreux solveurs ODE (par exemple SUNDIALS CVODE) vérifient automatiquement si l'une des fonctions de passage par zéro a changé de signe au cours du dernier pas de temps. Si tel est le cas, une méthode de recherche de racine est utilisée pour déterminer l'emplacement exact de la racine. Le solveur peut ensuite être redémarré à cette position particulière. Cela se fait soit automatiquement par le solveur lui-même, soit manuellement par le code appelant.