Bài giảng Phương pháp tính - Chương 6: Giải gần đúng phương trình vi phân - Trịnh Quốc Lương
Chương 6
GIẢI GẦN ĐÚNG
PHƯƠNG TRÌNH VI PHÂ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 y0
y’ = f(x, y), x [a,b]
y(a) = y0
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
xo= a, x1 = x0 +h, ... , xk = x0 + kh, ... , xn = b
Nghiệm gần đúng của bài toán là dãy {yk} gồm các
giá trị gần đúng của hàm tại xk
Ta có yk y(xk) , k =0, n
Công thức Euler :
yk+1 = yk + h f(xk, yk) , k = 0, n-1
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 – x2 +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.5ex
giải
ta có h = 0.2
x0 = 0, x1 = 0.2, x2 = 0.4, x3 = 0.6, x4 = 0.8, x5 = 1
Công thức Euler
y0 = 0.5
2
yk+1 = yk + 0.2 (yk - xk +1)
k
0
1
2
3
4
5
xk
0
yk
0.5
y(xk)
0.5
|y(xk) - yk |
0
0.2
0.4
0.6
0.8
1
* 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. Công thức Euler cải tiến :
yk+1 = yk + (k1+k2)/2 k = 0,1, ..., n-1
k1 = hf(xk, yk),
k2 = hf(xk+h, yk + k1)
Ví dụ :
Làm lại ví dụ trước nhưng dùng công thức Euler cải
tiến
giải
ta có h = 0.2
x0 = 0, x1 = 0.2, x2 = 0.4, x3 = 0.6, x4 = 0.8, x5 = 1
Công thức Euler cải tiến
yo = 0.5
yk+1 = yk + (k1 +k2) /2
2
k1= 0.2(yk - xk +1)
k2 = 0.2(yk + k1 – (xk+0.2)2 +1)
k
0
1
2
3
4
5
xk
0
yk
0.5
y(xk)
0.5
|y(xk) - yk |
0
0.2
0.4
0.6
0.8
1
3. Công thức Runge Kutta bậc 4 :
* Chú ý : Lập công thức Runge-Kutta bằng
máy tính casio không được vì công thức quá
dài, không đủ bộ nhớ, ta phải tính trực tiếp
Ví dụ : Xét bài toán Cauchy
y’ = 2.7xy + cos (x+2.7y), 1.2≤x
y(1.2) = 5.4
Dùng công thức Runge-Kutta tính gần đúng y(1.5)
với bước h = 0.3
giải
Công thức Runge-Kutta bậc 4
xo = 1.2, yo = 5.4, y1=y(1.5)
y1 = y0 + (K1+ 2K2+ 2K3+ K4) /6
Bấm máy (lập hàm dùng phím calc) ta được
K1 = 4.949578057 K2 = 8.367054617
K3 = 10.33000627 K4 = 19.41193853
y(1.5) = 15.69260639 15.6926
II. GIẢI GẦN ĐÚNG HỆ PTVP :
Xét hệ phương trình vi phân cấp 1
y’1 = f1(x, y1, y2, ..., ym)
y’2 = f2(x, y1, y2, ..., ym)
. . .
y’m = fm(x, y1, y2, ..., ym)
với a≤ x ≤ b và thỏa điều kiện ban đầu
y1(a) = 1, y2(a) = 2, .... , ym(a) = m
Nghiệm y = (y1, y2, …, ym)
Để tìm nghiệm gần đúng, ta chia đoạn [a,b] thành n
đoạn nhỏ bằng nhau với bước h = (b-a)/n và các
điểm chia
xo= a, x1 = x0 +h, ... , xk = x0 + kh, ... , xn = b
Nghiệm gần đúng là dãy { yk=(y1 k, y2 k, …, ym k)}
với yi k yi(xk), i=1,m
Công thức Euler :
yi k+1 = yi k + h fi(xk, y1 k, … , ym k)
i=1..m; k = 0.. n-1
Công thức Euler cải tiến :
yi k+1 = yi k + (K1 i + K2 i) / 2
K1 i = h fi(xk, y1 k, … , ym k)
K2 i = h fi(xk+h, y1 k+K1 1, … , ym k+K1 m)
i=1,m; k = 0, n-1
Công thức Runge-Kutta bậc 4 :
yi k+1 = yi k + (K1 i+2K2 i+2K3 i+K4 i) / 6
K1 i = h fi(xk, y1 k, … , ym k)
K2 i = h fi(xk+h/2, y1 k+K11/2, … , ym k+K1 m/2)
K3 i = h fi(xk+h/2, y1 k+K21/2, … , ym k+K2 m/2)
K4 i = h fi(xk+h, y1 k+K31, … , ym k+K3 m)
i=1,m; k = 0, n-1
Ví dụ : Sử dụng công thức Euler giải gần đúng
hệ pt vi phân
y’1 = 3y1 + 2y2 – (2x2 +1)e2x
y’2 = 4y1 + y2 + (x2 +2x –4) e2x
với 0 ≤x≤0.5
điều kiện ban đầu y1(0)=y2(0)=1
bước h = 0.1
Công thức Euler
y1 0 = 1
2
2x
k
y1 k+1 = y1 k + h (3y1k + 2y2 k – (2xk +1)e )
y2 0 = 1
2
2x
k
y2 k+1 = y2 k + h (4y1k + y2 k + (xk +2xk –4) e )
xk
0
y1k
1
y2k
1
0.1
0.2
0.3
0.4
0.5
1.4
1.1
1.9154
2.5903
3.4870
4.6940
1.3071
1.6729
2.2732
3.2187
III. GIẢI GẦN ĐÚNG PTVP CẤP CAO:
Xét phương trình vi phân cấp m
y(m) = f(x, y, y’, ... , y(m-1)), a≤x≤b
với điều kiện ban đầu
y(a) = 1, y’(a) = 2, .... , y(m-1)(a) = m
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phương pháp tính - Chương 6: Giải gần đúng phương trình vi phân - Trịnh Quốc Lương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_phuong_phap_tinh_chuong_6_giai_gan_dung_phuong_tri.pptx

