xác định bằng công thức Simpson" không chỉ là cách tính gần đúng tích phân xác định với độ chính xác cao mà còn là cách dùng máy tính thay con người giải quyết dạng bài toán này.. [r]
(1)50 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, Hoà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 bằng 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 quyết toá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
1 Đặ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
b a a
f ( x ) d x F ( x ) F ( b )F ( a ) ,
F '( x ) f ( x )
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 nguyên 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ịn cách dùng máy tính thay người giải dạng tốn
2 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
các điểm chia (và gọi phân hoạch):
0 i i n n
a x x x x x x b Ngày nhận bài: 5/7/2016 Ngày nhận đăng: 25/9/2016
(2)51
Ta ký hiệu x (ii , n1) vừa đoạn [ x , xi i 1 ] vừa độ dài đoạn thẳng Trên
mỗi đoạn xi, ta lấy tùy ý điểm i lập tổng (gọi tổng tích phân):
n
i i i
f ( ) x
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
nhất đoạn x (ii , n1) (ký hiệu ) gọi đường kính phân hoạch Để
cho độ dài tất đoạn xi tiến tới cần
Khi giới hạn tổng tích phân 0:
0
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 ,nếu có, gọi tích phân xác định -
hoặc tích phân Riemann - hàm số f ( x ) đoạn [ a , b ] ký hiệu:
b n 1
i i
i a
I f ( x ) d x lim f ( ) x
Khi ta nói hàm sốf ( x ) khả tích đoạn [ a , b ], a b tương ứng cận dưới cận
trê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 a<A a gọi xấp xỉ thiếu A Nếu a>A 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 a
A A
với giả
thiết 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 a số không nhỏ
sai số tương đối số xấp xỉ a Do đó: anghĩa a
A
Từ đó: A a chọn
a A a
[1, 7]
(3)52
Để tính gần
b
a
f ( x ) d x
ta chia a , b thành hai đoạn điểm chia
0
b a
x a , x a a h , x b a h
2
thay hàm số dấu tích phân f ( x ) đa
thức nội suy Newton tiến bậc hai (đi qua ba điểm A(x0 a , y0 f( x ) )0 ,
1 1
C ( x a h , y f ( x ) ) B( x2 a 2 h b, y2 f ( x ) )2 có hồnh độ nhau) xuất phát từ
nút trùng với cận a x ,0 ta có
2
0
x x
b
2
a x x
f ( x ) d x f ( x ) d x P ( x ) d x
Để tính tích phân xác định vế phải, ta đổi biến số x x0 h t Khi dx = hdt, t
biến thiên từ đến ta
0
x
b
2
0 0
a x
t
2
2
0 0
t
t ( t 1)
f ( x ) d x f ( x ) d x y t y y h d t
2
t t t
h y t y y ,
2
trong đó:
0
0 1
y y y ;
y y y y y ( y y ) y y y
Vậy:
2
0
x b
0
a x
h
f ( x ) d x f ( x ) d x ( y y 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 Blà 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 a A C B b (A C Blà cung parabol y P ( x )2 qua ba điểm A, C, B) Nói khác đi, đường
cong y f ( x ) qua ba điểm A, C, B thay xấp xỉ đường Parabol y P ( x )2 qua
ba điểm A, C, B (Hình 1)
Hình Cơng thức (1) gọi công thức Simpson
y y=f(x)
y=P2(x)
A C B
h h
(4)53
Để xác định sai số:
b
0
a
h
R f ( x ) d x ( y y 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 0):
1
1
x h
1 1
x h
h
R R ( h ) f ( x ) d x [ ( f ( x h ) f ( x ) f ( x h ) ]
Đạo hàm ba lần theo h đẳng thức trên, ta có
1 1 1 1
1 1 1
1 h
R '( h ) f ( x h ) f ( x h ) [ f ( x h ) f ( x ) f ( x h ) ] - [ -f '( x h ) f '( x h ) ]
3
2 h
= [ f ( x h ) f ( x h ) ] f ( x ) [ f '( x h ) f '( x h ) ]
3 3
1 1 1
1 1
2 h
R ''( h ) [ f '( x h ) f '( x h ) ] [ -f '( x h ) f '( x h ) ] - [ -f ''( x h ) f ''( x h ) ]
3 3
1 h
= [ -f '( x h ) f '( x h ) ] [ f ''( x h ) f ''( x h ) ]
3
1 1 1
1
1 h
R '''( h ) [ f ''( x h ) f ''( x h ) ] [ f ''( x h ) f ''( x h ) ] - [ -f '''( x h ) f '''( x h ) ]
3 3
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) f '''( x ) , ta có
2 ( )
3 1
2 h
R '''( h ) f ( 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 h
2 ( )
0
h
( ) ( )
2 2 1
0
2
R ''( h ) R ''( ) R '''( t ) d t t f ( c ) d t
2
f ( c ) t d t h f ( c ) ; c [ x h , x h ]
3
h h
3 ( )
0
h
( ) ( )
1 1 1
0
2
R '( h ) R '( ) R ''( t ) d t t f ( c ) d t
2
f ( c ) t d t h f ( c ) ; c [ x h , x h ]
9
h h
4 ( )
0
h
( ) ( )
1
0
1
R ( h ) R ( ) R '( t ) d t t f ( c ) d t
1
f ( c ) t d t h f ( c ) ; c [ x h , x h ]
1
Tóm lại, với giả thiết hàm số y f ( x )có đạo hàm cấp liên tục [ a , b ], ta có cơng
thức Simpson sau
b
5 ( ) a
h a b
f ( x ) d x f ( a ) f f ( b ) h f ( c )
3
với h b a , c [ a , b ] ( )
2
(5)54
Để tính gần tích phân xác định
b
a
f ( x ) d x
, ta chia đoạn a , b thành n = 2m đoạn
bằng (nghĩa n số nguyên, dương chẵn):
x , x0 1, x , x1 2, , x2 m2, x2 m1, x2 m1, x2 m
có độ dài là: h b a b a
n m
điểm chia:
0 i n m
x a ; x a ih (i1, m1), x x b
Ký hiệu: yi f ( x ), ii , n, đó:
2 m
0 m
x x x
b
a x x x
f ( x ) d x f ( x ) d x f ( x ) d x f ( x ) d x ( )
Đố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
0 2 m 2 m m
a
h h h
f ( x ) d x ( y y y ) ( y y y ) ( y y y )
3 3
b
0 m m m
a
h
f ( x ) d x [ ( y y ) ( y y y ) ( y y y ) ]
3
hay:
b
0 m
a
h
f ( x ) d x [ ( y y ) ] ( )
,
trong 1 y1 y3 y2 m1; 2 y2 y4 y2 m2
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à:
2 m
0
2 k
2 k2
x m
2 k 2 k k k
x x m
2 k 2 k k k x
5 m ( )
k k
h
R f ( x ) d x ( y y y )
3
h
f ( x ) d x ( y y y )
h
f ( c ) ( )
với ck x2 k2, x2 k Xét trung bình cộng
m ( )
k k
1
f ( c ) m
Vì hàm f(4)(x) liên tục đoạn [a, b] nên đạt
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 m2 f( )( c )k M ( k2 1, m ) Vì tồn điểm c[ a , b ] cho
( )
f ( c )
hay
m
( ) ( ) k
k
f ( c ) m m f ( c )
Thay vào (5), ta nhận
5 4
( ) ( ) ( )
m h m ( b a ) h ( b a ) h
R f ( c ) f ( c ) f ( c ) , c a , b ( )
9 m
(6)55
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 b a b a
n m
ta có cơng
thức Simpson tổng quát sau:
b
( )
0 m
a
h ( b a ) h
f ( x ) d x [ ( y y ) ] f ( c ) , c [ a , b ] ( )
3
trong đó: 1 y1 y3 y2 m1; 2 y2 y4 y2 m2
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
( )
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ưới 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,
do (7), nhận biểu thức gần sai số phải tìm
R M h ,trong M xem
số Gọi I ( h )s s
h I ( )
2
là giá trị gần
b
a
I f ( x )d x nhận từ công thức Simpson
tổng quát với bước h bước h
2
, ta có:
4 s
4 s
I I ( h ) M h
h h
I I ( ) M ( )
2
Từ
s s
h
I ( ) I ( h ) M h
2
s s s
h h
I I I I ( h ) (8 )
2
Với giả thiết đạo hàm f ''( x ) biến đổi đoạn a , b, ta có cơng thức thực hành tính
sai số: T T T
h h
I I I I ( h ) (9 ),
2
I ( h )T T
h I ( )
2
là giá trị gần
b
a
I f ( x ) d x nhận từ cơng thức hình thang tổng qt với bước h bước h
2.4 Ví dụ: Tính gần tích phân xác định I =
1
3
s in (1 x ) d x x
, với m =
Ta có: n=2m=2.5=10; a ; b 0 ;1 h 0 ,
1
x0 = 0, xn = x10 = 1, xi = x0 + i.h = + i.0,1 (i1, )
Ta có bảng giá trị hàm f(x) xi:
i xi f(xi)
0 0.84147098
1 0.1 0.84429895
2 0.2 0.84219163
3 0.3 0.82019141
4 0.4 0.76913012
5 0.5 0.69017063
6 0.6 0.59336444
7 0.7 0.49124581
8 0.8 0.39337791
9 0.9 0.30484059
(7)56
Vậy áp dụng cơng thức Simpson ta có:
1
h
I f ( x ) f ( x ) ( 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
Tính gần tích phân xác định I =
b
3 a
s in (1 x ) d x x
, cận a b tùy ý nhập vào từ bàn
phím với a , b ; a b
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'); Writeln(' Tinh tich phan gan dung cua ham so
2
s i n (1 x ) y
1 x
');
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;