Lect 3 Nonlin ODE
Lect 3 Nonlin ODE
2
Figure 5.2
Figure 5.3
3
Figure 5.4
Example
4
RUNGE-KUTTA METHOD (R-K METHOD)
5
First-order Runge-Kutta method
Euler’s method is,
𝑦(𝑥 + ℎ) = 𝑦(𝑥) + ℎ𝑓(𝑥, 𝑦)
∴ 𝑦1 = 𝑦0 + ℎ𝑓(𝑥0 , 𝑦0 ), 𝑦2 = 𝑦1 + ℎ𝑓(𝑥1 , 𝑦1 ) etc.
In general,
𝑦𝑛+1 = 𝑦𝑛 + ℎ𝑓(𝑥𝑛 , 𝑦𝑛 ), 𝑛 = 0,1,2, …
Second-order Runge-kutta method
𝑘1 = ℎ𝑓(𝑥𝑛 , 𝑦𝑛 )
ℎ 𝑘1
𝑘2 = ℎ𝑓 (𝑥𝑛 + , 𝑦𝑛 + )
2 2
1
∆𝑦 = [𝑘1 + 𝑘2 ]
2
𝑦𝑛+1 = 𝑦𝑛 + ∆𝑦, 𝑛 = 0,1,2,3, …
Note that ∆𝑦 is the mean of 𝑘1 𝑎𝑛𝑑 𝑘2 . Sometimes ∆𝑦 is taken as 𝑘2 , in which case second
order Runge-Kutta method is modified Euler method.
Third-order Runge-kutta method
𝑘1 = ℎ𝑓(𝑥𝑛 , 𝑦𝑛 )
ℎ 𝑘1
𝑘2 = ℎ𝑓 (𝑥𝑛 + , 𝑦𝑛 + )
2 2
𝑘3 = ℎ𝑓(𝑥𝑛 + ℎ, 𝑦𝑛 + 2𝑘2 − 𝑘1 )
1
∆𝑦 = [𝑘1 + 4𝑘2 + 𝑘3 ]
6
𝑦𝑛+1 = 𝑦𝑛 + ∆𝑦, 𝑛 = 0,1,2,3, …
Note that ∆𝑦 is the weighted mean of 𝑘1 , 𝑘2 , 𝑘3
Fourth-order Runge-kutta method
𝑘1 = ℎ𝑓(𝑥𝑛 , 𝑦𝑛 )
ℎ 𝑘1
𝑘2 = ℎ𝑓 (𝑥𝑛 + , 𝑦𝑛 + )
2 2
ℎ 𝑘2
𝑘3 = ℎ𝑓 (𝑥𝑛 + , 𝑦𝑛 + )
2 2
𝑘4 = ℎ𝑓(𝑥𝑛 + ℎ, 𝑦𝑛 + 𝑘3 )
1
∆𝑦 = [𝑘1 + 2𝑘2 + 2𝑘3 + 2𝑘4 ]
6
𝑦𝑛+1 = 𝑦𝑛 + ∆𝑦, 𝑛 = 0,1,2,3, …
Note that ∆𝑦 is the weighted mean of 𝑘1 , 𝑘2 , 𝑘3 ,𝑘4
Worked example
Example 1
Using Runge-Kutta method of Fourth order solve,
𝑑𝑦 𝑦 2 − 𝑥 2
=
𝑑𝑥 𝑦 2 + 𝑥 2
with 𝑦(0) = 1 at 𝑥 = 0.2, 0.4 .
Solution
Given,
6
𝑑𝑦 𝑦 2 − 𝑥 2
= , 𝑦(0) = 1
𝑑𝑥 𝑦 2 + 𝑥 2
Then,
𝑦2 − 𝑥2
𝑓(𝑥, 𝑦) = 2 , 𝑥0 = 0 , 𝑦0 = 1 , ℎ = 0.2
𝑦 + 𝑥2
Required the value of y when
𝑥 = 0.2 𝑎𝑛𝑑 𝑥 = 0.4
The fourth-order Runge-Kutta method is
𝑘1 = ℎ𝑓(𝑥𝑛 , 𝑦𝑛 )
ℎ 𝑘1
𝑘2 = ℎ𝑓 (𝑥𝑛 + , 𝑦𝑛 + )
2 2
ℎ 𝑘2
𝑘3 = ℎ𝑓 (𝑥𝑛 + , 𝑦𝑛 + )
2 2
𝑘4 = ℎ𝑓(𝑥𝑛 + ℎ, 𝑦𝑛 + 𝑘3 )
1
∆𝑦 = [𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 ]
6
𝑦𝑛+1 = 𝑦𝑛 + ∆𝑦, 𝑛 = 0,1,2,3, …
Put 𝑛 = 0 to find 𝑦1
Then.
𝑦 2 −𝑥 2 1−0
𝑘1 = ℎ𝑓(𝑥0 , 𝑦0 ) = ℎ (𝑦 2 +𝑥 2 ) = 𝑜. 2 (1+0) = 0.2 .
ℎ 𝑘1
𝑘2 = ℎ𝑓 (𝑥0 + , 𝑦0 + ) = (0.2)𝑓[0.1 , 1 + 0.1]
2 2
= (0.2)𝑓[0.1 , 1.1]
2
(1.1) − (0.1) 2
1.20
= 0.2 ( ) = 0.2 ( ) = 0.1967
(1.1)2 + (0.1)2 1.22
ℎ 𝑘2 0.1967
𝑘3 = ℎ𝑓 (𝑥0 + , 𝑦0 + ) = (0.2)𝑓(0.1 , 1 + )
2 2 2
= (0.2)𝑓(0.1 , 1.09835)
(1.09835)2 − (0.1)2 1.2064 − 0.01
0.2 ( ) = 0.2 ( )
(1.09835)2 + (0.1)2 1.2064 + 0.01
1.1964
= 0.2 ( ) = 0.1967
1.2164
𝑘4 = ℎ𝑓(𝑥0 + ℎ, 𝑦0 + 𝑘3 ) = (0.2)𝑓(0.2 , 1 + 0.1967)
= 0.2𝑓(0.2 , 1.1967)y
(1.1967)2 −(0.2)2 1.4321−0.04
=0.2 ((1.1967)2 +(0.2)2 ) = 0.2 (1.4321+0.04)
1.3921
= 0.2 ( ) = 0.1891
1.4721
1
∆𝑦 = [𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 ]
6
1
= (0.2 + 2 × 0.1967 + 2 × 0.1967 + 0.1891) = 0.19598
6
𝑦1 = 𝑦0 + ∆𝑦 = 1 + 0.19598 = 1.196
7
Now,
𝑥1 = 0.2 , 𝑦1 = 1.196 , ℎ = 0.2 .
Put 𝑛 = 1 𝑡𝑜 𝑓𝑖𝑛𝑑 𝑦2
Then,
𝑘1 = ℎ𝑓(𝑥1 , 𝑦1 ) = 0.2𝑓(0.2 , 1.196)
(1.196)2 − (0.2)2
= 0.2 ( )
(1.196)2 + (0.2)2
1.3904
= 0.2 ( ) = 0.1891
1.4704
Similarly
ℎ 𝑘1
𝑘2 = ℎ𝑓 (𝑥1 + , 𝑦1 + ) = 0.2𝑓(0.3 , 1.2906) = 0.1795
2 2
ℎ 𝑘2
𝑘3 = ℎ𝑓 (𝑥1 + , 𝑦1 + ) = 0.2𝑓(0.3 , 1.2858) = 0.1793
2 2
𝑘4 = ℎ𝑓(𝑥1 + ℎ, 𝑦1 + 𝑘3 ) = 0.2𝑓(0.4 , 1.3753) = 0.1688
1
∆𝑦 = [𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 ]
6
1
= [0.1891 + 2 × 0.1795 + 2 × 0.1793 + 0.1688] = 0.1792
6
𝑦2 = 𝑦1 + ∆𝑦 = 1.196 + 0.1792 = 1.3752
Thus
𝑦(0.2) = 1.196 , 𝑦(0.4) = 1.3752
Example 2
Apply Runge-Kutta method to find approximation of 𝑦 for 𝑥 = 0.2 in steps of 0.1. If
𝑑𝑦
= 𝑥 + 𝑦2, 𝑦=1
𝑑𝑥
given that 𝑦 = 1 when 𝑥 = 0
Solution:-
When
dy
= x + y2, y = 1
dx
Then
𝑓(𝑥, 𝑦) = 𝑥 + 𝑦 2 , 𝑥0 = 0, 𝑦0 = 1 𝑎𝑛𝑑 ℎ = 0.1
Required 𝑦(0.2). Since we have to compute with ℎ = 0.1, first we find 𝑦(0.1) and then
𝑦(0.2) fourth order Runge-Kutta formula is
𝑘1 = ℎ𝑓(𝑥𝑛 , 𝑦𝑛 )
ℎ 𝑘1
𝑘2 = ℎ𝑓 (𝑥𝑛 + , 𝑦𝑛 + )
2 2
ℎ 𝑘2
𝑘3 = ℎ𝑓 (𝑥𝑛 + , 𝑦𝑛 + )
2 2
𝑘4 = ℎ𝑓(𝑥𝑛 + ℎ, 𝑦𝑛 + 𝑘3 )
1
∆𝑦 = (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 )
6
8
𝑦𝑛+1 = 𝑦𝑛 + ∆𝑦, 𝑛 = 0, 1, 2, …
𝑷𝒖𝒕 𝒏 = 𝟎 𝒕𝒐 𝒇𝒊𝒏𝒅 𝒚𝟏
𝑘1 = ℎ𝑓(𝑥0 , 𝑦0 )
= 0.1[𝑥0 + 𝑦0 2 ]
= 0.1(0 + 1) = 0.1
ℎ 𝑘1
𝑘2 = ℎ𝑓 (𝑥𝑜 + , 𝑦0 + )
2 2
0.1 0.1
= 0.1𝑓 (0 + ,1 + )
2 2
= 0.1𝑓(0.05, 1.05)
= 0.1[0.05, (1.05)2 ] = 0.1153
ℎ 𝑘2
𝑘3 = ℎ𝑓 (𝑥𝑜 + , 𝑦0 + )
2 2
= 0.1𝑓(0.05, 1 + .0576)
= 0.1𝑓(0.05, 1.0576)
= 0.1(0.05 + (1.0576)2 ) = 0.1169
𝑘4 = ℎ𝑓(𝑥0 + ℎ, 𝑦0 + 𝑘3 )
= 0.1𝑓[0.1, 1 + 0.1169]
= 0.1[0.1, +(1.1169)2 ]
= 0.1347
1
∆𝑦 = (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 )
6
1
= [0.1 + 2(0.1153) + 2(0.1196) + 0.1347]
6
1
= [0.1 + 0.2306 + 0.2338 + 0.1347]
6
= 0.1165
𝑦1 = 𝑦0 + ∆𝑦 = 1.1165
Now
𝑥1 = 𝑥0 + ℎ = 0.1. 𝑦1 = 1.1165. ℎ = 0.1
Put n = 1 to find y2
Then
𝑘1 = ℎ𝑓(𝑥1 , 𝑦1 )
= 0.1𝑓[0.1, 1.1165]
= 0.1[0.1 + (1.1165)2 ]
= 0.1347
ℎ 𝑘1
𝑘2 = ℎ𝑓 (𝑥1 + , 𝑦1 + )
2 2
0.1 0.1347
= 0.1𝑓 [0.1 + , 1.1165 + ]
2 2
= 0.1[0.1 + (1.1839)2 ]
= 0.1552
9
ℎ 𝑘2
𝑘3 = ℎ𝑓 (𝑥1 + , 𝑦1 + )
2 2
0.1552
= 0.1𝑓 [0.15, 1.1165 + ]
2
= 0.1[0.15 + 1.1941]
= 0.1[0.15 + (1.1941)2 ]
= 0.1576
𝑘4 = ℎ𝑓(𝑥1 + ℎ, 𝑦1 + 𝑘3 )
= 0.1𝑓[0.1 + 0.1, 1.1165 + 0.1576]
= 0.1𝑓[0.2, 1.2741]
= 0.1[0.2 + (1.2741)2 ]
= 0.1823
1
∆𝑦 = (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 )
6
1
= [0.1347 + 2(0.1554) + 2(0.1576) + 0.1823]
6
= 0.1576
𝑦1 = 𝑦0 + ∆𝑦 = 1.1165 + 0.1571
𝑦1 = 1.2736
Thus,
𝑦(0.1) = 1.1165, 𝑎𝑛𝑑 𝑦(0.2) = 1.2736
10
11
12
13