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

GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN

Chia sẻ: Bạn Của Tôi | Ngày: | Loại File: PDF | Số trang:8

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

Phương trình vi phân cấp 1 Tìm nghiệm của phương trình y' = f(x, y) trên với a ≤ x ≤ b, với điều kiện y(a) = y0. Cách giải xấp xỉ: Cho n là số tự nhiên dương. Ký hiệu: h =(b – a)/n, xk = x0 + kh, fk = f(xk, yk) , k = 1..n. Ví dụ: y' = cosx + 2siny, 0 ≤ x ≤ 0.4, y(0) = 1, n = 4 ⇒ h = 0.1.

Chủ đề:
Lưu

Nội dung Text: GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN

  1. Wednesday, May 09, 2012 Người viết: Ôn Ngũ Minh GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN 1. Phương trình vi phân cấp 1 Tìm nghiệm của phương trình y' = f(x, y) trên với a ≤ x ≤ b, với điều kiện y(a) = y0. Cách giải xấp xỉ: Cho n là số tự nhiên dương. Ký hiệu: h =(b – a)/n, xk = x0 + kh, fk = f(xk, yk) , k = 1..n. Ví dụ: y' = cosx + 2siny, 0 ≤ x ≤ 0.4, y(0) = 1, n = 4 ⇒ h = 0.1. 1.1 Phương pháp Euler a. Phương pháp Euler ƒ y0 là giá trị khởi tạo đã cho, ƒ Với k = 0..n-1: yk+1 = yk + hfk. Sai số là O(h). Với ví dụ trên, ta lập bảng như sau: k 0 1 2 3 4 x 0 0.1 0.2 0.3 0.4 y 1 1.268 1.559 1.857 2.144 Sử dụng máy tính Casio: Đặt cấu hình về radian. 0.1→M 0→X 1→Y Y+M(cosX+2sinY)→Y (1) Ghi kết quả vào bảng mỗi khi thực hiện lệnh này, X+M→X (2) Lặp lần lượt hai lệnh (1) và (2) cho tới khi điền đầy bảng. b. Phương pháp Euler cải tiến ƒ y0 là giá trị khởi tạo đã cho, ƒ Với k = 0..n-1, lặp quá trình sau: yk+1(0) = yk + hfk, yk+1(m+1) = yk + h/2*(fk + f(xk+1, yk+1(m))), m = 0, 1, 2, ... Dừng khi | yk+1(m+1) – yk+1(m)| < ε. Sai số làm tròn là O(h2). Với ví dụ trên, ta lập bảng như sau: k 0 1 2 3 4 x 0 0.1 0.2 0.3 0.4 y 1.000 1.280 1.575 1.867 2.141 f(x,y) 2.683 2.911 2.980 2.868 2.605 1.268 1.571 1.873 2.154 1.279 1.575 1.867 2.140 1.280 1.575 1.867 2.141 1.280 2.141 Sử dụng máy tính Casio: Đặt cấu hình về radian. 0.1→M Giá trị của h = 0.1 0→X 1→Y cosX+2sinY→F (1) Giá trị f(x, y) này được dùng nhiều lần
  2. Y+MF→D (2) D là yk+1(0) Y+M÷2(F+cos(X+M)+2sinD)→D (3) D là yk+1(m+1), lặp liên tiếp D→Y (4) Giá trị yk+1(m+1) đã thỏa mãn sai số X+M→X (5) Tăng X Lệnh (3) được lặp cho đến khi 2 giá trị liên tiếp của M bằng nhau. Sau khi thực hiện lệnh (5) thì quay về lệnh (1). 1.2 Phương pháp Runge – Kutta a. Phương pháp Runge – Kutta thứ nhất ƒ y0 là giá trị khởi tạo đã cho, ƒ Với k = 0..n-1: a = hfk, b = hf(xk + h/2, yk + a/2) , yk+1 = yk + b. Sai số làm tròn là O(h2). Với ví dụ trên, ta lập bảng như sau: k 0 1 2 3 4 x 0 0.1 0.2 0.3 0.4 y 1.000 1.281 1.578 1.872 2.146 a 0.268 0.291 0.298 0.287 b 0.281 0.297 0.294 0.274 Sử dụng máy tính Casio: Đặt cấu hình về radian. 0.1→M Giá trị của h = 0.1 0→X 1→Y M(cosX+2sinY)→A (1) M(cos(X+M÷2)+2sin(Y+A÷2))→B (2) Y+B→Y (3) X+M→X (4) Lặp lại từ lệnh (1). b. Phương pháp Runge – Kutta thứ hai ƒ y0 là giá trị khởi tạo đã cho, ƒ Với k = 0..n-1: a = hfk, b = hf(xk+ h, yk + a), yk+1 = yk + (a + b)/2, k = 0..n-1. Sai số làm tròn là O(h2). Với ví dụ trên, ta lập bảng như sau: k 0 1 2 3 4 x 0 0.1 0.2 0.3 0.4 y 1.000 1.281 1.577 1.871 2.146 a 0.268 0.291 0.298 0.287 b 0.281 0.297 0.294 0.275 Sử dụng máy tính Casio: Đặt cấu hình về radian. 0.1→M Giá trị của h = 0.1 0→X 1→Y
  3. M(cosX+2sinY)→A (1) M(cos(X+M)+2sin(Y+A))→B (2) Y+(A+B) ÷2→Y (3) X+M→X (4) c. Phương pháp Runge – Kutta thứ ba ƒ y0 là giá trị khởi tạo đã cho, ƒ Với k = 0..n-1: a = hfk, b = hf(xk + h/2, yk + a/2), c = hf(xk + h, yk + 2b - a) yk+1 = yk + (a + 4b + c)/6, k = 0..n-1. Sai số làm tròn là O(h3). Với ví dụ trên, ta lập bảng như sau: k 0 1 2 3 4 x 0 0.1 0.2 0.3 0.4 y 1.0000 1.2808 1.5769 1.8707 2.1451 a 0.2683 0.2911 0.2980 0.2866 b 0.2811 0.2968 0.2945 0.2746 c 0.2919 0.2980 0.2868 0.2613 Sử dụng máy tính Casio: Đặt cấu hình về radian. 0.1→M Giá trị của h = 0.1 0→X 1→Y M(cosX+2sinY)→A (1) M(cos(X+M÷2)+2sin(Y+A÷2))→B (2) M(cos(X+M)+2sin(Y+2B-A))→C (3) Y+(A+4B+C)÷6→Y (4) X+M→X (5) d. Phương pháp Runge – Kutta thứ tư ƒ y0 là giá trị khởi tạo đã cho, ƒ Với k = 0..n-1: a = hfk, b = hf(xk + h/2, yk + a/2), c = hf(xk + h/2, yk + b/2) d = hf(xk + h, yk + c), yk+1 = yk + (a + 2b + 2c + d)/6, k = 0..n-1. Sai số làm tròn là O(h4). Với ví dụ trên, ta lập bảng như sau: k 0 1 2 3 4 x 0 0.1 0.2 0.3 0.4 y 1.00000 1.28084 1.57693 1.87070 2.14504 a 0.26829 0.29115 0.29800 0.28661 b 0.28111 0.29680 0.29449 0.27461 c 0.28165 0.29688 0.29454 0.27512 d 0.29120 0.29800 0.28656 0.25994 Sử dụng máy tính Casio: Đặt cấu hình về radian.
  4. 0.1→M Giá trị của h = 0.1 0→X 1→Y M(cosX+2sinY)→A (1) M(cos(X+M÷2)+2sin(Y+A÷2))→B (2) M(cos(X+M÷2)+2sin(Y+B÷2))→C (3) M(cos(X+M)+2sin(Y+C))→D (4) Y+(A+2B+2C+D) ÷6→Y (5) X+M→X (6) Chú ý: Có thể không đủ bộ nhớ với một số máy, nên cần thử trước. Có thể ghép trực tiếp biểu thức A vào lệnh (2) và lệnh (5) như sau: 0.1→M Giá trị của h = 0.1 0→X 1→Y M(cos(X+M÷2)+2sin(Y+ M(cosX+2sinY)÷2))→B (2) M(cos(X+M÷2)+2sin(Y+B÷2))→C (3) M(cos(X+M)+2sin(Y+C))→D (4) Y+(M(cosX+2sinY)+2B+2C+D) ÷6→Y (5) X+M→X (6) 2. HỆ 2 PHƯƠNG TRÌNH VI PHÂN CẤP 1 y' = f(x, y, z) y(x0) = y0 z' = g(x, y, z) z(x0) = z0 Ký hiệu: xk = x0 + kh, fk = f(xk, yk, zk), gk = g(xk, yk, zk), k = 0, 2, ..., n 2. 1. Phương pháp Euler ƒ y0, z0, là các giá trị khởi tạo đã cho, ƒ Với k = 0..n-1: yk+1 = yk + hfk,j, zk+1 = zk + hgk, Sai số làm tròn là O(h). Ví dụ: y' = x + sinz z' = y + cosz y(1) = 2, z(1) = 3, h = 0.1, n = 4. Ta lập bảng như sau: k 0 1 2 3 4 x 1 1.1 1.2 1.3 1.4 y 2 2.11 2.22 2.33 2.44 z 3 3.10 3.21 3.33 3.46 Sử dụng máy tính Casio: Đặt cấu hình về radian. 0.1→E 1→X 2→Y 3→M Thay cho biến Z Y+E(X+sinM)→A (1)
  5. M+E(Y+cosM)→M (2) A→Y (3) X+E→X (4) Nếu lệnh (1) viết là X+sinM→Y thì giá trị Y mới này sẽ tham gia vào lệnh (2), không đúng với giải thuật trên. 1.3 Phương pháp Runge – Kutta a. Phương pháp Runge – Kutta thứ nhất ƒ y0, z0, là các giá trị khởi tạo đã cho, ƒ Với k = 0..n-1: a = hf(xk, yk, zk), c = hg(xk, yk, zk), b = hf(xk+ h/2, yk + a/2, zk + c/2), d = hg(xk+ h/2, yk + a/2, zk + c/2) yk+1 = yk + b, zk+1 = zk + d Sai số làm tròn là O(h2). Với ví dụ trên, ta lập bảng như sau: k 0 1 2 3 4 x 1 1.1 1.2 1.3 1.4 y 2 2.114 2.227 2.338 2.446 z 3 3.106 3.223 3.352 3.495 a 0.114 0.114 0.112 0.109 b 0.114 0.113 0.111 0.108 c 0.101 0.111 0.123 0.136 d 0.106 0.117 0.129 0.143 Sử dụng máy tính Casio: Đặt cấu hình về radian. 0.1→E 1→X 2→Y 3→M Thay cho biến Z E(X+sinM)→A (1) E(Y+cosM)→C (2) E(X+E÷2+sin(M+C÷2))→B (3) E(Y+A÷2 + cos(M +C÷2))→D (4) Y+B→Y (5) M+D→M (6) X+E→X (7) Nếu số phép gán không được lưu đầy đủ, ta ghép trực tiếp (1) với (6) vào (4): 0.1→E 1→X 2→Y 3→M Thay cho biến Z E(Y+cosM)→C (2)
  6. E(X+E÷2+sin(M+C÷2))→B (3) M+E(Y+E(X+sinM)÷2 + cos(M+C÷2))→M (4) Y+B→Y (5) X+E→X (7) b. Phương pháp Runge – Kutta thứ hai ƒ y0, z0, là các giá trị khởi tạo đã cho, ƒ Với k = 0..n-1: a = hf(xk, yk, zk), c = hg(xk, yk, zk), b = hf(xk+ h, yk + a, zk + c), d = hg(xk+ h, yk + a, zk + c) yk+1 = yk + (a+b)/2, zk+1 = zk + (c+d)/2 Sai số làm tròn là O(h2). Với ví dụ trên, ta lập bảng như sau: k 0 1 2 3 4 x 1 1.1 1.2 1.3 1.4 y 2 2.114 2.227 2.338 2.446 z 3 3.106 3.223 3.353 3.497 a 0.114 0.114 0.112 0.109 b 0.114 0.112 0.11 0.106 c 0.101 0.111 0.123 0.136 d 0.111 0.123 0.136 0.151 Sử dụng máy tính Casio: Đặt cấu hình về radian. 0.1→E 1→X 2→Y 3→M Thay cho biến Z E(X+sinM)→A (1) E(Y+cosM)→C (2) E(X+E+sin(M+C))→B (3) E(Y+A + cos(M +C))→D (4) Y+(A+B)÷2→Y (5) M+(C+D)÷2→M (6) X+E→X (7) Có thể ghép A vào (4) và (5), C vào (3), (4) và (6) như sau: 0.1→E 1→X 2→Y 3→M Thay cho biến Z E(X+E+sin(M+E(Y+cosM)))→B (3) E(Y+ E(X+sinM) + cos(M+E(Y+cosM)))→D (4) Y+(E(X+sinM)+B)÷2→Y (5) M+(E(Y+cosM)+D)÷2→M (6)
  7. X+E→X (7) 3. PHƯƠNG TRÌNH VI PHÂN CẤP 2 y" = g(x, y, y'), y(x0) = y0, y'(x0) = z0. Đặt z = y', đưa về hệ y' = z y(x0) = y0 z' = g(x, y, z) z(x0) = z0 Ví dụ: y" = x2y' + siny, y(1) = 2, y'(1) = 3, h = 0.1, n = 4. Khi đó f(x, y, z) = z, g(x, y, z) = x2z + siny, y(1) = 2, z(1) = 3. a. Phương pháp Runge – Kutta thứ nhất a = hf(xk, yk, zk) ⇔ a = hzk, c = hg(xk, yk, zk), b = hf(xk+ h/2, yk + a/2, zk + c/2) = h(zk + c/2), d = hg(xk+ h/2, yk + a/2, zk + c/2), yk+1 = yk + b ⇔ yk+1 = yk + h(zk + c/2), zk+1 = zk + d. Vậy ta có thể bỏ bớt tính b, rút gọn lại là a = hzk, c = hg(xk, yk, zk), d = hg(xk+ h/2, yk + a/2, zk + c/2), yk+1 = yk + h(zk + c/2), zk+1 = zk + d. Ta lập bảng như sau: k 0 1 2 3 4 x 1 1.1 1.2 1.3 1.4 y 2 2.320 2.688 3.117 3.625 z 3 3.436 3.983 4.679 5.583 a 0.300 0.344 0.398 0.468 c 0.391 0.489 0.617 0.793 d 0.436 0.547 0.696 0.904 Sử dụng máy tính Casio: Đặt cấu hình về radian. 0.1→E 1→X 2→Y 3→M Thay cho biến Z EM→A (1) 2 E(X M+sinY)→C (2) 2 E((X+E÷2) (M+C÷2+sin(Y+A÷2))→D (3) Y+E(M+C÷2)→Y (4) M+D→M (5) X+E→X (6) Nên ghép (1) vào (3) như sau: 0.1→E 1→X 2→Y 3→M Thay cho biến Z 2 E(X M+sinY)→C (2) 2 E((X+E÷2) (M+C÷2+sin(Y+EM÷2))→D (3) Y+E(M+C÷2)→Y (4)
  8. M+D→M (5) X+E→X (6) b. Phương pháp Runge – Kutta thứ hai a = hf(xk, yk, zk) ⇔ a = hzk, c = hg(xk, yk, zk), b = hf(xk+ h, yk + a, zk + c) ⇔ b = h(zk + c), d = hg(xk+ h, yk + a, zk + c), yk+1 = yk + (a+b)/2 ⇔ yk+1 = yk + h(zk + c/2)) zk+1 = zk + (c + d)/2. Vậy, bỏ bớt tính b, công thức lặp là: a = hzk, c = hg(xk, yk, zk), d = hg(xk+ h, yk + a, zk + c), yk+1 = yk + h(zk + c/2)), zk+1 = zk + (c + d)/2. Ta lập bảng như sau: k 0 1 2 3 4 x 1 1.1 1.2 1.3 1.4 y 2 2.320 2.688 3.118 3.627 z 3 3.438 3.988 4.689 5.603 a 0.300 0.344 0.399 0.469 c 0.391 0.489 0.618 0.795 d 0.485 0.611 0.784 1.032 Sử dụng máy tính Casio: Đặt cấu hình về radian. 0.1→E 1→X 2→Y 3→M Thay cho biến Z EM→A (1) 2 E(X M+sinY)→C (2) 2 E((X+E) (M+C+sin(Y+A))→D (3) Y+E(M+C÷2)→Y (4) M+(C+D)÷2→M (5) X+E→X (6) Nên ghép (1) vào (3) như sau: 0.1→E 1→X 2→Y 3→M Thay cho biến Z 2 E(X M+sinY)→C (2) 2 E((X+E) (M+C+sin(Y+EM))→D (3) Y+E(M+C÷2)→Y (4) M+(C+D)÷2→M (5) X+E→X (6)
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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