Численное решение обыкновенных дифференциальных уравнений
Основные вопросы, рассматриваемые на лекции:
1. Постановка задачи
2. Метод Эйлера
3. Методы Рунге-Кутта
4. Многошаговые методы
5. Решение краевой задачи для линейного дифференциального уравнения 2 порядка
6. Численное решение дифференциальных уравнений в частных производных
1. Постановка задачи
Простейшим обыкновенным дифференциальным уравнением (ОДУ) является уравнение первого порядка, разрешённое относительно производной: y ' = f (x, y) (1). Основная задача, связанная с этим уравнением известна как задача Коши: найти решение уравнения (1) в виде функции y (x), удовлетворяющей начальному условию: y (x0) = y0 (2).
ДУ n-ого порядка y (n) = f (x, y, y',:, y(n-1)), для которого задача Коши состоит в нахождении решения y = y(x), удовлетворяющего начальным условиям:
y (x0) = y0, y' (x0) = y'0,:, y(n-1)(x0) = y(n-1)0, где y0, y'0,:, y(n-1)0 - заданные числа, можно свести к системе ДУ первого порядка.
· Метод Эйлера
В основе метода Эйлера лежит идея графического построения решения ДУ, однако этот же метод даёт одновременно и численную форму искомой функции. Пусть дано уравнение (1) с начальным условием (2).
Получение таблицы значений искомой функции y (x) по методу Эйлера заключается в циклическом применении формулы:
, i = 0, 1,:, n. Для геометрического построения ломаной Эйлера (см. рис.) выберем полюс A(-1,0) и на оси ординат отложим отрезок PL=f(x0, y0) (точка P - это начало координат). Очевидно, что угловой коэффициент луча AL будет равен f(x0, y0), поэтому чтобы получить первое звено ломаной Эйлера достаточно из точки М провести прямую MM1 параллельно лучу AL до пересечения с прямой х = х1 в некоторой точке М1(х1, у1). Приняв точку М1(х1, у1) за исходную откладываем на оси Оу отрезок PN = f (x1, y1) и через точку М1 проводим прямую М1М2 | | AN до пересечения в точке М2(х2, у2) с прямой х = х2 и т.д. 
Недостатки метода: малая точность, систематическое накопление ошибок.
· Методы Рунге-Кутта
Основная идея метода: вместо использования в рабочих формулах частных производных функции f (x, y) использовать лишь саму эту функцию, но на каждом шаге вычислять её значения в нескольких точках. Для этого будем искать решение уравнения (1) в виде:
Меняя α, β, r, q, будем получать различные варианты методов Рунге-Кутта.
При q=1 получаем формулу Эйлера.
При q=2 и r1=r2=½ получаем, что α, β= 1 и, следовательно, имеем формулу:
, которая называется усовершенствованный метод Эйлера-Коши.
При q=2 и r1=0, r2=1 получаем, что α, β = ½ и, следовательно, имеем формулу:
- второй усовершенствованный метод Эйлера-Коши.
При q=3 и q=4 также существуют целые семейства формул Рунге-Кутта. На практике они применяются наиболее часто, т.к. не наращивают ошибок.
Рассмотрим схему решения дифференциального уравнения методом Рунге-Кутта 4 порядка точности. Расчёты при использовании этого метода ведутся по формулам:
Их удобно вносить в следующую таблицу:
x
| y
| y' = f (x,y)
| k=h · f(x,y)
| Δy
|
x0
| y0
| f(x0,y0)
| k1(0)
| k1(0)
|
x0 + ½·h
| y0 + ½·k1(0)
| f(x0 + ½·h, y0 + ½·k1(0))
| k2(0)
| 2k2(0)
|
x0 + ½·h
| y0 + ½·k2(0)
| f(x0 + ½·h, y0 + ½·k2(0))
| k3(0)
| 2k3(0)
|
x0 + h
| y0 + k3(0)
| f(x0 + h, y0 + k3(0))
| k4(0)
| k4(0)
|
|
|
|
| Δy0 = Σ / 6
|
x1
| y1 = y0 + Δy0
| f(x1,y1)
| k1(1)
| k1(1)
|
x1 + ½·h
| y1 + ½·k1(1)
| f(x1 + ½·h, y1 + ½·k1(1))
| k2(1)
| 2k2(1)
|
x1 + ½·h
| y1 + ½·k2(1)
| f(x1 + ½·h, y1 + ½·k2(1))
| k3(1)
| 2k3(1)
|
x1 + h
| y1 + k3(1)
| f(x1 + h, y1 + k3(1))
| k4(1)
| k4(1)
|
|
|
|
| Δy1 = Σ / 6
|
x2
| y2 = y1 + Δy1
| и т.д.
| до получения всех искомых
| значений y
|
· Многошаговые методы
Рассмотренные выше методы - это так называемые методы пошагового интегрирования дифференциального уравнения. Они характерны тем, что значение решения на следующем шаге ищется с использованием решения, полученного лишь на одном предыдущем шаге. Это так называемые одношаговые методы.
Основная идея же многошаговых методов заключается в использовании при вычислении значения решения на следующем шаге нескольких предыдущих значений решения. Также эти методы носят название m-шаговых по числу m используемых для расчётов предыдущих значений решения.
В общем случае для определения приближённого решения yi+1 m-шаговые разностные схемы записываются таким образом (m
1):
Рассмотрим конкретные формулы, реализующие простейшие явный и неявный методы Адамса.
Явный метод Адамса 2 порядка (2-шаговый явный метод Адамса)
Имеем a0 = 0, m = 2.
Таким образом,
- расчётные формулы явного метода Адамса 2-ого порядка.
При i = 1 имеем неизвестное y1, которое будем находить по методу Рунге-Кутта при q = 2 илиq = 4.
При i = 2, 3,: все необходимые значения известны.
Неявный метод Адамса 1 порядка
Имеем: a0
0, m = 1.
Таким образом,
- расчётные формулы неявного метода Адамса 1-ого порядка.
Основная проблема неявных схем заключается в следующем: yi+1 входит и в правую и в левую часть представленного равенства, поэтому имеем уравнение для поиска значения yi+1. Данное уравнение является нелинейным и записано в форме, подходящей для итерационного решения, поэтому будем использовать метод простой итерации для его решения:
Если шаг h выбран удачно, то итерационный процесс быстро сходится.
Данный метод также не является самостартующимся. Так для вычисления y1 надо знать y1(0). Его можно найти по методу Эйлера.
· Решение краевых задач для ОДУ методом конечных разностей
Рассмотрим линейную краевую задачу y'' + p(x)·y' + q(x) = f(x), a
x
b, где p (x), q (x) и f (x)непрерывны на [a; b] и y0 = χ1y1 + μ1, yN = χ2yN-1 + μ2
Для решения этого уравнения:
1. Разобъём отрезок [a; b] на n равных частей длины, или шага
.
Точки разбиения xi = x0 + ih, i = 0, 1,:, n, x0 = a, xn = b называются узлами, а их совокупность - сеткой на отрезке [a; b].
2. Значения в узлах искомой функции y = y (x) и её производных y' = y' (x), y'' = y'' (x)обозначим соответственно через yi = y(xi), y'i = y'(xi), y''i = y''(xi).
Введём обозначения: pi = p(xi), qi = q(xi), fi = f(xi).
3. Заменим производные конечно-разностными отношениями:
,
.
Эти формулы приближённо выражают значения производных во внутренних точках интервала [a; b].
4. Для граничных точек положим: 
5. Используя конечно-разностные отношения данное дифференциальное уравнение при х = хiприближённо можно заменить линейной системой уравнений:
Кроме того, краевые условия дают ещё два уравнения.
Таким образом, получена линейная система n+1 уравнений c n+1 неизвестными y0, y1,:, yn, представляющими собой значения искомой функции y(x) в узлах сетки.
Полученная система уравнений называется разностной схемой.
Она решается методом прогонки или каким-либо общим численным методом (например, методом итерации).
Воспользуйтесь поиском по сайту: