ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.05.2019
Просмотров: 1237
Скачиваний: 1
36
Рассчитываем с шагом h = 0.1
0.
????
0
= 1
1.
????
1
= ????
0
1 − 2????
0
∗ ????
0
∗ ℎ = 1 1 − 2 ∗ 0 ∗ 1 ∗ 0.1 = 1
2.
????
2
= ????
1
1 − 2????
1
∗ ????
1
∗ ℎ = 1 1 − 2 ∗ 0.1 ∗ 1 ∗ 0.1 = 0.98
3.
????
3
= ????
2
1 − 2????
2
∗ ????
2
∗ ℎ = 0.98 1 − 2 ∗ 0.2 ∗ 0.98 ∗ 0.1 = 0.94
***
10.
????
10
= ????
9
1 − 2????
9
∗ ????
9
∗ ℎ = 0.3817
Рассчитываем с шагом h = 0.05
0.
????
0
= 1
1.
????
1
= ????
0
1 − 2????
0
∗ ????
0
∗ ℎ = 1 1 − 2 ∗ 0 ∗ 1 ∗ 0.05 = 1
2.
????
2
= ????
1
1 − 2????
1
∗ ????
1
∗ ℎ = 1 1 − 2 ∗ 0.05 ∗ 1 ∗ 0.05 = 0.995
3.
????
3
= ????
2
1 − 2????
2
∗ ????
2
∗ ℎ = 0,995 1 − 2 ∗ 0.1 ∗ 0,995 ∗ 0.05 = 0.985
***
20. 10.
????
20
= ????
19
1 − 2????
19
∗ ????
19
∗ ℎ = 0.3743
Точное решение имеет вид ???? = ????
−????
2
???? 1 = 0.368
Относительное изменение полученного решения
???? =
????
2ℎ????
− ????
ℎ????
????
2ℎ????
=
0.3817 − 0.3743
0.3817
= 0.019
Относительная изменение составляет 1.9%
Относительная погрешность при шаге интегрирования h = 0.05
???? =
????
ℎ????
− ????
????
=
0.3817 − 0.368
0.3817
= 0.035
составляет 3.5%
Листинг программы решение обыкновенного дифференциального уравнения
методом Эйлера
Усовершенствованный метод Эйлера
Точность метода Эйлера можно повысить, если воспользоваться для
аппроксимации интеграла более точной формулой интегрирования –
формулой трапеций.
Основная идея этого метода: вычисляемое по формуле (5) очередное
значение ????
????+1
= ????
????
+ ℎ · ???? ????
????
, ????
????
будет точнее, если значение производной,
то есть угловой коэффициент прямой замещающей интегральную кривую на
37
отрезке ????
????
, ????
????+1
будет вычисляться не по левому краю (то есть в точке ????
????
), а
по центру отрезка ????
????
, ????
????+1
. Но так как значение производной между точками
????
????
и ????
????+1
не вычисляется, то перейдем к сдвоенным участкам
????
????−1
, ????
????+1
центром, в которых является точка ????
????
, при этом уравнение прямой получает
вид:
???? = ????
????−1
+ ???? ????
????
, ????
????
· (???? − ????
????−1
) (6)
А формула (5) получает вид
????
????+1
= ????
????
+ ∆????
????
= ????
????−1
+ 2ℎ · ????(????
????
, ????
????
) (7)
Формула (7) применена только для ???? ≥ 1, следовательно, значения ????
1
по ней получить нельзя, поэтому ????
????
находят по методу Эйлера, при этом для
получения более точного результата поступают так: с начала по формуле (5)
находят значение
????
1
2
= ????
0
+
ℎ
2
· ???? ????
0
, ????
0
(8)
В точке
????
1
2
= ????
0
+
ℎ
2
, а затем находится ????
1
по формуле (7) с шагом
ℎ
2
????
1
= ????
0
+ ℎ ∙ ???? ????
1
2
, ????
1
2
(9)
После того как
????
1
найдено дальнейшие вычисления при
???? = 1,2,3, … . , ????
производится по формуле (7)
????
2
= ????
0
+ 2ℎ · ???? ????
1
, ????
1
….
Пример
В качестве примера проведем расчеты по формулам усовершенствованного
метода Эйлера с шагом h=0,1 для задачи Коши ????
′
= −2????????, 0 < ???? <
1, ???? 0 = 1.
????
0
= 0; ????
0
= 1;
????
1
2
= ????
0
+
ℎ
2
= 0 + 0.05 = 0.05
????
1
2
= ????
0
+ ℎ ∗ −2 ∗ ????
0
∗ ????
0
= 1 + 0.1 ∗ 0 = 1
????
1
= ????
0
+ ℎ ∗ −2 ∗ ????
1
2
∗ ????
1
2
= 1 + 0.1 ∗ −2 ∗ 0.05 ∗ 1 = 0.99
????
2
= ????
0
+ ℎ ∗ −2 ∗ ????
1
∗ ????
1
= 1 + 0.1 ∗ −2 ∗ 0.1 ∗ 0.99 = 0.96
????
3
= ????
1
+ 2ℎ ∗ −2 ∗ ????
2
∗ ????
2
= 0.99 + 2 ∗ 0.1 ∗ −2 ∗ 0.2 ∗ 0.96 = 0.913
????
4
= ????
2
+ 2ℎ ∗ −2 ∗ ????
3
∗ ????
3
= 0.96 + 2 ∗ 0.1 ∗ −2 ∗ 0.3 ∗ 0.913 = 0.85
***
????
10
= ????
8
+ 2ℎ ∗ −2 ∗ ????
9
∗ ????
9
= 0.3656
Точное решение имеет вид ???? = ????
−????
2
38
???? 1 = 0.368
Относительная погрешность при шаге интегрирования h = 0.1
составляет 0.65%
???? =
???? 1 − ????
10
????(1)
=
0.368 − 0.3656
0.368
= 0.0065
Модифицированный метод (Эйлера-Коши)
Повысить точность и устойчивость вычисления решения можно с
помощью неявного метода Эйлера следующего вида.
Прогноз:
????
????+1
= ????
????
+ ℎ · ???? ????
????
, ????
????
(10)
Коррекция:
????
????+1
= ????
????
+ ℎ ∙
???? ????
????
,????
????
+???? ????
????+1
,????
????+1
2
(11)
Геометрически это означает, что с начало определяется направление
интегральной кривой в исходной точке (????
????
, ????
1
) и во вспомогательной точке
????
????+1
, ????
????+1
, а в качестве окончательного направления берется среднее
значение этих направлений.
Благодаря более точной формуле интегрирования, погрешность метода
пропорциональна уже квадрату шага интегрирования.
Пример
В качестве примера проведем расчеты по формулам модифицированным
методом Эйлера с шагом h=0,1 для задачи Коши ????
′
= −2????????, 0 < ???? <
1, ???? 0 = 1.
????
1
= ????
0
+ ℎ −2 ∗ ????
0
∗ ????
0
= 1 + 0.1 ∗ −2 ∗ 0 ∗ 1 = 1
????
1
= ????
0
+
ℎ
2
−2 ∗ ????
0
∗ ????
0
+ −2 ∗ ????
1
∗ ????
1
= 1 + 0.05 ∗ 0 + −2 ∗ 0.1 ∗ 1
= 0.99
????
2
= ????
1
+ ℎ −2 ∗ ????
1
∗ ????
1
= 0.99 + 0.1 ∗ −2 ∗ 0.1 ∗ 0.99 = 0.97
????
2
= ????
1
+
ℎ
2
−2 ∗ ????
1
∗ ????
1
+ −2 ∗ ????
2
∗ ????
2
= 0.99 + 0.05 ∗ −2 ∗ 0.1 ∗ 0.99 + −2 ∗ 0.2 ∗ 0.97 = 0.961
39
Таблица Решение уравнения модифицированным методами Эйлера
x
i
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
y
i
1
0.99 0.961 0.914 0.852 0.779 0.698 0.613 0.528 0.446 0.369
Точное решение имеет вид ???? = ????
−????
2
???? 1 = 0.368
Относительная погрешность при шаге интегрирования h = 0.1
составляет 0.27%
???? =
???? 1 − ????
10
????(1)
=
0.368 − 0.369
0.368
= 0.0027
Метод Рунге-Кутты
Воспользовавшись
хорошо
зарекомендовавшей
себя формулой
Симпсона, можно получить еще более точную формулу для решения задачи
Коши для ОДУ первого порядка - широко используемого в вычислительной
практике метода Рунге-Кутты.
В формуле Симпсона для приближенного вычисления определенного
интеграла используются значения подинтегрального выражения в трех
точках. В интеграле их всего две, поэтому введем дополнительную точку в
середине отрезка [x
i+1
, x
i
].
????
????+
1
2
= ????
????
+
ℎ
2
тогда можно определить так
????
????+1
= ????
????
+
???? ????, ???? ????????
????
????+
1
2
+ℎ
????
????+
1
2
−ℎ
????
????+1
= ????
????
+
ℎ
6
???? ????, ???? + 4???? ????
????+ℎ 2
, ????
????+ℎ 2
+ ???? ????
????+1
, ????
????+1
Полученное выражение является неявным, так как в правой части
содержатся еще не определенные значения функции y
i+h/2
и y
i+1
. Чтобы
воспользоваться этой формулой, надо использовать некоторое приближение
для вычисления этих значений ????
????+ℎ 2,
????
????+1
.
????
????+1
= ????
????
+
ℎ
6
???? ????
????
, ????
????
+ 4???? ????
????+ℎ 2
, ????
????+ℎ 2
+ ???? ????
????+1
, ????
????+1
При использовании различных методов приближенного вычисления этих
величин, получаются выражения для методов Рунге-Кутты различного
порядка точности.
40
Алгоритм Рунге-Кутты четвертого порядка - (погрешность порядка h
4
):
????
????+1
= ????
????
+
1
6
????
0
+ 2????
1
+ 2????
2
+ ????
3
где
????
0
= ℎ ∗ ???? ????
????
, ????
????
????
1
= ℎ ∗ ???? ????
????
+
ℎ
2
, ????
????
+
????
0
2
????
2
= ℎ ∗ ???? ????
????
+
ℎ
2
, ????
????
+
????
1
2
????
3
= ℎ ∗ ???? ????
????
+ ℎ, ????
????
+ ????
2
Алгоритм четвертого порядка требует на каждом шаге четырех
вычислений функции соответственно, но является весьма точным.
Пример
Используя алгоритм Рунге-Кутты четвертого порядка решить задачу Коши
????
′
= −2????????, 0 < ???? < 1, ???? 0 = 1 с шагом h=0.1
????
0
= 0
????
0
= ℎ ∗ ???? ????
0
, ????
0
= 0.1 ∗ −2 ∗ 0 ∗ 1 = 0
????
1
= ℎ ∗ ???? ????
0
+
ℎ
2
, ????
0
+
????
0
2
= 0.1 ∗ −2 ∗ 0 +
0.1
2
∗ 1 + 0 = −0.01
????
2
= ℎ ∗ ???? ????
0
+
ℎ
2
, ????
0
+
????
1
2
= 0.1 ∗ −2 ∗ 0 +
0.1
2
∗ 1 +
−0.01
2
= −0.00995
????
3
= ℎ ∗ ???? ????
0
+ ℎ, ????
0
+ ????
2
= 0.01 ∗ −2 ∗ 0.1 ∗ (1 − 0.00995) = −0.0198
????
1
= ????
0
+
1
6
????
0
+ 2????
1
+ 2????
2
+ ????
3
= 1 +
????
0
+ 2????
1
+ 2????
2
+ ????
3
6
= 0.99
Результаты расчета сведены в таблицу
????
????
0
0,1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
????
????
1
0.99
0.961
0.914
0.852
0.779
0.698
0.613
0.527
0.445
0.368
????
0
0
-0.02
-0.038
-0.055
-0.068
-0.078
-0.084
-0.086
-0.084
-0.08
-0.074
????
1
-0.01
-0.029
-0.047
-0.062
-0.074
-0.081
-0.085
-0.085
-0.082
-0.077
-0.07
????
2
-9.95
x
x
10
-3
-0.029
-0.047
-0.062
-0.073
-0.081
-0.085
-0.085
-0.083
-0.077
-0.07
????
3
-0.02
-0.038
-0.055
-0.068
-0.078
-0.084
-0.086
-0.084
-0.08
-0.074
-0.066
Относительная погрешность при шаге интегрирования h = 0.1
составляет 0.00%