Решение многих технических, химических, а также биологических задач требует решения задачи Коши. Эту задачу можно решать разными способами, как аналитическими, так и численными, применяя ЭВМ. Очень часто бывает важно получить результат в сжатые сроки. В этом случае предпочтение отдается численным методам. Кроме того, встречаются такие сложные дифференциальные уравнения, найти аналитическое решение которых либо вообще не представляется возможным, либо для этого требуются очень большие затраты времени и сил.
В работе детально рассматривается метод Рунге-Кутты четвертого порядка с автоматическим выбором длины шага интегрирования (это обеспечивает гораздо более высокую точность вычислений по сравнению с методом, использующим шаг постоянной длины), приводится необходимая теоретическая сводка, описание метода, а также программа для ЭВМ, результаты ее выполнения и иллюстрации.
Ключевые слова: дифференциальное уравнение, метод Рунге-Кутты, метод Эйлера, порядок метода Рунге-Кутты, задача Коши, ряд Тейлора, отрезок, коэффициенты, шаг интегрирования, интегральная кривая.
Работа содержит 36 листов, включая 8 графиков, 4 иллюстрации и 12 таблиц.
Введение
1. Теоретическая часть
1.1 Постановка задачи
1.2 Метод Эйлера
1.3 Общая формулировка методов Рунге-Кутты
1.4 Обсуждение методов порядка 4
1.5 «Оптимальные» формулы
1.6 Условия порядков для методов Рунге-Кутты
1.7 Оценка погрешности и сходимость методов Рунге-Кутты
1.7.1 Строгие оценки погрешности
1.7.2 Главный член погрешности
1.7.3 Оценка глобальной погрешности
1.8 Оптимальный выбор шага
2. Практическая часть
2.1 Описание программы «Ilya RK-4 версия 1.43»
Ввиду того, что для методов Рунге-Кутты не нужно вычислять дополнительные начальные значения, эти методы занимают особое место среди методов классического типа. Ниже будут рассмотрены их свойства, а также некоторые ограничения, присущие этим методам.
С увеличением числа этапов для больших задач, решаемых этими методами, возникли бы трудности с памятью ЭВМ, кроме того (и это важнее), для больших задач, как правило, всегда велики константы Липшица. В общем случае это делает методы Рунге-Кутты высокого порядка не пригодными для таких задач. Во всяком случае, другие методы обычно эффективнее и им следует отдавать предпочтение. Однако методы Рунге-Кутты четвертого порядка являются достаточно легко реализуемыми на ЭВМ, а наличие автоматического выбора шага дает возможность производить вычисления с хорошей точностью. Поэтому их целесообразно применять для довольно широкого множества задач.
Методы Рунге-Кутты имеют несколько весомых достоинств, определивших их популярность среди значительного числа исследователей. Эти методы легко программируются, обладают достаточными для широкого круга задач свойствами точности и устойчивости. Эти методы, как и все одношаговые методы, являются самостартующими и позволяют на любом этапе вычислений легко изменять шаг интегрирования.
В работе основное внимание сконцентрировано на вопросах точности и эффективности решения задач того типа, для которых методы Рунге-Кутты приемлемы.
Программная реализация методов Рунге-Кутты четвертого порядка с автоматическим выбором шага представлена в виде программы, написанной на языке высокого уровня Borland C++ 3.1. Программу можно запускать в среде MS-DOS или Windows® 95/98/Me/2k/XP. В качестве выхода программа пишет таблицу значений в файл на диск и рисует график на экране ЭВМ.
Для проверки результатов работы созданной программы одни и те же дифференциальные уравнения решались в математическом пакете Waterloo Maple 9.01 и при помощи созданного приложения (версия 1.43), проводился анализ таблиц значений и графиков решений.
Дано дифференциальное уравнение и начальное условие, то есть поставлена задача Коши:
(2.1.1)
Требуется отыскать интегральную кривую, удовлетворяющую поставленной задаче Коши с помощью метода Рунге-Кутты четвертого порядка с автоматическим выбором шага на отрезке . Задачу можно решить аналитически, найдя решение дифференциального уравнения и подставив в него начальное условие, тем самым, отыскав требуемую интегральную кривую. Но для нас интерес представляет решение данной задачи с применением численного метода, а конкретнее – метода Рунге-Кутты 4-го порядка с автоматическим выбором шага, то есть численное решение. Автоматический выбор шага – необходимое условие адекватного поведения программы при резко изменяющихся функциях, задающих интегральную кривую, позволяющее отразить все моменты в поведении интегральной кривой и добиться высокой точности.
1.2 Метод Эйлера
Метод Эйлера для решения начальной задачи (2.1.1) был описан Эйлером в 1768 году. Этот метод весьма прост. Его глобальная погрешность имеет вид , где – постоянная, зависящая от задачи, и – максимальная длина шага. Если желательно, скажем, получить 6 точных десятичных знаков, то требуется, следовательно, порядка миллиона шагов, что не слишком удовлетворительно. С другой стороны, еще со времен Ньютона известно, что можно найти гораздо более точные методы, если не зависит от , то есть если мы имеем задачу (2.1.1), решаемую квадратурой
. (2.2.1)
В качестве примера можно рассмотреть первую квадратурную формулу Гаусса, также называемую «правилом средней точки»:
(2.2.2)
где и – граничные точки подинтервалов, на которые разбит интервал интегрирования. Известно, что оценка глобальной погрешности этой формулы имеет вид . Таким образом, если желаемая точность составляет 6 десятичных знаков, ее обычно можно получить приблизительно за 1000 шагов, то есть этот метод в тысячу раз быстрее. Поэтому Рунге поставил следующий вопрос: нельзя ли распространить этот метод на исходную задачу Коши? Первый шаг длины должен иметь вид
. (2.2.3)
Но какое значение взять для ? За неимение лучшего естественно использовать один малый шаг метода Эйлера длины . Тогда из предыдущей формулы получим:
(2.2.4)
Решающим обстоятельством здесь является умножение в третьем выражении на , в результате чего влияние погрешности становится менее существенным. Точнее, вычислим для разложение Тейлора по степеням :
(2.2.5)
Его можно сравнить с рядом Тейлора для точного решения, который получается из того, что путем повторного дифференцирования с заменой на каждый раз, когда оно появляется:
(2.2.6)
Вычитая из последнего равенства предыдущее, получим для погрешности первого шага выражение
(2.2.7)
Таким образом, если все частные производные второго порядка ограничены, то
.
Чтобы получить приближенное значение решения исходной задачи в конечной точке , будем применять формулы (2.2.4) последовательно к интервалам . Приведенные выше формулы являются усовершенствованным методом Эйлера. Для вычислений с высокой точностью, однако, следует пользоваться другими методами, одним из которых как раз является метод Рунге-Кутты.
1.3 Общая формулировка методов Рунге-Кутты
Рунге и Хойн построили новые методы, включив в указанные формулы один или два добавочных шага по Эйлеру. Но именно Кутта сформулировал общую схему того, что теперь называется методом Рунге-Кутты.
Пусть – целое положительное число (число стадий, этапов) и – вещественные коэффициенты. Тогда метод
(2.3.1)
называется -стадийным явным методом Рунге-Кутты для исходной задачи Коши (2.1.1)
Обычно коэффициенты удовлетворяют условиям
. (2.3.2)
Эти условия были приняты Куттом без каких-либо комментариев. Смысл их заключается в том, что все точки, в которых вычисляется , являются приближениями первого порядка к решению. Эти условия сильно упрощают вывод условий, определяющих порядок аппроксимации для методов высокого порядка. Однако для методов низких порядков эти предположения необходимыми не являются.
Метод Рунге-Кутты имеет порядок , если для достаточно гладких задач (2.1.1) справедливо неравенство
, (2.3.3)
то есть ряды Тейлора для точного решения и для совпадают до члена включительно.
После статьи Бутчера вошло в обычай символически представлять метод (2.3.1) по средствам следующей таблицы: