1. Trang chủ
  2. » Cao đẳng - Đại học

Bài giảng phương pháp tính chương 5 giải phương trình vi phân thường TS nguyễn quốc lân

21 4,1K 4

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Ngày đăng: 04/07/2014, 14:46

TỪ KHÓA LIÊN QUAN