TẠP CHÍ KHOA HỌC Khoa học Tự nhiên Cơng nghệ, Số (9/2016) tr 50 - 58 LẬP CHƯƠNG TRÌNH BẰNG NGƠN NGỮ PASCAL TÍNH GẦN ĐÚNG TÍCH PHÂN XÁC ĐỊNH BẰNG CƠNG THỨC SIMPSON Đồn Vĩnh Ngọc, Hồng Hiến, Trương Quốc Huấn Khoa Tự nhiên, Trường Cao đẳng Sư phạm Điện Biên Tóm tắt: Phần lớn tích phân xác định hàm số khó tìm giá trị Thay việc tính giá trị tích phân xác định, tin học giúp ta tính gần tích phân xác định với sai số (đủ nhỏ) "Lập chương trình ngơn ngữ Pascal tính gần tích phân xác định cơng thức Simpson" hướng dùng máy tính ngơn ngữ lập trình để thay người giải tốn tích phân xác định cách hữu hiệu Từ khóa: Tích phân, gần đúng, hàm số, lập trình, ngơn ngữ Pascal, công thức SIMPSON Đặt vấn đề Như biết, hàm số f ( x ) liên tục đoạn [a, b] F ( x ) nguyên hàm hàm số f ( x ) đoạn [a, b] ta có cơng thức Newton - Leibnitz sau: b f ( x )dx F(x ) b a F ( b ) F ( a ), F '( x ) f ( x ) a Trong thực tế ta thường phải tính tích phân xác định hàm số f ( x ) cho bảng giá trị, khái niệm ngun hàm khơng có ý nghĩa Mặt khác số lớp hàm f ( x ) mà ta tính ngun hàm Phần lớn biểu thức giải tích hàm số f ( x ) biết ngun hàm F ( x ) khơng thể biểu diễn hàm số sơ cấp Trong trường hợp dùng công thức Newton - Leibnitz để tính tích phân xác định Với hàm số khơng tính ngun hàm, hay việc tính ngun hàm gặp nhiều khó khăn, thay việc tính xác tích phân xác định hàm số, ta tính gần tích phân xác định hàm số Để tính gần tích phân xác định hàm số ta dùng cơng thức hình thang cơng thức Simpson Nhưng dùng cơng thức Simpson độ xác cao hay sai số nhỏ Vậy "Lập chương trình ngơn ngữ Pascal tính gần tích phân xác định cơng thức Simpson" khơng cách tính gần tích phân xác định với độ xác cao mà cách dùng máy tính thay người giải dạng toán Nội dung 2.1 Một số khái niệm 2.1.1 Định nghĩa tích phân Cho hàm số y f ( x ) xác định đoạn a , b Chia tùy ý đoạn thành n phần điểm chia (và gọi phân hoạch): a x x x i x i x n x n b Ngày nhận bài: 5/7/2016 Ngày nhận đăng: 25/9/2016 Liên lạc: Đoàn Vĩnh Ngọc, e - mail: doanvinhngocdb@gmail.com 50 Ta ký hiệu đoạn xi x i (i , n 1) vừa đoạn , ta lấy tùy ý điểm i [ x i , x i 1 ] vừa độ dài đoạn thẳng Trên lập tổng (gọi tổng tích phân): n 1 f ( i ) x i i Rõ ràng tổng phụ thuộc vào phép chia đoạn [a , b ] cách chọn điểm i Độ dài lớn đoạn x i (i , n 1) (ký hiệu ) gọi đường kính phân hoạch Để cho độ dài tất đoạn x i tiến tới cần Khi giới hạn tổng tích phân : I lim có nghĩa là: Với tìm cho cần (tức phân hoạch có đường kính nhỏ ), bất đẳng thức I thỏa mãn với cách chọn điểm i Định nghĩa: Giới hạn I tổng tích phân , có, gọi tích phân xác định tích phân Riemann - hàm số f ( x ) đoạn [ a , b ] ký hiệu: n 1 b I f ( x ) d x lim a f (i )x i i Khi ta nói hàm số f ( x ) khả tích đoạn [a , b ] , a b tương ứng cận cận tích phân [3, 190] 2.1.2 Sai số 2.1.2.1 Số xấp xỉ Định nghĩa: Ta gọi a gọi số xấp xỉ số A, ký hiệu a A, a khác A không đáng kể dùng thay cho A tính tốn Nếu aA a gọi xấp xỉ thừa A [1, 5] 2.1.2.2 Sai số tuyệt đối Định nghĩa: Hiệu a A a (hoặc a a A ) gọi sai số số xấp xỉ a Trị tuyệt đối a A a gọi sai số tuyệt đối số xấp xỉ a [1, 6] Định nghĩa: Sai số tuyệt đối giới hạn số xấp xỉ a số không nhỏ sai số tuyệt đối số xấp xỉ a [1, 6] 2.1.2.2 Sai số tương đối Định nghĩa: Sai số tương đối số xấp xỉ a, ký hiệu , là: A thiết A a với giả A A Từ A [1, 7] Định nghĩa: Sai số tương đối giới hạn số xấp xỉ a, ký hiệu sai số tương đối số xấp xỉ a Do đó: Từ đó: A a a nghĩa A a số không nhỏ a chọn a A a [1, 7] 2.2 Công thức Simpson sai số 51 b Để tính gần f ( x ) d x ta chia a , b thành hai đoạn điểm chia a x a, x1 a thức nội ba thay hàm số dấu tích phân a h, x b a 2h suy Newton tiến bậc hai (đi C ( x a h , y f ( x ) ) B ( x a h b , y nút trùng với cận a x , ta có qua f ( x )) x2 b f ( x )d x đa ba điểm A ( x a , y f ( x ) ) , có hoành độ nhau) xuất phát từ x2 f ( x )d x a f (x ) x0 P2 ( x ) d x x0 Để tính tích phân xác định vế phải, ta đổi biến số x x ht Khi dx = hdt, t biến thiên từ đến ta x2 b f ( x )d x a f ( x )d x x0 y t y t ( t 1) y hdt t t t h y0t y0 y0 2 t2 , t0 đó: y y1 y ; y y1 y y y1 ( y1 y ) y y1 y x2 b Vậy: f ( x ) d x a f ( x )d x h x0 ( y y1 y ) (1) Về mặt hình học, (1) có nghĩa diện tích hình thang cong a A C B b ( A C B cung đường cong y f ( x ) qua ba điểm A, C, B) thay xấp xỉ diện tích hình thang cong cong ( A C B cung parabol y P ( x ) qua ba điểm A, C, B) Nói khác đi, đường f ( x ) qua ba điểm A, C, B thay xấp xỉ đường Parabol y P ( x ) qua a A C Bb y ba điểm A, C, B (Hình 1) y y=f(x) y=P2(x) C B A h x0=a h x1 x2=b x Hình Công thức (1) gọi công thức Simpson 52 b Để xác định sai số: f ( x )d x R a h ( y y1 y ) , ta giả thiết hàm số y f (x ) có đạo hàm cấp liên tục [a, b] Cố định điểm x1 xem R hàm số h ( h x1 h R R (h ) f ( x )d x h x1 h ): [ ( f ( x h ) f ( x ) f ( x h ) ] Đạo hàm ba lần theo h đẳng thức trên, ta có R '( h ) f ( x h ) f ( x h ) = R '''( h ) h h f (x1) 3 h [ -f '( x h ) f '( x h ) ] =- [ f '( x h ) f '( x h ) ] = [f ( x h ) f ( x ) f ( x h )]- [f ( x h ) f ( x h )] R ''( h ) [ -f '( x h ) f '( x h ) ] [ f '( x h ) f '( x h ) ] [ -f '( x h ) f '( x h ) ] - h [ -f ''( x h ) f ''( x h ) ] [ f ''( x h ) f ''( x h ) ] [ f ''( x h ) f ''( x h ) ] h [ f ''( x h ) f ''( x h ) ] - h [ -f '''( x h ) f '''( x h ) ] [ f '''( x h ) f '''( x h ) ] Áp dụng công thức số gia hữu hạn (công thức Lagrange) 2h R '''( h ) f '''( x ), ta có f (4) ( c ), c ( x h , x h ) Ngoài ra: R(0) = 0; R'(0) = 0; R''(0)=0 Từ đó, áp dụng định lý trung bình thứ hai tích phân xác định, ta nhận h R ''( h ) R ''( ) t (4) f (c ) t d t h R ''( t ) d t R '( h ) R '( ) h f (4) R '( t ) d t (4) 18 Tóm lại, với giả thiết hàm số (c )d t (4) ( c ); c [x h , x h ] h t f (4) (c )d t (4) h f ( c ); c [x h , x h ] h t 18 f (4) (c1 )d t h f h f 18 h (4) f (c1 ) t d t R (h ) R (0 ) h h R '''( t ) d t (c) t d t y f ( x ) có h f (4) 90 (c ); c [x h , x h ] đạo hàm cấp liên tục [a , b ] , ta có cơng thức Simpson sau b f ( x )d x a h a b h f f (b) f (a ) f 90 (4) (c) với h ba , c [a , b ] ( ) 2.3 Công thức Simpson tổng quát sai số 53 b Để tính gần tích phân xác định f ( x ) d x , ta chia đoạn a , b thành n = 2m đoạn a (nghĩa n số nguyên, dương chẵn): x , x , x , x , , x m , x m 1 , x m 1 , x m có độ dài là: h ba ba n điểm chia: 2m x a ; x i a ih (i 1, m 1), x n x m b Ký hiệu: , đó: y i f ( x i ), i , n x2 b x4 f ( x )d x a f ( x )d x x0 x2m f ( x ) d x x2 f ( x ) d x (3 ) x m 2 Đối với tích phân xác định vế phải (3), ta tính gần công thức Simpson (1), ta nhận được: b f ( x )d x h a ( y y1 y ) b f ( x )d x h a b hay: f ( x ) d x a h h ( y y y ) h ( y m y m 1 y m ) [ ( y y m ) ( y y y m ) ( y y y m ) ] [( y y 2m ) 1 ] (4 ) , y y y m ; y y y m Công thức (4) gọi công thức Simpson tổng quát Nếu hàm số y f ( x ) có đạo hàm cấp liên tục a , b (2), sai số cơng thức Simpson tổng quát là: x2m R f ( x )d x x0 k 1 ( y k y k 1 y k ) k 1 f ( x )d x x k2 h m x2k m ( y k y k 1 y k ) h m 90 h f (4) (c k ) (5 ) k 1 với ck x 2k2 , x 2k Xét trung bình cộng m m f (4) ( c k ) Vì hàm f(4)(x) liên tục đoạn [a, b] nên đạt k 1 giá trị nhỏ m2 giá trị lớn M2 [a, b] Do f(4)(ck) nhận giá trị trung gian m2 M2 tức m f ( ) (c k ) M ( k 1, m ) Vì tồn điểm c [a , b ] cho f (4) (c) hay m f (4) ( c k ) m m f (4) (c) k 1 Thay vào (5), ta nhận R mh 90 f (4) (c) m ( b a ) h m f (4) (c) (b a )h 180 f (4) ( c ), c a , b ( ) 54 Tóm lại, với giả thiết hàm số y f (x ) có đạo hàm cấp bốn liên tục a , b chia đoạn lấy tích phân a , b thành n = 2m đoạn nhau, có độ dài h ba n ba ta có công 2m thức Simpson tổng quát sau: b f ( x )d x h a đó: [( y y 2m ) 1 ] (b a )h (4) f ( c ), c [a , b ] ( ) 180 y y y m ; y y y m Nhận xét: Tính sai số cơng thức Simpson tổng qt cơng thức (7) đòi hỏi phải biết (4) f ( x ) , nghĩa phải biết biểu thức giải tích hàm số y f ( x ) Nhưng thực tế, thường biết hàm số y f ( x ) dạng bảng, người ta thường xác định gần sai số công thức Simpson tổng quát sau: giả sử a , b đạo hàm f ( ) ( x ) biến đổi, (7), nhận biểu thức gần sai số phải tìm số Gọi Is (h ) Is ( h R Mh , M xem b ) giá trị gần I f ( x )d x nhận từ công thức Simpson a tổng quát với bước h bước h , ta có: I Is (h ) M h I Is ( Từ Is ( h ) Is (h ) 15 16 Với giả thiết đạo hàm sai số: Mh f ''( x ) h ) M( h ) h h I Is I s I s ( h ) (8 ) 15 biến đổi đoạn a , b , ta có cơng thức thực hành tính h h I IT I T I T ( h ) (9 ), IT (h ) IT ( h ) giá trị gần b I f ( x ) d x nhận từ cơng thức hình thang tổng quát với bước h bước a 2.4 Ví dụ: Tính gần tích phân xác định I = s in (1 x ) h 1 2 3x Ta có: n=2m=2.5=10; a ; b ;1 h dx , với m = ,1 10 x0 = 0, xn = x10 = 1, xi = x0 + i.h = + i.0,1 ( i 1, ) Ta có bảng giá trị hàm f(x) xi: i 10 xi 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 f(xi) 0.84147098 0.84429895 0.84219163 0.82019141 0.76913012 0.69017063 0.59336444 0.49124581 0.39337791 0.30484059 0.22732436 55 Vậy áp dụng cơng thức Simpson ta có: I h f ( x ) f ( x 10 ) ( f ( x ) f ( x ) f ( x )) ( f ( x ) f ( x ) f ( x )) , (làm tròn tới bốn chữ số thập phân) 2.5 Chương trình b Tính gần tích phân xác định I = a phím với a, b ;a b s in (1 x ) 3x dx , cận a b tùy ý nhập vào từ bàn PROGRAM PP_SIMPSON; USES CRT; VAR i,n: integer; a,b,h,s0,s1,s2,i1,i2,epsilon: real; t: boolean; KT: Char; {*********************************************************************} FUNCTION f(x:real):real; BEGIN f:=sin(1+x*x)/(1+3*x*x*x); END; {*********************************************************************} BEGIN CLRSCR; REPEAT Writeln(' Tinh tich phan gan dung theo cong thuc Simpson'); s in (1 x ) Writeln(' Tinh tich phan gan dung cua ham so y 3x '); Write(' Nhap can duoi a= '); Readln(a); Write(' Nhap tren duoi b= '); Readln(b); Write(' Nhap sai so epsilon = '); Readln(epsilon); s2:=0; n:=2; h:=(b-a)/2; s1:=f(a+h); s0:=f(a)+f(b); i2:=h*(s0+4*s1+2*s2)/3; {Tinh tich phan} t:=false; Repeat i1:=i2; s2:=s1+s2; h:=h/2; s1:=0; FOR i:=1 TO n DO s1:=s1+f(a+(2*i-1)*h); n:=2*n; 56 i2:=h*(s0+4*s1+2*s2)/3; if ABS(i2-i1)