intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 12 - Tính gần đúng đạo hàm và tích phân xác định

Chia sẻ: Nguyễn Thị Phương Phương | Ngày: | Loại File: PDF | Số trang:7

137
lượt xem
17
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Đặ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".

Chủ đề:
Lưu

Nội dung Text: Chương 12 - Tính gần đúng đạo hàm và tích phân xác định

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0