Автор работы: Пользователь скрыл имя, 30 Марта 2014 в 16:16, курсовая работа
Разработать программу, реализующую численное интегрирование по методу Рунге-Кутты 4-го порядка точности дифференциального уравнения
n-го порядка. Провести сравнительный анализ точности этого алгоритма и
точного аналитического решения.
Постановка задачи курсовой работы
Введение
Теоретическая часть
. Постановка задачи
3.2. Метод Эйлера
3.3. Общая формулировка методов Рунге-Кутты
3.4. Обсуждение методов 4-го порядка
4. Практическая часть
5. Заключение
6. Список использованных источников
Московский авиационный институт
(Национальный исследовательский университет)
по дисциплине: “Компьютерные технологии в приборостроении”
Выполнил студент группы С-402: Гунин С.Г.
Проверил преподаватель:
3.2. Метод Эйлера
3.3. Общая формулировка методов Рунге-Кутты
3.4. Обсуждение методов 4-го порядка
4. Практическая часть
5. Заключение
6. Список использованных источников
1. Постановка задачи курсовой работы
Разработать программу, реализующую численное интегрирование по методу Рунге-Кутты 4-го порядка точности дифференциального уравнения
n-го порядка. Провести сравнительный анализ точности этого алгоритма и
точного аналитического решения.
2. Введение
Анализ многих технических, физических, химических, а также био-логических задач требует решения задачи Коши для дифференциальных уравнений. Эта задача решается различными способами, как аналити-ческими, так и численными. В последнем случае применение ЭВМ позволяет решить задачу в сжатые сроки. Численные методы используются также в сложных дифференциальных задачах, для которых найти аналитическое решение не представляется возможным.
В курсовой работе рассматривается простой метод ломаных Эйлера, а также широко распространенный метод Рунге-Кутты 4-го порядка точности.
3. Теоретическая часть
Дано дифференциальное уравнение и начальное условие, т.е. постав-лена задача Коши:
Требуется построить интегральную кривую, удовлетворяющую поставлен-ной задаче с помощью методов Эйлера и Рунге-Кутты 4-го порядка с выбо-ром шага на отрезке [a =x0, b]. Выбор шага - необходимое условие адекват-ного поведения программы при резко изменяющихся функциях, опре-деляющих интегральную кривую, позволяющее отразить все особенности в поведении интегральной кривой и добиться высокой точности. Результат сравнить с аналитическим решением.
3.2. Метод Эйлера
Приближенный метод решения задачи (1) описан Эйлером в 1768 году.
Метод основан на использовании разложения:
(2)
Учитывая здесь два первых слагаемых, заключаем с учетом (1), что на интер-вале
[x0, x1 = x0 + h]
интегральная кривая может быть приближенно представлена отрезком пря-мой с угловым коэффициентом k1 , определенным в начальной точке, при этом новое значение y1 определится по формуле:
Продолжая этот процесс, для последующих точек вычисляем [1]:
Интегральная кривая в целом приближенно представляется отрезками прямых, вследствие чего метод называется методом ломаных Эйлера.
На одном шаге интегрирования погрешность имеет второй порядок по величине не учтенного слагаемого в разложении (2). На общем (глобальном) интервале [a, b], включающем (b-a)/h шагов, порядок точности снижается до первого. Образно говоря, для получения 6 точных десятичных знаков требуется порядка миллиона шагов.
Метод Эйлера является простейшим численным методом интегриро-вания дифференциального уравнения, его недостатки [1]:
Известны модификации метода, частично устраняющие его недостатки. Улучшение достигается введением дополнительного этапа вычислений, например, по схеме:
Выполним разложение величины y1 в ряд по степеням h:
и с этой целью выпишем необходимые производные:
Разложение для y1 принимает вид:
Сравним его теперь с рядом Тейлора для точного решения, который появля-ется из заданного соотношения путем повторных дифференци-рований с заменой y' на f :
Сравнение показывает, что разложения совпадают до второго порядка по h включительно. Вычитая из последнего равенства предыдущее, получим оценку для погрешности одного шага:
Как видно, точность модифицированного метода повышается на порядок [2].
3.3. Общая формулировка методов Рунге-Кутты.
Рунге и Хойн использовали аналогичные частные приемы для дальней-шего повышения точности численного интегрирования, но именно Кутта сформулировал общую схему методов, которые называются теперь методами Рунге-Кутты.
Явный s–стадийный метод описывается следующими соотношениями:
Вычислительная схема содержит большое число параметров, специальным
выбором которых можно обеспечить совпадение разложений y1 и точного решения y(x) до некоторого числа слагаемых p, при этом:
Перечисленные параметры принято представлять в компактной форме с помощью следующей таблицы Бутчера:
c1 = 0
c2 c3 … cs
|
a21 a31 a32 ... … … as1 as2 … as,s–1 |
b1 b2 … bs–1 bs |
Подбор параметров может выполняться любым способом, Кутта предложил считать что:
Эти условия не являются необходимыми, но упрощают вывод для методов высокого порядка; их смысл состоит в том, что все точки, в которых вычисляется правая часть f(x, y) являются приближениями первого порядка.
Перейдем теперь к рассмотрению 4–стадийных методов Рунге-Кутты четвертого порядка (s = 4, p = 4). В этом случае необходимо вычислить производные y1 по h до четвертого порядка включительно и приравнять их к соответствующим производным точного решения. Полученные соотношения составят систему уравнений для выбора вышеупомянутых параметров. Методика вычислений аналогична той, что была применена в разделе 3.2 при обосновании модифицированного метода Эйлера, но отличается высокой сложностью для третьих и четвертых производных. Воспользуемся резуль-татами, приведенными в [2, 3]:
Решение системы (7) достаточно громоздко, возможны несколько вариантов решения. Наиболее практичны следующие два варианта.
a) Таблица Бутчера (классическая схема):
0 1/2 1/2 1 |
1/2 0 1/2 0 0 1 |
1/6 2/6 2/6 1/6 |
Расчетные формулы: k1 = f(x0, y0),
b) Таблица Бутчера (правило 3/8) :
0 1/3 2/3 1 |
1/3 -1/3 1 1 -1 1
|
1/8 3/8 3/8 1/8 |
Расчетные формулы: k1 = f(x0, y0),
Метод Рунге-Кутты позволяет при необходимости применять новую длину шага h на каждом локальном участке (xi, xi+1). Это свойство используется для проведения расчетов с контролем точности и автоматическим выбором необходимого для этого шага. С этой целью на участке (xi, xi+1) выполняются:
- интегрирование с шагом h = xi+1 – xi от начальной точки xi до конечной xi+1,
соответствующий результат в точке xi+1 обозначим через yi+1;
- интегрирование с половинным ша
жуточной x = 0.5 (xi+1 + xi) и вслед за этим от точки x до конечной xi+1,
полученный результат в конечной точке обозначим через Yi+1;
При анализе этих данных принимается, что главный член погрешности на одном шаге h оценивается в виде:
где коэффициент K приближенно считается одинаковым в окрестности точек xi и xi+1. При выполнении двух половинных шагов ошибки могут сложиться:
Вычитанием получаем отсюда оценку величины K h5 :
Yi+1 - yi+1 = K h5 (1- 1/16) =(15/16) K h5; K h5 = (16/15)×( Yi+1 - yi+1 ).
После этого для погрешности D = y(xi+1) - yi+1 имеем:
Значение Yi+1 получается более точным, для него ошибка составляет:
y(xi+1) - Yi+1 @ ( Yi+1 - yi+1 ) / 15.
Полученные оценки используются в программах с автоматическим подбо-ром шага, а именно, если полученная оценка D превышает по абсолютной величине требуемую точность, то шаг уменьшается (например, вдвое), если же величина D излишне мала, то шаг интегрирования увеличивается.
4. Практическая часть
Поставленную задачу рассмотрим на конкретном примере решения следующей задачи Коши:
y ¢= - sin x, y(0) = 1.
Заданное дифференциальное уравнение с правой частью f(x) = - sin x имеет точное решение:
график которого может быть построен на любом интервале; для опреде-ленности будем рассматривать его на полном периоде:
При численном интегрировании этот интервал разделим на N частей, так что шаг составит h = 2p/N. Координаты узловых точек при этом равны:
Расчеты выполним при N = 8. В заданном примере правая часть f(x) не зависит от y, что упрощает решение задачи.