Métodos numéricos para las ODE rs discontinuas


15

¿Cuáles son los métodos más modernos para la solución numérica de EDO con lado derecho discontinuo? Me interesan principalmente las funciones del lado derecho liso por partes, por ejemplo, signo.

Estoy tratando de resolver la ecuación de un tipo siguiente:

x˙=vv˙={(|Fexternal||Ffriction|)sign(Fexternal):|Fexternal|<|Ffriction|0:otherwise

¡Hola @AndreyShevlyakov y bienvenido a Scicomp! ¿Hay una clase particular de EDO que le interese?
Paul

¡Hola Pablo! Sí, actualmente estoy tratando de implementar un tipo de modelo de fricción antideslizante.
Andrey Shevlyakov

¿Podría incorporar las ecuaciones que desea resolver en su pregunta? Esto ayudará a reducir los métodos particulares aplicables a su problema.
Paul

He agregado un ejemplo a la publicación
Andrey Shevlyakov,

1
Cuando trabajé en ACSL, incluía un buscador de raíces, por lo que podía hacer que buscara el momento en que la velocidad era igual a cero, y luego comenzar de nuevo desde ese punto con los nuevos rhs.
Mike Dunlavey

Respuestas:


13

Vea el nuevo libro de David Stewart (2011) sobre este tema, Dinámicas con desigualdades: impactos y restricciones duras . Los problemas de fricción de Coulomb se mencionan varias veces en los capítulos de análisis.

El Capítulo 8 está dedicado a métodos numéricos para EDO y DAE no uniformes. Aboga principalmente por métodos Runge-Kutta totalmente implícitos con un tratamiento especial de la no suavidad. Observe la Sección 8.4.4 que señala que si no ubica con precisión los puntos de no suavidad, todos los métodos se degradan a la precisión de primer orden , por lo tanto, Euler implícito (con modificaciones para la no suavidad) es popular en práctica. Además, las soluciones de problemas con desigualdades dimensionales infinitas generalmente no son suaves por partes, por lo tanto, la teoría proporciona solo convergencia , aunque en la práctica, es a menudo observado.O ( h 1 / 2 ) O ( h )O(h)O(h1/2)O(h)


¡Muchas gracias! ¿Sabes si hay implementaciones disponibles en alguna parte?
Andrey Shevlyakov

No es que yo sepa, pero la implementación de esquemas simples no debería ser demasiado difícil si tiene un solucionador de desigualdades variacionales estáticas.
Jed Brown


2

Como Mike Dunlavey ya señaló en un comentario, esto a menudo se hace usando las llamadas funciones de cruce por cero , es decir, funciones que cruzan de a ( o viceversa) cuando el RHS tiene una discontinuidad. > 0 < 0g(t,x(t))R>0<0

Por ejemplo, si tiene una masa en movimiento con un bloque, la distancia entre la masa y el bloque se puede usar como una función de cruce por cero.

Muchos solucionadores de ODE (por ejemplo, SUNDIALS CVODE) verifican automáticamente si alguna de las funciones de cruce por cero cambió su signo durante el último paso de tiempo. Si este es el caso, se utiliza un método de búsqueda de raíz para determinar la ubicación exacta de la raíz. El solucionador se puede reiniciar en esa posición particular. Esto se hace automáticamente por el solucionador o manualmente por el código de llamada.


Para fines de búsqueda: también se puede hablar de "ubicación del evento"; Hairer / Nørsett / Wanner tiene una buena discusión sobre esto.
JM
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.