лабы / Лаба_чм_№5
.pdfМинистерство цифрового развития, связи и массовых
коммуникаций Российской Федерации
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
Московский технический университет связи и информатики
___________________________________________________________________
Кафедра «Информатики»
Лабораторная работа №5 по дисциплине Численные методы «Методы решения обыкновенных дифференциальных уравнений»
Выполнил |
|
Студент группы БИК2205 |
_________________________ |
Проверил |
|
Старший преподаватель |
_________________________ Мацкевич А.Г. |
Москва 2024
1. Индивидуальное задание
y′ x3 y2 |
– исходное уравнение; |
||
a 0 |
b 1.2 |
– границы интервала поиска решения ДУ; |
|
h0 |
0.4 |
|
– шаг интегрирования; |
x0 |
0 |
y0 -2 |
– начальные условия. |
2. Аналитическое решение
Необходимо найти аналитическое решение заданного
дифференциального уравнения. Полное решение представлено ниже в приложении «А».
y -x4 |
4 |
– решение без учёта начальных условий; |
|
+C |
|||
|
Из начальных условий следует, что константа равна двум. Тогда
итоговое аналитическое решение исходного дифференциального уравнения равно:
y x - 4 x4 +2
3. Значения точного решения ДУ
Для нахождения значений точного решения необходимо подставить
значения иксов из заданного интервала и рассчитать игреки при полученных иксах.
i 1,2 b-a |
x a+i h0 |
yorg y x |
|
||
h0 |
i |
|
|
|
|
|
|
|
|
|
|
Значения иксов и игреков равно: |
|
|
|||
|
0.000 |
|
|
-2.000 |
|
|
0.400 |
|
|
-1.975 |
|
x= |
|
yorg= |
|
||
|
0.800 |
|
-1.660 |
|
|
1.200 |
|
-0.982 |
|
||
|
|
||||
4. Численное решение методом Эйлера
Для решения методом Эйлера необходимо записать исходное
уравнение в виде y′f x,y :
f x,y x3 y2 |
y′f x,y |
Тогда общая формула для определения следующего значения функции
по методу Эйлера будет иметь вид:
i 1,2 b-a y y +h0 |
f x ,y |
|
h0 |
i+1 i |
i i |
Для исходной функции:
yэ0 y0 yэi yэi-1+h0 f xi,yэi-1
Значения иксов и игреков равно по методу Эйлера равно:
|
0.000 |
|
|
-2.000 |
|
|
0.400 |
|
|
-1.898 |
|
x= |
|
yэ= |
|
||
|
0.800 |
|
-1.160 |
|
|
|
1.200 |
|
-0.230 |
|
|
|
|
||||
5. Значения погрешностей метода Эйлера
Необходимо найти значения погрешностей для метода Эйлера и
точного решения ДУ. Значения погрешности для каждого значения икса можно найти по следующей формуле:
i 1,2 b-a |
E |yorg |
-yэ |
| |
h0 |
i | i |
|
i| |
Значения погрешностей для метода Эйлера равно:
|
0.000 |
|
|
0.000 |
|
|
0.400 |
|
|
0.077 |
|
x= |
|
E= |
|
||
|
0.800 |
|
|
0.500 |
|
|
1.200 |
|
0.752 |
||
6. Программное решение методом Рунге-Кутта
Необходимо вычислить значения численного решения ДУ с
заданной точностью методом Рунге Кутта четвёртого порядка на заданной отрезке.
Вводные данные |
|
lb 0 rb 1.2 |
– границы интервала поиска решения ДУ; |
h0 0.4 |
– шаг интегрирования; |
ε 10-4 |
– желаемая точность; |
f x,y x3 y2 |
– представление через функцию; |
x0 0 y0 -2 |
– начальные условия. |
Блок программы |
|
|
|
|
|||
k1 x,y f x,y |
|
|
|
|
|
||
k2 |
|
|
|
h |
,y+ |
h k1 |
|
x,y,h,k1 f x+ |
|
|
|
||||
|
|
|
|
2 |
|
2 |
|
|
|
|
|
|
|
||
k3 |
|
|
|
h |
,y+ |
h k2 |
|
x,y,h,k2 f x+ |
|
|
|
||||
|
|
|
|
2 |
|
2 |
|
k4 |
x,y,h,k3 f |
|
|
|
|||
x+h,y+h k3 |
|
||||||
|
|
|
|
|
|
|
|
‖ |
|
|
|
|b-a| |
|| |
|
Err y,Y,h,k,a,b ‖fori 0,1 |
h |
|| |
||||
‖ |
|
|
|
|
|| |
|
‖ |
‖ |
|
|
abs y |
-Y |
|| |
‖ |
‖ |
|
← |
|
i k |
i 2 k || |
‖ |
‖ |
i |
|
15 |
|| |
|
‖ |
‖ |
|
|
|| |
||
‖ |
|
|
|
|
|
| |
‖ |
|
|
|
|
|
| |
y |
h,a,b,y |
|
‖i←|b-a|÷h |
|
|
|
| |
||||||
|
rk |
s |
|
‖ |
|
|
|
|
|
|
|
|
| |
|
|
|
|
‖x ←0 |
|
|
|
|
|
|
| |
||
|
|
|
|
‖ |
i |
|
|
|
|
|
|
|
| |
|
|
|
|
‖x ←a |
|
|
|
|
|
|
| |
||
|
|
|
|
‖ |
0 |
|
|
|
|
|
|
|
| |
|
|
|
|
‖y ←0 |
|
|
|
|
|
|
| |
||
|
|
|
|
‖ |
i |
|
|
|
|
|
|
|
| |
|
|
|
|
‖y ←y |
s |
|
|
|
|
|
| |
||
|
|
|
|
‖ |
0 |
|
|
|
|
|
|
| |
|
|
|
|
|
‖ |
|
|
|
|
|
|
|
|
|| |
|
|
|
|
‖forj 1,2 i |
|
|
|
|| |
|||||
|
|
|
|
‖ |
‖K1←k1 |
x ,y |
|
|
|
|| |
|||
|
|
|
|
‖ |
‖ |
|
|
|
j-1 j-1 |
|| |
|||
|
|
|
|
‖ |
‖K2←k |
|
x ,y ,h,K1 |
|| |
|||||
|
|
|
|
‖ |
‖ |
|
|
2 |
j-1 j-1 |
|
|| |
||
|
|
|
|
‖ |
‖ |
|
|
|
x ,y ,h,K2 |
|| |
|||
|
|
|
|
‖K3←k3 |
|||||||||
|
|
|
|
‖ |
‖ |
|
|
|
j-1 j-1 |
|
|| |
||
|
|
|
|
‖ |
‖K4←k |
4 |
x ,y ,h,K3 |
|| |
|||||
|
|
|
|
‖ |
‖ |
|
|
j-1 j-1 |
|
|| |
|||
|
|
|
|
‖ |
‖x ←x |
|
+h |
|
|
|
|| |
||
|
|
|
|
‖ |
‖ j |
|
j-1 |
|
|
|
|| |
||
|
|
|
|
‖ |
‖ |
←yj-1+h÷6 |
|
K1+2 K2+2 K3+K4 |
|| |
||||
|
|
|
|
‖ |
‖yj |
|
|| |
||||||
|
|
|
|
‖ |
‖ |
|
|
|
|
|
|
|
|| |
|
|
|
|
‖ |
|
|
|
|
|
|
|
|
| |
|
|
|
|
‖y |
|
|
|
|
|
|
|
| |
|
y |
rk_res |
h,ε,a,b |
‖Y ←y |
0 |
|
|
|
|
|
|
|
|
| |
|||||
|
|
‖ |
0 |
|
|
|
|
|
|
|
|
|
|
|
| |
|||
|
|
|
‖fori 0,1 |b-a|÷h -1 |
|
| |
| |
||||||||||||
|
|
|
‖ |
‖l←i h |
|
|
|
|
|
|
| |
| |
||||||
|
|
|
‖ |
|
|
|
|
|
|
| |
||||||||
|
|
|
‖ |
‖ |
|
|
|
|
|
|
|
|
|
|
|
|
| |
| |
|
|
|
‖ |
‖r← i+1 h |
|
|
|
| |
| |
|||||||||
|
|
|
‖ |
‖ |
←1 |
|
|
|
|
|
|
|
| |
| |
||||
|
|
|
‖ |
‖k←1 |
|
|
|
|
|
|
|
| |
| |
|||||
|
|
|
|
|
|
|
|
|
|
| |
||||||||
|
|
|
‖ |
‖ |
|
|
|
|
|
|
|
|
|
|
|
|
| |
| |
|
|
|
‖ |
‖stp←h |
|
|
|
|
|
|
| |
|||||||
|
|
|
‖ |
‖while |
≥ε |
|
|
|
|
|
| |
| |
| |
|||||
|
|
|
‖ |
‖ |
‖Y1 |
|
←y |
|
|
stp,l,r,Y |
| |
| |
| |
|||||
|
|
|
‖ |
rk |
rk |
| |
||||||||||||
|
|
|
‖ |
‖ |
‖ |
|
|
|
|
|
|
i |
| |
| |
| |
|||
|
|
|
‖ |
‖ |
Y2 |
|
←y |
|
|
stp÷2,l,r,Y |
| |
| |
| |
|||||
|
|
|
‖ |
‖ |
‖ |
rk |
rk |
| |
| |
|||||||||
|
|
|
‖ |
|
|
|
|
|
|
i |
| |
| |
||||||
|
|
|
‖ |
‖ |
‖ |
|
|
|
|
|
|
|
|
|
| |
| |
||
|
|
|
‖ |
‖ |
‖ |
|
←max Err |
Y1rk,Y2rk,h,k,l,r |
| |
| |
| |
|||||||
|
|
|
‖ |
‖k←k 2 |
|
|
|
|
|
| |
| |
|||||||
|
|
|
‖ |
‖ |
|
|
|
|
|
| |
| |
|||||||
|
|
|
‖ |
‖ |
‖stp←stp÷2 |
|
|
| |
| |
|||||||||
|
|
|
‖ |
‖ |
‖ |
|
|
←Y2rk |
|
|
|
|
| |
| |
| |
|||
|
|
|
‖ |
‖Y |
|
|
|
|
|
|
|
| |
| |
|||||
|
|
|
‖ |
‖ |
i+1 |
|
|
|
length Y2rk -1 |
|
| |
| |
||||||
|
|
|
‖K ←k |
|
|
|
|
|
|
|
| |
| |
||||||
|
|
|
‖ |
‖ |
i |
|
|
|
|
|
|
|
|
|
|
|
| |
| |
|
|
|
‖ |
‖ |
|
|
|
|
|
|
|
|
|
|
|
|
| |
| |
|
|
|
‖ |
‖Di← |
|
|
|
|
|
|
|
|
| |
| |
||||
|
|
|
‖ |
‖ |
|
|
|
|
|
|
|
|
|
|
|
|
|| |
|
|
|
|
‖ |
|
|
|
←Y |
|
|
|
|
|
|
|
|
| |
||
|
|
|
‖res0 |
|
|
|
|
|
|
|
|
| |
||||||
|
|
|
‖ |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
‖res1 |
←stack 0 |
,K |
|
|
| |
||||||||||
|
|
|
‖ |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
‖res |
|
←stack 0 |
,D |
|
|
| |
|||||||||
|
|
|
‖ |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
‖res |
|
|
|
|
|
|
|
|
|
|
|
|
| |
||
Yrk yrk_res h0,ε,lb,rb |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Значения иксов и игреков равно по методу Руге-Кутта равно:
|
0.000 |
|
|
|
|
-2.000 |
|
|
0.400 |
|
|
|
|
-1.975 |
|
x= |
|
Yrk |
0 |
= |
|
||
|
0.800 |
|
|
-1.660 |
|
||
|
1.200 |
|
|
|
-0.982 |
|
|
|
|
|
|
||||
Количество дроблений каждого изначального интервала для
достижения требуемой точности:
0 Yrk = 2 1 2
4
7. Значения погрешностей для метода Рунге-Кутта
Значение погрешности по методу Рунге-Кутта вычисляются функцией yrk_res h0,ε,lb,rb , описанной в пункте 6.
Значения погрешностей для метода Рунге-Кутта равно:
|
0.000000 |
|
|
|
|
0 |
|
|
|
|
0.400000 |
|
|
|
|
5.114 |
10 |
-6 |
|
x= |
|
Yrk |
2 |
= |
-5 |
|
|||
|
0.800000 |
|
|
|
6.218 |
10 |
|
||
|
|
|
|
|
|
||||
|
1.200000 |
|
|
|
2.11 10-6 |
|
|||
8. Все решения исходного ДУ
Ниже представлены все решения и погрешности решений исходного
ДУ, а также график решений.
xi yorg_i |
yэ_i |
Ei |
yrk_i |
i |
K
0.0 -2.000 -2.000 0.000 -2.000 0.00000 0 0.4 -1.975 -1.898 0.077 -1.975 5.114 10-6 2 0.8 -1.660 -1.160 0.500 -1.660 6.218 10-5 2 1.2 -0.982 -0.230 0.752 -0.982 2.11 10-6 4
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
0.6 |
0.7 |
0.8 |
0.9 |
1 |
1.1 |
1.2 |
1.3 |
-0.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
-0.4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
-0.6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
-0.8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
-1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
-1.2 |
|
|
|
|
|
|
|
|
|
|
|
|
yorg_i |
-1.4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-1.6 |
|
|
|
|
|
|
|
|
|
|
|
|
yэ_i |
-1.8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-2 |
|
|
|
|
|
|
|
|
|
|
|
|
yrk_i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xi |
|
|
|
|
|
|
|
|
|
|
|
|
|
xi |
|
|
|
|
|
|
|
|
|
|
|
|
|
xi |
|
|
|
|
|
|
|
График решений ДУ, полученных различными методами |
|||||||||||||
