Решение дифференциального уравнения методом рунге кутта. Методы рунге-кутты. Приложение А. Графики функций

Пример . Решить методом Рунге-Кутты четвертого порядка уравнение dy /dx = –y , y (0) = 1.

В соответствии с приведенными выше соотношениями определяем коэффициенты:

Построим последовательность значений искомой функции:

Результаты получаемого численного решения для значения аргумента x = 10 при различных шагах интегрирования приведены в табл. 15.2. Три верные значащие цифры получены для шага h = 0.25.

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

На сегодняшний день для грубого расчета вычисления производятся методом Эйлера, для точного расчета - методом Рунге-Кутты

16. Лекция 16.
Методы прогноза и коррекции
(итерационные методы)

Изученные нами ранее методы обладали одной важной особенностью - каждому методу соответствует обычно определенный класс точности, который мы обозначали как O i . Например, метод Эйлера обладал первым классом точности O 1 . Это означало, что с уменьшением шага в 10 раз (на порядок) точность результата повышается тоже в 10 раз (на один порядок). Метод Рунге-Кутты обладает 4 порядком точности - O 4 , при уменьшении шага в 10 раз, результат улучшается в 10 000 раз. Поскольку этот метод по сравнению с методом Эйлера использует всего в 4 раза больше вычислений, то использование его более выгодно. На сегодняшний день известны методы до 8 порядка точности (например, метод Prince Dortmund), хотя одновременно стоит иметь в виду, что написание алгоритмов для них - задача достаточно трудная. Достоинством всех этих алгоритмов является то, что объем вычислений для них заранее известен.

Если требуется достичь ЛЮБОЙ точности на шаге, то следует использовать методы прогноза и коррекции. Этот подход состоит в том, что расчет траектории, задаваемой уравнением, на каждом шаге происходит многократно. А именно, сначала происходит расчет приближенного значения функции на конце шага какой-либо простой формулой (например, методом Эйлера), далее в этой точке вычисляется производная, и расчет происходит снова из начальной точки на шаге, но с уточненным значением производной. Последняя операция - уточнения производной и значения функции на конце шага - происходит МНОГОКРАТНО НА КАЖДОМ ШАГЕ , то есть до тех пор, пока вычисленные значения (функции и производной в конце шага) не перестанут меняться или будут меняться уже незначительно, меньше чем задаваемая заранее величина ε . Только тогда можно сказать, что точность ε достигнута.

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

Рассмотрим для примера два метода из этого класса. Как и ранее задача состоит в нахождении функции y (t ) из дифференциального уравнения dy /dt = f (y , x , t ) или множества функций из системы таких уравнений.

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

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

Ключевые слова: дифференциальное уравнение, метод Рунге-Кутты, метод Эйлера, порядок метода Рунге-Кутты, задача Коши, ряд Тейлора, отрезок, коэффициенты, шаг интегрирования, интегральная кривая.

Работа содержит 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»

Заключение

Список использованных источников

Приложение А. Графики функций

Приложение Б. Пример таблицы значений функции y(x)

Приложение В. Листинг программы «Ilya RK-4 версия 1.43»

Введение

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

С увеличением числа этапов для больших задач, решаемых этими методами, возникли бы трудности с памятью ЭВМ, кроме того (и это важнее), для больших задач, как правило, всегда велики константы Липшица. В общем случае это делает методы Рунге-Кутты высокого порядка не пригодными для таких задач. Во всяком случае, другие методы обычно эффективнее и им следует отдавать предпочтение. Однако методы Рунге-Кутты четвертого порядка являются достаточно легко реализуемыми на ЭВМ, а наличие автоматического выбора шага дает возможность производить вычисления с хорошей точностью. Поэтому их целесообразно применять для довольно широкого множества задач.

Методы Рунге-Кутты имеют несколько весомых достоинств, определивших их популярность среди значительного числа исследователей. Эти методы легко программируются, обладают достаточными для широкого круга задач свойствами точности и устойчивости. Эти методы, как и все одношаговые методы, являются самостартующими и позволяют на любом этапе вычислений легко изменять шаг интегрирования.

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

Программная реализация методов Рунге-Кутты четвертого порядка с автоматическим выбором шага представлена в виде программы, написанной на языке высокого уровня Borland C ++ 3.1 . Программу можно запускать в среде MS - DOS или Windows ® 95/98/ Me /2 k / XP . В качестве выхода программа пишет таблицу значений в файл на диск и рисует график на экране ЭВМ.

Для проверки результатов работы созданной программы одни и те же дифференциальные уравнения решались в математическом пакете Waterloo Maple 9.01 и при помощи созданного приложения (версия 1.43), проводился анализ таблиц значений и графиков решений.

1. Теоретическая часть

1.1 Постановка задачи

Дано дифференциальное уравнение и начальное условие, то есть поставлена задача Коши:

(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)

Его можно сравнить с рядом Тейлора для точного решения, который получается из того, что

Методы Рунге-Кутты – это группа методов, широко применяемых на практике для решения ОДУ. В этих методах при вычислении значения искомой функции в очередной точке х i+1 используется информация о предыдущей точке х i , y i . Методы различаются объемом вычислений и точностью результата.

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

Метод Рунге-Кутты 2-го порядка (Усовершенствованный метод Эйлера). Вычисление значения искомой функции в точке х i +1 проводится в два этапа. Сначала вычисляют вспомогательную величину по методу Эйлера :

(6.5.3-1)

Затем значение производной искомой функции в точке (x i +1 ,y i +1) используется для вычисления окончательного значения функции:

(6.5.3-2)

Подставляя (6.5.3-1) в (6.5.3-2), окончательно получим расчетную формулу метода Рунге-Кутты 2 -го порядка:

(6.5.3-3)

Этот метод также называют методом прогноза и коррекций . Сначала находят грубое приближение по методу Эйлера (прогноз), а затем уточненное значение y i +1 (коррекция).

В общем виде формулу (6.5.3-3) можно представить как

(6.5.3-4)

Метод Рунге-Кутты второго порядка имеет наглядную геометрическую интерпретацию (рис. 6.5.3-1). Построение проводится следующим образом: определяется пересечением перпендикуляра, восстановленного из точки x i +1 c касательной L 1 , проведенной к кривой y(x) в предыдущей точке (х i ,y i). Затем в точке проводится прямая L 2 с тангенсом угла наклона, равным . Прямую проводят через точку под углом, тангенс которого находим усреднением значений тангенсов углов наклона L 1 и L 2 . Прямая L проводится параллельно через точку (х i ,y i). Ее пересечение с перпендикуляром, восстановленным из точки х i +1, и дает уточненное значение y i +1 .

Погрешность метода Рунге-Кутты второго порядка связана с величиной шага интегрирования отношением e 2 =C 2 h 3 , где C 2 – произвольная постоянная.

Пример 6.5.3-1. Решить методом Рунге-Кутты второго порядка ОДУ y¢= 2x/y с начальными условиями x 0 = 1 и y 0 = 1 на отрезке и шагом h = 0.2.

Проводя дальнейшее обобщение формул Рунге-Кутты, для решения ОДУ первого порядка можно записать следующее:



где Ф – линейная функция аргументов x, y, h и f(x,y), которая может быть представлена как

(6.5.3-5)

Величина n в (6.5.3-4) определяется порядком метода, а коэффициентам a 2 ,a 3 , … ,a n , Р 1 , Р 2 , … ,P n подбирают такие значения, которые обеспечивают минимальную погрешность. Так, для метода Рунге-Кутты четвертого порядка (n=4) получена расчетная формула при следующих коэффициентах: a 2 = a 3 =1/2, a 4 =1, P 1 = P 4 =1/6, P 2 = P 3 =2/6.

Подставив значения коэффициентов в (6.5.3-4), имеем

(6.5.3-6)

Геометрическая интерпретация этого метода очень сложна и потому не приводится.

Погрешность метода Рунге-Кутты четвертого порядка значительно меньше методов первого и второго порядков и пропорциональна величине h (e 4 =C 4 h 5).

Пример 6.5.3-2. Решить методом Рунге-Кутты четвертого порядка ОДУ y¢= 2x/y с начальными условиями x 0 = 1 и y 0 = 1 на отрезке с шагом h = 0,2.

На практике для обеспечения требуемой точности (при использовании любого приближенного метода решения ОДУ ) применяется автоматический выбор шага методом двойного просчета . При этом в каждой точке х i по формуле, соответствующей выбранному методу, производится расчет y i с шагом h (y i (h)) и с шагом h/2 (y i (h /2)). Цель двойного просчета состоит в том, чтобы для каждой точки численного решения эти значения отличались на величину, не превышающую заданной погрешности e. В этом случае общая формула для оценки погрешности решения ОДУ методами Рунге-Кутты имеет следующий вид:

где p – порядок метода Рунге-Кутты . Эта формула называется также правилом Рунге .

Если | y i (h)) - y i (h /2) |< e, то шаг для следующей точки выбирается равным h, иначе шаг уменьшается вдвое и продолжается уточнение y i в точке х i .

Студенты ФИРТ

Группа ПО

Преподаватель

Гадилова Ф.Г.

ВВЕДЕНИЕ……………………………………………………………………………..…3

ГЛАВА 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

      СУТЬ МЕТОДА РУНГЕ-КУТТА…………………………………………5

1.2. НАЗНАЧЕНИЕ И ОБЛАСТЬ ПРИМЕНЕНИЯ…………………………10

ГЛАВА 2. ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1. ПОСТАНОВКА ЗАДАЧИ И РАЗРАБОТКА АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ…………………………………………………………………..……….11

2.2. ВЫБОР СОСТАВА ТЕХНИЧЕСКИХ И ПРОГРАММНЫХ СРЕДСТВ…………………………………………………………………...……...16

2.4. ТЕСТИРОВАНИЕ ПРОГРАММЫ……………………………………...…18

ЗАКЛЮЧЕНИЕ………………………………………………………………...…………19

ЛИТЕРАТУРА………………………………………………………………….…………20

ПРИЛОЖЕНИЯ:

ПРИЛОЖЕНИЕ№1 (ЛИСТИНГ ПРОГРАММЫ)

Введение

Целью курсовой работы является: написать программу для нахождения приближенного решения обыкновенного дифференциального уравнения y’=f(x,y),y(a)=y0 методом Рунге-Кутта пятого порядка на отрезке с заданным постоянным шагомh.

Для достижения данной цели необходимо выполнить следующие задачи:

    Рассмотреть суть метода Рунге-Кутта.

    Назначение и область применения.

    Протестировать программу.

Данная задача относится к численным методам. Необходимо найти решение обыкновенного дифференциального уравнения с постоянным шагом h.

Для решения задачи будет использоваться язык программирования TurboPascal7.0, так как этот язык позволяет работать с математическими формулами, проводить различного рода математические операции и действия.TurboPascalфирмыBorlandявляется расширением стандарта языка и содержит интегрированную среду, данного ускоряющую и облегчающую процесс разработки программ. В языке программированияTurboPascal7.0 используется типизированный адресный оператор, открытые массивы и строки, что предоставляет пользователю дополнительные возможности при решении математических задач. В математических задачах часто требуется реализовать численные методы, экспериментально исследовать условие и скорость сходимости методов. В условии задачи, как правило, дается основная идея каждого метода (Эйлера, Рунге-Кутта и т.д.).

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

Глава 1.

1.1.Суть метода Рунге-Кутта

Метод Рунге-Кутта включает в себя несколько других таких как: метод Эйлера и метод Эйлера – Коши.

Методы Рунге-Кутта обладают следующими свойствами:

1. Эти методы являются одноступенчатыми: чтобы найти у m+1 нужна

информация о предыдущей точке xmym

2 Они согласуются с рядом Тейлора вплоть до членов порядка h p где степень р различна для различных методов и называется порядковым номером или порядком метода

3Они не требуют вычисления производных от f (xy) а требуют вычисления самой функции

Рассмотрим сначала геометрическое построение и выведем некоторые формулы на основе геометрических аналогийПосле этого мы подтвердим полученные результаты аналитически(Аналитический метод, применяется которого дает решение дифференциального уравнения в виде аналитического выражения; Графический метод, дающий приближенное решение в виде графика; Численный метод, когда искомая функция получается в виде таблицы.)

Предположим нам известна точка xmym на искомой кривой Тогда мы можем провести прямую линию с тангенсом угла наклона у m =f(x m y m) которая пройдет через точку x m y m  Это построение показано на рис1 где кривая представляет собой точное но конечно неизвестное решение уравнения а прямая линия L1 построена так как это только что описано

Уравнение прямой L 1 выглядит так: y=y m +y m (x-x m) так как y=f(x m y m) и кроме тогоx m+1 =x m +h тогда уравнение примет вид

y m+1 =y m +h*f(x m y m) 1.1.

Ошибка при x=x m+1 показана в виде отрезка еОчевиднонайденное таким образом приближенное значение согласуется с разложением в ряд Тейлора вплоть до членов порядка hтак что ошибка ограничения равна e t =Кh 2

Заметимчто хотя точка на рис.1 была показана на кривойв действительности y m является приближенным значением и не лежит точно на кривой

Формула 11 описывает метод Эйлера один из самых старых и широко известных методов численного интегрирования дифференциальных уравнений Отметим что метод Эйлера является одним из методов Рунге-Кутта первого порядка

Рассмотрим исправленный метод Эйлера и модификационный метод Эйлера. В исправленном методе Эйлера мы находим средний тангенс угла наклона касательной для двух точек: x m y m и x m +hy m +hy m Последняя точка есть та самаякоторая в методе Эйлера обозначалась x m+1 y m+1 Геометрический процесс нахождения точки x m+1 y m+1 можно проследить по рис2. С помощью метода Эйлера находится точка x m +hy m +hy m лежащая на прямой L 1 В этой точке снова вычисляется тангенсдает прямуюLНаконецчерез точку x m y m мы проводим прямую LпараллельнуюLТочкав которой прямая L пересечется с ординатойвосстановленной из x=x m+1 =x m +hи будет искомой точкой x m+1 y m+1 

Классический метод Рунге - Кутта 4 порядка

Тема 6.3. Метод Рунге-Кутгы

Методы Рунге - Кутта - важное семейство численных алгоритмов решения (систем) обыкновенных дифференциальных уравнений. Данные итеративные методы явного и неявного приближенного вычисления были разработаны около 1900 года немецкими математиками К. Рунге и М. В. Куттой.

Формально, методами Рунге - Кутта являются модифицированный и исправленный метод Эйлера, они представляют собой схемы второго порядка точности. Существуют стандартные схемы третьего порядка, не получившие широкого распространения. Наиболее часто используется и реализована в различных математических пакетах (Maple, MathCAD, Maxima) стандартная схема четвёртого порядка (см. ниже). Иногда при выполнении расчётов с повышенной точностью применяются схемы пятого и шестого порядков.

Метод Рунге - Кутта 4 порядка столь широко распространен, что его часто называют просто метод Рунге - Кутта.

Рассмотрим задачу Коши . Тогда значение в следующей точке вычисляется по формуле:

Величина шага сетки по .

Этот метод имеет 4 порядок, т.е. ошибка на каждом шаге составляет O(h5), а суммарная ошибка на конечном интервале интегрирования O(h4).

Семейство прямых методов Рунге - Кутта является обобщением метода Рунге - Кутта 4 порядка. Оно задается формулами

Конкретный метод определяется числом s и коэффициентами bi,aij и ci. Эти коэффициенты часто упорядочивают в таблицу



Что еще почитать