Вы находитесь на странице: 1из 7

Міністерство освіти і науки України

Київський національний університет імені Тараса Шевченка


Факультет комп’ютерних наук та кібернетики

Лабораторна робота №3
з курсу «Чисельний аналіз»

«Чисельне розв’язання задачі Коші»

Виконав:
студент 3 курсу групи
OM
Смокович Олександр
Постановка задачі

На відрізку [0, l] методом Рунге-Кутти 4 порядку знайти розв'язок задачі Коші


для диференціального рівняння:

{
'' ' '' '
y + ky y +n y =f ( x ) ,
''
y ( 0 ) =d ,
y ' ( 0 )=2,
y ( 0 )=2 a ,

де

f ( x )=a e ax ( a ( ax+ 3 ) +k ( ax +2 ) ( x ( e ax +1 ) + d ) + xn )+ n e ax +n ,

−1
l=2 , a= , d=0.5 , k =3 , n=−1.
2

1) Побудувати та вивести графік наближеного та точного розв’язку.


2) Побудувати таблицю, яка містить наступні дані: значення точки x i,
значення точного розв’язку в точці x i, значення наближеного розв’язку в
точці x i, різницю між наближеним і точним розв’язіками.
Примітка: точний розв'язок задачі має вигляд y ( x )=x ( eax +1 ) +d

Теоретична частина
Метод Рунге-Кутти 4-го порядку

Нехай на відрізку [a , b] потрібно знайти чисельний розв'язок диференціаль-


ного рівняння:
'
y =f (x , y )

з початковою умовою y ( x 0 )= y 0 . Розіб'ємо відрізок [a , b] на n рівних частин


точками x i=x 0 +ih ( i=0 , … , n ) , де h=(b−a)/n .
В методі Рунге-Кутта послідовні значення y i шуканої функції y визначаються
по формулі:
y i+ 1= y i+ ∆ y .

Якщо розкласти функцію y в ряд Тейлора та обмежитись членами до h 4


включно, то приріст функції ∆ y можна представити у наступному вигляді:
2 3 4
' h '' h '' ' h '' ' '
∆ y = y ( x +h )− y ( x )=h y ( x ) + y ( x )+ y ( x ) + y ( x ).
2 6 24

Замість безпосередніх розрахунків, які фігурують у цій формулі, в методі


Рунге-Кутта визначаються чотири числа:

{
k 1=hf ( x , y ) ,
h
k 2=hf x + , y +
2 ( k1
2
, )
h
k 3=hf x + , y +
2 ( k2
2
, )
k 4=hf ( x +h , y +k 3 ) .

1 1 1 1
Якщо числам k 1 ; k 2 ; k 3 ; k 4 надати відповідно вагу 6 ; 3 ; 3 ; 6 , то середньозважене
цих чисел з точністю до четвертого степеня відповідно дорівнюють ∆ y , яке
визначається:
1
∆ y = (k ¿ ¿ 1+2 k 2 +2 k 3 +k 4 ). ¿
6

Таким чином для кожної пари поточних значень x i і y i визначаються значення:

{
(i)
k 1 =hf ( x i , y i ) ,

( )
(i )
(i )h k
k =hf x i + , y i + 1 ,
2
2 2

( )
(i )
(i )h k
k =hf x i + , y i + 2 ,
3
2 2
4 =hf ( x i + h , y i +k 3 ) .
k (i) (i)

Потім знаходиться:
1 (i) (i) (i ) (i )
∆ y i = ( k 1 +2 k 2 +2 k 3 + k 4 ) .
6

Після чого наступне наближення обчислюють по формулі:


y i+ 1= y i+ ∆ y i .
Це метод 4-го порядку, тобто похибка на кожному кроці становить O(h 5), а
сумарна похибка на кінцевому інтервалі інтегрування є величиною O(h 4 ) .

Метод Рунге-Кутти 4-го порядку


для системи диференціальних рівнянь
Маємо систему вигляду:

{
'
y 1=f 1 ( x , y 1 , … , y n ) ,
'
y 2=f 2 ( x , y 1 , … , y n ) ,

'
y n−1=f n−1 ( x , y 1 , … , y n ) ,
y 'n=f n ( x , y 1 , … , y n ) .

Тоді для кожного j -го рівняння формули (*) приймають вигляд:

{
1 j =h f j ( x i , y 1 , … , y j , … , y n ) ,
k (i) (i) (i) (i)

( )
(i) (i) (i)
h k 11 k1 j k1n
k =h f j x i + , y(i)
(i)
2j 1 + , … , y(i)
j + , … , y(i)
n + ,
2 2 2 2

( )
(i) (i) (i )
h k 21 k2 j k2n
k =h f j x i+ , y(i)
(i )
3j 1 + , … , y (i)
j + , … , y(i)
n + ,
2 2 2 2
4 j =h f j ( xi +h , y 1 + k 31 , … , y j + k 3 j , … , y n +k 3 n) .
k (i) (i ) (i ) (i ) (i ) (i) (i)

Для розв’язання системи диференціальних рівнянь методом Рунге-Кутти


необхідно виконати підрахунки в наступному порядку:

На кожному кроці i, починаючи з 0:

1. Підрахувати f j ( x i , y (i)
1 ,… , y j ,… , y n ) для всіх j=1 ,2 , … , n;
(i) (i )

2. Підрахувати значення k (i)1 j для всіх функцій y 1 , … , y n в точці x i;


(i )
k1 j
3. До початкових значень y (ij ) додати ;
2
(i ) (i ) (i)
k 11 (i) k 1 j (i) k 1 n
4. Підрахувати f 1 , … , f n для значень x i+ h , y(i)i + , … , y + ,… , y + ;
2 1 2 j
2 n
2
5. Для підрахунку k (2i)j помножити значення функцій f j на h ;
6. Аналогічним чином підрахувати коефіцієнти k (3i)j , k (4i )j ;
(i) 1
7. Знайти ∆ y j = 6 ¿;
8. Знайти y (ij +1)= y (i)j +∆ y (i)j ;
9. i:=i+1, перейти на пункт 1 .
Результати

Диференціальне рівняння:
' '' '' '
y +ky y + n y =f (x )

Після заміни
'
y 1= y , y 2= y , y 3 = y ' '

було зведено до системи з трьох диференціальних рівнянь першого порядку:

{
'
y 1= y 2 ,
y '2= y 3 ,
'
y 3=−k y 3 y 1−n y 2 + f ( x ) ,
y 1 ( 0 )=d ,
y 2 ( 0 )=2,
y 3 ( 0 )=2a .

Було знайдено наближений розв’язок задачі Коші для диференціального


рівняння методом Рунге-Кутти 4 порядку на відрізку x ∈ [ 0 ,l ] та побудовано
графік точного розв’язку та наближеного, отриманого за 200 точками:

Наведемо табличні результати для m = 20:

x y y_real residual

0.0000000 0.5000000 0.5000000 0.0000000


0.1052632 0.6951231 0.7051294 0.0100063

0.2105263 0.8809677 0.9000184 0.0190508

0.3157895 1.0582126 1.0854546 0.0272421

0.4210526 1.2274924 1.2621717 0.0346793

0.5263158 1.3894004 1.4308529 0.0414525

0.6315789 1.5444909 1.5921345 0.0476436

0.7368421 1.6932815 1.7466085 0.0533270

0.8421053 1.8362558 1.8948257 0.0585699

0.9473684 1.9738651 2.0372984 0.0634333

1.0526316 2.1065303 2.1745026 0.0679723

1.1578947 2.2346444 2.3068809 0.0722365

1.2631579 2.3585735 2.4348440 0.0762706

1.3684211 2.4786590 2.5587735 0.0801146

1.4736842 2.5952188 2.6790233 0.0838045

1.5789474 2.7085492 2.7959217 0.0873725

1.6842105 2.8189256 2.9097728 0.0908472

1.7894737 2.9266046 3.0208587 0.0942540

1.8947368 3.0318246 3.1294402 0.0976156

2.0000000 3.1348071 3.2357589 0.1009518

Вам также может понравиться