Глава IV.
Численные методы решения обыкновенных дифференциальных уравнений.
Лекция 12.
4.1. Численное дифференцирование.
Различают 3 вида задач для обыкновенных дифференциальных уравнений (ОДУ): задача Коши, краевая задача и задача на собственные значения. В данной главе мы более подробно изучим численные методы решения задачи Коши.
Вначале приведем и обсудим формулы численного дифференцирования. Существует два подхода к выводу формул численного дифференцирования.
1. Интерполяционный подход.
Полагаем
,
где
-
интерполяционный многочлен Лагранжа,
,
причем остаточный
член формулы дифференцирования выражается
через
![]()
Недостаток:
при стремлении получить достаточно высокую точность приходится использовать большое количество узлов, в которых вычисляется значение функции. Если функция задана таблично, то такой подход приемлем.
2. Конечно-разностная аппроксимация, основанная на Тейлоровском разложении.
Рассмотрим этот подход более подробно.
Пусть задана сетка
,
где h - шаг сетки
Теорема 1.
Имеют место следующие утверждения:
Пусть
![]()
.
(1)
.
(2)
![]()
.
(3)
![]()
(4)
Для определенности
докажем (4):
используем тейлоровское разложение в точках x1 и x-1
.
Складывая эти две формулы, получим
.
В силу непрерывности
четвертой производной
![]()
![]()
.
Замечание.
Формулы (1), (2), (3) и (4) называются формулами численного дифференцирования.
При этом
формула (1) -
определяет правую
разностную производную
и имеет порядок точности
,
формула (2) –
определяет левую
разностную производную и
имеет порядок точности
,
формула (3) -
определяет центральную
разностную производную первого
порядка и имеет порядок точности
,
формула (4) -
определяет центральную
разностную производную второго
порядка и имеет порядок точности
.
4.2.Численные методы решения задачи Коши.
Задача для ОДУ первого порядка для функции одной переменной ставится следующим образом
(5)
Более общая постановка задачи Коши для дифференциального уравнения n-го порядка
(6)
Здесь
- заданные числа (начальные условия).
Задача (6) с помощью замены переменных
,
.
сводится к системе дифференциальных уравнений первого порядка:
![]()
(7)
Систему (7) можно переписать в векторном виде:
![]()
, где
(8)
,![]()
,
.
Система (8) исследуется и решается аналогично одномерной задаче Коши (5), поэтому важно изучить, прежде всего, численные методы решения задачи (5).
В курсе математического
анализа формулируется и доказывается
теорема существования и единственности
решения задачи Коши. Отметим, что для
выполнения теоремы необходимо и
достаточно, чтобы функция
имела непрерывные частные производные
в замкнутой ограниченной области
на плоскости
.
Будем искать
решение задачи (5) в прямоугольниках
![]()
Введем сетку на
оси
![]()
,
![]()
![]()
Простейший
итерационный процесс решения (5)
на сетке
получается, если аппроксимировать
производную
на сетке правой конечной разностью.
Обозначая приближенное решение на сетке
,
получим
![]()
или
(9)
Итерационная процедура (9) называется “метод Эйлера” (или “метод ломаных”).
Дадим графическую иллюстрацию метода.
Начав движение из
точки
на точном решении
,
итерационное решение образует ломаную
линию, каждый отрезок которой представляет
собой касательную к кривой
,
проходящую через данную точку.
Например,
- уравнение
касательной к u(x)
в точке
.
где u1(x1)-та
интегральная кривая, которая проходит
через точку (x1,y1).
Из рисунка видно,
что ошибка
растет с
номером k. Выясним, каков порядок этой
ошибки в сеточной норме
![]()
4.2.1. Оценка погрешности метода Эйлера.
Будем считать, что
ошибка округления имеет порядок
не меньший,
чем
.
Тогда из (9) следует:
(10)
Разложим точное
решение
задачи (5)
в точке
с такой же точностью:
(11)
Вычтем(11) из (10)
(12)
где
![]()
В силу условий
теоремы существования и единственности
частные производные
ограничены в прямоугольнике
:
![]()
Обозначим
и оценим (12) по модулю
(13)
по условию.
Обозначим
(14)
Теорема 2.
Для метода Эйлера имеет место следующая оценка погрешности:
(15)
Из (13) следует
(рекурсия назад)

Используя алгебраическое тождество
![]()
получаем
(16)
(В последнем неравенстве использовано свойство второго замечательного предела)
Учитывая, что
![]()
получим
,
т.е. оценку (15).
![]()
Замечание.
Из соотношения (16) следует, что
-
1. Ошибка растет с номером шага k.
-
2. Порядок ошибки в методе Эйлера
.
4.2.2.Методы Рунге-Кутта.
Методы Рунге-Кутта - это группа итерационных методов решения задачи Коши (4), характеризуемая следующими условиями:
-
Это одношаговые методы, т.е. при переходе из точки
в точку
используется лишь информация о предыдущей
точке
.
Этому условию соответствует такая
общая запись итерационной процедуры
,
(17)
где
выражается через значения функции
в точке
или близким к ней (сдвинутым на долю
шага).
2. Процедура (16)
согласуется с рядом Тейлора вплоть до
членов порядка
,
где p
-порядок метода.
3. Метод не использует
производных от
,
а требует только вычисления функции в
различных точках сетки, причем число
вычислений функции - минимально возможное
для данного порядка.
Заметим, что метод Эйлера является частным случаем метода Рунге-Кутта, имеющий наименьший первый порядок точности. Рассмотрим один из примеров повышения порядка точности метода Рунге-Кутта (16) до второго порядка.
Представим
в виде следующей линейной комбинации
.
Разложим функцию
в точке
в ряд Тейлора до членов первого порядка
включительно
.
Подставляя эти формулы в (16) , получим:
. (18)
(все входящие в
правую часть функции берутся в точке
)
Аналогичное
разложение по Тейлору напишем для
функции
,
используя уравнение
![]()
. (19)
Требуя совпадения
коэффициентов разложений (18) и (19) при
одинаковых степенях h,
получим систему уравнений для неизвестных
коэффициентов
:
(20)
Система (20) недоопределена. Поэтому один из коэффициентов можно задать произвольно.
Например, положим
.
Решая (20), получим
.
Итерационная процедура (17) приобретает вид
. (21)
Учитывая результат
теоремы 2, заключаем, что точность этого
метода
,
т.е. данный метод - второго порядка.
Рассмотрим некоторые частные случаи процедуры (21).
![]()
Отбрасывая погрешность, получаем
. (22)
Полученный метод Рунге-Кутта носит название “предиктор-корректор”. Чтобы прояснить смысл этого названия разобьем процедуру (22) на два этапа:
![]()

На первом этапе
“предсказываем” значение
по методу Эйлера. На втором этапе это
значение корректируется путем усреднения
угловых коэффициентов в точках
и
.
За счет коррекции, точность данного
метода и повышается на порядок по
сравнению с методом Эйлера.
![]()
Согласно (21) , получаем
. (23)
Обозначим
.
Тогда (23) разбивается на два этапа:
На первом этапе
находим
- прогнозируемое значение на половинном
шаге от точки
по методу Эйлера.
Вычисляем наклон
интегральной кривой в точке
,
и на втором этапе, двигаясь по касательной
с данным угловым коэффициентом из точки
(
)
в точку (
),
получаем окончательно
Полученный метод носит название
“модифицированный метод Эйлера”.
Замечание 1.
Существуют процедуры Рунге-Кутта повышенной точности (порядка 3, 4, 5…). Например, метод Рунге-Кутта четвертого порядка точности (наиболее употребляемый на практике) сформулирован следующим образом

где
(24)
Если
,
то погрешность процедуры
.
Замечание 2.
При практическом
применении методов Рунге-Кутта возникает
вопрос: какой формулой пользоваться на
практике? Если априори известно, что
- достаточно гладкая функция, например,
,
то наиболее эффективна процедура (24).
Если же гладкость функции
недостаточна, то лучше использовать
методы второго и третьего порядка.
Замечание 3.
В среде МАТЛАБ реализованы две процедуры Рунге-Кутта:
ode23 – метод второго и третьего порядка
и ode45 - метод четвертого и пятого порядка.
В лабораторной работе 7 предусмотрено знакомство с этими командами.
