¿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:
Respuestas:
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)
fuente
La referencia más importante que conozco es la tesis de David Stewart, que tiene más de 20 años:
El resumen hace referencia a varios trabajos anteriores significativos. Una palabra clave aquí es inclusión diferencial .
fuente
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 < 0sol( 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.
fuente