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

7 37 0
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

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

Thông tin tài liệu

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  , n1) 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  , n1) (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 m2, x2 m1, x2 m1, 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 (i1, m1), 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 m1; 2 y2 y4  y2 m2

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 k2, 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 m1; 2 y2 y4  y2 m2

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 (i1, )

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;

Ngày đăng: 01/04/2021, 13:02

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan