Prof NGUYỄN THẾ HÙNG PHƢƠNG PHÁPTÍNH NUMERICAL METHODS FOR ENGINEERS *********** DANANG UNIVERSITY OF TECHNOLOGY Danang 2010 CÁC CÔNGTHỨCTÍNH (Đƣợc phép mang vào phòng thi) Chƣơng 2: Nội suy 2.1 Đa thức nội suy Lagrăng Cho bảng giá trị x y x1 y1 x2 y2 x3 xn y3 yn Ký hiệu: (x) = (x - x1)(x - x2 ) (x - xn) Ta có đẳng thức: y1 (x) y (x) f (x) (x - x )( x x )( x x ) ( x x n ) ( x x )( x x )( x x ) ( x x n ) y n ( x ) ( x x n )( x n x )( x n x ) .( x n x n 1 ) n y k ( x ) Hay: f(x)= ' k 1 ( x k ).( x x k ) Đây đa thức nội suy Lagrange 2.2 Nội suy Newton (a) Nội suy Newton với mốc cách Giả sử y0 , y1 , y2 , giá trị hàm y = f(x) tương ứng với giá trị cách đối số x0 , x1 , x2 Ký hiệu: y1 - y0 = y0 ; y2 - y1 = y1 ; ; yn - yn - = yn - sai phân cấp y1 - y0 = 2 y0 ; y2 - y1 = 2 y1 ; sai phân cấp ny1 - ny0 = n + 1y0 ; ny2 - ny1 = n + y1 ; sai phân cấp n + Ta có cơngthức nội suy Newton: x x0 ( x x )(x x h ) y y h 2!h (b) Nội suy Newton với mốc không cách yn = y0 + Khoảng cách xi+1 - xi = hi số Đa thức nội suy có dạng: f n ( x) b0 b1 ( x x0 ) bn ( x x0 )( x x1 ) ( x xn1 ) (2.28) Các điểm liệu sử dụng để tính hệ số b0, b1, bn Được tính: b0 f ( x0 ) b1 f [ x1 , x0 ] b2 f [ x2 , x1 , x0 ] bn f [ xn , xn1 , , x1 , x0 ] Tỷ sai phân cấp f x i, xj là: f [ xi , x j ] f ( xi ) f ( x j ) xi x j Tỷ sai phân cấp f x i, xj, xk là: f [ xi , x j , xk ] f [ xi , x j ] f [ x j , xk ] xi xk Tương tự vậy, tỷ sai phân cấp n f là: f [ xn , xn1 , , x1 , x0 ] f [ xn , xn1 , , x1 ] f [ xn1 , xn2 , , x0 ] xn x0 Thay hệ số vào phương trình (2.9) ta nhận đa thức nội suy Newton: Pn f ( x0 ) ( x x0 ) f [ x1 , x0 ] ( x x0 ).( x x1 ) f [ x2 , x1 , x0 ] ( x x0 ).( x x1 ) ( x xn 1 ) f [ xn , xn 1 , , x0 ] (2.29) 2.3 Nội suy Spline y = fi(x) = f " ( xi 1 )( xi x) f " ( xi )( x xi 1 ) yi 1 f " ( xi 1 )xi 6xi 6xi xi y f " ( xi )xi xi x i xi x xi 1 Với xi = xi - xi – 1, với i = 1,2,….,n (dạng sai phân lùi) " x 0 2(x x ) f (x ) " x 2(x x ) x 0 f (x ) . x ( x x ) 3 " 0 2(x n1 x n ) f (x n1 ) y y x x y y x x y n1 y n x x n 1 n Chƣơng 3: Tính gần đạo hàm tích phân 3.1 Tính gần đạo hàm Ta áp dụng khai triển Taylor: h2 f(x + h) = f(x) + h f’(x) + f”(c), với c = x + h, < < 2! f’(x) f (x h) f (x) h 3.2 Tính gần tích phân xác định 3.2.1 Cơngthức hình thang h y y1 (y1 y ) . (y n1 y n ) y yn I T h y1 y . y n1 M h ( b a) , với M = max f”(x), a x b Sai số: I - IT 12 IT 3.2.2 Côngthức Simpson b h f ( x)dx [( y y1 y2 ) ( y2 y3 y4 ) ( y2 n y2 n 1 y2 n )] a h I [( y0 y2 n ) 4( y1 y3 y2 n 1 ) 2( y2 y4 y2 n )] h4 I I M (b a) Sai số: S 180 Với: M = max fiv(x) , a x b 3.2.3 Côngthức Gauss 3.2.3.1 Liên hệ hệ tọa độ tổng thể hệ tọa độ địa phương Hay: x y x x y y x 1 J y J ma trận Jacobian biến đổi toạ độ + Cho phần tử tứ giác tuyến tính: dxdy e 1 det J d d 1 1 x J y + Cho phần tử tam giác tuyến tính: 1 dxdy det J d d e 0 3.2.3.2 Tích phân số Với phần tử tứ giác: 1 1 1 f , dd wi w j f i , j n n i 1 j 1 Với phần tử tam giác: 1 0 n f , dd wi f i , i i 1 Bảng 1: Điểm tích phân cho phần tử tam giác n i 1/ i 1/ wi 1/ 1/ 1/ 1/ 1/ 1/ 1/ Bảng 2: Trọng số điểm tích phân Gauss – Legendre Điểm tích phân i 0.0000000000 0.5773502692 0.0000000000 0.7745966692 0.3399810 435 0.8611363116 0.0000000000 0.5384693101 0.9061798459 0.2386191861 0.6612093865 0.9324695142 Số điểm tích phân r Một điểm Hai điểm Ba điểm Bốn điểm Năm điểm Sáu điểm Trọng số wi 2.0000000000 1.0000000000 0.8888888889 0.5555555555 0.6521451548 0.3478548451 0.5688888889 0.4786286705 0.2369268850 0.4679139346 0.3607615730 0.1713244924 Chƣơng 4: Giải gần phƣơng trình hệ phƣơng trình phi tuyến 4.1 Giải gần phương trình 4.1.1 Phươngpháp dây cung y B x1 = a - (b a )f (a ) af (b) bf (a ) f ( b) f (a ) f ( b) f (a ) a P X1 O b A Sai số ước lượng: x1 f (a).f ( b) f " (x ) max [ f ' (x )] 4.1.2 Phươngpháp Newton-Raphson f (x ) Nhiệm : x1 = x0 f ' (x ) Sai số: xn < f (x n ) m , với: < m < f , ( xn ) x b 4.2 Giải hệ phương trình phi tuyến u i u i u i 1 u i ( x i 1 x i ) x ( y i 1 y i ) y i i v v ( x x ) v i ( y y ) v i i i 1 i i 1 i i 1 x i y i vi ui u v i i y y xi 1 xi ui vi ui vi x y y x u v vi i ui i x x yi 1 yi ui vi ui vi x y y x Chƣơng 5: Các phƣơng pháp số đại số tuyến tính 5.1 Phươngpháp lặp đơn hệ phương trình x ( m ) Bx ( m1) g (0) x x n b x Trong đó: (Bx)i = ij j1 j , x(0) cho trước 5.2 Phươngpháp lặp Seidel n Giả sử cho hệ: Ax b xi = i + j 1 ij xj với i = 1, 2, , n Lấy xấp xỉ ban đầu x1(0) , x2 (0) , , xn(0) Tiếp theo, giả sử ta biết xấp xỉ thứ k xi(k) theo Seiden, ta tìm xấp xỉ thứ ( k+1) nghiệm theo công thức: ( k 1) x1 ( k 1) x2 xi( k 1) x ( k 1) n n 1 j x (jk ) j 1 2 x ( k 1) 21 i 1 i ij x j x (jk ) ( k 1) j j 1 n j 2 n j i ij x (jk ) n 1 n ij x (jk 1) nn xn( k ) j 1 NGHIỆM GẦN ĐÚNG CỦA HỆ A PHƢƠNG TRÌNH VI PHÂN THƢỜNG Chƣơng 6.2.1 Phƣơng pháp xấp xỉ liên tiếp Pica Mục đích phươngpháp xây dựng nghiệm cần tìm y= y(x) Từ (6.2.1) ta có: x x x0 x0 x dy f (t, y)dt y(x ) y(x ) f ( t, y )dt x0 x Hay: y( x ) y f ( t, y)dt (6.2.4) x0 f < K y Để tìm xấp xỉ liên tiếp, (6.2.4) thay y y0, ta có xấp xỉ thứ nhất: Giả sử f(x,y) hàm liên tục theo x,y x y1 y f ( t , y )dt , x0 x y y f ( t , y1 )dt Tương tự có xấp xỉ thứ hai: x0 x y n y f ( t , y n1 )dt , với n = 1,2,3,… Tổng quát, ta có: x0 x Như ta có: y(x ) y n (x ) y f ( t , y n1 )dt x0 lim y n ( x ) y( x ) n M (KC) n Sai số: y n (x ) y(x ) , f (x, y ) = M K n! Với: x x < a , b y y < b , C = a , M II 6.2.2 Phƣơng pháp Euler y y=f(x) A3 A2 ` Ao A1 x3 xo x1 x2 6.2.3 Phƣơng pháp Runghe - Kutta bậc Xét phƣơng trình vi phân: u’ = f(x , u) O x k h.f (x i , ui ) k h.f (x 0.5h, u 0.5k ) i i ui +1 = ui + (k 2k 2k k ) k h.f (x i 0.5h, ui 0.5k ) k h.f (x i h, ui k ) ui Y (x i ) 0(h ) Với sai số: 6.2.4 Phƣơng pháp Adam Giả sử cần giải phương trình vi phân: Y’ = f(x , y), với điều kiện ban đầu: y(x 0) = y0 Cho biến số thay đổi bước h đó; xuất phát từ điều kiện ban đầu Y(x0) = Y0 phươngpháp (ví dụ: phươngpháp Runghe-Kutta bậc 4), ta tìm giá trị hàm cần tìm y(x): Y = Y(x1) = Y(x0+h), Y2 = Y(x0+2h), Y3 = Y(x0 + 3h) Nhờ giá trị x0 , x1 , x2 , x3 Y0 , Y1 , Y2 , Y3 , ta tính q0, q1, q2, q3 Trong đó: q0 = h.Y0’ = h.f(x0 , y0), q1 = h.f(x1 , y1), q2 = h.f(x2 , y2), q3 = h.f(x3 , y3), sau ta lập bảng sai phân hữu hạn đại lượng y q x xo y yo x1 y1 y yo q qo q0 q1 y1 x2 q y2 q1 q2 y2 q2 2q 3q 2q0 - 3q0 2q1 - x3 y3 q3 - - - - Biết số đường chéo dưới, ta tìm y3 theo côngthức Adam sau: y q3 q2 2q1 3.q0 12 Tiếp ta có: Y4 = Y3 + Y3 q4 = h.f(x4, Y4) Sau viết đường chéo sau: q3 = q4 - q3 , 2q2= q3 - q2 , 3q1 = 2.q2 - 2.q Đường chéo cho phép ta tính Y4 : Y4 = q4 + 1/2q3 + 5/122q2 + 3/83q1 Vì ta có: Y5 = Y4 + Y4 ... 5: Các phƣơng pháp số đại số tuyến tính 5.1 Phương pháp lặp đơn hệ phương trình x ( m ) Bx ( m1) g (0) x x n b x Trong đó: (Bx)i = ij j1 j , x(0) cho trước 5.2 Phương pháp lặp Seidel... Phƣơng pháp Adam Giả sử cần giải phương trình vi phân: Y’ = f(x , y), với điều kiện ban đầu: y(x 0) = y0 Cho biến số thay đổi bước h đó; xuất phát từ điều kiện ban đầu Y(x0) = Y0 phương pháp (ví... M (b a) Sai số: S 180 Với: M = max fiv(x) , a x b 3.2.3 Công thức Gauss 3.2.3.1 Liên hệ hệ tọa độ tổng thể hệ tọa độ địa phương Hay: x y x