You are on page 1of 10

6.

Početni problem za obične


diferencijalne jednadžbe
Promatrat ćemo običnu diferencijalnu jednadžbu

dy
= f (x, y), y(x0 ) = y0 ,
dx

pri čemu pretpostavljamo da je funkcija f (x, y) neprekidna na vremenskom intervalu


x0 ≤ x ≤ b i za −∞ < y < ∞.
Najjednostavnije metode rješavanja te diferencijalne jednadžbe su jednokoračne
Runge–Kutta metode, od kojih smo spomenuli one reda 1, RK-1 (poznata još i
kao Eulerova metoda),

yn+1 = yn + hn f (xn , yn ), n = 0, 1, . . . ,

reda 2, tzv. RK-2

1
yn+1 = yn + (k1 + k2 ), n = 0, 1, 2, . . . ,
2

gdje je

k1 = hn f (xn , yn )
k2 = hn f (xn + hn , yn + k1 ),

i reda 4, tzv. RK-4

1
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 ), n = 0, 1, 2, . . . ,
6

gdje je

k1 = hn f (xn , yn )
1 1
k2 = hn f (xn + hn , yn + k1 )
2 2
1 1
k3 = hn f (xn + hn , yn + k2 )
2 2
k4 = hn f (xn + hn , yn + k3 ).

Ako umjesto jedne jednadžbe želimo rješavati sustav jednadžbi, onda treba
upamtiti da veličine yn , kn i f (xn , yn ) postaju vektori, dok hn i xn ostaju ska-
lari.
97

Ako želite riješiti diferencijalnu jednadžbu višeg reda, prvo je treba svesti na
sustav prvog reda.
Diferencijalna jednadžba je kruta ako mala perturbacija početnih vodi na veliku
perturbaciju u rješenju.
Zadatak 6.1. Eulerovom metodom s korakom h = 0.5 nađite rješenje diferencijalne
jedandžbe
dy
= y 2 + x, y(0) = 0.25.
dx
u točki x = 0.5.
Rješenje. Primijetite da nam je potreban samo jedan korak, jer startamo iz točke
x0 = 0 u kojoj je y0 = 0.25. U sljedećem koraku smo u x1 = x0 + h = 0.5. Funkcija
je
f (x, y) = y 2 + x,
pa dobivamo

y1 = y0 + hf (x0 , y0 ) = 0.25 + 0.5 · f (0, 0.25) = 0.25 + 0.5 · (0.252 + 0)


= 0.25 + 0.5 · 0.0625 = 0.28125.

Prema tome, približno rješenje ove diferencijalne jednadžbe u 0.5 je 0.28125.


Zadatak 6.2. Riješite diferencijalnu jednadžbu iz prethodnog zadatka korištenjem
RK-2 i RK-4 metoda.
Rješenje. Ponovno, potreban je samo jedan korak, x0 = 0, y0 = 0.25. Za RK-2 prvo
moramo izračunati k1 i k2

k1 = hn f (xn , yn ) = 0.5f (0, 0.25) = 0.5 · (0.252 + 0) = 0.03125,


k2 = hn f (xn + hn , yn + k1 ) = 0.5f (0 + 0.5, 0.25 + 0.03125) = 0.5f (0.5, 0.28125)
= 0.5 · (0.281252 + 0.5) = 0.28955078.

Nadalje,
1 1
y1 = y0 + (k1 + k2 ) = 0.25 + (0.03125 + 0.28955078) = 0.41040039.
2 2
Za RK-4 imamo

k1 = hn f (xn , yn ) = 0.5f (0, 0.25) = (ovo smo već izračunali) = 0.03125,


1 1
k2 = hn f (xn + hn , yn + k1 ) = 0.5f (0 + 0.5 · 0.5, 0.25 + 0.5 · 0.03125)
2 2
= 0.5f (0.25, 0.265625) = 0.5 · (0.2656252 + 0.25) = 0.16027832
1 1
k3 = hn f (xn + hn , yn + k2 ) = 0.5f (0.25, 0.25 + 0.5 · 0.16027832)
2 2
= 0.5f (0.25, 0.33013916) = 0.5 · (0.330139162 + 0.25) = 0.17949593
k4 = hn f (xn + hn , yn + k3 ) = 0.5f (0 + 0.5, 0.25 + 0.17949593)
= 0.5f (0.5, 0.42949593) = 0.5 · (0.429495932 + 0.5) = 0.34223338.
98 6. Početni problem za obične diferencijalne jednadžbe

Nadalje
1
y1 = y0 + (k1 + 2k2 + 2k3 + k4 )
6
1
= 0.25 + (0.03125 + 2 · 0.16027832 + 2 · 0.17949593 + 0.34223338)
6
= 0.42550531.

Zadatak 6.3. Diferencijalna jednadžba

y 0 + y = sin x + 3 cos x

uz početni uvjet y(0) = 1 ima egzaktno rješenje

y(x) = 2 sin x + cos x.

Diferencijalnu jednadžbu rješavamo korištenjem RK-3 metode:


1
yn+1 = yn + (k1 + 4k2 + k3 )
6
pri čemu je

k1 = hn f (xn , yn ),
 
1 1
k2 = hn f xn + h, yn + k1 ,
2 2
k3 = hn f (xn + h, yn − k1 + 2k2 ),

za x = 0.2 uz fiksni korak h = 0.2. Odredite relativnu grešku dobivene aproksimacije


s obzirom na egzaktno rješenje.
Rješenje. Očito je x0 = 0, y0 = y(0) = 1, a prebacivanjem y na desnu stranu
dobivamo
f (x, y) = −y + sin x + 3 cos x.
Tražimo rješenje u 0.2 pa treba napraviti samo jedan korak duljine h = h0 = 0.2.
Prvo računamo k1 , zatim k2 i na kraju k3 :

k1 = hf (x0 , y0 ) = 0.2f (0, 1) = 0.2(−1 + sin 0 + 3 cos 0) = 0.4


 
1 1
k2 = hf x0 + h, y0 + k1 = 0.2f (0 + 0.1, 1 + 0.2) = 0.2f (0.1, 1.2)
2 2
= 0.2(−1.2 + sin 0.1 + 3 cos 0.1) ≈ 0.376969
k3 = hf (x0 + h, y0 − k1 + 2k2 ) ≈ 0.2f (0 + 0.2, 1 − 0.4 + 2 · 0.376969)
≈ 0.2f (0.2, 1.353938) = 0.2(−1.353938 + sin 0.2 + 3 cos 0.2) ≈ 0.3569862.

Tražena aproksimacija jednaka je


1 1
y1 = y0 + (k1 + 4k2 + k3 ) ≈ 1 + (0.4 + 4 · 0.376969 + 0.3569862) ≈ 1.377477.
6 6
99

Egzaktno rješenje je

y(0.2) = 2 sin 0.2 + cos 0.2 ≈ 1.377405,

stoga relativna greška približno iznosi

|y1 − y(0.2)| 1.377477 − 1.377405


rel_err = ≈ ≈ 0.000052.
|y(0.2)| 1.377405

Zadatak 6.4. Implicitna Eulerova metoda izgleda ovako

yn+1 = yn + hn f (xn+1 , yn+1 ).

Tom metodom nađite aproksimaciju rješenja diferencijalne jednadžbe

y0 = x + y

u točki 0.2, ako je početni uvjet y(0) = 1, a fiksni korak h = 0.2.

Rješenje. Iz početnih uvjeta je x0 = 0, y0 = y(0) = 1 i

f (x, y) = x + y.

Treba napraviti samo jedan korak metode i to za h = 0.2. Uvrštavenjem funkcije f


dobivamo da je prvi korak metode

y1 = y0 + hf (x1 , y1 ) = y0 + h(x1 + y1 ),

pri čemu ne znamo y1 . Uvrštavanjem poznatih veličina y0 = 1, h = 0.2 i x1 = 0.2


dobivamo
y1 = 1 + 0.2(0.2 + y1 ) = 1.04 + 0.2y1 .
Prebacivanjem člana s y1 na lijevu stranu i dijeljenjem s 0.8 dobivamo približno
rješenje y(0.2) ≈ y1 = 1.3.

Zadatak 6.5. Diferencijalnu jednadžbu

y 0 = xy + x + 1,

uz početnu uvjet y(0) = 2 rješavamo korištenjem dvokoračne metode (svaki korak


koristi vrijednosti prethodna dva) s fiksnim korakom h,

3 1
yn+2 = yn+1 + hf (xn+1 , yn+1 ) − hf (xn , yn ), n ≥ 0,
2 2
Budući da su na početku potrebne dvije vrijednosti, y0 i y1 , vrijednost y1 računamo
RK-1 metodom. Korištenjem dvokoračne metode s korakom h = 0.1 nađite približno
rješenje zadane diferencijalne jednadžbe u x = 0.3.
100 6. Početni problem za obične diferencijalne jednadžbe

Rješenje. Tražimo aproksimaciju rješenja u x = 0.3, a radimo s korakom h = 0.1 pa


treba napraviti tri koraka. Prvo tražimo y1 korištenjem Eulerove metode s x0 = 0,
y0 = 2 i
f (x, y) = xy + x + 1.
Dobivamo
y1 = y0 + hf (x0 , y0 ) = 2 + 0.1f (0, 2) = 2 + 0.1 = 2.1.
Sada možemo napraviti dva koraka dvokoračne metode
3 1
y2 = y1 + hf (x1 , y1 ) − hf (x0 , y0 )
2 2
3 1
= 2.1 + · 0.1 · f (0.1, 2.1) − · 0.1 · f (0, 2)
2 2
3 1
= 2.1 + · 0.1 · (0.1 · 2.1 + 0.1 + 1) − · 0.1 · (0 · 2 + 0 + 1) = 2.2465
2 2
3 1
y3 = y2 + hf (x2 , y2 ) − hf (x1 , y1 )
2 2
3 1
= 2.2465 + · 0.1 · f (0.2, 2.2465) − · 0.1 · f (0.1, 2.1)
2 2
3 1
= 2.2465 + · 0.1 · (0.2 · 2.2465 + 0.2 + 1) − · 0.1 · (0.1 · 2.1 + 0.1 + 1)
2 2
= 2.428395.
Tražena aproksimacija je y(0.3) ≈ y3 = 2.428395.
Zadatak 6.6. Za sustav diferencijalnih jednadžbi
y10 = y1 + y2 y1 (0) = 0,
y20 = −y1 + y2 y2 (0) = 1,
nađite aproksimaciju rješenja u x = 0.2 RK-2 metodom s korakom h = 0.1.
Rješenje. Prvo treba pravilno napisati sustav, imenujući neke funkcije vektorima
       
y1 y1 (0) 0 ~ y1 + y2
~y = , ~y0 = ~y (0) = = , f (x, ~y ) = .
y2 y2 (0) 1 −y1 + y2
Najprije, vidimo da su nam potrebna 2 koraka duljine 0.1 da bismo stigli u 0.2.
Za RK-2 prvo moramo naći k1 i k2 koji su vektori. Da bismo razlikovali k-ove u
(i)
raznim koracima, indeksirajmo ih još i gornjim indeksom, tako da, na primjer, k1
znači vektor k1 u i-tom koraku.
Dakle,
        
(1)
~k = hf~(x0 , ~y0 ) = 0.1f~ 0, 0 0 + 1 1 0.1
1 = 0.1 = 0.1 =
1 −0 + 1 1 0.1
       
~k (1) = hf~(x0 + h, ~y0 + ~k (1) ) = 0.1f~ 0 + 0.1, 0 + 0.1 ~
= 0.1f 0.1,
0.1
2 1
1 0.1 1.1
     
0.1 + 1.1 1.2 0.12
= 0.1 = 0.1 = .
−0.1 + 1.1 1.0 0.10
101

Nadalje, (ovdje y1 označava sljedeću iteraciju, a ne varijablu)


           
1 ~ (1) ~ (1) 0 1 0.1 0.12 0 0.11 0.11
~y1 = ~y0 + (k1 + k2 ) = + + = + = .
2 1 2 0.1 0.10 1 0.1 1.10

Dakle, u 0.1 su aproksimacije rješenja y1 (0.1) ≈ 0.11 i y2 (0.1) ≈ 1.10.


Sada treba napraviti još jedan korak
    
(2)
~k = hf~(x1 , ~y1 ) = 0.1f~ 0.1, 0.11 0.11 + 1.10
1 = 0.1
1.10 −0.11 + 1.10
   
1.21 0.121
= 0.1 =
0.99 0.099
    
~k (2) = hf~(x1 + h, ~y1 + ~k (2) ) = 0.1f~ 0.1 + 0.1, 0.11 + 0.121
2 1
1.10 0.099
        
0.231 0.231 + 1.199 1.430 0.1430
= 0.1f~ 0.2, = 0.1 = 0.1 = .
1.199 −0.231 + 1.199 0.968 0.0968

Nadalje, (ovdje ~y1 i ~y2 označavaju iteracije, a ne varijable)


     
1 ~ (2) ~ (2) 0.11 1 0.121 0.1430
~y2 = ~y1 + (k1 + k2 ) = + +
2 1.10 2 0.099 0.0968
     
0.11 0.132 0.2420
= + = .
1.10 0.0979 1.1979

Znajući da je pravo rješenje ovog sustava

y1 (x) = ex sin x
y2 (x) = ex cos x

nije teško pokazati da su prava rješenja u 0.2

y1 (0.2) = 0.24265527
y2 (0.2) = 1.19705602,

pa smo dobili dobre aproksimacije rješenja.

Zadatak 6.7. Diferencijalnu jednadžbu

y (4) + (x + 1)y 0 + y + x + 1 = 0

napišite u obliku sustava diferencijalnih jednadžbi prvog reda.

Rješenje. Redom zamjenjujemo derivacije y-a novim varijablama:

y0 = z
z 000 + (x + 1)z + y + x + 1 = 0.
102 6. Početni problem za obične diferencijalne jednadžbe

Vidimo da u drugoj jednadžbi imamo treću derivaciju. Ponovimo zamjenu

y0 = z
z0 = u
u00 + (x + 1)z + y + x + 1 = 0.

Očito nam treba još jedna zamjena

y0 = z
z0 = u
u0 = v
v 0 + (x + 1)z + y + x + 1 = 0,

pa sustav uobičajeno pišemo

y0 =z
z0 =u
u0 =v
v0 = −(x + 1)z − y − x − 1.

Ako zadamo i početne uvjete (u kojima na isti način supstituiramo varijable), onda
možemo takvu diferencijalnu jednadžbu riješiti proizvoljnom RK-metodom. U vek-
toru rješenja su komponente redom y(xn ), y 0 (xn ), y 00 (xn ), y 000 (xn ).
Zadatak 6.8. Diferencijalna jednadžba

y (4) − y 2 = sin2 x + cos x − 1

uz početne uvjete y(0) = 1, y 0 (0) = 0, y 00 (0) = −1, y (3) = 0 ima egzaktno rješenje
y(x) = cos x. Diferencijalnu jednadžbu prvo svedite na sustav diferencijalnih jed-
nadžbi prvog reda, a zatim nađite njeno približno rješenje Runge–Kutta metodom 1.
reda za x = 0.5 uz korak h = 0.5. Odredite apsolutnu grešku dobivene aproksimacije
s obzirom na egzaktno rješenje.
Rješenje. Uvodimo supstitucije

y 0 = z,
z 0 = y 00 = u,
u0 = y 000 = v,
v 0 = y (4) = y 2 + sin2 x + cos x − 1,

čime dobivamo sustav

y0 = z,
z0 = u,
u0 = v,
v0 = y 2 + sin2 x + cos x − 1.
103

Definiramo vektore
       
y y(0) 1 z
z   y 0 (0)   0 u
f~(x, ~y ) = 
 
~y = 
u , ~y0 = ~y (0) =  y 00 (0)  = −1 ,
     .
 v 
v y 000 (0) 0 2 2
y + sin x + cos x − 1

Rješenje ćemo dobiti u prvom koraku jer tražimo aproksimaciju u x1 = 0.5 = x0 +h,

~y1 = ~y0 + hf~(x0 , ~y0 )


        
1 1 1 0
 0
 + 0.5f~ 0,  0 =  0 + 0.5 
      −1 
= −1  −1 −1

 0 
2 2
0 0 0 1 + sin 0 + cos 0 − 1
     
1 0 1
 0 −0.5 −0.5
= −1 +  0  = −1  .
    

0 0.5 0.5

Dobivene aproksimacije jednake su

y(0.5) ≈ 1, y 0 (0.5) ≈ −0.5, y 00 (0.5) ≈ −1, y 000 (0.5) ≈ 0.5.

Egzaktno rješenje diferencijalne jednadžbe je y(x) = cos x pa imamo

y(0.5) ≈ 0.8775826,

stoga je apsolutna greška približno jednaka 0.1224174.


Zadatak 6.9. Poznato je opće rješenje neke diferencijalne jednadžbe koje glasi

y(x) = c1 e−25x + x2 − x.

Zadan je početni uvjet y(−1) = 2. Je li ta diferencijalna jednadžba kruta ako


napredujemo po x? Objasnite!
Rješenje. Za krute diferencijalne jednadžbe vrijedi da mala perturbacija početnog
uvjeta bitno mijenja partikularno rješenje.
U ovoj diferencijalnoj jednadžbi, zbog početnog uvjeta y(−1) = 2, određujemo
c1 i dobivamo da mora vrijediti

2 = y(−1) = c1 e−25·(−1) + (−1)2 − (−1),

tj.
2 = c1 e25 + 2,
pa je c1 = 0.
Dakle, partikularno rješenje te diferencijalne jednadžbe je

y(x) = x2 − x.
104 6. Početni problem za obične diferencijalne jednadžbe

Sada malo perturbirajmo početni uvjet. Neka je

y(−1) = 2 + ε, |ε|  1.

Uvrštavanjem tog početnog uvjeta dobivamo:

2 + ε = y(−1) = c1 e−25·(−1) + (−1)2 − (−1),

tj.
2 + ε = c1 e25 + 2,
pa je
ε
c1 = .
e25
Tada je partikularno rješenje
ε −25x
y(x) = e + x2 − x = εe−25(x+1) + x2 − x.
e25
Usporedimo sad oba partikularna rješenja. Pitanje je samo hoće li član

e−25(x+1)

dominirati nad x2 − x za x > −1. Jasno je da neće, jer funkcija e−25(x+1) brzo pada
kad x raste, pa diferencijalna jednadžba nije kruta.
Ako po x “nazadujemo” tj. od većih x idemo na manje, onda eksponent u e−25(x+1)
za x < −1 postane pozitivan, pa diferencijalna jednadžba postane kruta.

Zadatak 6.10. Poznato je opće rješenje neke diferencijalne jednadžbe koje glasi

y(x) = c1 e25x + x2 − x.

Zadan je početni uvjet y(−1) = 2. Je li ta diferencijalna jednadžba kruta ako


napredujemo po x? Objasnite!

Rješenje. Iz početnog uvjeta y(−1) = 2, određujemo c1 i dobivamo

2 = y(−1) = c1 e25·(−1) + (−1)2 − (−1),

tj.
2 = c1 e−25 + 2,
pa je c1 = 0.
Dakle, partikularno rješenje te diferencijalne jednadžbe je

y(x) = x2 − x.

Sada malo perturbirajmo početni uvjet. Neka je

y(−1) = 2 + ε, |ε|  1.
105

Uvrštyavanjem tog početnog uvjeta dobivamo:

2 + ε = y(−1) = c1 e25·(−1) + (−1)2 − (−1),

tj.
2 + ε = c1 e−25 + 2,
pa je
ε
c1 = = εe25 .
e−25
Tada je partikularno rješenje

y(x) = (εe25 ) · e25x + x2 − x = εe25(x+1) + x2 − x.

Usporedimo sad oba partikularna rješenja. Pitanje je samo hoće li član

e25(x+1)

dominirati nad x2 − x za x > −1. Jasno je da hoće, jer funkcija e25(x+1) brzo raste
kad x raste, pa će x2 −x vrlo brzo postati malo prema dotičnom članu. Zaključujemo
diferencijalna jednadžba je kruta.
Ako po x “nazadujemo” tj. od većih x idemo na manje, onda eksponent u e25(x+1)
za x < −1 postane negativan, pa diferencijalna jednadžba u tom smjeru nije kruta.

You might also like