Chương 12 - Tính gần đúng đạo hàm và tích phân xác định
lượt xem 17
download
Đặt vấn đề Trong toán học, đã có phương pháp tính đạo hàm và tính phân xác định Thực tế, thường gặp các trường hợp : Hàm y=f(x) chỉ được cho ở dạng bảng, công thức tường minh của y là chưa biết. Hàm f(x) đã biết, nhưng phức tạp Hoặc viết chương trình máy tính để tính tích phân xác định. Chọn giải pháp: “Tính gần đúng đạo hàm".
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Chương 12 - Tính gần đúng đạo hàm và tích phân xác định
- Ch−¬ng 12 : 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) + hf ′(x) + f ′′(x) + f ′′′(x) + f (x ) + ⋅ ⋅ ⋅ (1) 2 3! 4! h2 h3 h 4 (4) f (x − h) = f (x) − hf ′(x) + f ′′(x) − f ′′′(x) + f (x ) − ⋅ ⋅ ⋅ (2) 2 3! 4! Trõ (1) cho (2) ta cã : 2h 3 2 h 5 ( 5) f (x + h) − f (x − h) = 2 hf ′(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 : f ′(x) = 1 [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 (6) ϕ(h) = [f (x + h) − f (x − h)] 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) ⎛h⎞ 2 4 6 h h h D(2,1) = ϕ⎜ ⎟ = f ′(x) − a 2 − a4 − a6 − ⋅⋅⋅ (8) ⎝2⎠ 4 16 64 vµ tæng qu¸t víi hi = h/2i-1 ta cã : D(i,1) = ϕ(h i ) = f ′(x) − a 2 h 2 − a 4 h i4 − a 6 h 6 − ⋅ ⋅ ⋅ i i (9) Ta t¹o ra sai ph©n D(1,1) - 4D(2,1) vµ cã : ⎛h⎞ 3 15 ϕ(h) − 4ϕ⎜ ⎟ = −3f ′(x) − a 4 h 4 − a 6 h 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 4 h 4 + a 6 h 6 + ⋅ ⋅ ⋅ (11) 4 4 16 Trong khi D(1,1) vµ D(2,1) sai kh¸c f′(x) phô thuéc vµo h2 th× D(2,2) sai kh¸c f′(x) phô thuéc vµo h4 . B©y giê ta l¹i chia ®«i b−íc h vµ nhËn ®−îc : 1 5 (12) D(2,2) f ′(x) = + 4 + 6 (h / 2)+... (h / 2) 4 a4 16 a 6 vµ khö sè h¹ng cã h4 b»ng c¸ch t¹o ra : 15 (13) D(2,2) −16D(32) = −15f ′(x) , ++ (h)6 +... 64 a 6 Chia hai vÕ cña (13) cho -15 ta cã : 16D(3,2) − D(2,2) 1 (14) = f ′( x) − 6 D(3,3) = − . ... 15 64 a 6 h 204
- Víi lÇn tÝnh nµy sai sè cña ®¹o hµm chØ cßn phô thuéc vµo h6 . L¹i tiÕp tôc chia ®«i b−íc h vµ tÝnh D(4,4) th× sai sè phô thuéc h8 . 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) = 4 j −1 −1 vµ gi¸ trÞ khëi ®Çu lµ : 1 D(i,1) = ϕ( hi ) = [ f ( x + h i ) − f ( x − h i )] 2 hi víi hi = h/2i-1 . 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) = x2 + 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) = 1 D(2,2) = 4.19995935 4 −1 1 4 D(3,1) − D(2,1) = 1 D(3,2) = 4.200458976 4 −1 1 4 D(3,2) − D(2,2) = 2 D(3,3) = 4.200492284 4 −1 21 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 xo = 0 ta nhËn ®−îc gi¸ trÞ ®¹o hµm lµ 1.000000001. Ch−¬ng tr×nh12-.1 //Daoham_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); 205
- 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)); return(a); } float dy(float x) { float b=(y(x+h)-y(x-h))/(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 y J = ∫ f ( x)dx a trong ®ã f(x) lµ hµm liªn tôc trong kho¶ng [a,b] vµ cã B 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 , giíi h¹n bëi ®−êng cong f(x) , trôc hoµnh , c¸c ®−êng th¼ng x = a vµ x = b A . NÕu ta chia ®o¹n [a,b] thµnh n phÇn bëi c¸c ®iÓm xi th× J lµ gíi h¹n cña tæng diÖn tÝch c¸c h×nh ch÷ nhËt f(xi).(xi+1 - xi) khi sè ®iÓm chia tiÕn tíi ∝, nghÜa lµ : a a x b 206
- n J = lim ∑ f ( x )( x i +1 − x i ) i 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 ∑f i 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 = t1 + t2 + t3 trong ®ã ti 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(xi-1)]/ (2h) = h(fi - fi-1) / 2 Nh− vËy : S3 = h[(fo+f1)+(f1+f2)+(f2+f3)] / 2 = h[fo+2f1+2f2+f3] / 2 Mét c¸ch tæng qu¸t chóng ta cã : b−a Sn = (f o + 2f 1 + ⋅ ⋅ ⋅ + 2f n −1 + 2f n ) n hay : b−a n Sn = {f o +f n + 2 ∑ f i} n i =1 Mét c¸ch kh¸c ta cã thÓ viÕt : b n −1a + ( 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 12-2 //tinh tich phan bang phuong phap hinh_thang; #include #include #include float f(float x) { float a=exp(-x)*sin(x); return(a); }; 207
- 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=(b-a)/n; x=a; s=(f(a)+f(b))/2; for (i=1;i
- x2 2 1(t −1) 2 ∫ P 2 (x)dx = h ∫ (y0 + t∆y0 + ∆ y0 )dt x0 0 2 2 = h[y t + t ∆y + 1 t − t 2 2 t =2 3 ( )∆ y0 ]|t =0 0 2 0 2 3 2 1 8 −4 2 = h[2y0 + 2∆y0 + ( )∆ y0 ] 2 3 2 = h [y + 4y1 + y2 ] 3 0 §èi víi c¸c tÝch ph©n sau ta còng cã kÕt qu¶ t−¬ng tù : x 2i +2 h ∫ f (x)dx = [y2i + 4y2i +1 + y2i + 2 ] x 2i 3 Céng c¸c tÝch ph©n trªn ta cã : b h ∫ f (x)dx = [y + 4(y1 + y3 + ⋅ ⋅ ⋅ + y2 n −1 ) + 2(y2 + y 4 + ⋅ ⋅ ⋅ + y2 n − 2 ) + y2 n ] a 3 o Ch−¬ng tr×nh dïng thuËt to¸n Simpson nh− sau : Ch−¬ng tr×nh 12-3 //Phuong 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=(b-a)/n; x2=a+h; x4=a+h/2; y4=y(x4); y2=y(x2); for (i=1;i
- x2+=h; x4+=h; y4+=y(x4); y2+=y(x2); } 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. 210
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Sáng kiến kinh nghiệm " Phương pháp ứng dụng vòng tròn lượng giác giải bài tập dao động điều hoà "
19 p | 905 | 372
-
GIẢI NHANH CÁC CÂU VẬN DỤNG BÀI TẬP TRONG ĐỀ THI TRẮC NGHIỆM ĐẠI HỌC VÀ CAO ĐẲNG MÔN SINH HỌC
7 p | 335 | 89
-
Giáo án Sinh học 12 bài 16
4 p | 407 | 32
-
Kinh nghiệm thi môn Ngữ văn và tiếng Anh
8 p | 164 | 26
-
Giáo án Sinh học 7 bài 12: Một số giun dẹp khác và đặc điểm của ngành Giun dẹp
6 p | 554 | 17
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