Численное решение задачи Коши
1.1 Постановка задачи
Найти приближенное решение задачи Коши для обыкновенного дифференциального уравнения (ОДУ) 1 порядка
(1)
и оценить погрешность решения задачи.
Порядок решения задачи:
1. Задать исходные данные: функцию f правой части, начальное значение .
2. Используя функцию eyler (см. ПРИЛОЖЕНИЕ B), найти приближенное решение задачи Коши с шагом h=0.1 по явному методу Эйлера.
3. Используя встроенную функцию rkfixed пакета MATHCAD, найти приближенное решение задачи Коши с шагом h=0.1 по методу Рунге-Кутты 4 порядка точности (см. ПРИЛОЖЕНИЕ B).
4. Найти решение задачи Коши аналитически.
5. Построить таблицы значений приближенных и точного решений. На одном чертеже построить графики приближенных и точного решений.
6. Оценить погрешность приближенных решений двумя способами:
a) по формуле ; здесьи - значения точного и приближенного решений в узлах сетки , i=1,..N;
b) по правилу Рунге (по правилу двойного пересчета) (см. ПРИЛОЖЕНИЕ C).
7. Выяснить, при каком значении шага h=h* решение, полученное по методу Эйлера, будет иметь такую же погрешность (см. п. 6а), как решение, полученное с помощью метода Рунге-Кутты с шагом h=0.1.
УКАЗАНИЕ. В п. 7 рекомендуется провести серию вычислений решения по методу Эйлера, дробя шаг h пополам.
1.2 Исходные данные
N |
f(t,y) |
t0 |
T |
y0 |
|
1.4 |
0 |
1 |
1 |
1.3 Решение поставленной задачи
1) Задача Коши: y(t)=, t0=0, T=1, y0=1.
Исходные данные:
Начальное значение:
Концы отрезка:
Шаг сетки:
Число узлов сетки:
2) Функция, реализующая явный метод Эйлера, возвращает вектор решения:
Входные параметры:
f - функция правой части;
y0 - начальное значение;
t0 - начальная точка отрезка;
h - шаг сетки;
N - число узлов сетки.
3) Приближенное решение задачи Коши с шагом h=0.1 по методу Рунге-Кутты 4 порядка точности с помощью встроенной функции rkfixed пакета MATHCAD.
Функция rkfixed возвращает матрицу, первый столбец которой содержит узлы сетки, а второй - приближенное решение в этих узлах.
4) Аналитическое решение задачи:
,
,
,
= ,
,
По методу вариации произвольной постоянной заменим постоянную С на функцию C(t) и решим неоднородное уравнение:
Подставляем в исходное уравнение:
=,
,
Решение в MathCad:
5) Решения, полученные различными способами:
Метод Эйлера:
Метод Рунге-Кутты:
Точное решение:
Графики приближенных и точного решений:
6) Рассчитаем погрешность полученных приближенных решений:
Погрешность метода Эйлера:
Вычисление погрешности по правилу Рунге:
Вычисление приближенных решений с шагом h/2:
Вычисление погрешностей:
Значение погрешностей:
7) Проведём серию вычислений решения по методу Эйлера, дробя шаг h пополам.
Первая итерация:
Вторая итерация:
Третья итерация:
И т.д.
Девятая итерация:
При значении шага hd=h/1024=0.1/1024=0,0000977 решение, полученное по методу Эйлера, будет иметь примерно такую же погрешность, как и решение, полученное с помощью метода Рунге-Кутты с шагом h=0.1.
Погрешность решения по методу Эйлера с шагом hd=0,0000977 :
Погрешность решения по методу Рунге-Кутты с шагом h=0.1 :
Вывод: явный метод Эйлера - это численный метод 1-го порядка точности. Метод Рунге-Кутты - это метод 4-го порядка точности. Это означает, что при одном и том же значении шага, метод Рунге-Кутты даёт более точное значение. Поэтому погрешности методов сильно (на несколько порядков) отличаются. В рассмотренном выше примере с помощью метода Рунге-Кутты было получено решение, которое совпадает с решением, полученным аналитическим путём.
2. Задача № 2 (2.2)