
- •Введение
- •I. Методические указания к ответам на теоретические вопросы
- •§1. Этапы научного исследования. Роль и место вычислительного эксперимента и численных методов
- •§2. Основные понятия теории погрешностей. Общая формула вычисления погрешности
- •§3. Метод Ньютона решения алгебраических и трансцендентных уравнений
- •§4. Решение систем линейных алгебраических уравнений.
- •§5. Метод Гаусса решения систем линейных алгебраических уравнений и его модификации
- •§6. Метод простой итерации решения систем линейных алгебраических уравнений
- •§7. Алгебраическое интерполирование. Исследование существования и единственности интерполяционного полинома
- •§8. Интерполяционный полином Лагранжа.
- •§9. Численное интерполирование. Полином Ньютона
- •§10. Численное интегрирование. Формулы Ньютона-Котеса. Оценка погрешности квадратурных формул
- •§11. Классификация и общая характеристика методов решения дифференциальных уравнений. Хорошо и плохо обусловленные задачи
- •§12. Метод Эйлера. Алгоритм и оценка погрешности
- •§13. Метод Рунге-Кутта. Алгоритм и оценка погрешности
- •§14. Численные методы решения краевых задач для обыкновенных дифференциальных уравнений
- •§15. Идея метода сеток решения уравнений в частных производных
- •§16. Аппроксимация дифференциального уравнения разностным и ее порядок. Устойчивость. Сходимость
- •§17. Метод сеток решения краевых задач для дифференциальных уравнений эллиптического типа
- •II. Методические указания к решению задач
- •Список рекомендуемой литературы
§12. Метод Эйлера. Алгоритм и оценка погрешности
При изложении ответа на этот вопрос следует дать постановку задачи Коши для обыкновенного дифференциального уравнения первого порядка при численном решении, получить вычислительную схему метода Эйлера и его геометрическую интерпретацию, дать оценку погрешности и показать, что задачу Коши для уравнения любого порядка можно свести к задаче Коши для системы дифференциальных уравнений первого порядка, а алгоритмы решения систем получаются из алгоритма решения одного уравнения формальной заменой скалярных величин на векторные.
Пусть дано дифференциальное уравнение
.
(26)
Функция
задана и непрерывна в некоторой области
D
вещественной плоскости. В области D
требуется
найти решение
дифференциального уравнения (26),
проходящее через заданную начальную
точку
(27)
При
численном решении уравнения (26)-(27) задача
ставится так: в точках
нужно найти приближения
для значений точного решения
уравнения (26) при начальном условии
(27). Разность
называется шагом сетки. Во многих случаях
можно считать, что h>0
– постоянная, не зависящая от номера
n.
Многие приближенные методы опираются на уравнение
,
(28)
которое
получается интегрированием уравнения
(26) на отрезке
;
при этом интеграл в правой части (28)
заменяется тем или иным приближенным
выражением. В методе
Эйлера он
заменяется простейшим образом –
произведением значения подынтегральной
функции на шаг h
(по формуле
левых прямоугольников):
,
(29)
Для оценки погрешности метода Эйлера предположим, что 1) функция в области D ограничена
,
(31)
2)
удовлетворяет условию Липшица по
переменной y,
т.е. существует такая постоянная K,
что для любой пары точек с координатами
и
,
лежащих в области D,
имеет место неравенство
.
(32)
3) функция в области D имеет ограниченную производную
.
(33)
Назовем
абсолютной погрешностью приближенного
решения yn
величину
.
Тогда можно показать, что для абсолютной
погрешности
имеет место следующая оценка
.
(34)
Таким
образом, при
и выполнении условий (31)-(33) приближенное
решение сходится к точному равномерно
(в области D)
с первым порядком точности.
§13. Метод Рунге-Кутта. Алгоритм и оценка погрешности
При изложении ответа следует дать определение s-стадийного метода Рунге-Кутта, его порядка, записать алгоритм классического метода Рунге-Кутта и применить принцип Рунге для оценки его погрешности.
Рассмотрим метод Рунге-Кутта на примере задачи Коши для обыкновенного дифференциального уравнения первого порядка.
Пусть дана задача
(26)-(27). Требуется определить приближенные
значения y
в точке
,
где h
–шаг сетки.
Определение
1. Пусть s
– положительное целое число (число
стадий или этапов) и
- вещественные коэффициенты. Тогда для
задачи (26)-(27) метод
(35)
называется s-стадийным (s-этапным) явным методом Рунге-Кутта.
Метод Рунге-Кутта позволяет строить схемы различного порядка точности. Эти схемы очень удобны для программирования. В настоящее время они являются наиболее употребительными в практических вычислениях.
Определение 2. Метод Рунге-Кутта (35) имеет порядок p, если для достаточно гладких задач (26)-(27)
Рассмотрим
в качестве примера без вывода 4-стадийный
метод, имеющий порядок p=4,
называемый классическим методом
Рунге-Кутта. Выберем шаг h
и введем обозначения:
и
.
Тогда классический метод Рунге-Кутта
имеет вид
Эффективная оценка погрешности метода Рунге-Кутта затруднительна. Если число p определено, то для грубой оценки погрешности метода можно использовать так называемый принцип Рунге или метод двойного счета.
Пусть
известно, что на каждом шаге допущена
погрешность, приблизительно пропорциональная
(
),
и 2m
представляет собой общее число шагов
вычисления. В таком случае, предполагая,
что погрешность на каждом шаге одна и
та же, приближенно получим
,
(36)
где
- значение точного, а
- приближенного решения в точке
,
A
– неизвестный числовой множитель.
Согласно Рунге, производим тем же методом вторичный пересчет искомого решения y с двойным шагом H=2h. Тогда в силу нашего предположения будет допущена погрешность
(37)
где
- значение искомой функции в точке
,
вычисленное с шагом H=2h.
Из
формул (36) и (37) получаем
.
Отсюда находим неизвестную постоянную
и, следовательно,
Таким
образом, приближенно можно положить
,
где
- погрешность вычислений приближенного
значения
.
Применив принцип Рунге для оценки погрешности классического метода Рунге-Кутта с p=4, получим
.
Схемы Рунге-Кутта имеют ряд важных достоинств:
Все они имеют хорошую точность.
Они являются явными, т.е. значение yn+1 вычисляется по ранее найденным значениям за определенное число действий по определенным формулам.
Все схемы допускают расчет с переменным шагом; значит, нетрудно уменьшить шаг там, где функция быстро меняется.
Все схемы являются одношаговыми: для начала расчета достаточно выбрать сетку {
} и задать значение
; далее вычисления идут по одним и тем же формулам.