You are on page 1of 53

Vietnam National University, Hanoi

Chương 6: Các phương pháp


giải phương trình vi phân

1
Nội dung

Giải tích:
1. Phương pháp chuỗi Taylor
Phương pháp số:
2. Phương pháp Euler ẩn, hiện.
3. Phương pháp Euler cải tiến (P2 Heun, Trung bình điểm, ).
4. Phương pháp Runge-Kutta bậc 4

2
Nội dung

3
Phương pháp Runge-Kutta

Mô tả phương pháp Euler

4
Phương pháp chuỗi Taylor

5
Phương pháp chuỗi Taylor

6
Phương pháp chuỗi Taylor

7
8
9
10
Phương pháp Euler hiện

11
Phương pháp Euler hiện

12
yi 1  yi  hf  xi , yi  , i  0  n  1,

i xi yi f(xi,yi)
0 0 1 1
1 0.1 1.1 0.91818
2 0.2 1.191818 0.8562
3 0.3 1.277438 0.80775
4 0.4 1.358213 0.7692
5 0.5 1.435133 0.73833
6 0.6 1.508966 0.713720
7 0.7 1.580338 0.69445
8 0.8 1.649783 0.67996
9 0.9 1.717779 0.66991
10 1 1.784771 0.66418

13
Phương pháp Euler hiện

Bài 3. Giải phương trình vi phân sau:

0  x  4, y  x0   1 yi 1  yi  hf  xi , yi  , i  0  n  1,
Exact solution

14
Phương pháp Euler hiện

Bài 3. Giải phương trình vi phân sau:

0  x  4, y  x0   1

Exact solution

15
Phương pháp hình thang (ẩn)

16
Phương pháp Runge-Kutta

1. Phương pháp Runge-Kutta bậc 1: Được coi là phương pháp


Euler.
2. Phương pháp Runge-Kutta bậc 2: Phương pháp Ralston,
trung bình điểm, Heun (Phương pháp Euler cải tiến).
3. Phương pháp runge-Kutta bậc 3
4. Phương pháp Runge-Kutta bậc 4
5. Phương pháp Runge-Kutta bậc 5

Chú ý: Phương pháp Runge-Kutta bậc 4 được sử dụng nhiều nhất


trong họ Runge-Kutta

17
Phương pháp Runge-Kutta

Một trong những phương pháp xấp xỉ để giải phương trình vi phân được sử dụng
rộng rãi là phương pháp Runge – Kutta. Phương pháp Runge-Kutta là một phương
pháp rất hiệu quả có độ chính xác cao bao gồm các phương pháp Runge-Kutta bậc 1
(Phương pháp Euler), bậc 2, bậc 3, bậc 4 (Phương pháp được sử dụng phổ biến
nhất), bậc 5.

Phương pháp Runge-Kutta nhận được từ khai triển Taylor bỏ qua đạo hàm bậc cao

18
Phương pháp Runge-Kutta

Mô tả phương pháp Runge-Kutta bậc 4


x i 1  x i  h

1 ' 1 1
 
y i 1  y i  f x i , y i h 
2!
     
f x i , yi h 2  f '' x i , yi h 3  f ''' x i , yi h 4
3! 4!
y
y t  
yi 1  yi  a1k1  a2k2  a 3k 3  a 4k4 h 
t
i 1
, yi 1  a i
1
yi  k 3h k4

1
1
yi  k2h
2 k3 y i 1  y i  
k  2k2  2k 3  k 4 h
6 1

1
yi  kh k2
2 1 
k1  f ti , yi 
yi k1
 1 1 
k2  f  ti  h, yi  k1h 
 2 2 
ti h ti 1 t
ti   1 1 
2 k 3  f  ti  h, yi  k2h 
 2 2 

k1  f ti  h, yi  k 3h 

19
Phương pháp Runge-Kutta

20
Phương pháp Runge-Kutta

21
Phương pháp Runge-Kutta

22
Phương pháp Runge-Kutta

23
Phương pháp Runge-Kutta

24
Phương pháp Runge-Kutta

25
Các phương pháp Runge-Kutta

t = [0 4]

Chương trình code Matlab gửi kèm 2 file


Ptvp.m
RK4.m

26
Phương pháp Heun

t = [0 4]

y0  2
k1  f  x0 , y0   4e0  0.5. 2  3
k2  f  x0  h, y0  k1h  f 1,5  4e0.8  0.5. 5  6.40216
1
y1  2   3 6.40216  6.70108
2
k1  f  x1 , y1   4e 0.8  0.5.  6.70108   5.55162
k2  f  x1  h, y1  k1h   f  2,12.25270   4e  0.5. 12.25270   13.68578
0.8. 2 

1
y2  6.70108   5.55162  13.68578   16.31978
2

27
Phương pháp RK4

28
Phương pháp RK4

t=[0 4]

29
Các phương pháp Runge-Kutta

Giải bài toán bức xạ bằng phương pháp chuỗi Taylor

Chuỗi Taylor của hàm T(t):

T0 = 2500.0 

30
31
32
Giải bài toán bức xạ bằng phương pháp RK4

33
Giải bài toán bức xạ bằng phương pháp RK4

34
35
Bài tập ôn tập
Giải phương trình vi phân sau theo
phương pháp Euler, Euler cải tiến
(RK2), RK4
y '  y  x , y  0   1,
Bài 1.
a.
b. y '  x 2  y 2 , y  0    1,
c. y '  x  y , y  0   0
2 2

h  0.5, 0  x  1

36
Giải phương trình vi phân sau theo phương
pháp Euler, Euler cải tiến (RK2), RK4

Bài 2. Giải phương trình vi phân sau với t = [0, 2], điều
kiện đầu y(0)=1. Lựa chọn bược lặp h=0.25 or 0.5

37
ODE cấp 2

y ''  f  x , y , y ' 
y  x0    0 , y '  x0   1
y'  z
z '  y ''  f  x , y , y '   f  x , y , z 
z '  f  x, y, z 
y'  z
z  x0   1 , y  x0    0

38
Giải hệ 2 phương trình ODE
Phương pháp Euler

xi  x0  ih
ui 1  ui  hf  xi , ui , vi 
vi 1  vi  hg  xi , ui , vi 
u 0  1 , v0   2
ui  y  xi 

 vi  z  xi 

39
Giải hệ 2 phương trình ODE
Phương pháp hình thang

u0 1, v0 2 ui01  ui  h f  xi , ui , vi  , vi01  vi  hg  xi , ui , vi 


xi  x0  ih
h
h
2

ui1   ui   f  xi , ui , vi   f xi1, ui1 , vi1 
m1 m m
 
ui1  ui   f  xi , ui , vi   f  xi1, ui1, vi1  
2
h
h

vim11  vi  g  xi , ui , vi   g xi1, uim1 , vim1 
2  
vi1  vi  g  xi , ui , vi   g  xi1, ui1, vi1 
ui1   ui1   , vi1   vi1  
m1 m m1 m
2

40
Giải hệ 2 phương trình ODE
Phương pháp ẩn trung điểm

u0 1, v0 2
h h
ui1  ui  f  xi ,ui , vi  , vi1  vi  g  xi ,ui , vi 
2 2
 h 
ui1  ui  hf  xi  ,ui1, vi1 
 2 
 h 
vi1  vi  g  xi  ,ui1, vi1 
 2 

41
Giải hệ 2 phương trình ODE
Phương pháp RK4

y0  1 z0   2
k1  f  xi , yi , zi  l1  g  xi , yi , zi 
 1 1 1   1 1 1 
k 2  f  xi  h, yi  k1h, zi  l1h  l2  g  xi  h, y i  k1h, zi  l1h 
 2 2 2   2 2 2 
 1 1 1   1 1 1 
k3  f  xi  h, y i  k2 h, zi  l2 h  l3  g  xi  h, yi  k 2 h, zi  l2 h 
 2 2 2   2 2 2 
k 4  f  xi  h, y i  k3h, zi  l3h  l4  g  xi  h, y i  k3h, zi  l3 h 
1 1
yi1  yi   k1  2k2  2k3  k4  h zi1  zi   l1  2l2  2l3  l4  h
6 6

42
Hệ phương trình ODE

Bài 1. Giải hệ phương trình vi phân sau với x = [0, 2], điều
kiện đầu y1(0)=4, y2(0)=6. Lựa chọn bược lặp h=0.5
y0 1 z0 2
k1  f  xi , yi , zi  l1  g  xi , yi , zi 
 1 1 1   1 1 1 
k2  f  xi  h,yi  k1h, zi  l1h l2  g  xi  h,yi  k1h, zi  l1h
 2 2 2   2 2 2 
 1 1 1   1 1 1 
k3  f  xi  h,yi  k2h, zi  l2h l3  g  xi  h,yi  k2h, zi  l2h
 2 2 2   2 2 2 
k4  f  xi  h,yi  k3h, zi  l3h l4  g  xi  h,yi  k3h, zi  l3h
1 1
yi1 yi   k1 2k2 2k3 k4 h zi1 zi   l1 2l2 2l3 l4 h
6 6

43
Hệ phương trình ODE

Bài 1. Giải hệ phương trình vi phân sau với x = [0, 2], điều kiện đầu y1(0)=4,
y2(0)=6. Lựa chọn bược lặp h=0.5

Giải theo Euler Kết quả Euler

Áp dụng công thức trên cho 2 phương trình


Bước 1: i=0

Bước 2: i=1

44
Hệ phương trình ODE

Bài 1. Giải hệ phương trình vi phân sau với x = [0, 2], điều kiện đầu y1(0)=4,
y2(0)=6. Lựa chọn bược lặp h=0.5 y 
0 1 z0 2
k1  f  xi , yi , zi  l1  g  xi , yi , zi 
 1 1 1   1 1 1 
k2  f  xi  h,yi  kh 1 , zi  lh
1  l  g x  h,y  k h, z  l h
 2 2 2  2  i i 1 i 1 
 2 2 2 
Giải theo RK4  1 1 1 
k3  f  xi  h,yi  k2h, zi  l2h l3  g  xi  1 h,yi  1 k2h, zi  1 l2h
Áp dụng công thức RK4 cho 2 phương trình  2 2 2   2 2 2 
k4  f  xi h,yi k3h, zi l3h l4  g  xi  h,yi  k3h, zi  l3h

Kết quả RK4

ki,j với i đại diện cho bước thứ i, j đại diện cho phương trình

45
Hệ phương trình ODE
z0 2
l1  g  xi , yi , zi 
 1 1 1 
l2  g  xi  h,yi  k1h, zi  l1h
Giải theo RK4  2 2 2 
 1 1 1 
l3  g  xi  h,yi  k2h, zi  l2h
 2 2 2 
l4  g  xi  h,yi  k3h, zi  l3h

y0 1
k1  f  xi , yi , zi 
 1 1 1 
k2  f  xi  h,yi  k1h, zi  l1h
 2 2 2 
 1 1 1 
k3  f  xi  h,yi  k2h, zi  l2h
 2 2 2 
k4  f  xi  h,yi  k3h, zi  l3h

Kết quả RK4

46
ODE cấp 2

Bài 1.

y  0.4   0.392
y  0.4   0.380322
y  0.4   0.9288
y  0.4   0.9056

47
ODE cấp 2

Lời giải
Đưa ODE cấp 2 về 2 phương trình ODE cấp 1 như sau:
y  z
c k 1
z   z  y  f (t)
m m m
y  0  0, z  0  1
Áp dụng công thức Euler
yi1  yi  hf (ti ,yi ,zi )
zi1  zi  hg(ti ,yi ,zi )

48
Các phương pháp Runge-Kutta

Bài 2.

49
ODE cấp 2

50
Giải HPT = phương pháp RK2, RK4

Bài 1. Giải phương trình vi phân sau với x = [0, 1].


Lựa chọn bược lặp h=0.5
 y '  x  z 2 , y  0   1
a, 
 z '  xy, z  0   1
 y '  x  z, y  0   1
b, 
 z '   y  z, z  0   1
Bài 2. Giải phương trình vi phân sau với x = [0, 2], điều kiện đầu y(0)=4,
y’(0)=0. Lựa chọn bược lặp h=0.5

51
Giải HPT = phương pháp RK2, RK4

Bài 3. Hệ chuyển động như hình vẽ được miêu tả bằng phương trình vi phân sau:

Trong đó, x (m) là quãng đường dịch chuyển từ vị trí


ban đầu, t(s) là thời gian, khối lượng m = 20 kg, hệ
số độ cứng k = 20 N/m, c (N.s/m) là hệ số cản giảm
xóc, c = 5 (trường hợp dưới cản – under damped).

Vận tốc tại thời điểm ban đầu là 0, vị trí ban đầu x0
= 1 m. Giải phương trình này bằng RK4 với t=[0 4].

52
Các phương pháp Runge-Kutta

53

You might also like