К развитию математики, а конкретно методам решения дискретных задач, привело стремительное развитий информациионых технологий, появление новых вычислительных машин обладающих все большей производительностью. Основное внимание получили различные методы решения обыкновенных дифференциальных уравнений. Решение дифференциальных уравнений на электронных вычислительных машинах имеет большое значение для проведения исследований в различных областях науки как теоретического, так и прикладного характера.
Дифференциальное уравнение – это уравнение, содержащее производные функции y(х), саму функцию, независимые переменные и иные параметры в различных комбинациях.
Одной из важнейших задач в теории и приложениях дифференциальных уравнений является задача Коши (начальная задача), в которой требуется найти решения дифференциального уравнения, удовлетворяющее заданным условиям.
Решение задачи Коши в основном осуществляется 2 способами:
Одношаговыми методами, в которых для нахождения следующей точки, требуется информация об одном предыдущем шаге.
Многошаговыми методами, в которых для отыскивания следующей точки, требуется информация более чем об одном из предыдущих шагов.
Целью данной статьи является сравнение одношаговых (метод Эйлера, Модифицированный метод Эйлера) и многошаговых (метод Адамса-Башфорта, метод Хемминга) численных методов решения дифференциальных уравнений.
Простейшим численным методом решения задачи Коши для обыкновенного дифференциального уравнения является метод Эйлера, который еще называют методом ломанных Эйлера, но он не так часто используется в практических расчетах из-за невысокой точности.
Формула метода Эйлера:
(1)
Рис. 1. Реализация метода Эйлера на языке С++
Модифицированный метод Эйлера
Для повышения точности метода Эйлера применяют следующий прием, сначала находят приближенное значение решения по методу Эйлера (см формулу 1), далее уточняем его по формуле:
(2)
Рис. 2. Реализация модифицированного метода Эйлера на языке С++
Метод Адамса-Башфорта 4 порядка
Отличие данных методов от одношаговых заключается в том, что для вычисления значения координат следующей точки нужна информация о нескольких предыдущих точках, т. е. данный метод не имеет свойства самостартования. Исходные данные при этом получают с помощью какого-либо одношагового метода.
(3)
Рис. 3. Реализация метода Адамса-Башфорта на языке С++
Достоинством многошаговых методов Адамса при решении ОДУ заключается в том, что в каждом узле рассчитывается только одно значение правой части ОДУ - функции F(x,y). К недостаткам можно отнести невозможность старта многошагового метода из единственной начальной точки, так как для вычислений по k-шаговой формуле необходимо знание значения функции в k узлах. Поэтому приходится (k-1) решение в первых узлах x1, x2, …, xk-1 получать с помощью какого-либо одношагового метода, например метода Рунге-Кутты 4-го порядка. Другой проблемой является невозможность изменения шага в процессе решения, что легко реализуется в одношаговых методах.
Метод Хемминга
Метод Хемминга — это многошаговый метод численного решения дифференциальных уравнений. Поэтому он также использует четыре предыдущих значения для вычисления текущего значения.
Формула метода Хемминга:
(4)
Рис. 4. Реализация метода Хемминга на языке С++
Работа программы будет оцениваться на примере следующего дифференциального уравнения:
(5)
Рис. 5. Вывод полученных значений для каждого метода с h = 0.001 с точностью 7 знаков после запятой.
Рис. 6. Вывод времени выполнения каждого метода
Исходя из результатов работы программы можно сделать вывод, что самыми точными являются именно многошаговые методы (рис. 5.), но многошаговые методы обладают недостатком – невозможно изменять в процессе решения величину шага, так как они используют предыдущие точки с ранее применяемым шагов. При этом время выполнения методов почти совпадает, но это обуславливается несложным примером для расчета. (рис. 6.).
В зависимости от задачи, необходимо выбирать метод численного решения с учетом требований к точности и вычислительной сложности метода.
Список литературы:
Пименов, В. Г. Численные методы в 2 ч. Ч. 1: учебное пособие для вузов / В. Г. Пименов. — Москва : Издательство Юрайт, 2022. — 111 с. — (Высшее образование).
Кулакова, С.В. Численные методы: учеб. пособие / С.В. Кулакова; Иван. гос. хим.-технол. ун-т. Иваново, 2018. – 124 с.
Численные методы интегрирования, решения дифференциальных уравнений и задач оптимизации : учебное пособие / А. А. Федотов, П. В. Храпов. — Москва : Издательство МГТУ им. Н. Э. Баумана, 2015. — 76, [2] с.: ил.