Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы / Лаба_чм_№5

.pdf
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
412.23 Кб
Скачать

Министерство цифрового развития, связи и массовых

коммуникаций Российской Федерации

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

Московский технический университет связи и информатики

___________________________________________________________________

Кафедра «Информатики»

Лабораторная работа №5 по дисциплине Численные методы «Методы решения обыкновенных дифференциальных уравнений»

Выполнил

 

Студент группы БИК2205

_________________________

Проверил

 

Старший преподаватель

_________________________ Мацкевич А.Г.

Москва 2024

1. Индивидуальное задание

yx3 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. Численное решение методом Эйлера

Для решения методом Эйлера необходимо записать исходное

уравнение в виде yf x,y :

f x,y x3 y2

yf 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

 

 

 

||

 

 

 

 

K1k1

x ,y

 

 

 

||

 

 

 

 

 

 

 

j-1 j-1

||

 

 

 

 

K2k

 

x ,y ,h,K1

||

 

 

 

 

 

 

2

j-1 j-1

 

||

 

 

 

 

 

 

 

x ,y ,h,K2

||

 

 

 

 

K3k3

 

 

 

 

 

 

 

j-1 j-1

 

||

 

 

 

 

K4k

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

 

|

|

 

 

 

li h

 

 

 

 

 

 

|

|

 

 

 

 

 

 

 

 

 

|

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|

|

 

 

 

ri+1 h

 

 

 

|

|

 

 

 

←1

 

 

 

 

 

 

 

|

|

 

 

 

k←1

 

 

 

 

 

 

 

|

|

 

 

 

 

 

 

 

 

 

 

|

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|

|

 

 

 

stph

 

 

 

 

 

 

|

 

 

 

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

|

|

|

 

 

 

kk 2

 

 

 

 

 

|

|

 

 

 

 

 

 

 

 

|

|

 

 

 

stpstp÷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

 

 

 

 

 

 

 

График решений ДУ, полученных различными методами

Соседние файлы в папке лабы