intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Minh Nhật | Ngày: | Loại File: PDF | Số trang:36

81
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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” trang bị cho cho người học các kiến thức: Giải gần đúng phương trình vi phân cấp 1, giải gần đúng hệ phương trình vi phân, giải gần đúng phương trình vi phân cấp cao, giải phương trình vi phân tuyến tính cấp 2 bằng phương pháp sai phân hữu hạn,… Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: 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

  1. Chương 6 GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN
  2. 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
  3. 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
  4. Công thức Euler : yk+1 = yk + h f(xk, yk) , k = 0, n-1
  5. 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
  6. Công thức Euler y0 = 0.5 yk+1 = yk + 0.2 (yk - xk2 +1) k xk yk y(xk) |y(xk) - yk | 0 0 0.5 0.5 0 1 0.2 0.8 0.8292986 0.0292986 2 0.4 1.152 1.2140877 0.0620877 3 0.6 1.5504 1.6489406 0.0985406 4 0.8 1.98848 2.1272295 0.1387495 5 1 2.458176 2.6408591 0.1826831
  7. * 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
  8. 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)
  9. 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 k1= 0.2(yk - xk2 +1) k2 = 0.2(yk + k1 – (xk+0.2)2 +1)
  10. k xk yk y(xk) |y(xk) - yk | 0 0 0.5 0.5 0 1 0.2 0.826 0.8292986 0.0033 2 0.4 1.20692 1.2140877 0.0072 3 0.6 1.6372424 1.6489406 0.0117 4 0.8 2.1102357 2.1272295 0.0170 5 1 2.6176876 2.6408591 0.0232
  11. 3. Công thức Runge Kutta bậc 4 :
  12. * 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
  13. 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
  14. 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
  15. 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)
  16. Để 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
  17. 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
  18. 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
  19. Công thức Euler y1 0 = 1 y1 k+1 = y1 k + h (3y1k + 2y2 k – (2xk2 +1)e2xk) y2 0 = 1 y2 k+1 = y2 k + h (4y1k + y2 k + (xk2 +2xk –4) e2xk) xk y1k y2k 0 1 1 0.1 1.4 1.1 0.2 1.9154 1.3071 0.3 2.5903 1.6729 0.4 3.4870 2.2732 0.5 4.6940 3.2187
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2