- •Глава 8 Одношаговые методы решения задачи Коши
- •8.1. Задача Коши. Метод Эйлера
- •8.2. Неявный метод Эйлера
- •8.3. Погрешности метода решения
- •8.4. Модифицированные методы Эйлера
- •8.5. Правило Рунге
- •8.6. Методы Рунге-Кутта
- •8.7. Метод Рунге-Кутта-Фельберга
- •Методы Рунге-Кутта.
- •Метод Рунге-Кутта-Фельберга.
- •Неявный метод Эйлера.
8.6. Методы Рунге-Кутта
При использовании
методов Рунге-Кутта для решения уравнения
на
каждом шаге приращения аргумента
вычисляются значения функции f(x,y)
в нескольких точках. Последовательно
находятся:
,
. . . . . . . . . . . . . . . , (8.25)
.
Значение неизвестной функции в новой точке вычисляется по формуле:
.
Простейшим примером является второй модифицированный метод Эйлера, который может быть описан следующей последовательностью формул:
,
,
.
Для построения метода Рунге-Кутта требуемого порядка нужно найти коэффициенты .
Обозначим: u(x) – точное решение, проходящее через точку (x, y(x)).
Тогда
равно
локальной погрешности метода. Если
f(x,y)
– достаточно гладкая функция своих
аргументов, то все ki(h),
i=1,..,q
и
–
гладкие функции параметра h.
Предположим, что
,
(8.26)
если f(x,y)
– произвольная достаточно гладкая
функция, и найдется такая гладкая функция
f(x,y),
что
.
Тогда по формуле Тейлора
.
Итак, если выполнены соотношения (8.26), то метод имеет порядок p. Следовательно, чтобы построить метод порядка p, нужно найти такие коэффициенты , при которых выполняются соотношения (8.26). Это трудоемкая задача. Выведем в системе Mathematica список первых трех производных от функции, стоящей в правой части дифференциального уравнения. Для упрощения выражений – раскрытия скобок и приведения подобных членов – используем функцию Expand. Команда в системе Mathematica:
In[]:= y'[x_]=f[x, y[x]]; Table[{k," ", D[f[x, y[x]], {x, k}]//Expand}, {k, 1, 3}]
П
олученный
список производных:
Для получения метода третьего порядка необходимо взять q=3. Получается система из шести уравнений с восемью неизвестными. Наиболее употребительная совокупность формул для метода третьего порядка:
(8.27)
Можно усмотреть здесь аналогию с квадратурной формулой Симпсона.
Наиболее употребительный вариант метода Рунге-Кутта четвертого порядка может быть описан последовательностью формул:
(8.28)
В системе Mathcad встроенная функция, реализующая метод Рунге-Кутта четвертого порядка, для решения системы из n уравнений, вызывается командой: rkfixed(y, x1, x2, npoints, D). Аргументы функции:
y – вектор, содержащий n начальных условий,
x1, x2 – начальная и конечная точки отрезка интегрирования,
npoints – количество точек, в которых вычисляется приближенное решение,
D – вектор, размерности n, содержащий правые части системы уравнений.
В случае одного уравнения y и D – скалярные величины.
Функция rkfixed применяется также для решения уравнения n-го порядка, которое может быть нелинейным относительно старшей производной. В этом случае уравнение предварительно преобразуется к системе уравнений первого порядка.
Функция rkfixed возвращает матрицу, в которой первый столбец содержит значения независимой переменной, а остальные столбцы содержат найденные значения неизвестных функций. Количество строк возвращаемой матрицы равно npoints+1.
Пример
8.9.
Сравним погрешности решения начальной
задачи
тремя
методами: простым и модифицированным
методами Эйлера, а также методом
Рунге-Кутта. Решение в среде Mathcad
приведено на рис. 8.6. Точное решение
задачи представляет собой экспоненциальную
функцию
.
На
отрезке
задаем равномерную сетку значений
аргумента
с шагом
.
Последовательность
включает решение обычным методом Эйлера.
Решение первым модифицированным методом
Эйлера представляет последовательность
.
На левом графике показаны эти два решения
и точное решение
.
Решение методом Рунге-Кутта находим с помощью встроенной функции rkfixed. Аргументы функции:
1 – значение y в начальной точке;
0, 2 – отрезок интегрирования уравнения;
N – количество узлов сетки;
D – функция, описывающая правую часть дифференциального уравнения, D(t, y)=y.
Решение методом Рунге-Кутта и точное решение показаны на правом рисунке.
Формируем матрицу погрешностей Err. Первый столбец матрицы включает значения . Второй столбец содержит погрешности решения модифицированным методом Эйлера, третий – погрешности решения методом Рунге-Кутта. Приведенные цифры наглядно демонстрируют преимущества метода четвертого порядка.
