ОЦЕНКА ПОГРЕШНОСТИ КЛАССИЧЕСКИХ МЕТОДОВ РУНГЕ–КУТТЫ - Студенческий научный форум

XV Международная студенческая научная конференция Студенческий научный форум - 2023

ОЦЕНКА ПОГРЕШНОСТИ КЛАССИЧЕСКИХ МЕТОДОВ РУНГЕ–КУТТЫ

Куликов В.В. 1, Киселев С.А. 1
1Коломенский институт (филиал) Московского политехнического университета
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

ВВЕДЕНИЕ

Методы Рунге-Кутта, а далее РК, являются важнейшими для решения задач Коши обыкновенного дифференциального уравнения y' = f(x, y). Классическими являются 4-стадийные методы 4-го порядка. На данный момент известно большое количество методов более высокого порядка, дающих либо лучшую, либо такую же точность, но за меньший промежуток времени. Однако, классические методы остаются наиболее популярными при решении. Поэтому в этой статье мы сделаем обзор развития существующих методов РК [1-7], которые обходят некоторые недостатки классических методов.

Важнейшая составляющая современных методов – это автоматическая оценка локальной погрешности, получаемая благодаря вложенным методам РК. Вложенный метод РК позволяет достаточно точно найти локальную погрешность в вычислениях, при этом не требуя дополнительных вычислений функции f(x, y).

Без этой оценки приходится брать большой запас точности, т.е. устанавливать величину шага гораздо меньше, чем необходимо на самом деле. Из этого следует повышенный объем вычислений. При использовании автоматической оценки погрешности величину шага можно не только выбрать без ненужного запаса, но и вносить коррективы участках расчетов.

С точки зрения практики, наиболее значимыми в работе оказываются оценки погрешности, выдаваемые формулами по одному, двум и трем шагам соответственно. Первая предоставляет оценку погрешности с точностью до порядка, вторая – с точностью до умножения на константу, третья же оценка уже является в меру точной. Первые две оценки из-за малой точности могут использоваться только в вспомогательных целях. Оценка погрешности по трем этапам уже может применяться для автоматического выбора величины шага. Но для использования этой оценки нужны три шага одинаковых по величине.

1. КЛАССИЧЕСКИЕ МЕТОДЫ

Пусть дано y' = f(t, y), t ∈ ℝ, y ∈ ℝ, и начальное условие y(t0) = y0. Выбираем некоторый малый шаг h и находим вектор y1 = y(t1) = y(t0 + h) по 4-стадийным формулам:

Все коэффициенты метода чаще всего записываются в виде таблицы Бутчера

при этом должны быть выполнены следующие соотношения

Коэффициенты метода не произвольны, они должны удовлетворять некоторой системе полиномиальных уравнений (условия порядка). Для классических методов – это система из 8 уравнений от 10 переменных. Значительное разнообразие ее решений может быть отображено параметрически. Пусть c2, c3 – свободные параметры, причем

, , , , , . (2)

Тогда остальные коэффициенты выражаются через них по формулам (см. (1), (2)):

Например, при , таблица Бутчера приобретает вид

Наиболее распространённым является метод с таблицей Бутчера4)

Однако, он не входит в семейство (3). Существуют другие подобные решения, но все они образуют одномерное многообразие.

2. ОДНОШАГОВАЯ ОЦЕНКА ПОГРЕШНОСТИ

Отсутствие вложенных формул пятого порядка для классических методов не свидетельствует о том, что погрешность нельзя оценить, но итог оценки получается очень грубым. Можно построить вложенный метод третьего порядка (см. [1], [7]). Для определения такой оценки добавим к формулам (1) еще одну:

. (5)

Заметим, что для нахождения k5 по формуле (5) не нужно дополнительное вычисление функции f (при c5 = 1), так как следующий шаг метода РК начинается с вычисления вектора , т.е. k5 все равно придется вычислять.

Для грубой оценки вектора погрешности можно использовать выражение

для некоторой константы C, зависящей от решаемой системы, и

В случае , (правило «3/8») процесс расчёта выглядит так:

и для грубой оценки вектора погрешности можно использовать выражение (6)

Для метода (4) аналогичная формула принимает вид

. (7)

Таким способом можно оценить локальную погрешность. Однако, получить более точные оценки не представляется возможным, но даже такая оценка позволяет избежать грубых ошибок при выборе шага интегрирования.

3. ОЦЕНКА ПОГРЕШНОСТИ ПО ДВУМ ШАГАМ

В случае, когда не получается построить вложенную формулу, то это не означает, что для данного метода не существует простых и достаточно точных методов оценки погрешности. К примеру, формула численного дифференцирования

дает возможность получить неплохой способ оценки погрешности, но для более-менее точной оценки придется использовать много последовательных значений yi.

Попробуем уменьшить необходимое количество шагов, используя не только yi, но и промежуточные величины ki с каждого шага метода РК.

Выполняя несколько шагов метода РК, мы последовательно вычисляем

Пусть таблица Бутчера 4-стадийного метода имеет вид (8)

и ее коэффициенты рассчитаны по формулам (3) для некоторых c2, c3.

Два шага этого метода в совокупности с вспомогательным “вложенным” шагом можно считать одним девяти стадийным методом с таблицей Бутчера.

Для того, чтобы получить истинный “вложенный” метод необходимо выбрать коэффициенты так, чтобы эта таблица давала метод пятого порядка, т.е. ее коэффициенты должны подходить семнадцати уравнениям Бутчера. Однако, если перейти к расчётам, то это не представляется возможным ни при каком выборе исходного метода (aij, bi, ci). Однако, выполнимо подобрать коэффициенты так, чтобы получился метод 4-го порядка, но отличный от исходного, дающегося коэффициентами bi.

Как в [7], будем искать в виде . Условия порядка оказываются однородными относительно βi. Получающаяся система уравнений имеет два линейно независимых решения.

 

Второе решение:

 

Для случая c2 = 1/3, c3 = 2/3 (“правило 3/8”) два решения можно взять в виде

(11)

Для схемы (4) коэффициенты имеют вид

(12)

Выпишем по этим данным общий алгоритм вычислений. Рассмотрим два шага метода РК с таблицей Бутчера (8):

 

Для оценки погрешности мы имеем формулу

, (14)

где для вектора (β1,…,β9) мы имеем два значения, указанные выше, (9), (10) – для общего случая, (11) – для “правила 3/8” и (12) – для метода (8).

Эти две формулы предоставляют два вектора погрешности err1 и err2, при этом величина каждой погрешности обладает тем же порядком, что и искомая погрешности метода - O(h5). Поэтому для увеличения надежности стоит брать сразу две величины. Численные эксперименты показывают, что для общей оценки локальной погрешности позволительно использовать величину

.

Такая оценка получается существенно более точной, чем (6), (7).

4. ОЦЕНКА ПОГРЕШНОСТИ ПО ТРЕМ ШАГАМ

Полученную оценку возможно сделать еще более точной, если взять три шага. В этом случае мы имеем 13 векторов:

Взяв их линейную комбинацию с подходящими коэффициентами, мы можем получить оценку погрешности с точностью до O(h6). Формулы расчета схожи с формулами (13), т.е. для оценки погрешности используется формулу вида

,

где коэффициенты βi являются решением системы из семнадцати уравнений Бутчера. Эти уравнения линейны относительно переменных βi, и система обладает двумерным пространством решений. В качестве свободных переменных можно выбрать β12, β13, остальные будут линейно выражатся через них. Следовательно, в общем случае βi будут линейно выражаться через β12, β13, причем коэффициенты будут достаточно сложными рациональными функциями от c2, c3, общая степень – до 7. Приведем поэтому решение для «правила 3/8»:

(15)

И для таблицы Бутчера (7):

. (16)

Такое решение обладает двумя преимуществами. Во-первых, коэффициенты βi невелики по абсолютной величине, а во-вторых, для получения оценки не нужно вычислять , т.е. ошибочно выбранный шаг можно будет исправить чуть раньше, чем при отличном выборе коэффициентов.

Погрешность для классических методов РК имеет порядок O(h5), а предложенная выше формула находит ее с точностью до O(h6). Таким образом, формула (15) дает практически точное значение погрешности.

ЗАКЛЮЧЕНИЕ

Во время разработки современных методов Рунге-Кутте, особое внимание уделяется вложенным методам (см., например, [1], [3], [4] и многие другие). Однако таких методов заметно меньше, а их нахождение гораздо труднее обычных. На сегодняшний день известно мало вложенных методов, да и те не всегда предоставляют достаточную эффективность.

Данная работа и приведённые в ней примеры показывают, что необходимость в поиске вложенных методов для автоматического управления длинной шага - отсутствует. Для каждого метода РК можно предложить довольно точный способ нахождения погрешности, который не будет требовать дополнительных вычислений в правой части уравнений. В данной статье это сделано для наиболее употребляемых классических методов Рунге-Кутте, однако нет никаких сомнений, что это можно сделать и со всеми остальными. С другой стороны, есть основания считать, что аналогичную оценку можно сделать и для случая трех последовательных шагов метода с различным шагом.

В целом, если удастся продвинуться в указанных направлениях, то для вычислений с автоматическим выбором шага оказывается возможным применять наиболее эффективные методы РК, не ограничиваясь лишь теми, для которых имеются вложенные.

СПИСОКЛИТЕРАТУРЫ

Butcher J.С. Numerical methods for ordinary differential equations (2nd ed.). New York: John Wiley, 2008.

Chan T.M.H., Butcher J.C. Multi-step zero approximations for stepsize control // Appl. Numer. Math. 2000. V. 34. P. 167–177.

Jackiewicz Z. General Linear Methods for Ordinary Differential Equations. New York: Wiley, 2009.

Jackiewicz Z., Verner J.H. Derivation and implementation of two-step Runge–Kutta pairs // Appl. Math. 2002.V. 19. P. 227–248.

Shampine L.F., Watts H.A. Comparing Error Estimators for Runge–Kutta methods // Math. Comp. 1971. V. 25. P. 445–455.

Verner J.H. Numerically optimal Runge–Kutta pairs with interpolants // Numerical Algorith. 2010. V. 53. P. 383–396.

Wanner G., Hairer E., Nørsett S.P. Solving ordinary differential equations I. Nonstiff Problems. 2Ed. Berlin: Springer, 2000.

Просмотров работы: 84