YOMEDIA
ADSENSE
Chương 6: Tính gần đúng đạo hàm và tích phân xác định
108
lượt xem 7
download
lượt xem 7
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Chương 6: Tính gần đúng đạo hàm và tích phân xác định giới thiệu đến bạn đọc những nội dung về đạo hàm Romberg, khái niệm về tích phân số, phương pháp hình thang, công thưc Simpson. Mời các bạn tham khảo nội dung chi tiết.
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Chương 6: Tính gần đúng đạo hàm và tích phân xác định
- CHƯƠ NG 6: TÍNH GẦ N ĐÚNG ĐẠ O HÀM VÀ TÍCH PHÂN XÁC ĐỊ NH §1. ĐẠ O HÀM ROMBERG Đạo hàm theo ph ươ ng pháp Romberg là mộ t ph ươ ng pháp ngoại suy để xác đị nh đạ o hàm với một độ chính xác cao. Ta xét khai triển Taylor của hàm f(x) tại (x + h) và (x h): h2 h3 h 4 ( 4) f( x h ) f( x) h f ( x) f ( x) f ( x) f ( x) (1) 2 3! 4! h2 h3 h 4 ( 4) f( x h ) f( x) h f ( x) f (x) f (x) f ( x) (2) 2 3! 4! Trừ (1) cho (2) ta có: 2h 3 2h 5 ( 5) f( x h ) f( x h ) 2h f ( x ) f (x) f ( x) (3) 3! 5! Nh ư vậy rút ra: f( x h ) f( x h ) h 2 h 4 ( 5) f ( x) f ( x) f ( x) (4) 2h 3! 5! hay ta có thể viết lại: 1 f ( x) f( x h ) f( x h ) a 2 h 2 a 4 h 4 a 6 h 6 (5) 2h trong đó các hệ số ai ph ụ thu ộc f và x. Ta đặ t: 1 (h ) f( x h ) f( x h ) (6) 2h Nh ư vậy từ (5) và (6) ta có: D(1,1) ( h ) f ( x) a 2 h 2 a 4 h 4 a 6 h 6 (7) 2 4 6 h h h h D( 2 ,1) f (x) a 2 a4 a6 (8) 2 4 16 64 và tổ ng quát với h i = h/2 i1 ta có : D(i ,1) ( h i ) f ( x) a 2 h i2 a 4 h i4 a 6 h 6i (9) Ta tạo ra sai phân D(1,1) 4D(2,1) và có: h 3 15 (h ) 4 3f ( x) a 4h 4 a 6h 6 (10) 2 4 16 Chia hai vế của (10) cho 3 ta nh ậ n được: 4 D( 2 ,1) D(1,1) 1 5 D( 2 ,2) f ( x) a 4h 4 a 6h 6 (11) 4 4 16 Trong khi D(1, 1) và D(2, 1) sai khác f (x) ph ụ thu ộc vào h 2 thì D(2, 2) sai khác f (x) ph ụ thu ộc vào h 4 . Bây giờ ta lại chia đôi bước h và nhậ n được: 4 6 1 h 5 h D( 3,2) f ( x ) a4 a6 (12) 4 2 16 2 160
- và khử số hạng có h 4 bằng cách tạo ra: 15 D( 2 ,3) 16 D( 3,2) 15f ( x) a 6h 6 (13) 64 Chia hai vế của (13) cho 15 ta có: 16 D( 3,2) D( 2 ,2) 1 D( 3,3) f ( x) a6h 6 (14) 15 64 Với lần tính này sai số của đạ o hàm chỉ còn ph ụ thu ộc vào h 6. Lại tiế p tục chia đôi bước h và tính D(4, 4) thì sai số ph ụ thu ộc h 8. Sơ đồ tính đạ o hàm theo ph ươ ng pháp Romberg là : D(1, 1) D(2, 1) D(2, 2) D(3, 1) D(3, 2) D(3, 3) D(4, 1) D(4, 2) D(4, 3) D(4, 4) . . . . . . . . . . . . trong đó mỗi giá trị sau là giá trị ngoại suy của giá trị trước đó ở hàng trên . Với 2 j i n ta có: 4 j 1 D(i , j 1) D(i 1, j 1) D(i , j) 4j 1 1 và giá trị khởi đầ u là: 1 D(i , j) (h i ) f( x h i ) f( x h i ) 2h i với h i = h/2 i1 . Chúng ta ng ừng lại khi hi ệu gi ữa hai lần ngo ại suy đạ t độ chính xác yêu cầu. Ví dụ: Tìm đạ o hàm của hàm f(x) = x 2 + arctan(x) tại x = 2 v ới b ước tính h = 0.5. Trị chính xác của đạ o hàm là 4.2 1 D(1,1) [f( 2.5) f(1.5)] 4.207496266 2 0.5 1 D( 2 ,1) [f( 2.25) f (1.75)] 4.201843569 2 0.25 1 D( 3,1) [f( 2.125) f(1.875)] 4.200458976 2 0.125 4 D( 2 ,1) D(1,1) D( 2 ,2) 4.19995935 4 1 4 D( 3,1) D( 2 ,1) D( 3,2) 4.200458976 4 1 4 2 D( 3,2) D( 2 ,2) D( 3,3) 4.200492284 42 1 Chươ ng trình tính đạ o hàm nh ư d ưới đây. Dùng chương trình tính đạ o hàm của hàm cho trong function với bước h = 0.25 t ại x o = 0 ta nh ận đượ c giá trị đạ o hàm là 1.000000001. 161
- Chương trình 61 / / D aoham_Romberg; #include #include #include #define max 11 float h; void main() { float d[max]; int j,k,n; float x,p; float y(float),dy(float); clrscr(); printf("Cho diem can tim dao ham x = "); scanf("%f",&x); printf("Tinh dao ham theo phuong phap Romberg \ n"); printf("cua ham f(x) = th(x) tai x = %4.2f\n",x); n=10; h=0.2; d[0]=dy(x); for (k=2;k=1;j) { p=4*p; d[j]=(p*d[j+1]d[j])/(p 1); } } printf("y'= %10.5f\n",d[1]); getch(); } float y(float x) { float a=(exp(x)exp(x))/(exp(x)+exp(x)); 162
- return(a); } float dy(float x) { float b=(y(x+h)y(xh))/(2*h); return(b); } §2. KHÁI NIỆM VỀ TÍCH PHÂN SỐ Mục đích của tính tích phân xác đị nh là đánh giá đị nh lượng biể u th ức: b J f ( x )dx y a B trong đó f(x) là hàm liên tục trong kho ảng [a,b] và có thể biểu diễ n bởi đườ ng cong y=f(x). Nh ư vậy tích phân xác đị nh J là diệ n tích SABba , A giới hạn bởi đườ ng cong f(x), trục hoành, các đườ ng thẳ ng x = a và x = b. Nế u ta chia đoạ n [a, b] thành n ph ầ n bởi các điể m xi thì J là giới b x a hạ n của tổng di ệ n tích các hình chữ nhật f(x i).(xi+1 xi) khi số điể m chia b tiế n tới , nghĩa là: n J lim f ( x i )( x i 1 xi ) n i 0 Nế u các điể m chia xi cách đề u, thì ( xi +1 xi ) = h. Khi đặ t f(xo ) = fo, f(x1)=f1 ,... ta có tổng: n Sn h fi i 0 Khi n rất lớn, Sn tiến tới J. Tuy nhiên sai số làm tròn lại đượ c tích luỹ. Do vậy cần ph ải tìm phươ ng pháp tính chính xác hơn. Do đó người ta ít khi dùng ph ươ ng pháp hình chữ nh ật nh ư vừa nêu. §3. PHƯƠNG PHÁP HÌNH THANG Trong ph ươ ng pháp hình thang, thay vì chia diệ n tích SABba thành các hình chữ nhật, ta lại dùng hình thang. Ví dụ nế u chia thành 3 đoạ n như hình vẽ thì: S3 = t 1 + t 2 + t 3 trong đó t i là các diệ n tích nguyên tố. Mỗi diệ n tích này là một hình thang: ti = [f(xi) + f(xi1)]/ (2h) = h(f i fi1) / 2 Nh ư vậy: S3 = h[(f o + f1) + (f1 + f2) + (f2 + f3)] / 2 = h[f o + 2f1 + 2f2 + f3] / 2 163
- Một cách tổng quát chúng ta có: b a Sn f0 2f2 2fn 1 fn n b a n 1 hay: S n f0 fn 2 fi n i 1 Một cách khác ta có thể viết: b n 1 a ( k 1) h n 1 f( x)dx f( x)dx {hf (a kh ) / 2 f[a ( k 1)h ] / 2} a k 1 a kh k 0 hay: b f ( x)dx h {f(a ) / 2 f(a h) f[a ( n 1)h ] f( b ) / 2} a Chươ ng trình tính tích phân theo ph ươ ng pháp hình thang nh ư sau: Chương trình 62 / / t i nh tich phan bang phuong phap hinh_thang; #include #include #include float f(float x) { float a=exp(x)*sin(x); return(a); }; void main() { int i,n; float a,b,x,y,h,s,tp; clrscr(); printf("Tinh tich phan theo phuong phap hinh thang \ n"); printf("Cho can duoi a = "); scanf("%f",&a); printf("Cho can tren b = "); scanf("%f",&b); printf("Cho so buoc n = "); scanf("%d",&n); h=(ba)/n; x=a; s=(f(a)+f(b))/2; for (i=1;i
- { x=x+h; s=s+f(x); } tp=s*h; printf("Gia tri cua tich phan la : %10.6f\n",tp); getch(); } Dùng chươ ng trình này tính tích phân của hàm cho trong function trong khoả ng [0 , 1] với 20 điể m chia ta có J = 0.261084. §4. CÔNG THƯC SIMPSON Khác với ph ươ ng pháp hình thang, ta chia đoạ n [a, b] thành 2n ph ầ n đề u nhau bởi các điể m chia xi: a = xo
- Cộng các tích phân trên ta có: b h f( x)dx y0 4 y1 y3 y 2n 1 2 y 2 y4 y 2n 2 y 2n a 3 Chươ ng trình dùng thu ậ t toán Simpson nh ư sau: Chương trình 63 / / P h uong phap Simpson; #include #include #include float y(float x) { float a=4/(1+x*x); return(a); } void main() { int i,n; float a,b,e,x,h,x2,y2,x4,y4,tp; clrscr(); printf("Tinh tich phan theo phuong phap Simpson \ n"); printf("Cho can duoi a = "); scanf("%f",&a); printf("Cho can tren b = "); scanf("%f",&b); printf("Cho so diem tinh n = "); scanf("%d",&n); h=(ba)/n; x2=a+h; x4=a+h /2; y4=y(x4); y2=y(x2); for (i=1;i
- } y2=2*y2; y4=4*(y4+y(x4+h)); tp=h*(y4+y2+y(a)+y(b))/6; printf("Gia tri cua tich phan la : %10.8f\n",tp); getch(); } Dùng chương trình này tính tích phân của hàm trong function trong đoạ n [0, 1] với 20 khoả ng chia cho ta kết qu ả J = 3.14159265. 167
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn