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