You are on page 1of 30

Chapter 6.

Numerical Solutions of
Ordinary Differential Equations

Le Cong Nhan

Faculty of Applied Sciences


HCMC University of Technology and Education

Ngày 26 tháng 1 năm 2022

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
Ngày
Equations
26 tháng 1 năm 2022 1 / 30
Contents

1 Phương pháp Euler

2 Phương pháp Runge-Kutta

3 Phương pháp Multistep

4 Phương trình vi phân cấp cao và hệ phương trình

5 Bài toán biên cho phương trình vi phân cấp hai

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
Ngày
Equations
26 tháng 1 năm 2022 2 / 30
6.1 Phương pháp Euler

Xét bài toán giá trị đầu cho phương trình vi phân cấp một:
dy
= f (x, y ) , y (x0 ) = y0 . (1)
dx

Với h > 0 và x1 = x0 + h, ta xấp xỉ

y (x1 ) ≈ L(x1 ) = f (x0 , y0 )(x1 − x0 ) + y0 =: y1 .

Tiếp tục ta được dãy (xn , yn ) xác định bởi:

yn = yn−1 + hf (xn−1 , yn−1 ), (2)

với xn = x0 + nh, n = 1, ...


Hình: Euler’s method

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
Ngày
Equations
26 tháng 1 năm 2022 3 / 30
Phân tích sai số

1 Sai số tính toán:


Xuất hiện do làm tròn trong quá trình tính toán (round-off error).
Gọi e(h) là sai số trong một phép tính toán theo h. Ta nói e(h) được gọi là
có cấp hn và ký hiệu là O(hn ) nếu tồn tại C > 0 và n ∈ N sao cho

|e(h)| ≤ Chn , với h đủ nhỏ.

2 Sai số do phương pháp hay thuật toán:


Sai số chặt cụt địa phương (local truncation error)
Sai số chặt cụt toàn cục (global truncation error)
Lưu ý: Nếu một phương trình vi phân có sai số chặt cụt địa phương là
O(hα+1 ) thì sai số chặt cụt toàn cục là O(hα ).

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
Ngày
Equations
26 tháng 1 năm 2022 4 / 30
Sai số của phương pháp Euler

Nếu một hàm y (x) có đạo hàm đến cấp k + 1 liên tục trên một khoảng mở I chứa
a và x thì
x −a (x − a)k (x − a)k+1
y (x) = y (a) + y 0 (a) + · · · + y (k) (a) + y (k+1) (c) ,
1! k! (k + 1)!

trong đó c là số ở giữa a và x.

Áp dụng với k = 1, a = xn và x = xn+1 = xn + h ta được:

h h2
y (xn+1 ) =y (xn ) + y 0 (xn ) + y 00 (c)
1! 2!
2
h
=yn + hf (xn , yn ) + y 00 (c)
| {z } 2!
yn+1

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
Ngày
Equations
26 tháng 1 năm 2022 5 / 30
Giả sử yn là giá trị chính xác. Khi đó sai số khi tính yn+1 được gọi là sai số chặt
cụt địa phương (local truncation error) của yn+1 và cho bởi

h2
y 00 (c) , với xn < c < xn+1 .
2!

Ta có thể ước lượng chặn trên cho giá trị tuyệt đối của sai số là

h2
M , với M = max |y 00 (x)| .
2! x0 <c<xn+1

Vì vậy, sai số chặt cụt địa phương của phương pháp Euler là O(h2 ).

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
Ngày
Equations
26 tháng 1 năm 2022 6 / 30
Example 1
Tìm nghiệm xấp xỉ bằng phương pháp Euler với h = 0.1 của bài toán giá trị đầu

y 0 = 2xy , y (1) = 1

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
Ngày
Equations
26 tháng 1 năm 2022 7 / 30
Phương pháp Euler cải tiến

Xét bài toán giá trị đầu cho phương trình vi phân cấp một:
dy
= f (x, y ) , y (x0 ) = y0 . (3)
dx

Nghiệm số của (3) cho bởi



yn+1 = yn + hf (xn , yn ),

f (xn , yn ) + f (xn+1 , yn+1 )
yn+1 = yn + h
2

Sai số chặt cụt địa phương của phương


pháp Euler cải tiến là O(h3 )
Hình: Slope mave is average of m0 and m1

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
Ngày
Equations
26 tháng 1 năm 2022 8 / 30
Example 2
Tìm nghiệm xấp xỉ bằng phương pháp Euler cải tiến với h = 0.1 của bài toán giá
trị đầu

y 0 = 2xy , y (1) = 1

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
Ngày
Equations
26 tháng 1 năm 2022 9 / 30
6.2 Phương pháp Runge-Kutta
Nghiệm số cho bởi phương pháp Runge-Kutta cấp m của (1)

yn+1 = yn + h(w1 k1 + w2 k2 + · · · + wm km )
| {z }
weighted average of slopes

các hằng số wi , i = 1, 2, ..., m là các trọng thỏa w1 + w2 + · · · + wm = 1;


ki , i = 1, 2, ..., m là các hệ số góc được xác định bởi dãy truy hồi

k1 = f (xn , yn ),
k2 = f (xn + α1 h, yn + β1 hk1 ),
······

km = f (xn + αm−1 h, yn+m )

với yn+m = yn + h (β1,m k1 + β2,m k2 + · · · + βm−1,m km−1 ) được xác định bởi
đa thức Taylor bậc m của nghiệm y tại xn , i.e.

yn+m = Tm y (x) với xn ≤ x ≤ xn+1 .
Le Cong Nhan (Faculty of Applied Sciences HCMC University
Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 10 / 30
First Order Runge-Kutta Method

Nghiệm xấp xỉ yn cho bởi dãy truy hồi sau:

k1 = f (xn , yn )
yn+1 = yn + hk1 = yn + hf (xn , yn )

Đây là phương pháp Euler.

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 11 / 30
Second Order Runge-Kutta Method

Nghiệm xấp xỉ yn cho bởi dãy truy hồi sau:

k1 = f (xn , yn )
k2 = f (xn + αh, yn + βhk1 )
yn+1 = yn + h(w1 k1 + w2 k2 )

trong đó α, β, w1 và w2 là các tham số với w1 + w2 = 1.

Sử dụng khai triển Taylor cấp một cho f tại (xn , yn ) ta được:

k2 = f (xn + αh, yn + βhk1 ) = f (xn , yn ) + αhfx (xn , yn ) + βhk1 fy (xn , yn )

Do w1 + w2 = 1 nên suy ra

yn+1 = yn + hk1 + αw2 h2 fx (xn , yn ) + βw2 h2 k1 fy (xn , yn ) (4)

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 12 / 30
Mặt khác, sử dụng khai triển Taylor của yn+1 = y (xn+1 ) = y (xn + h)

y 0 (xn ) y 00 (xn ) 2
yn+1 = y (xn + h) = y (xn ) + h+ h
1! 2!
trong đó y 0 (xn ) = f (xn , yn ) = k1 và

∂f dx ∂f dy
y 00 (x) = + =⇒ y 00 (xn ) = fx (xn , yn ) + fy (xn , yn )y 0 (xn )
∂x dx ∂y dx

Suy ra y 00 (xn ) = fx (xn , yn ) + fy (xn , yn )k1 và do đó

1 1
yn+1 = yn + hk1 + h2 fx (xn , yn ) + h2 k1 fy (xn , yn ) (5)
2 2
So sánh (4) và (5) ta được:
1 1
w1 + w2 = 1, αw2 = , βw2 = . (6)
2 2

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 13 / 30
1 1
Chọn w2 = 2 ta được w1 = 2 và α = β = 1. Khi đó

k1 = f (xn , yn )

k2 = f (xn + h, yn + hk1 ) = f (xn+1 , yn+1 )

f (xn , yn ) + f (xn+1 , yn+1 )
yn+1 = yn + h
2

Đây là phương pháp Euler cải tiến.

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 14 / 30
Four Order Runge-Kutta Method

Nghiệm xấp xỉ yn+1 cho bởi dãy truy hồi sau:

k1 = f (xn , yn )
k2 = f (xn + α1 h, yn + β12 hk1 )
k3 = f (xn + α2 h, yn + β13 hk1 + β23 hk2 )
k4 = f (xn + α3 h, yn + β14 hk1 + β24 hk2 + β34 hk3 )
yn+1 = yn + h(w1 k1 + w2 k2 + w2 k3 + w4 k4 )

trong đó α1 , α2 , α3 , β12 , β13 , β23 , β14 , β24 , β34 là các tham số với các trọng w1 , w2 , w3
và w4 thỏa

w1 + w2 + w3 + w4 = 1.

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 15 / 30
Nghiệm xấp xỉ yn+1 của phương pháp Runge-Kutta bậc bốn:

k1 = f (xn , yn )
1 1
k2 = f (xn + h, yn + hk1 )
2 2
1 1
k3 = f (xn + h, yn + hk2 )
2 2
k4 = f (xn + h, yn + hk3 )
h
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 )
6

Lưu ý rằng để xác định các trọng số ta sử dụng khai triển Taylor bậc bốn của
y (xn + h) tại xn nên sai số chặt cụt địa phương của phương pháp là

y (5) (c) 5
h or O(h5 ). (7)
5!

Do đó sai số chặt cụt toàn cục là O(h4 ).

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 16 / 30
Example 3
Sử dụng phương pháp RK4 với h = 0.1 hãy xấp xỉ y (1.5) của bài toán giá trị đầu:

y 0 = 2xy , y (1) = 1

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 17 / 30
6.3 Phương pháp Multistep
The fourth-order Adams-Bashforth-Moulton method

The predictor in this method is the Adams-Bashforth formula:

∗ h
55yn0 − 59yn−1
0 0 0

yn+1 = yn + + 37yn−2 − 9yn−3 (8)
24
for n ≥ 3 where yn0 = f (xn , yn ) and

0
yn−1 = f (xn−1 , yn−1 )
0
yn−2 = f (xn−2 , yn−2 )
0
yn−3 = f (xn−3 , yn−3 ).


The value of yn+1 is then substituted into the Adams-Moulton corrector

h 0
+ 19yn0 − 5yn−1
0 0

yn+1 = yn + 9yn+1 + yn−2 (9)
24
0 ∗
where yn+1 = f (xn+1 , yn+1 ).
Le Cong Nhan (Faculty of Applied Sciences HCMC University
Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 18 / 30
6.4 Phương trình vi phân cấp cao và hệ phương trình

Xét bài toán giá trị đầu cho phương trình vi phân cấp hai

y 00 = f (x, y , y 0 ), y (x0 ) = y0 , y 0 (x0 ) = y1 (10)

Đặt U = (u1 , u2 ) = (y , y 0 ), phương trình trở thành

y 0 = u2
 0   
u1 u2
or =
y 00 = f (x, y , y 0 ) u20 f (x, u1 , u2 )
| {z } | {z }
U̇ F (x,U)

Do đó ta được phương trình vi phân cấp một

U̇ = F (x, U), U(x0 ) = U0 (11)

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 19 / 30
Xét bài toán giá trị đầu cho phương trình vi phân cấp n
(
y (n) = f (x, y , y 0 , ..., y (n−1) ),
(12)
y (x0 ) = y0 , y 0 (x0 ) = y1 , ..., y (n−1) (x0 ) = yn−1

Ta viết lại phương trình

y0
   
u2
 y 00   u3 
 .. = .. (13)
   

 .   . 
y (n) f (x, y , y 0 , ..., y (n−1) )
| {z } | {z }
U̇ F (x,U)

trong đó
     
u1 y y0
u2   y 0    y1
U =  .  =  ..  và U(x0 ) =  .. (14)
     
 ..   . 

  .
un y (n−1) yn−1

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 20 / 30
Hệ phương trình vi phân cấp một
dx1
= g1 (t, x1 , x2 , ..., xn )
dt
dx2
= g2 (t, x1 , x2 , ..., xn ) (15)
dt
.. ..
. .
dxn
= gn (t, x1 , x2 , ..., xn )
dt
Khi đó ta viết lại hệ dưới dạng

Ẋ = F (t, X ) (16)

trong đó
   
x1 g1 (t, X )
 x2  g2 (t, X )
X =. và F (t, X ) =  ..
   
 .. 

 . 
xn gn (t, X )
Le Cong Nhan (Faculty of Applied Sciences HCMC University
Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 21 / 30
Example 4
Sử dụng phương pháp Euler tính giá trị gần đúng của y (0.2), trong đó y (x) là
nghiệm của bài toán giá trị đầu

y 00 + xy 0 + y = 0, y (0) = 1, y 0 (0) = 2.

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 22 / 30
Example 5
Sử dụng phương pháp RK4 tính giá trị gần đúng của x(0.6) và y (0.6), trong đó
x(t) và y (t) là nghiệm của bài toán giá trị đầu

x 0 = 2x + 4y
y 0 = −x + 6y
x(0) = −1, y (0) = 6.

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 23 / 30
Hệ phương trình vi phân bậc cao

Example 6 (A System Rewritten as a First-Order System)


Xét hệ phương trình vi phân bậc hai

x 00 − x 0 + 5x + 2y 00 = e t
−2x + y 00 + 2y = 3t 2

Hệ được viết lại

x 00 + 2y 00 = e t − 5x + x 0
y 00 = 3t 2 + 2x − 2y

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 24 / 30
Giải hệ ta được

x 00 = −9x + 4y + x 0 + e t − 6t 2
y 00 = 2x − 2y + 3t 2

Đặt x 0 = u và y 0 = v hệ được viết lại dưới dạng

x0 = u
y0 = v
u 0 = −9x + 4y + u + e t − 6t 2
v 0 = 2x − 2y + 3t 2

Đặt X = (x, y , u, v ) ta được

Ẋ = F (t, X ). (17)

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 25 / 30
6.5 Bài toán biên cho phương trình vi phân cấp hai
1 The finite difference approximations for the first derivative:
1
y 0 (x) ≈ [y (x + h) − y (x)] (18)
h| {z }
forward difference
1
y 0 (x) ≈ [y (x) − y (x − h)] (19)
h| {z }
backward difference

Subtracting these equations also gives


1
y 0 (x) ≈ [y (x + h) − y (x − h)]. (20)
2h | {z }
central difference

2 An finite difference approximations for the second derivative y 00 (x):


1
y 00 (x) ≈ [y (x + h) − 2y (x) + y (x − h)] (21)
h2 | {z }
central difference

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 26 / 30
Finite Difference Method

Consider now a linear second-order boundary-value problem

y 00 + P(x)y 0 + Q(x)y = f (x), y (a) = α, y (b) = β. (22)

Let us consider a regular partition of the interval [a, b] by the points

a = x0 < x1 < x2 < · · · < xn−1 < xn = b

where xi = a + ih for i = 0, 1, 2, ..., n − 1, n and h = (b − a)/n. The points

x1 = a + h, x2 = a + 2h, ..., xn−1 = a + (n − 1)h

are called interior mesh points of the interval [a, b].

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 27 / 30
Denote

yi = y (xi ), Pi = R(xi ), Qi = Q(xi ), and fi = f (xi )

and applying the central difference approximations of (22)


yi+1 − 2yi + yi−1 yi+1 − yi−1
+ Pi + Qi yi = fi
h2 h
or, after simplifying
   
h h
1 + Pi yi+1 + −2 + h2 Qi yi + 1 − Pi yi−1 = h2 fi .

(23)
2 2

This equation is known as a finite difference equation, is an approximation to the


differential equation.

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 28 / 30
Example 7
Use the difference equation (8) with n = 4 to approximate the solution of the
boundary-value problem

y 00 − 4y = 0, y (0) = 0, y (1) = 5.

Le Cong Nhan (Faculty of Applied Sciences HCMC University


Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 29 / 30
Shooting Method

Consider now a linear second-order boundary-value problem

y 00 + P(x)y 0 + Q(x)y = f (x), y (a) = α, y (b) = β. (24)

1 The starting point in this method is the replacement of the boundary-value


problem by an initial-value problem

y 00 + P(x)y 0 + Q(x)y = f (x), y (a) = α, y 0 (a) = m1 . (25)

Applying numerical techniques to find an approximation β1 for the value of


y (b) and stop if it agrees with the preassigned tolerance.
2 If not, choose another slope y 0 (a) = m2 to obtain a second approximation β2
for the value of y (b).
3 This method can be continued in a trial-and-error manner or the subsequent
slopes m3 , m4 , ... can be adjusted in some systematic way.
Le Cong Nhan (Faculty of Applied Sciences HCMC University
Chapter of 6. Technology
Numericaland Education)
Solutions of Ordinary Differential
NgàyEquations
26 tháng 1 năm 2022 30 / 30

You might also like