Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
741 KB
Nội dung
BỘ MƠN TỐN ỨNG DỤNG - ĐHBK - PHƯƠNG PHÁP TÍNH – SV CHƯƠNG GIẢI PHƯƠNG TRÌNH VI PHÂN THƯỜNG • TS NGUYỄN QUỐC LÂN (5/2006) NỘI DUNG - A- BÀI TỐN CƠSI (GIÁ TRỊ ĐẦU) – PHƯƠNG PHÁP EULER – EULER CẢI TIẾN + RUNGE – KUTTA – HỆ PHƯƠNG TRÌNH VI PHÂN THƯỜNG – PHƯƠNG TRÌNH VI PHÂN CẤP CAO B- BÀI TOÁN BIÊN 1- PHƯƠNG PHÁP SAI PHÂN HỮU HẠN BÀI TỐN CƠSI - Tìm hàm y = y(t) thoả phương trình vi phân thường & điều kiện đầu y ' = f (t , y ), a ≤ t ≤ b y (a ) = α Giải xấp xỉ: Chia [a, b] thành n đoạn nhau, độ dài h = (b – a)/n, (n + 1) điểm chia t0 = a < t1 = a + h < … < tn = b y1 = ? y0 = α h a a = t0 t1 b t2 b = tn Cần tính gần giá trị wk ≈ yk = y(tk), k = → n MINH HOẠ Ý TƯỞNG y ' = −5 y + 5t + 2t , ≤ t Bài tốn Cơsi: Với bước chia h = 0.5 y (0) = f ( x0 + h) − f ( x0 ) & công thức xấp xỉ đạo hàm điểm: f ' ( x0 ) ≈ h tính xấp xỉ nghiệm y t = 0.5, t = Từ xây dựng đa thức nội suy Lagrange (spline) ygđ vẽ đồ −5 t t + e thị so sánh với nghiệm xác g(t) = Điểm chia: t0 = Kết tìm được: t1 = 0.5 y ( 0.5) = −0.5 y (1.0 ) = 1.875 t = ygñ.Lagrange = at + bt + c ⇒ ygñ = 6.42t − 4.87t + 0.33 CÁC SƠ ĐỒ GIẢI XẤP XỈ PTRÌNH VPHÂN THƯỜNG - Btốn Cơsi: Tìm y(t) y ' = f (t , y ), t ∈ [ a, b] y (a ) = α Chia [a, b] → n đoạn b−a h= , ti = a + ih n Tính wi, i = → n Sơ đồ Runge – Kutta: w0 = α Giả sử biết wi ⇒ Sơ đồ Euler (i = → n – 1) w0 = α Giả sử wi biết ⇒ wi +1 = wi + hf (ti , wi ) S/đ Euler cải tiến (i = → n – 1) w0 = α Giả sử wi biết ⇒ k1 = hf (ti , wi ), k = hf (ti + h, wi + k1 ) wi +1 = wi + (k1 + k ) k1 = hf (ti , wi ), k = hf (ti + h , wi + k1 2) k3 = hf (ti + h , wi + k 2), k = hf (ti +1 , wi + k3 ) w = w + ( k + 2k + 2k + k ) i +1 i VÍ DỤ PHƯƠNG PHÁP EULER Bằng p/pháp Euler, giải tốn Cơsi với n = đoạn chia: y ' = y − t + 1, ≤ t ≤ y (0) = 0.5 So sánh nghiệm xấp xỉ với nghiệm g(t) = (t+1)2 – 0.5et Từ tính xấp xỉ tích phân c/t hình thang: I = ∫ y (t )dt Giải: f(t,y) = y – t2 + h = (b–a)/n = 1/3 Sơ đồ Euler: t0 = 0, w0 = 0.5 t1 , w1 t , w2 w0 = 0.5 wi +1 = wi + hf (ti , wi ) = wi + 0.2( wi − ti2 + 1) t3 , w3 KẾT QUẢ PHƯƠNG PHÁP EULER - Bảng kết quả: i ti wi gi = g(ti ) | gi - wi | 0 0.5 0.5 1/3 2/3 Tính gần tích phân với cơng thức hình thang h [ y( t0 ) + y( t1 ) + y( t2 ) + y( t3 ) ] ≈ h [ w0 + 2w1 + 2w2 + w3 ] 2 = 1.3528807 ∫ y(t )dt ≈ VÍ DỤ EULER CẢI TIẾN Tính y(1.) bt Côsi sau y ' = y − t + 1, ≤ t ≤ SĐ Euler cải tiến với h = 0.5: y (0) = 0.5 f (t , y ) = y − t + , h = 0.5 t0 = 0, α = 0.5 t1 = 0.5, w1 = ? t , w2 k1 + k k1 = hf (ti , wi ) , k = hf (ti + h, wi + k1 ) → wi +1 = wi + i ti wi k1 0.0 0.5 0.75 0.5 1.375 1.0625 1.0 2.515625 k2 1.0 1.21875 VÍ DỤ RUNGE – KUTTA Tính y(1.) Runge – Kutta với h = 0.5 y' = y − t + y (0) = 0.5 h k k1 = hf (ti , wi ) , k = hf (ti + , wi + ) Runge – 2 Kutta 4: k3 = hf (ti + h , wi + k 2) , k = hf (ti + h, wi + k3 ) wi → wi+1 wi +1 = wi + k1 + 2k + 2k3 + k i ti 0.0 wi k1 k2 0.5 0.75 0.90625 k3 k4 0.9451325 1.0976563 0.5 1.4251302 1.0875651 1.2032064 1.2331167 1.3286235 1.0 2.6396027 HỆ PHƯƠNG TRÌNH VI PHÂN THƯỜNG Bài tốn Cơsi : Tìm hai hàm u1 = u1(t), u2 = u2(t) thoả du1 = f (t , u , u ), a ≤ t ≤ b 1 dt u1 (a ) = α1 & Điều kiện đầu u2 (a ) = α du2 = f (t , u1 , u2 ), a ≤ t ≤ b dt Chia [a, b] thành đoạn nhau: Phân hoạch & rời rạc hoá w10 = α1 , w2 = α w1 , w1 α1 , α a = t0 u1 ( t1 ) , u2 ( t1 ) = ? t1 = a + h w12 , w2 = ? t = a + 2h i i 0 i i Ký hiệu: w1 ≈ u1 (ti ), w2 ≈ u2 (ti ), i ≥ ⇒ Biết w1 , w tính w1 , w ? MINH HOẠ Ý TƯỞNG Xét tốn Cơsi với hệ phương trình vi phân thường: u1 ' = 3u1 + 2u2 − ( 2t + 1) e 2t , u1 ( ) = u2 ' = 4u1 + u2 + ( t + 2t − ) e 2t , u2 ( ) = Với bước chia h = 0.5, tính xấp xỉ nghiệm u1, u2 t = 0.5; So sánh giá trị tính với giá trị nghiệm xác: 5t −t 5t −t 2 t 2t u1 ( t ) = e − e + e ; u2 ( t ) = e + e + t e 3 3 Điểm chia: t0 = u1 ( ) = t1 = 0.5 u1 ( 0.5) = ? u2 ( ) = u2 ( 0.5) = ? t = u1 (1) = ? u2 (1) = ? t u1 u2 1 0.5 1.0 SƠ ĐỒ EULER Bài tốn Cơsi : Tìm hai hàm u1 = u1(t), u2 = u2(t) thoả du1 = f (t , u , u ), a ≤ t ≤ b 1 dt u1 (a ) = α1 & Điều kiện đầu u2 (a ) = α du2 = f (t , u1 , u2 ), a ≤ t ≤ b dt S/đồ Euler: 0 i w1 = α1 , w2 = α Giả sử biết w1i , w2 ( i = → n − 1) i w1i +1 = w1i + hf1 ( ti , w1i , w2 ) , i i i w2+1 = w2 + hf ( ti , w1i , w2 ) u1 ' = 3u1 + 2u2 − ( 2t + 1) e , u1 ( ) = f1 ( t ,u1 ,u ) VD: u2 ' = 4u1 + u2 + ( t + 2t − ) e 2t , u2 ( ) = f ( t ,u1 ,u ) 2t α1 = w10 = ⇒ ⇒ α = w2 = 1 w1 = + 0.5 f1 ( 0,1,1) = w1 = + 0.5 f ( 0,1,1) = ÁP DỤNG : PHƯƠNG TRÌNH VI PHÂN CẤP Bài tốn Cơsi cấp (Ph/trình vi phân cấp đkiện đầu): y" = f ( t , y, y ') , t ≥ a y ( a ) = α1 , y ' ( a ) = α Đưa tốn Cơsi cấp 1: Đổi biến u1(t)= y(t), u2(t)=y’(t) u1 ' = u2 = f1 ( t , u1 , u2 ) u2 ' = y ' ' = f ( t , y, y ') = f ( t , u1 , u2 ) w10 = α1 u1 ( a ) = y ( a ) = α1 ⇒ Điều kiện đầu: u2 ( a ) = y ' ( a ) = α w2 = α w1 = w10 + hf1 ( t0 , w10 , w2 ) = α1 + hα Sơ đồ Euler: 0 w2 = w2 + hf ( t0 , w10 , w2 ) = α + hf ( a, α1 , α ) VÍ DỤ Với h = 0.1, tính xấp xỉ giá trị y(0.2), y’(0.2) nghiệm toán sau phương pháp Euler: y"−2 y '+2 y = e 2t sin t , t ≥ y (0) = −0.4, y ' (0) = −0.6 Đổi biến đưa tốn Cơsi cấp 1: u1 = y(t), u2 = y’(t) ⇒ u1 ' = u2 = f1 ( t , u1 , u2 ) & u1 ( ) = −0.4 , u2 ( ) = −0.6 u2 ' = −2 y + y '+ e 2t sin t = −2u1 + 2u2 + e 2t sin t = f ( t , u1 , u2 ) w1 = w10 + hf1 ( t0 , w10 , w2 ) = −0.4 + 0.1 f1 ( 0,−0.4,−0.6 ) w10 = −0.4 ⇒ 0 w2 = −0.6 w2 = w2 + hf ( t0 , w10 , w2 ) = −0.6 + 0.1 f ( 0,−0.4,−0.6 ) BÀI TOÁN BIÊN Bài tốn biên cấp 2: Tìm hàm y = y(x) thoả phương trình y ' ' = f ( x, y, y ' ), a ≤ x ≤ b y (a ) = α , y ( b ) = β Hay gặp: Bài tốn biên tuyến tính cấp y" = p ( x) y '+ q ( x) y + r ( x), a ≤ x ≤ b y( a ) = α , y( b ) = β MINH HOẠ Tính giá trị nghiệm y tốn biên tuyến tính cấp y ' ' = −( x + 1) y '+2 y + (1 − x ) e − x , ≤ x ≤ y ( ) = −1, y (1) = điểm chia cách [0, 1] với bước chia h = 1/3 xấp xỉ đạo hàm y’, y’’ công thức hướng tâm Điểm chia: x0 = y ( ) = y0 = −1 x1 = 1 = y = ? y 3 x2 = x3 = 2 = y = ? y 3 y (1) = y3 = PHƯƠNG PHÁP SAI PHÂN HỮU HẠN - BT biên tuyến tính y" = p ( x) y '+ q ( x) y + r ( x), a ≤ x ≤ b ( *) y( a ) = α , y( b) = β Chia [a, b] thành đoạn nhỏ Thay x = xk vào (*) Xấp xỉ y’(xk) , y’’(xk): công thức đạo hàm hướng tâm y ( x2 ) − y ( x0 ) y ' ( x1 ) ≈ 2h y ' ( x2 ) y ( x3 ) − y ( x1 ) ≈ 2h h a= x0 x1 y ( x2 ) − y ( x1 ) + y ( x0 ) y" ( x1 ) ≈ h2 x2 x3 b= xn+1 y ( x3 ) − y ( x2 ) + y ( x1 ) y" ( x2 ) ≈ h2 CÔNG THỨC LẮP GHÉP - n mốc xk ∈ (a, b) – ứng n giá trị yk chưa biết → Ma trận cấp n Ký hiệu pk = p(xk) … yk = y(xk), ≤ k ≤ n ⇒ y= [y1, … yn]T: Ay = b h h 2 + h q1 − + p1 0 − h r1 + + p1 α h h − h r2 − − p2 + h q2 − + p2 2 − h r3 b= A= h − + pn −1 − h rn −1 h h − − p n + h q n − h rn + − pn β LẬP BẢNG LẮP GHÉP - BT biên tuyến tính y" = p ( x) y '+ q ( x) y + r ( x), a ≤ x ≤ b ( *) y( a ) = α , y( b ) = β Chia [a, b] thành đoạn nhỏ độ dài h n điểm chia xk (không kể đầu) – ứng với yk chưa biết → n ẩn số yk Lập bảng cột xk → pk = p(xk), qk = q(xk), rk = r(xk) → akk (đ/chéo chính), ak,k+1 (chéo trên), ak-1,k (dưới), bk → Nghiệm yk Đ/chéo akk: k = → n; ak,k+1: k = → (n – 1), ak-1,k: k = → n i xk pk qk rk akk ak,k+1 ak-1,k bk yk VÍ DỤ - Giải toán biên cấp sau phương pháp sai phân hữu hạn với bước chia h = 0.2 y" = −3 y '+2 y + x + y (0) = 2, y (1) = h = 0.2 ⇒ n = ⇒ điểm chia ⇒ Hệ phương trình ẩn Ma trận cấp 4: Chéo akk – phần tử; Chéo ak, k+1: i xi 0.2 0.4 0.6 0.8 pi qi ri aii ai,i+1 −3 −3 −3 −3 2 2 3.4 3.8 4.2 4.6 − 2.08 − 2.08 − 2.08 − 2.08 1.3 1.3 1.3 ai-1,i bi 0.7 0.7 0.7 − 1.264 0.152 0.168 − 1.116 KẾT QUẢ - Giải hệ phép khử Gauss (làm tròn chữ số lẻ): 0 2.08 − 1.3 − 0.7 2.08 − 1.3 [ A b] = − 0.7 2.08 − 1.3 0 − 0.7 2.08 0 − 0.625 1.642 − 1.3 → [ A b] = − 0.7 2.08 − 1.3 0 − 0.7 2.08 0.608 0.273 − 0.168 1.116 1.264 − 0.152 − 0.168 1.116 1.006 0.636 ⇒ y= 0.593 0.736 ... - A- BÀI TỐN CƠSI (GIÁ TRỊ ĐẦU) – PHƯƠNG PHÁP EULER – EULER CẢI TIẾN + RUNGE – KUTTA – HỆ PHƯƠNG TRÌNH VI PHÂN THƯỜNG – PHƯƠNG TRÌNH VI PHÂN CẤP CAO B- BÀI TOÁN BIÊN 1- PHƯƠNG PHÁP SAI PHÂN HỮU... 2k3 + k i ti 0.0 wi k1 k2 0 .5 0. 75 0.906 25 k3 k4 0.9 451 3 25 1.097 656 3 0 .5 1.4 251 302 1.08 756 51 1.2032064 1.2331167 1.32862 35 1.0 2.6396027 HỆ PHƯƠNG TRÌNH VI PHÂN THƯỜNG ... 0 .5 f (t , y ) = y − t + , h = 0 .5 t0 = 0, α = 0 .5 t1 = 0 .5, w1 = ? t , w2 k1 + k k1 = hf (ti , wi ) , k = hf (ti + h, wi + k1 ) → wi +1 = wi + i ti wi k1 0.0 0 .5 0. 75 0 .5 1.3 75 1.06 25 1.0 2 .51 5625