You are on page 1of 27

Môn học: Phương Pháp Tính

Chương 1. Số Gần Đúng Và Sai Số


Chương 2. Giải Gần Đúng Hệ Phương Trình Tuyến Tính
Chương 3. Phép Nội Suy
Chương 4. Tính Gần Đúng Đạo Hàm Và Tích Phân
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường

5.1. Các phương pháp giải tích


5.2. Các phương pháp số

Bài tập chương 5


Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
5.1.1. Phương pháp lặp đơn
y/ (x) = f (x, y), với điều kiện biên y(x0) = y0

Xây dựng dãy hàm số y0(x), y1(x), y2(x), … bằng công thức lặp sau:

 y0 ( x )  y0
 x

 yn ( x )  y0   f (t, yn 1 (t ))dt
 x0
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
5.1.1. Phương pháp lặp đơn
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
5.1.1. Phương pháp lặp đơn
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
5.1.2. Phương pháp chuỗi Taylor
y/ (x) = f (x, y), với điều kiện biên y(x0) = y0

Xây dựng dãy hàm số y0(x), y1(x), y2(x), … bằng công thức lặp sau:
n
y ( k ) ( x0 )
yn ( x )   ( x  x 0 )k
k 0 k!
y( x0 ) y (2) ( x0 ) y (n)
( x0 )
yn ( x )  y0  ( x  x0 )  ( x  x 0 )  ... 
2
( x  x 0 )n
1! 2! n!
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
5.1.2. Phương pháp chuỗi Taylor
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
5.1.2. Phương pháp chuỗi Taylor
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
5.1.2. Phương pháp chuỗi Taylor
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
5.1.2. Phương pháp chuỗi Taylor
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
5.1.2. Phương pháp chuỗi Taylor
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.1. Các phương pháp giải tích
5.1.2. Phương pháp chuỗi Taylor
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.2. Các phương pháp số
5.2.1. Phát biểu bài toán
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.2. Các phương pháp số
5.2.2. Phương pháp Euler (Phương pháp RK1)
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.2. Các phương pháp số
5.2.2. Phương pháp Euler (Phương pháp RK1)
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.2. Các phương pháp số
5.2.3. Phương pháp Runge - Kutta
Công thức lặp RK1
Công thức lặp RK3
(Công thức Euler)

yi 1  yi  hf ( xi , yi ), i  0, n  1  k1i  4k2 i  k3i


 yi 1  yi  , i  0, n  1
Công thức lặp RK2  6
(Công thức Euler cải tiến) k1i  hf ( xi , yi )
 k1i  k2 i 
 yi 1  yi  , i  0, n  1 k  hf  x  h , y  k1i 
 2  2i 
i
2 i
2 
k1i  hf ( xi , yi ) 
k3i  hf ( xi  h, yi  k1i  2k2 i )
k  hf ( x  h, y  k )
 2i i i 1i

Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.2. Các phương pháp số
5.2.3. Phương pháp Runge - Kutta
Người ta chứng minh được công thức Công thức lặp RK4
xấp xỉ thứ i theo phương pháp Runge

 y  y  k1i  2k2 i  2k3i  k4 i , i  0, n  1
– Kutta bậc 4 được cho như sau:
Lưu ý: Công thức Runge – Kutta  i 1 i
6
ứng với r = 4 (RK4) rất gọn, dễ lập  k  hf ( x , y )
trình và có độ chính xác cao. Do đó  1i i i

người ta thường sử dụng công thức  k  hf  x  h , y  k1i 
 i 
này để giải số cho các bài toán trong 
2i
 2 i
2 
thực tế. Nếu đề bài yêu cầu sử dụng   h k2 i 
công thức Runge – Kutta nhưng  k3i  hf  xi  , yi  
  2 2 
không nói trường hợp r bằng bao 
nhiêu thì mặt nhiên ta sử dụng công  
k4 i  hf xi  h, yi  k3i 
thức RK4.
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.2. Các phương pháp số
5.2.3. Phương pháp Runge - Kutta
Ví dụ 6.11. Cho bài toán Cauchy sau: i xᵢ yᵢ yexact
y '  1  x  y,0  x  1, y(0)  1
Sử dụng phương pháp Runge – Kutta 0 0.0 1.000000000 1.000000000
bậc 1, 2, 3, 4, giải số cho bài toán 1 0.1 1.200000000 1.205170918
Cauchy trên đoạn [0,1] với bước h = 0,1. 2 0.2 1.410000000 1.421402758
So sánh với nghiệm đúng yexact = x + ex. 3 0.3 1.631000000 1.649858808
Giải: Phương pháp RK1 4 0.4 1.864100000 1.891824698
x  x0 1  0
n   10, xi  x0  ih  0  0.1  i, i  0,9 5 0.5 2.110510000 2.148721271
h 0.1
Coâng thöùc RK1:y0  1, yi 1  yi  hf ( xi , yi ), i  0, n  1 6 0.6 2.371561000 2.422118800
7 0.7 2.648717100 2.713752707
8 0.8 2.943588810 3.025540928
9 0.9 3.257947691 3.359603111
10 1.0 3.593742460 3.718281828
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.2. Các phương pháp số
5.2.3. Phương pháp Runge - Kutta
Ví dụ 6.11. Cho bài toán Cauchy sau: i xᵢ yᵢ yexact
y '  1  x  y,0  x  1, y(0)  1
Sử dụng phương pháp Runge – Kutta 0 0.0 1.000000000 1.000000000
bậc 1, 2, 3, 4, giải số cho bài toán 1 0.1 1.205000000 1.205170918
Cauchy trên đoạn [0,1] với bước h = 0,1. 2 0.2 1.421025000 1.421402758
So sánh với nghiệm đúng yexact = x + ex. 3 0.3 1.649232625 1.649858808
Giải: Phương pháp RK2 4 0.4 1.890902051 1.891824698
x  x0 1  0
n   10, xi  x0  ih  0  0.1  i, i  0,9 5 0.5 2.147446766 2.148721271
h 0.1
k1i  k2 i 6 0.6 2.420428676 2.422118800
Coâng thöùc RK2:y0  1, yi 1  yi  , i  0, n  1
2 7 0.7 2.711573687 2.713752707
trong ñoù k1i  hf ( xi , yi ), k2 i  hf ( xi  h, yi  k1i ) 8 0.8 3.022788925 3.025540928
9 0.9 3.356181762 3.359603111
10 1.0 3.714080847 3.718281828
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.2. Các phương pháp số
5.2.3. Phương pháp Runge - Kutta
Ví dụ 6.11. Cho bài toán Cauchy sau: i xᵢ yᵢ yexact
y '  1  x  y,0  x  1, y(0)  1
Sử dụng phương pháp Runge – Kutta 0 0.0 1.000000000 1.000000000
bậc 1, 2, 3, 4, giải số cho bài toán 1 0.1 1.205166667 1.205170918
Cauchy trên đoạn [0,1] với bước h = 0,1. 2 0.2 1.421393361 1.421402758
So sánh với nghiệm đúng yexact = x + ex. 3 0.3 1.649843230 1.649858808
Giải: Phương pháp RK3 4 0.4 1.891801743 1.891824698
x  x0 1  0
n   10, xi  x0  ih  0  0.1  i, i  0, n 5 0.5 2.148689559 2.148721271
h 0.1
 y0  1, 6 0.6 2.422076744 2.422118800

Coâng thöùc RK3:  k1i  4k2 i  k3i 7 0.7 2.713698482 2.713752707
 yi 1  yi  , i  0, n  1
 6 8 0.8 3.025472439 3.025540928
 h k1i 
k1i  hf ( xi , yi ), k2 i  hf  xi  , yi   , 9 0.9 3.359517957 3.359603111
 2 2 
10 1.0 3.718177262 3.718281828
k  hf ( x  h, y  k  2k )
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.2. Các phương pháp số
5.2.3. Phương pháp Runge - Kutta
Ví dụ 6.11. Cho bài toán Cauchy sau: i xᵢ yᵢ yexact
y '  1  x  y,0  x  1, y(0)  1
Sử dụng phương pháp Runge – Kutta 0 0.0 1.000000000 1.000000000
bậc 1, 2, 3, 4, giải số cho bài toán 1 0.1 1.205170833 1.205170918
Cauchy trên đoạn [0,1] với bước h = 0,1. 2 0.2 1.421402571 1.421402758
So sánh với nghiệm đúng yexact = x + ex. 3 0.3 1.649858497 1.649858808
Giải: Phương pháp RK4 4 0.4 1.891824240 1.891824698
x  x0 1  0
n   10, xi  x0  ih  0  0.1  i, i  0, n 5 0.5 2.148720639 2.148721271
h 0.1
k1i  2k2 i  2k3i  k4 i 6 0.6 2.422117962 2.422118800
Coâng thöùc RK4:y0  1, yi 1  yi  ,
6 7 0.7 2.713751627 2.713752707
 h k 
i  0, n  1, k1i  hf ( xi , yi ), k2 i  hf  xi  , yi  1i  , 8 0.8 3.025539563 3.025540928
 2 2 
9 0.9 3.359601414 3.359603111
 h k2 i 
k3i  hf  xi  , yi   , k4 i  hf ( xi  h, yi  k3i ) 10 1.0 3.718279744 3.718281828
 2 2 
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
5.2. Các phương pháp số
5.2.3. Phương pháp Runge - Kutta
Ví dụ 6.11. Cho bài toán Cauchy sau: Phương pháp Runge – Kutta bậc 1, 2, 3, 4.
y '  1  x  y,0  x  1, y(0)  1 So sánh với nghiệm đúng y exact = x + e x.

i xᵢ yᵢ(RK1) yᵢ(RK2) yᵢ(RK3) yᵢ(RK4) yexact


0 0.0 1.000000000 1.000000000 1.000000000 1.000000000 1.000000000
1 0.1 1.200000000 1.205000000 1.205166667 1.205170833 1.205170918
2 0.2 1.410000000 1.421025000 1.421393361 1.421402571 1.421402758
3 0.3 1.631000000 1.649232625 1.649843230 1.649858497 1.649858808
4 0.4 1.864100000 1.890902051 1.891801743 1.891824240 1.891824698
5 0.5 2.110510000 2.147446766 2.148689559 2.148720639 2.148721271
6 0.6 2.371561000 2.420428676 2.422076744 2.422117962 2.422118800
7 0.7 2.648717100 2.711573687 2.713698482 2.713751627 2.713752707
8 0.8 2.943588810 3.022788925 3.025472439 3.025539563 3.025540928
9 0.9 3.257947691 3.356181762 3.359517957 3.359601414 3.359603111
10 1.0 3.593742460 3.714080847 3.718177262 3.718279744 3.718281828
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
Bài Tập Chương 5
6.1. Áp dụng phương pháp lặp đơn và phương pháp chuỗi Taylor để tìm
nghiệm xấp xỉ yn(x) của mỗi bài toán Cauchy sau:

a) y/ = y + 6x2 – 3 , y(1) = 3 Tìm y4(x)

b) y/ = ex – sinx + y , y(0) = 2 Tìm y5(x)

c) y/ = 2(x – 1)y – 3x2 , y(0) = 1 Tìm y3(x)

d) y/ = 4exy 4x – 1 , y(0) = 0 Tìm y3(x)

e) y/ = 1 – 3y2 , y(0) = 1 Tìm y3(x)

f) y/ = x(y – 1)y – y2 , y(2) = 1 Tìm y3(x)


Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
Bài Tập Chương 5
6.3. Áp dụng phương pháp lặp đơn để tìm nghiệm xấp xỉ y3(x) và phương
pháp chuỗi Taylor để tìm nghiệm xấp xỉ y5(x) của mỗi bài toán Cauchy sau:
a) y " xy ' ( x  1) y  x 2 , y(0)  0, y '(0)  2
b) y " y ' 3y   x  8, y(0)  1, y '(0)  2
6.4. Áp dụng phương pháp chuỗi Taylor để tìm nghiệm xấp xỉ y5(x) bài toán
Cauchy sau:
1  ( x  1) y
a) y '  , y(0)  2
2x 1
b) y " xy ' y cos x  ( x  1)e x , y(0)  1, y '(0)  2
Chương 5. Giải Gần Đúng Phương Trình Vi Phân Thường
Bài Tập Chương 5
6.5. Áp dụng phương pháp Runge – Kutta (RK1,RK2, RK3,RK4) để
giải số mỗi bài toán Cauchy sau trên đoạn [0,1] với bước nhảy h = 0.1
và so sánh với nghiệm đúng yexact(x)

You might also like