Tải bản đầy đủ (.pdf) (8 trang)

Giáo Trình Phương Pháp Tính (chương 6)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (235.13 KB, 8 trang )

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):
⋅⋅⋅++
′′′
+
′′
+

+=+ )x(f
!4
h
)x(f
!3
h
)x(f
2
h
)x(fh)x(f)hx(f
)4(
432
 (1)
⋅⋅⋅−+
′′′

′′
+



−=− )x(f
!4
h
)x(f
!3
h
)x(f
2
h
)x(fh)x(f)hx(f
)4(
432
 (2)
Tr(1)cho(2)tacó:
⋅⋅⋅++
′′′
+

=−−+ )x(f
!5
h2
)x(f
!3
h2
)x(fh2)hx(f)hx(f
)5(
53
(3)
Nhvyrútra:

⋅⋅⋅−−
′′′

−−+
=

)x(f
!5
h
)x(f
!3
h
h2
)hx(
f
)hx(
f
)x(f
)5(
42
  (4)
haytacóthvitli:
[]
⋅⋅⋅++++−−+=

6
6
4
4
2

2
hahaha)hx(f)hx(f
h2
1
)x(f    (5)
trongđócáchsaiphthucfvàx.
Tađt:
[
)hx(f)hx(f
h2
1
)h( −−+=ϕ
]
(6)
Nhvyt(5)và(6)tacó:









=ϕ=
6
6
4
4
2

2
hahaha)x(
f
)h()1,1(D (7)
⋅⋅⋅−−−−

=






ϕ=
64
h
a
16
h
a
4
h
a)x(f
2
h
)1,2(D
6
6
4
4

2
2
(8)
vàtngquátvihi=h/2
i1
tacó:








=ϕ=
6
i6
4
i4
2
i2i
hahaha)x(
f
)h()1,i(D (9)
TatorasaiphânD(1,1)4D(2,1)vàcó:
⋅⋅⋅−−−

−=







ϕ−ϕ
6
6
4
4
ha
16
15
ha
4
3
)x(f3
2
h
4)h( (10)
Chiahaivca(10)cho3tanhnđc:
⋅⋅⋅+++

=

=
6
6
4
4
ha

16
5
ha
4
1
)x(f
4
)1,1(D)1,2(D4
)2,2(D   (11)
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:

158
 ⋅⋅⋅+






+







+

=
6
6
4
4
2
h
a
16
5
2
h
a
4
1
)x(f)2,3(D (12)
vàkhshngcóh
4
bngcáchtora:

6
6
ha
64
15
)x(f15)2,3(D16)3,2(D +⋅⋅⋅+


−=− (13)
Chiahaivca(13)cho15tacó:

⋅⋅⋅−−

=

=
6
6
ha
64
1
)x(f
15
)2,2(D)2,3(D16
)3,3(D (14)
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ó:

14
)1j,1i(D)1j,i(D4
)j,i(D
1j
1j

−−−−
=



vàgiátrkhiđulà:

[]
)hx(f)hx(f
h2
1
)h()j,i(D
ii
i
i
−−+=ϕ= 
vihi=h/2
i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)=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

201843569.4)]75.1(f)25.2(f[
25.02
1
)1,2(D
207496266.4)]5.1(f)5.2(f[
5.02
1
)1,1(D
=−
×
=
=−
×
=

200458976.4)]875.1(f)125.2(f[
125.02
1
)1,3(D =−
×
= 
19995935.4
14
)1,1(D)1,2(D4
)2,2(D =



= 
200458976.4
14
)1,2(D)1,3(D4
)2,3(D =


= 

159
200492284.4
14
)2,2(D)2,3(D4
)3,3(D
2
2
=


= 
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ình61

//Daoham_Romberg;
#include<conio.h>

#include<stdio.h>
#include<math.h>
#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<=n;k++)
{
h=h/2;
d[k]=dy(x);
p=1.0;
for(j=k1;j>=1;j)
{
p=4*p;


160
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
a
dx)x(fJ 
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,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x
ithìJlàgi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à:
y
B
A
x
b
a


)xx)(x(flimJ
n
0i
i1ii
n

=
+
∞→
−=
 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
0i
in
fhS

161
 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ó:

()
n1n20n
ff2f2f
n
a
b

S ++⋅⋅⋅++

=


hay:






++

=


=
1n
1i
in0n
f2ff
n
a
b
S 
Mtcáchkháctacóthvit:
 }2/]h)1k(a[f2/)kha(hf{dx)x(fdx)x(f
1n
0k

1n
1k
h)1k(a
kha
b
a
++++≈=
∑∑
∫∫

=

=
++
+
hay:
 }2/)b(f]h)1n(a[f)ha(f2/)a(f{hdx)x(f
b
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62

//tinhtichphanbangphuongphaphinh_thang;
#include<conio.h>
#include<stdio.h>
#include<math.h>


floatf(floatx)
{
 floata=exp(x)*sin(x);

162
 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=(ba)/n;
 x=a;
 s=(f(a)+f(b))/2;
 for(i=1;i<=n;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x
i:
 a=xo<x1<x2< <x2n=b
 xi=a+ih;h=(ba)/2nvii=0,..,2n
Doyi=f(xi)nêntacó:

163
∫∫∫∫

+++=
x
x
x
x
b
a
x
x
n2
2n2

4
2
2
0
fdx fdxfdxdx)x(f 
Đtínhtíchphânnàytathayhàmf(x)vphibngđathcnisuy
Newtontinbc2:

0
2
002
y
!2
)1t(t
ytyP ∆

+∆+= 
vàvitíchphânthnhttacó:


∫∫
=
2
0
2
0
x
x
2
x

x
dx)x(Pdx)x(f
Đibinx=x0+ththìdx=hdt,vix0thìt=0vàvix2thìt=2nên:
()
210
0
2
00
2t
0t
0
2
23
0
2
0
2
0
0
2
00
x
x
2
yy4y
3
h
y
2
4

3
8
2
1
y2y2h
y
2
t
3
t
2
1
y
2
t
tyh
dty
!2
)1t(t
ytyhdx)x(P
2
0
++=














−+∆+=













−+∆+=








+∆+=

=
=
∫∫

Đivicáctíchphânsautacũngcóktqutngt:

[]
2i21i2i2
x
x
yy4y
3
h
dx)x(f
2i2
i2
++
++=

+

Cngcáctíchphântrêntacó: 

()(
[]
n22n2421n2310
b
a
yyyy2yyy4y
3

h
dx)x(f ++⋅⋅⋅++++⋅⋅⋅+++=
−−

)

ChngtrìnhdùngthuttoánSimpsonnhsau:

Chngtrình63

//PhuongphapSimpson;
#include<conio.h>
#include<stdio.h>
#include<math.h>

floaty(floatx)
{
 floata=4/(1+x*x);

164
 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<=n2;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.



165

×