
- •I. Описание работы Дифференциальные уравнения являются тем языком, которым очень часто пользуются при математическом моделировании явлений и процессов самой разнообразной природы.
- •II. Общее описание численных методов решения задачи Коши Метод Эйлера
- •Метод Штёрмера
- •Метод Эйлера с регулировкой шага
- •Метод Рунге-Кутта
- •III. Анализ решения различных дифференциальных выражений
Федеральное агентство по образованию РФ
Нижегородский государственный университет
имени Н.И. Лобачевского
Факультет Вычислительной математики и кибернетики
Отчет по лабораторной работе
Решение дифференциальных уравнений
численными методами
как процесс математического
моделирования
Выполнил:
студент группы 8201
Курушин А.С.
Проверила:
Ежевская Н.А.
Нижний Новгород
2009 год
Оглавление
I. Описание работы 3
II. Общее описание численных методов решения задачи Коши 4
Метод Эйлера 4
Метод Штёрмера 5
Метод Эйлера с регулировкой шага 6
Метод Рунге-Кутта 7
III. Анализ решения различных дифференциальных выражений 8
dy/dx = (1 y2)1/2 8
dy/dx = (y+(y2-4x2)1/2) / x 9
dy/dx = (4-y2)1/2 / y 10
dy/dx = 1/2(y2-1) 11
dy/dx = xy(1+2y)/(1-y2) 12
x’=y-0.1x; y’=-x-0.1y 13
x’=y-x(x2+y2); y’=-x-y(x2+y2) 14
Заключение. 15
I. Описание работы Дифференциальные уравнения являются тем языком, которым очень часто пользуются при математическом моделировании явлений и процессов самой разнообразной природы.
Для большинства дифференциальных уравнений не известны способы построения точного аналитического решения, и здесь на помощь приходят численные методы.
Наша задача научиться распознавать и объяснять различные ошибки, которые могут возникнуть при численном методе решения. Так же стоит задача по внешнему виду дифференциального уравнения определять, какие ошибки численных методов могут нам встретиться и как их избежать.
II. Общее описание численных методов решения задачи Коши Метод Эйлера
Идея метода Эйлера состоит в том, что отрезок построения решения разбивается на равные отрезки, после чего на концах полученных отрезков приближённо находятся значения функции, являющейся решением уравнения. Тогда последовательно соединив полученные точки отрезками, мы получим приближённый вид решения. При увеличении количества, на которые разбивается исходный отрезок, мы получим более точное приближение к решению.
Рассмотрим
метод Эйлера для уравнения первого
порядка, разрешённого относительно
производной:
.
Разложим функцию y(x)
в окрестности точки
:
y
(
+h)=y(
)+
(
)h+o(h)
Если
имеется оценка
значения y(
),
имеющая погрешность
=o(h),
то есть y(
)=
+o(h),
то
( )=f( ,y( ))=f( , +o(h))= f( , +o(h))+f( , )-f( , )=
=o(h)
(
,
)+f(
,
)=f(
,
)+o(h).
Подставляя эти значения в формулу Тейлора, имеем:
y( +h)= +o(h)+h(f( , )+o(h)= +hf( , )+o(h), откуда мы имеем оценку для
y(
+h):
h
f(
,
),
имеющую погрешность
=o(h).
Таким образом, метод Эйлера – одношаговый метод первого порядка. Его разностная формула точна на шаге до членов первого порядка по h:
h
= f( , ),
Метод Эйлера допускает простую геометрическую интерпретацию: он представляет собой метод касательных. Если известно приближённое решение на одном конце отрезка (изначально это начальные условия), то можно вычислить наклон поля в этой точке, так как (x)=f(x,y), а x,y нам известны. Тогда заменим решение на этом отрезке на прямую, являющейся касательной. В этом случае мы сможем найти приближённое значение решения в следующем конце и так далее.
Метод Штёрмера
Чтобы
получить метод второго порядка, точный
до членов с
,
необходимо использовать оценку второй
производной.
Разложим в окрестности точки :
(
+h)=
(
)+h
(
)+o(h).
Тогда
(
)=
=
+
Разложение функции y(x) по формуле Тейлора в окрестности точки имеет вид:
(
+h)=y(
)+h
(
)+
(
)+o(
)
Подставляя значения производных, получаем что
(
+h)=(
+o(
))+h(f(
,
)+o(
))+
(
+
)+o(
)=
+h
f(
,
)+
(
)=
=
+
(
)
+o(
)
То есть
h
,
где
=
f(
,
),
=
,
(
+h)=
+o(
)
Метод Эйлера с регулировкой шага
Идея метода заключается в том, что
y
(
+h)=
o(h)
– Эйлер
y
(
+h)=
o(
)=
+h
+o(
)=
+h
+h
+o(
)
- Штёрмер
т.е.
(Штёрмер)= (Эйлер)+ h , а значит
(Эйлер)=o(h)=
h
+o(
)
и её главный член
=
h
Тогда метод Эйлера с регулировкой шага будет иметь следующий вид.
Пусть
- заданная точность. Вычисляется
=
+h
,
=
+h,
=
f(
,
),
=f(
,
).
Определяется
=
h
.
Если
<=
<=5
,
то
=
,
=
;
Если < , то = , = , h=2h;
Если >5 , то h= и происходит повторное вычисление.