Калькулятор Обыкновенных Дифференциальных Уравнений (ОДУ) и Систем (СОДУ)
Порядок производной указывается штрихами — y»’ или числом после одного штриха — y’5
Ввод распознает различные синонимы функций, как asin , arsin , arcsin
Знак умножения и скобки расставляются дополнительно — запись 2sinx сходна 2*sin(x)
Список математических функций и констант :
• ln(x) — натуральный логарифм
• sh(x) — гиперболический синус
• ch(x) — гиперболический косинус
• th(x) — гиперболический тангенс
• cth(x) — гиперболический котангенс
• sch(x) — гиперболический секанс
• csch(x) — гиперболический косеканс
• arsh(x) — обратный гиперболический синус
• arch(x) — обратный гиперболический косинус
• arth(x) — обратный гиперболический тангенс
• arcth(x) — обратный гиперболический котангенс
• arsch(x) — обратный гиперболический секанс
• arcsch(x) — обратный гиперболический косеканс
Неявные методы решения дифференциальных уравнений
1. Неявные методы
Методы численного решения ОДУ, с которыми мы познакомились в первом разделе этого курса (метод Эйлера, метод средней точки и т. п.), называются «явными» методами. Однако иногда система ОДУ может стать «жесткой», а решать такие системы явными методами неудобно. В этом случае желательно изменить формулировку задачи так, что не пришлось иметь дело с жесткой системой. Но это не всегда возможно, поэтому вы должны уметь решать жесткие ОДУ. Для этого, как правило, используют методы решения, которые называются «неявными».
2. Пример жесткого ОДУ
Во-первых, в чем смысл и причина появления жестких уравнений? Давайте рассмотрим пример, который часто возникает в динамике. Предположим, что у нас есть частица, с координатами \((x(t),y(t))\) , и предположим, что мы хотим, чтобы ее \(y\) -координата всегда оставалась равной нулю. Один из способов добиться этого — добавить слагаемое \(-ky(t)\) , к производной \(\dot
(Кроме того, мы предполагаем, что частица не запускается из \(y_0=0\) ). В результате частица будет сильно притягиваться к прямой \(y = 0\) , и менее сильно — к \(x = 0\) . Если решать ОДУ на достаточно продолжительном интервале времени, то частица рано или поздно попадет в точку \((0, 0)\) и останется в ней.
Теперь предположим, что для решения уравнения мы используем метод Эйлера. Если сделать шаг размера \(h\) , то получим
Если мы посмотрим на \(у\) -компоненту этого уравнения, то увидим, что при \(|1-hk|>1\) , вычисленное нами \(y_
Теперь, если \(k\) – большое число, мы вынуждены делать очень маленькие шаги. Это означает, что частица будет двигаться к \((0,0)\) мучительно медленно. Даже если взять \(y_0\) очень близким к нулю, то придется делать настолько маленькие шаги, что изменение \(x\) -координаты будет практически незаметно. Вот так выглядит жесткое ОДУ. В данном случае жесткость возникает из-за слишком большого \(k\) , призванного удержать частицу возле прямой \(у = 0\) . Позже, когда мы будем рассматривать частицы, соединенные пружинами, мы увидим то же самое явление: от жесткости пружины и происходит термин «жесткое» ОДУ. Даже если мы используем более совершенный численный метод, такой как метод Рунге-Кутта 4-го порядка, это лишь слегка улучшит ситуацию с выбором величины шага, но мы все равно будем иметь серьезные вычислительные проблемы.
Теперь, как мы уже говорили выше, нужно попытаться переформулировать свою задачу так, чтобы избежать появления жесткого ОДУ. Если же это не получится, то нужно использовать неявный метод решения ОДУ. Метод, который мы покажем ниже, является самым простым из неявных методов. Он основан на том, что шаг обычного метода Эйлера выполняется «наоборот».
3. Решение жесткого ОДУ
Пусть дано дифференциальное уравнение
Формула явного метода Эйлера
продвигает систему вперед на шаг \(h\) во времени. Для жестких систем, однако, удобнее заменить эту формулу на следующую
То есть, нам нужно вычислить \(f\) в точке, в которую мы стремимся попасть ( \(\textbf
Чтобы справиться с этим, заменим \(f (\textbf
Теперь заменим \(f(\textbf
(Заметим, что поскольку \(f(\textbf
Разделим обе части последнего соотношения на \(h\) и перепишем результат в виде
где \(I\) — единичная матрица.
Разрешая это соотношение относительно \(\Delta\textbf
Вычисление \(\textbf
Применим теперь неявный метод для решения уравнения \eqref
Дифференцирование по \(\textbf
Тогда матрица \((1/h)\textbf — f^<\prime>(\textbf
Обращая эту матрицу и умножая на \(f(\textbf
Какова же предельная длина шага в этом случае? Ответ: нет предела! Если позволить \(h\) расти до бесконечности, мы получаем следующее
Это означает, что мы достигнем \(\textbf
4. Решение уравнений второго порядка
Большинство задач динамики записывается в виде ДУ 2-го порядка
Это уравнение легко преобразуется систему ДУ 1-го порядка, добавлением новых переменных. Если мы определим \(\textbf
что представляет собой систему ДУ 1-го порядка. Однако, применяя обратный (неявный) метод Эйлера к уравнению \eqref
Система \(n \times n\) , которая должна быть решена, получается следующим образом. Введем для краткости следующие обозначения \(\textbf
Применяя к \(f\) разложение в ряд Тейлора, которое в данном контексте является функцией и \(\textbf
В этом уравнении, производная \(\partial f / \partial\textbf
Подставив во вторую строку последнего равенства соотношение \(\Delta\textbf
Вводя единичную матрицу \(I\) и перегруппировав члены, получим соотношение
из которого находим \(\Delta\textbf
Выше, мы предполагали, что функция \(f\) не зависит явно от времени. Если же \(f\) зависит от времени явно (например, если \(f\) описывает изменяющиеся во времени внешние силы), то в уравнение \eqref
Ссылки
- D. Baraff and A. Witkin. Large steps in cloth simulation. Computer Graphics (Proc. SIGGRAPH), 1998.
- W.H. Press, B.P. Flannery, S.A. Teukolsky, and W.T. Vetterling. Numerical Recipes. Cambridge University Press, 1986.
Читайте также
Комментарии
Дмитрий Храмов
Компьютерное моделирование и все, что с ним связано: сбор данных, их анализ, разработка математических моделей, софт для моделирования, визуализации и оформления публикаций. Ну и за жизнь немного.
Дифференциальные уравнения высших порядков, не содержащие переменную в явном виде
Метод решения
Рассмотрим уравнение, не содержащее независимую переменную в явном виде:
(1) .
Порядок этого уравнения понижается на единицу с помощью подстановки:
Далее считаем, что функция u зависит от переменной y , тогда:
;
;
и т. д.
В результате такой подстановки, порядок уравнения понижается на единицу.
Пример
Уравнение не содержит независимую переменную в явном виде. Делаем подстановку:
.
Считаем, что функция u зависит от переменной y . Тогда
.
Подставляем в исходное уравнение:
.
Делим на u . При имеем:
.
Это уравнение с разделяющимися переменными. Делим на и умножаем на dy . При имеем:
.
Интегрируем:
(2) .
Подставляем в (2):
.
Потенцируем:
.
Заменим постоянную интегрирования . Знак модуля сводится к умножению на ±1 . Включим ±1 в постоянную . То есть мы теперь полагаем, что может быть не только положительным, но и отрицательным числом. Тогда:
.
Выполняем преобразования:
;
.
При имеем:
;
.
Разделяем переменные:
.
Интегрируем:
(3) .
Вычисляем интеграл:
.
Подставляем в (3):
;
.
Возводим в квадрат и выполняем преобразования:
;
;
(4) .
При выводе формулы (4) мы предполагали, что
и .
Теперь рассмотрим случаи
.
Нетрудно видеть, что решение, охватывающее эти три равенства, есть
(5) ,
где C – произвольная постоянная. Тогда . Подставляя это в исходное уравнение нетрудно убедиться, что оно выполняется. Это особое решение. Добавим его в ответ.
Автор: Олег Одинцов . Опубликовано: 18-07-2013 Изменено: 27-06-2018
http://dkhramov.dp.ua/Comp.PMBWImplicitMethodsforDifferentialEquations
http://1cov-edu.ru/differentsialnye-uravneniya/bez_x/