Chöông 6
GIAÛI GAÀN ÑUÙNG
PHÖÔNG TRÌNH VI PHAÂN
 
I. GIẢI GẦN ĐÚNG PTVP CẤP 1 : 
Xét bài toán Cauchy : tìm nghiệm y=y(x) của 
phương trình vi phân với giá trò ban đầu y
0
y’ = f(x, y), ∀x ∈ [a,b]
y(a) = y
0
Các phương pháp giải gần đúng :
 Công thức Euler
 Công thức Euler cải tiến
 Công thức Runge-Kutta
 
1. Công thức Euler : 
Để tìm nghiệm gần đúng của bài toán Cauchy 
ta chia đoạn [a,b] thành n đoạn nhỏ bằng nhau 
với bước h = (b-a)/n
x
o
= a, x
1
 = x
0
 +h, ... , x
k
 = x
0
 + kh, ... , x
n
 = b
Nghiệm gần đúng của bài toán là dãy {y
k
} gồm 
các giá trò gần đúng của hàm tại x
k 
Ta có y
k
 ≈ y(x
k
) , k =0, n 
Giả sử bài toán có nghiệm duy nhất y(x) có 
đạo hàm đến cấp 2 liên tục trên [a,b]. 
Khai triển Taylor ta có 
y(x
k+1
) = y(x
k
) + (x
k+1
-x
k
) y’(x
k
) + (x
k+1
-x
k
)
2
 y’’(ξ
k
)/2 
với ξ
k
 ∈ (x
k
, x
k+1
)
Công thức Euler : 
y
k+1
 = y
k
 + h f(x
k
, y
k
) , k = 0, n-1
với h = x
k+1
 - x
k 
Ví dụ : Dùng công thức Euler tìm nghiệm gần 
đúng của bài toán Cauchy 
 y’ = y – x
2
 +1, 0≤x≤1
y(0) = 0.5
với n = 5 
Tính sai số biết nghiệm chính xác là : 
y(x) = (x+1)
2
 – 0.5e
x
giải
ta có h = 0.2
x
0
 = 0, x
1
 = 0.2, x
2
 = 0.4, x
3
 = 0.6, x
4
 = 0.8, x
5
 = 1 
Coâng thöùc Euler
 y
0
 = 0.5
 y
k+1
 = y
k
 + h f(x
k
, y
k
) = y
k
 + 0.2 (y
k
 - x
k
2
 +1)  
0.18268312.64085912.45817615
0.13874952.12722951.988480.84
0.09854061.64894061.55040.63
0.06208771.21408771.1520.42
0.02929860.82929860.80.21
00.50.500
|y(x
k
) - y
k
 |y(x
k
)y
k
x
k
k 
A = 0
B = 0.5
B = B + 0.2(B – A
2
 + 1) : A=A+0.2:
(A+1)2-0.5eA:Ans-B
* Nhận xét : công thức Euler đơn gian, nhưng sai 
số còn lớn nên ít được sử dụng  
2. Coõng thửực Euler caỷi tieỏn : 
y
k+1
 = y
k
 + (k
1
+k
2
)/2 k = 0,1, ..., n-1
k
1
 = hf(x
k
, y
k
), 
k
2
 = hf(x
k
+h, y
k
 + k
1
)
vụựi h = x
k+1
 - x
k 
Ví dụ : Dùng công thức Euler cải tiến tìm nghiệm 
gần đúng của bài toán Cauchy 
 y’ = y – x
2
 +1, 0≤x≤1
y(0) = 0.5
với n = 5 
Tính sai số biết nghiệm chính xác là : 
y(x) = (x+1)
2
 – 0.5e
x
giải
ta có h = 0.2
x
0
 = 0, x
1
 = 0.2, x
2
 = 0.4, x
3
 = 0.6, x
4
 = 0.8, x
5
 = 1 
Coâng thöùc Euler caûi tieán
y
o
 = 0.5
y
k+1
 = y
k
 + (k
1
 +k
2
) /2
k
1
= 0.2(y
k
 - x
k
2
 +1) 
k
2
 = 0.2(y
k
 + k
1
 – (x
k
+0.2)
2
 +1)
0.02322.64085912.617687615
0.01702.12722952.11023570.84
0.01171.64894061.63724240.63
0.00721.21408771.206920.42
0.00330.82929860.8260.21
00.50.500
|y(x
k
) - y
k
 |y(x
k
)y
k
x
k
k 
A = 0 (x
k
)
B = 0.5 (y
k
)
C = 0.2(B – A
2
 + 1) : 
D = 0.2(B + C - (A+0.2)
2
 + 1):
B=B + (C+D)/2:
A=A+0.2:
(A+1)
2
-0.5e
A
:Ans-B