Chương 6: Giải gần đúng phương trình vi phân[Phương pháp tính- BKHCM]

9 737 3
Chương 6: Giải gần đúng phương trình vi phân[Phương pháp tính- BKHCM]

Đang tải... (xem toàn văn)

Thông tin tài liệu

Tóm tắt bài giảng phương pháp tính trường ĐHBKTPHCM- HCMUT

I GIẢI GẦN ĐÚNG PTVP CẤP : Xét toán Cauchy : tìm nghiệm y=y(x) phương trình vi phân với giá trò ban đầu y0 y’ = f(x, y), ∀x ∈ [a,b] y(a) = y0 Chương GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN Các phương pháp giải gần : 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 toán Cauchy ta chia đoạn [a,b] thành n đoạn nhỏ với bước h = (b-a)/n xo= a, x1 = x0 +h, , xk = x0 + kh, , xn = b Giả sử toán có nghiệm y(x) có đạo hàm đến cấp liên tục [a,b] Khai triển Taylor ta có y(xk+1) = y(xk) + (xk+1-xk) y’(xk) + (xk+1-xk)2 y’’(ξk)/2 với ξk ∈ (xk, xk+1) Công thức Euler : yk+1 = yk + h f(xk, yk) , k = 0, n-1 với h = xk+1 - xk Nghiệm gần toán dãy {yk} gồm giá trò gần hàm xk Ta có yk ≈ y(xk) , k =0, n Công thức Euler y0 = 0.5 yk+1 = yk + 0.2 (yk - xk2 +1) Ví dụ : Dùng công thức Euler tìm nghiệm gần toán Cauchy y’ = y – x2 +1, 0≤x≤1 y(0) = 0.5 với n = Tính sai số biết nghiệm xác : 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 = k xk yk 0.5 y(xk) 0.5 |y(xk) - yk | 0.2 0.8 0.8292986 0.0292986 0.4 1.152 1.2140877 0.0620877 0.6 1.5504 1.6489406 0.0985406 0.8 1.98848 2.1272295 0.1387495 2.458176 2.6408591 0.1826831 Ví dụ : Làm lại ví dụ trước dùng công thức Euler cải tiến Công thức Euler cải tiến : giải yk+1 = yk + (k1+k2)/2 k = 0,1, , n-1 k1 = hf(xk, yk), k2 = hf(xk+h, yk + k1) với h = xk+1 - xk ta có h = 0.2 x0 = 0, x1 = 0.2, x2 = 0.4, x3 = 0.6, x4 = 0.8, x5 = 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) k xk 0.2 0.4 0.6 0.8 yk 0.5 0.826 1.20692 1.6372424 2.1102357 2.6176876 y(xk) 0.5 0.8292986 1.2140877 1.6489406 2.1272295 2.6408591 Công thức Runge Kutta bậc : |y(xk) - yk | 0.0033 0.0072 0.0117 0.0170 0.0232 (K + 2K + 2K3 + K ) K = hf ( x k , y k ) y k +1 = y k + K h , yk + ) 2 K h K = hf ( x k + , y k + ) 2 K = hf ( x k + h , y k + K ) K = hf ( x k + Ví dụ : Xét 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 y(1.5) với bước h = 0.3 10 K = hf (x0 , y0 ) K K K K1 h , y0 + ) 2 K2 h , y0 + ) = hf (x0 + 2 = hf (x0 + h, y0 + K ) = hf (x0 + Bấm máy ta giải Công thức Runge-Kutta bậc xo = 1.2, yo = 5.4, y1=y(1.5) y1 = y0 + (K1+ 2K2+ 2K3+ K4) /6 K1 = 4.949578057 K2 = 8.367054617 K3 = 10.33000627 K4 = 19.41193853 y(1.5) = 15.69260639 ≈ 15.6926 11 12 II GIẢI GẦN ĐÚNG HỆ PTVP : Để tìm nghiệm gần đúng, ta chia đoạn [a,b] thành n đoạn nhỏ với bước h = (b-a)/n điểm chia xo= a, x1 = x0 +h, , xk = x0 + kh, , xn = b Xét hệ phương trình vi phân cấp y’1 = f1(x, y1, y2, , ym) y’2 = f2(x, y1, y2, , ym) y’m = fm(x, y1, y2, , ym) Nghiệm gần dãy { yk=(y1 k, y2 k, …, ym k)} với yi k ≈ yi(xk), i=1,m với a≤ x ≤ b thỏa điều kiện ban đầu y1(a) = α1, y2(a) = α2, , ym(a) = αm Công thức Euler : yi k+1 = yi k + h fi(xk, y1 k, … , ym k) ∀i=1 m; k = n-1 Nghiệm y = (y1, y2, …, ym) 13 Công thức Euler cải tiến : yi k+1 = yi k + (K1 i + K2 i) / 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 : yi k+1 = yi k + (K1 i+2K2 i+2K3 i+K4 i) / 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 15 14 Ví dụ : Sử dụng công thức Euler giải gần hệ pt vi phân y’1 = 3y1 + 2y2 – (2x2 +1)e2x y’2 = 4y1 + y2 + (x2 +2x –4) e2x với ≤x≤0.5 điều kiện ban đầu y1(0)=y2(0)=1 bước h = 0.1 So sánh với nghiệm xác y1(x) = 1/3e5x –1/3e-x+e2x y2(x) = 1/3e5x +2/3e-x+x2e2x 16 Công thức Euler y1 = y1 k+1 = y1 k + h (3y1k + 2y2 k – (2xk2 +1)e2xk) y2 = y2 k+1 = y2 k + h (4y1k + y2 k + (xk2 +2xk –4) e2xk) xk y1k y1(xk) y2k y2(xk) 0.1 0.2 0.3 0.4 0.5 1.4 1.9154 2.5903 3.4870 4.6940 1.4694 2.1250 3.0691 4.4651 6.5769 1.1 1.3071 1.6729 2.2732 3.2187 1.1650 1.5116 2.1518 3.2660 5.1448 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 17 Đặt y1 = y, y2 = y’, y3 = y”, , ym = y(m-1) 18 Ví dụ : Sử dụng công thức Euler giải gần pt vi phân cấp (tính xấp xỉ y y’) y “ – y’ + 2y = sinx e2x , 0≤x≤0.5 điều kiện ban đầu y(0) = -0.4, y’(0) = -0.6 với bước h = 0.1 Ta chuyển phương trình vi phân bậc m hệ m phương trình vi phân cấp y’1 = y2 y’2 = y3 y’m-1 = ym y’m = f(x, y1, y2, , ym) với điều kiện ban đầu y1(a) = α1, y2(a) = α2, , ym(a) = αm, 19 20 đặt y1 = y, y2 = y’ chuyển pt hệ y’1 = y2 y’2 = sinx e2x– y1 + 2y2 điều kiện y1(0) = -0.4, y2(0) = -0.6 Công thức Euler y1 = -0.4 y1 k+1 = y1 k + 0.1 y2k y2 = -0.6 y2 k+1 = y2 k + 0.1 (sinxke2xk - 2y1k +2y2 k) xk y1 k=y -0.4 y2 k=y’ -0.6 0.1 0.2 0.3 0.4 0.5 -0.46 -0.524 -0.5904 -0.6566 -0.7189 -0.64 -0.6638 -0.6621 -0.6226 -0.5292 21 Ví dụ : Xét toán Cauchy x“(t) = (Mt+5) x2(t) – 2Mx’(t)+1.2t + M, 1≤t điều kiện ban đầu x(1) = 1.3M, x’(1) = 1.8M Dùng công thức Euler cải tiến, xấp xỉ giá trò hàm x(t) x’(t) điểm t = 1.2 với bước h = 0.2 M = 2.7 giải đặt y1 = x, y2 = x’ chuyển pt hệ y’1 = y2 y’2 = (Mt+5)y12-2My2+1.2t+M điều kiện y1(1) = 1.3M, y2(1) = 1.8M 22 Công thức Euler cải tiến y1 = 1.3M y1 = y1 + (K11+K21)/2 y2 = 1.8M y2 = y2 + (K12+K22)/2 K11= 0.2*y2 K12= 0.2( (Mt0+5)y102 -2My20+ 1.2t0+M) K21= 0.2*(y2 0+K12) K22= 0.2( (M(t0+h)+5)(y10 +K11)2 -2M(y20+K12) + 1.2(t0+h)+M) 23 24 K11 = 0.972 K12 =14.504154 K21 = 3.8728308 K22 = 13.02027163 IV GIẢI PTVP TUYẾN TÍNH CẤP BẰNG PP SAI PHÂN HỮU HẠN : Xét phương trình vi phân tuyến tính cấp với điều kiện biên p(x)y” + q(x)y’ + r(x)y = f(x), a≤x≤b y(a) = α, y(b) = β x(1.2) = y1 1= 5.9324154 PP sai phân hữu hạn : x’(1.2) = y2 = 18.622212816 Chia đoạn [a,b] thành n đoạn với bước h=(b-a)/n điểm nút x0 = a, x1 = x0 +h, , xk = x0 + kh, , xn = b 25 sử dụng công thức sai phân hướng tâm ta xấp xỉ y’(xk) ≈ (yk+1 – yk-1) /2h y”( xk) ≈ (yk+1 – 2yk + yk-1)/h2 với yk giá trò xấp xỉ hàm điểm xk 26 biến đổi phương trình ta thu hệ phương trình sau : y = α , yn = β qk pk pk qk y + r − y + + ) yk +1 = fk ) ( ) ( k − k k h2 2h h2 h2 2h ∀k = n − ( thay xk vào phương trình ta pk (yk+1–2yk + yk-1)/h2+ qk (yk+1–yk-1)/(2h) +rkyk= fk với pk = p(xk), qk = q(xk), rk = r(xk), fk = f(xk), 27 pk − Đây hệ phương trình tuyến tính Ay = b 28 Trường hợp đặc biệt p(x) = Với A ma trận đường chéo  p1 p1 q1 +  r1 − h h2 2h   p2 q2 2p r2 − 22  2− h  h 2h A =         y1    y y=       y n −1  p2 h + q2 2h pn−2 q − n −2 2h h2 rn−2 − pn−2 h2 pn−1 qn−1 − 2h h2  p1 q1 )α  f1 − ( − 2h h   f2 b =   fn −  p  f − ( n −1 + q n − ) β  n −1 2h h2         pn−2 qn−2  + 2h  h2 pn−1  rn−1 −  h    r1 − h   q2  2−  h 2h A =                    y1    y y=       y n −1  29 Ví dụ : Giải gần pt vi phân cấp  p1 p1 q1 +  r1 − h h2 2h  p q 2p A =  22 − r2 − 22 h h h  p3 q3  −  2h h  y(0) = 1, y(1) = với bước h = 0.25 giải n=4 x0 = 0, x1 = 0.25, x2 = 0.5, x3 = 0.75, x4 = 1 qk -1 -1 -1 rk -1.25 -1.5 -1.75 fk -0.75 -0.5 -0.25     b =       q2 + h2 2h qn−2 − h2 2h h2 qn−1 − h2 2h  q f1 − ( − )α  h h   f2    fn −  q f n −1 − ( + n −1 ) β  2h h  rn−2 − giải hệ phương trình tuyến tính: y“ - y’ – (x+1)y = x-1, 0≤x≤1 k q1 + h2 2h r2 − h    p2 q2  +  h 2h  2p  r3 − 23  h          qn−1  + h2 2h   rn−1 −  h  30 Ay = b  p1 q1   f1 − ( − )α  h 2h    b= f2    f − ( p3 + q3 )β   h 2h     y1   0.809273318  −33.25 14 −18.75      ⇒ y =  y  =  0.582738415  A= 18 −33.5 14  b= −0.5   2           18 −33.75  y3   0.318201229    −0.25  Vậy nghiệm gần y(0) =1, y(0.25) = 0.8093, y(0.5) = 0.5827, y(0.75)=0.3182, y(1)=0 31 32 Ví dụ : Giải gần pt vi phân cấp giải hệ phương trình tuyến tính : Mx2y”+xy’-8My = -3M2x2, 1.4≤x≤1.8  p1 p1 q1 +  r1 − h h 2h  p q 2p A =  22 − r2 − 22 h  h 2h p3 q3  −  h 2h  y(1.4) = 0.5M, y(1.8) = 1.5M với bước h = 0.1, M= 2.7 giải n=4 pk 6.075 6.912 7.803 qk 1.5 1.6 1.7 rk -21.6 -21.6 -21.6 fk -49.2075 -55.9872 -63.2043  p1 q1   f1 − ( − )α  h 2h    b= f2   p q  f − ( + )β   h2 2h     y1   2.049897539   −1236.6 615  −859.2075           A =  683.2 −1404 699.2  b =  −55.9872  ⇒ y =  y2  =  2.724708612    −3257.8443  y   3.388177479  771.8 −1582.2     3   x0 = 1.4, x1 = 1.5, x2 = 1.6, x3 = 1.7, x4 = 1.8 k    p2 q2  +  h 2h  2p  r3 − 23  h  Ay = b Vậy nghiệm gần y(1.4) =1.35, y(1.5) = 2.0499, y(1.6) = 2.7247, y(1.7)=3.3882, y(1.8)=4.05 33 34 ... gần pt vi phân cấp (tính xấp xỉ y y’) y “ – y’ + 2y = sinx e2x , 0≤x≤0.5 điều kiện ban đầu y(0) = -0.4, y’(0) = -0.6 với bước h = 0.1 Ta chuyển phương trình vi phân bậc m hệ m phương trình vi. .. y1 k+K31, … , ym k+K3 m) ∀i=1,m; k = 0, n-1 15 14 Ví dụ : Sử dụng công thức Euler giải gần hệ pt vi phân y’1 = 3y1 + 2y2 – (2x2 +1)e2x y’2 = 4y1 + y2 + (x2 +2x –4) e2x với ≤x≤0.5 điều kiện ban... 1.3071 1.6729 2.2732 3.2187 1.1650 1.5116 2.1518 3.2660 5.1448 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) =

Ngày đăng: 02/01/2017, 10:36

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan