Каковы современные методы численного решения ОДУ с прерывистой правой стороной? В основном меня интересуют кусочно-гладкие функции правой стороны, например, знак.
Я пытаюсь решить уравнение следующего типа:
Каковы современные методы численного решения ОДУ с прерывистой правой стороной? В основном меня интересуют кусочно-гладкие функции правой стороны, например, знак.
Я пытаюсь решить уравнение следующего типа:
Ответы:
См. Новую книгу Дэвида Стюарта (2011) на эту тему « Динамика с неравенствами: последствия и жесткие ограничения» . Проблемы кулоновского трения упоминаются несколько раз в главах анализа.
Глава 8 посвящена численным методам для негладких ОДУ и DAE. Он в основном защищает полностью неявные методы Рунге-Кутты с особым подходом к негладкости. Обратите внимание на раздел 8.4.4, в котором указано, что если вы не точно определите точки негладкости, все методы ухудшаются до точности первого порядка , поэтому неявный Эйлер (с модификациями для негладкости) популярен на практике. Кроме того, решения проблем , связанных с бесконечномерным неравенств , как правило , не кусочно - гладкой, поэтому теория дает лишь O ( ч 1 / 2 ) сходимость, хотя на практике, О ( ч ) часто наблюдается.
Самая значимая ссылка, о которой я знаю, это тезис Дэвида Стюарта, которому более 20 лет:
Аннотация ссылается на несколько значительных ранних работ. Ключевое слово здесь - дифференциальное включение .
Как уже указывал Майк Данлавей в комментарии, это часто делается с использованием так называемых функций пересечения нуля , то есть функций
Например, если у вас есть движущаяся масса с блоком, то расстояние между массой и блоком можно использовать как функцию пересечения нуля.
Многие решатели ODE (например, SUNDIALS CVODE) автоматически проверяют, изменила ли какая-либо из функций пересечения нуля свой знак в течение последнего временного шага. Если это так, то метод определения корня используется для определения точного местоположения корня. Затем решатель может быть перезапущен с этой конкретной позиции. Это делается либо автоматически самим решателем, либо вручную вызывающим кодом.