311
CHƯƠNG 6: ĐẠO HÀM VÀ TÍCH PHÂN SỐ
§1.TÍNHĐẠOHÀMBẬCNHẤTBẰNGPHƯƠNGPHÁPROMBERG
ĐạohàmtheophươngphápRomberglàmộtphươngphápngoạisuy
đểxácđịnhđạohàmvớimộtđộchínhxáccao.TaxétkhaitriểnTaylorcủ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)tacó:
⋅⋅⋅++
′′′
+
′
=−−+ )x(f
!5
h2
)x(f
!3
h2
)x(fh2)hx(f)hx(f
)5(
53
(3)
Nhưvậyrútra:
⋅⋅⋅−−
′′′
−
−−+
=
′
)x(f
!5
h
)x(f
!3
h
h2
)hx(
f
)hx(
f
)x(f
)5(
42
(4)
haytacóthểviếtlại:
[]
⋅⋅⋅++++−−+=
′
6
6
4
4
2
2
hahaha)hx(f)hx(f
h2
1
)x(f (5)
trongđócáchệsốaiphụthuộcfvàx.
Tađặt:
[]
)hx(f)hx(f
h2
1
)h( −−+=ϕ
(6)
Nhưvậytừ(5)và(6)tacó:
⋅
⋅
⋅
−
−
−
−
′
=ϕ=
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ổngquátvớih
i=h/2
i‐1
tacó:
⋅
⋅
⋅
−
−
−
−
′
=ϕ=
6
i6
4
i4
2
i2i
hahaha)x(
f
)h()1,i(D (9)
TatạorasaiphânD(1,1)‐4D(2,1)vàcó:
⋅⋅⋅−−−
′
−=
⎟
⎠
⎞
⎜
⎝
⎛
ϕ−ϕ
6
6
4
4
ha
16
15
ha
4
3
)x(f3
2
h
4)h( (10)
Chiahaivếcủa(10)cho‐3tanhậ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)
TrongkhiD(1,1)vàD(2,1)saikhácf
′(x)phụthuộcvàoh
2
thìD(2,2)saikhác
f
′(x)phụthuộcvàoh
4
.Bâygiờtalạichiađôibướchvànhậnđược:
312
⋅⋅⋅+
⎟
⎠
⎞
⎜
⎝
⎛
+
⎟
⎠
⎞
⎜
⎝
⎛
+
′
=
6
6
4
4
2
h
a
16
5
2
h
a
4
1
)x(f)2,3(D (12)
vàkhửsốhạngcóh
4
bằngcáchtạora:
6
6
ha
64
15
)x(f15)2,3(D16)3,2(D +⋅⋅⋅+
′
−=− (13)
Chiahaivếcủa(13)cho‐15tacó:
⋅⋅⋅−−
′
=
−
=
6
6
ha
64
1
)x(f
15
)2,2(D)2,3(D16
)3,3(D
(14)
Vớilầntínhnàysaisốcủađạohàmchỉcònphụthu ộcvàoh
6
.Lạitiếptụcchia
đôibướchvàtínhD(4,4)thìsaisốphụthuộch
8
.Sơđồtínhđạohàmtheo
phươngphápRomberglà:
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ỗigiátrịsaulàgiátrịngoạisuycủagiátrịtrướcđóởhàngtrên.
Với2
≤j≤i≤ntacó:
14
)1j,1i(D)1j,i(D4
)j,i(D
1j
1j
−
−−−−
=
−
−
vàgiátrịkhởiđầulà:
[]
)hx(f)hx(f
h2
1
)h()j,i(D
ii
i
i
−−+=ϕ=
vớih
i=h/2
i‐1
.
Chúngtangừnglạikhihiệugiữahailầnngoạisuyđạtđộchínhxácyêu
cầu.
Taxâydựnghàm
diffromberg()đểthựchiênthuậttoántrên:
functiondf=diffromberg(f,x,h,maxiter,tol)
%TinhdaohambangphuongphapRomberg
D(1,1)=(feval(f,x+h)‐feval(f,x‐h))/(2*h);
fori=1:maxiter
h=h/2;
D(i+1,1)=(feval(f,x+h)‐feval(f,x‐h))/(2*h);
forj=1:i
D(i+1,j+1)=
(4^j*D(i+1,j)‐D(i,j))/(4^j‐1);
313
end
if(abs(D(i+1,i+1)‐D(i,i))<tol)
df=D(i+1,i+1);
break;
elseif(i==maxiter)
error(ʹNgoaisuyRichardsonkhonghoituʹ);
end
end
Đểtínhđạohàmcủahàmchotrướctadùngchươngtrình
ctdiffromberg.m:
clearall,clc
formatlong;
f=inline(ʹx^2+2*x*exp(x)+1ʹ);
x=2;
h=0.5;
tol=1e‐6;
maxiter=10;
df=diffromberg(f,x,h,maxiter,tol)
§2.TÍNHĐẠOHÀMBẬCCAO
TaxétkhaitriểnTaylorcủahàmf(x):
⋅⋅⋅++
′′′
+
′′
+
′
+=+ )x(f
!4
h
)x(f
!3
h
)x(f
2
h
)x(fh)x(f)hx(f
)4(
432
(1)
23 4
(4)
hh h
f(x h ) f(x) hf ( x) f (x) f ( x) f ( x)
23!4!
′′′′′′
−= − + − + −⋅⋅⋅
(2)
Từ(1)và(2)tacó:
(2)
c2
2
24
(4) (6)
f(x h) 2f(x) f(x h)
D(x,h)
h
h2h
f (x) f (x) f ( x)
12 6!
+− + −
=
′′
= + + +
L
(3)
Nhưvậynếutatínhđạohàmcấp2theo(3)thìsaisốcỡh
2
.Dùngphương
phápngoạisuyRichadsontacó:
314
2(2) (2)
c2 c2
22
4
(5)
2D (x,h) D (x,2h)
f(x 2 h) 16f(x h) 30f(x) 16f(x h) f(x 2h)
21 12h
h
f (x) f (x)
90
−
−+ + +− + +− −
=
−
′′
= − +L
Dovậy:
(2)
c2
2
4
(5)
f(x 2h) 16f(x h) 30f(x) 16f(x h) f(x 2h)
D(x,h)
12h
h
f (x) f (x)
90
−+ + +− + +− −
=
′′
= − +L
(4)
Nếuđạohàmcấpđượctínhtheo(4)thìsaisốchỉcòncỡh
4
.Từ(4)tacó:
(2)
22 11 00 1 1 2 2
c2
2
cf cf cf c f c f
D(x,h)
h
−
−−−
+++ +
= (5)
Trongđó:
f
2=f(x+2h)
f
1=f(x+h)
f
0=f(x)
f
‐1=f(x‐h)
f
‐2=f(x‐2h)
ViếtrõcáckhaitriểnTaylorcủaf
2,f1,f0,f‐1,f‐2tacó:
22
20 0 0 10 0 0
(2)
c2
2
22
00 1 0 0 0 2 0 0 0
(2h) h
cf 2hf f cf hf f
2! 2!
1
D(x,h)
h
h(2h)
c f c f hf f c f 2hf f
2! 2!
−−
⎧⎫
⎡⎤⎡⎤
′′′ ′′′
++ ++ ++ +
⎪⎪
⎢⎥⎢⎥
⎪⎣ ⎦ ⎣ ⎦ ⎪
=
⎨⎬
⎡⎤⎡ ⎤
−
⎪⎪
′′′ ′ ′′
++ −+ −+ − + −
⎢⎥⎢ ⎥
⎪⎪
⎣⎦⎣ ⎦
⎩⎭
LL
LL
21 0 1 20 21 1 20
(2)
22
c2
2
2
21 1 20
(c c c c c )f h( 2c c c 2c )f
1
D(x,h)
2112
hccc cf
h
222 2
−− − −
−−
′
+++ + + ++−
⎧⎫
⎪⎪
=
⎛⎞
⎨⎬
′′
+++++
⎜⎟
⎪⎪
⎝⎠
⎩⎭
L
(6)
Taphảigiảihệphươngtrìnhsauđểtìmcáchệsốc
i.
2
1
22
0
23
1
44
2
1111 1
c0
2101 2
c0
22!12!0 12! 22!
c1
23!13!0 13! 23!
c0
24!14!0 14! 24!
c0
−
−
⎡
⎤⎡⎤
⎡⎤
⎢
⎥⎢⎥
⎢⎥
−−
⎢
⎥⎢⎥
⎢⎥
⎢
⎥⎢⎥
⎢⎥
=
⎢
⎥⎢⎥
⎢⎥
−−
⎢
⎥⎢⎥
⎢⎥
⎢
⎥⎢⎥
⎢⎥
−
⎣⎦
⎣
⎦⎣⎦
(7)
315
Kếtquảtacóc2=‐1/12,c1=4/3,c0=‐5/2,c‐1=4/3c‐2=‐1/12.Dovậy:
(2)
210 12
c2
2
f16f30f16f f
D(x,h)
12h
−
−
−+ − + −
=
Tươngtựtacóđạohàmbậc4củahàm:
(4)
210 12
c2
4
f4f6f4f f
D(x,h)
12h
−
−
−+− +
=
Taxâydựnghàm
diffn()đểtínhđạohàmtớibậc5:
functiondf=diffn(f,n,x)
%Tinhdaohamcapncuaftaix
ifn>5
error(ʹHamchitinhduocdaohamdenbac5ʹ);
return;
end;
N=5;
xo=x;
T(1)=feval(f,xo);
h=0.005;
tmp=1;
fori=1:N
tmp=tmp*h;
c=difapx(i,[‐ii]);%hesocuadaoham
dix=c*feval(f,xo+[‐i:i]*h)ʹ;
T(i+1)=dix/tmp;%daoham
end
df=T(n+1);
h=0.005;
tmp=1;
fori=1:N
tmp=tmp*h;
c=difapx(i,[‐ii]);
%hesocuadaoham
dix=c*feval(f,xo+[‐i:i]*h)ʹ;%/h^i;%daoham
T(i+1)=dix/tmp;%hesocuachuoiTaylor
end
df=T(n+1);
316
Đểtínhđạohàmcủahàmtadùngchươngtrìnhctdiffn.m
clearall,clc
f=inline(ʹx.^2+atan(x)ʹ,ʹxʹ);
df=diffn(f,5,0)
§3.TÍNHĐẠOHÀMBẰNGPHƯƠNGPHÁPNỘISUY
Giảsửtacóhàmchodướidạngbảng:
x x
0 x1 x0 xn
y y0 y1 y0 yn
Đểtìmđạohàmcủahàmtạimộtđiểmnàođótasẽnộisuyhàmrồisauđó
tínhđạohàmcủahàmtạiđiểmđãcho.Taxâydựnghàm
diffinterp()đểthực
hiệncôngviệctrên.
functiondf=diffinterp(x,y,n,x0)
%Tinhdaohamcap1hai2bangphuogphapnoisuy
px=lagrange(x,y);%TimdathucnoisuyLagrange(x,y)
[p,dp,ddp]=peval(px,x0);
fprintf(ʹTrisocuahamla:%f\nʹ,p)
ifn==1
df=
dp;
else
df=ddp;
end
fprintf(ʹDaohamcap%dla:%f\nʹ,n,df);
Đểtínhđạohàmtadùngchươngtrình
ctdiffinterp.m:
clear,clc
x0=pi/4;
x=[2:6]*pi/16;
y=sin(x);
x=[1.51.92.12.63.2];
y=[1.06281.39611.54321.84232.0397];
317
n=2;
df=diffinterp(x,y,n,x0);
§4.TÍCHPHÂNXÁCĐỊNH
Mụcđíchcủatínhtíchphânxácđịnh,còngọilàcầuphương,làđánh
giáđịnhlượngbiểuthứ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ểudiễnbởiđườngcongy=
f(x). Như vậy tích phân xácđịnh J là diện
tíchS
ABba,giớihạnbởiđườngcongf(x),trục
hoành,cácđườngthẳngx=avàx=b.Tích
phânnàythườngđượctínhgầnđúngbằng
côngthức:
n
ii
i1
J
Af(x)
=
=
∑
trongđóA
ilàtrọngsố,phụthuộcphươngpháptínhtíchphân.
Tấtcảcác phươngpháptínhtíchphânđượcsuyratừphươngphápn ội
suyhàmdướidấutíchphân.Dovậykếtquảsẽchínhxácn
ếuhàmcóthểxấp
xỉbằngđathức.Cácphươngpháptínhtíchphânxácđịnhbằngphươngpháp
sốđượcchiathành2nhóm:cácphươngphápNewton‐Cotesvàcácphương
phápGauss.Khidùngcácphươngpháp
Newton‐Coteskhoảnglấytíchphân
được chiađều như trong phương pháp hình thang hay phương pháp
Simpson.KhidùngcácphươngphápGauss,cáccdiểmchiađượcchọnđểđạt
độchínhxáccaonhất.Dophươngphápnàycần
ítlầntínhgiátrịhàmdươci
dấutíchphânnênthíchhợpkhihàmf(x)khótính.
§5.CÁCCÔNGTHỨCNEWTON‐COTES
1.Kháiniệmchung
:Takhảosáttíchphân
b
a
J
= f(x)dx
∫
(1)
Tachiamiềnlấytíchphân[a,b]thành(n‐1)đoạnbằngnhaucó
chiềudàimỗiđoạnh=(b‐a)/(n‐1)nhưhìnhvẽvàkíhiệucácđiểmchialà
a
b
A
B
y
x
318
x1,x2, ,xn.Sauđótaxấpxỉhàmf(x)bằngđa
thứcbậc(n‐1)điqua các nút.Đathứcnội
suyLagrangecủaf(x)códạng:
n
n1 i i
i1
P ( x) f(x )L (x)
−
=
=
∑
Nhưvậy,xấpxỉtíchphân(1)là:
n
bb b
n
n‐1iiii
i1
aa a
i1
J
= f(x)dx P (x)dx f(x ) L (x)dx A f(x )
=
=
== =
∑
∫∫ ∫
∑
(2)
Trongđó:
b
ii
a
A = L (x)dx i 1,2, ,n =
∫
(3)
Côngthức(2)làcôngthứcNewton‐Cotes.Vớin=2tacócôngthứchình
thangvàvớin=3tacócôngthứcSimpson.
2.Phươngpháphìnhthang
:Khin=2tacó:
2
1
12
xx xb
L(x)
xx h
−−
==−
−
1
2
21
xx xa
L(x)
xx h
−−
==
−
b
2
1
a
11h
A(xb)dx(ba)
h2h2
=− − = − =
∫
b
2
2
a
11h
A(xa)dx(ba)
h2h2
=−=−=
∫
Vậy:
h
J
f(a) f(b)
2
⎡⎤
=+
⎢⎥
⎣⎦
Trongthựctế,phươngpháphìnhthangđượcápdụngtrêntừngđoạn.Trên
mỗiđoạn[x
i,xi+1]tacó:
iii+1
h
J
f(x ) f(x )
2
⎡⎤
=+
⎢⎥
⎣⎦
và:
n
i1 2 3 n1 n
i1
h
J
J f(x ) 2f(x ) 2f(x ) 2f(x ) 2f(x )
2
−
=
⎡⎤
== + + ++ +
⎢⎥
⎣⎦
∑
L
(7)
TagọiH=b‐a.Nếutíchphântrênđượctínhchỉbởikhìnhthangthì:
k=1:
1
H
Jf(a)f(b)
2
⎡⎤
=+
⎢⎥
⎣⎦
(8)
x1
x2
x3
xn
x1=a
x2=b
h
319
k=2:
21
HH1 HH
Jf(a)2fa f(b) Jfa
242 22
⎡⎤
⎛⎞ ⎛⎞
⎢⎥
=+++ =++
⎜⎟ ⎜⎟
⎝⎠ ⎝⎠
⎢⎥
⎣⎦
k=3:
2
HH3HH
J f(a) 2fa 2fa 2fa f(b)
42 48
H3HH
Jfa fa
444
2
⎡⎤
⎛⎞⎛⎞⎛ ⎞
⎢⎥
= + ++ ++ + +
⎜⎟⎜⎟⎜ ⎟
⎝⎠⎝⎠⎝ ⎠
⎢⎥
⎣⎦
⎡⎤
1
⎛⎞⎛ ⎞
⎢⎥
= + + + +
⎜⎟⎜ ⎟
2
⎝⎠⎝ ⎠
⎢⎥
⎣⎦
Tổngquát,vớik>1tacó:
k1
2
kk1
k1 k1
i1
1H (2i1)H
J
Jfa k2,3,
22 2
−
−
−−
=
−
⎡⎤
= + + =
⎢⎥
⎣⎦
∑
(9)
Côngthức(8)làcôngthứchìnhthanglặp.Tathấyrằngtổngchỉchứacácnút
mớixuấthiệnkhisốhìnhthangtănggấpđôi.TínhdãyJ
1,J2, bằng(8)và(9)
cầncùngmộtsốlầntínhnhưkhidùng(7).Nhưngkhidùng (8)và(9)takiểm
trađượctínhhộitụvàcóthểdừnglặpkhiđạtđộchínhxácchotrước.
Taxây
dựnghàmtrapezoid()đểthựchiệnthuậttoántrên.
functionJ=trapezoid(f,a,b,maxiter,tol)
%Quytachinhthanglap.
%Cuphap:J=trapezoid(f,a,b,k)
fa=feval(f,a);
fb=feval(f,b);
J1=(fa+fb)*(b‐a)/2;
fork=2:maxiter
n=2^(k‐2);%sodiemmoi
h=(b‐a)/n;%khoangchiamoi
x=a+h/2.0;%toadodiemmoithunhat
sum=0.0;
fori=1:n
fx=feval(f,x);
sum=sum+fx;
x=x+h;
end
320
J=(J1+h*sum)/2;
ifabs(J1‐J)<tol
break;
end
J1=J;
end
Đểtínhtíchphântadùngchươngtrìnhcttrapezoid.m
clearall,clc
f=inline(ʹ(x^3+1)*sin(x)ʹ,ʹxʹ);
a=0;
b=1;
maxiter=50;
tol=1e‐6;
J=trapezoid(f,a,b,maxiter,tol)
3.PhươngphápSimpson:Khin=3tacócôngthức
Simpson.Qua3điểm,hàmf(x)đượcxấpxỉbằngmột
hàmbậchai(mộtparabol).Đểtínhtíchphântathay
hàmf(x)ởvếphảibằngđathứcnộisuyNewtonti
ến
bậc2:
2
20 0 0
t(t 1)
Pyty y
2!
−
=+∆+ ∆ (10)
vàtacó:
b
b
2
aa
f(x)dx P ( x)dx=
∫∫
(11)
Đổibiếnx=x
1+ththìdx=hdt.Vớix=x1thìt=0vàvớix=x3thìt=2nên:
x0=a
x2=b
h
x1
h
321
()
b2
2
2000
a0
t2
232
2
00 0
t0
2
00 0
012
t(t 1)
P(x)dx h y t y y dt
2!
t1tt
hyt y y
2232
18 4
h2y 2y y
23 2
hhab
y 4 y y f(a) 4f f( b)
332
=
=
−
⎡⎤
=+∆+ ∆
⎢⎥
⎣⎦
⎡⎤
⎛⎞
=+∆+−∆
⎢⎥
⎜⎟
⎝⎠
⎣⎦
⎡⎤
⎛⎞
=+∆+−∆
⎜⎟
⎢⎥
⎝⎠
⎣⎦
+
⎡
⎤
⎛⎞
=++= + +
⎜⎟
⎢
⎥
⎝⎠
⎣
⎦
∫∫
(12)
Thựctếtachiađoạn[a,b]thành2nphầnvàtínhtíchphântrênmỗiđoạncon.
Cộngcáctíchphântrêncácđoạncontacó:
()()
b
013 2n1 24 2n22n
a
h
f(x)dx y 4 y y y 2 y y y y
3
−−
⎡⎤
= + + +⋅⋅⋅+ + + +⋅⋅⋅+ +
⎢⎥
⎣⎦
∫
(13)
Côngthức(13)đòihỏinlàsốchẵn.
Taxâydựnghàm
simpson()đểthựchiệnthuậttoántrên
functions=simpson(f,a,b,n)
%nsokhoangchia
%neufchuatrongmotfiledungkihieu@degoi
%s=simpson(@f,a,b,n).
%neuflahaminline
%s=simpson(f,a,b,n).
ifmod(n,2)~=0
n=n
+1
end
h=(b‐a)/(2*n);
s1=0;
s2=0;
fork=1:n
x=a+h*(2*k‐1);
s1=s1+f(x);
end
fork=1:(n‐1)
x=a+h*2*k;
s2=s2+f(x);
322
end
s=h*(f(a)+f(b)+4*s1+2*s2)/3;
clc
Đểtínhtíchphântadùngchươngtrình
ctsimpson.m:
clearall,clc
f=inline(ʹexp(x).*sin(x)ʹ,ʹxʹ);
a=0;
b=1;
n=6;
s=simpson(f,a,b,n)
3.Phươngphápcầuphươngthíchnghi:Trong
tích phân bằng phương pháp Simpson, các
đoạnđược chiađều và làm cho sai số không
giống nhau trên cá cđoạn: sai số lớn trên các
đoạnhàmbiếnđổinhiềuvàsaisốnhỏtrêncác
đ
oạnhàmtươngđốibằngphẳng.Ngượclại
phươngphápcầuphươngthíchnghichiacácđoạnkhôngđều:ngắntrêncác
đoạnhàmthayđổinhiềuvàdàitrêncácđoạnthayđổiítvà
sẽcó saisốnhỏ
khisốđoạnchianhỏ.
Thuậttoáncầuphươngthíchnghibắtđầubằngviệctínhtíchphânint
đốiv ớitoànbộđoạn[a,b]vàtổngtíchphânint12=int1+
int2trên2đoạn
bằngnhau.Dựatrênintvàint12tatínhsaisố.Nếuchưađạtđộchínhxác,ta
chiađôimỗiđoạnvàlặplạiquátrìnhtính.Tadùnghàm
adaptivesimpson()
đểthựchiệnthuậttoánnày:
functionint=adaptivesimpson(f,a,b,tol)
mid=(b+a)/2.0;
int=simpsonapprox(f,a,b);
int12=simpsonapprox(f,a,mid)+simpsonapprox(f,mid,b);
if(abs(int‐int12)<15.0*tol)
int=int12;
else
leftint=adaptivesimpson(f,a,mid,tol/2);
rightint=adaptivesimpson(f,mid,b,tol/2);
323
int=leftint+rightint;
end
functionint=simpsonapprox(f,a,b)
h=(b‐a)/2.0;
int=h*(feval(f,a)+4.0*feval(f,(a+h))+feval(f,b))/3.0;
Đểtínhtíchphântadùngchươngtrình
ctadaptive.m:
clc,clearall
f=inline(ʹsqrt(x).*cos(x)ʹ);
a=0;
b=1;
tol=1e‐5;
J=adaptivesimpson(f,a,b,tol)
§6.TÍCHPHÂNROMBERG
TíchphânRombergkếthợpquytắctíchphânhìnhthangvớiphương
phápngoạisuyRichardson.Trướchếttađưavàokháiniệm:
R
i,1=Ji
TrongđóJ
ilàgiátrịxấpxỉcủa
b
a
f(x)dx
∫
cóđượcbằngcáchtínhtheoquytắc
lặphìnhthanglầnthứi.
TíchphânRombergbắtđầutừR
1,1=J1(mộthìnhthang)vàR2,1=J2(hai
hìnthang).SauđótínhR
2,2bằngcáchngoạisuy:
2
2,1 1,1
2,2 2,1 1,1
2
2R R
41
RRR
21 3 3
−
==−
−
(1)
Đểtiệndùngtalưucáckếtquảvàomảngdạng:
1,1
2,1 2,2
R
RR
⎡⎤
⎢⎥
⎣⎦
BướctiếptheolàtínhR
3,1=J3(bốnhìnhthang)vàlặplạingoạisuyRichadson
tacó:
2
3,1 2,1
3,2 3,1 2,1
2
2R R
41
RRR
21 3 3
−
==−
−
(2)
324
và:
4
3,2 2,2
3,3 3,2 2,2
4
2R R
16 1
RRR
21 15 15
−
==−
−
(3)
CácphầntửcủaRbâygiờgồm:
1,1
2,1 2,2
3,1 3,2 3,3
R
RR
RRR
⎡⎤
⎢⎥
⎢⎥
⎢⎥
⎣⎦
Côngthứctổngquátdùngtrongsơđồnàylà:
j
1
i,j 1 i 1,j 1
i,j
j1
4R R
Ri1,j2,3,
41
−
−−−
−
−
= > =
−
(4)
Taxâydựnghàm
romberg()đểthựchiệnthuậttoántrên:
functionJ=romberg(f,a,b,maxiter,tol)
m=1;
h=b‐a;
err=1;
j=0;
R=zeros(4,4);
R(1,1)=h*(f(a)+f(b))/2;
while((err>tol)&(j<maxiter))|(j<4)
j=j+1;
h=h/2;
s=
0;
forp=1:m
x=a+h*(2*p‐1);
s=s+f(x);
end
R(j+1,1)=R(j,1)/2+h*s;
m=2*m;
fork=1:j
R(j+1,k+1)=R(j+1,k)+(R(j+1,k)‐R(j,k))/(4^k‐1);
end
err=abs(R(j,j)‐R(j+1,
k+1));
end
J=R(j+1,j+1);
325
Đểtínhtíchphântadùngchươngtrìnhctromberg.m:
clearall,clc
f=inline(ʹexp(x).*sin(x)ʹ,ʹxʹ);
a=0;
b=1;
maxiter=20;
tol=1e‐6;
J=romberg(f,a,b,maxiter,tol)
§7.TÍCHPHÂNBOOL
Takhảosáthàmy=f(x)trênđoạn[x0,x4],với:
x
1=x0+h,x2=x0+2h,x3=x0+3h,x4=x0+4h
TheoBool,tíchphân:
4
0
x
m
012 34
k1
x
2h
J
f(x)dx 7 f (x ) 32f(x ) 12f(x ) 32f(x ) 7f (x )
45
=
== ++++
∑
∫
Xéttíchphân:
b
a
J
f(x)dx=
∫
Tachiađoạn[a,b]thành4mđoạnconđềunhaucóđộrộng
b
a
h
4m
−
= bởicác
điểmchiax
k=x0+hk=a+hk,k=0,1, ,4m.Côngth ứcBoolcho4mđoạn
conlà:
b
m
012 34
k1
a
2h
J
f(x)dx 7 f (x ) 32f( x ) 12f( x ) 32f(x ) 7 f ( x )
45
=
== ++++
∑
∫
Taxâydựnghàm
intbool()đểthựchiệnthuậttoánnày
functiontp=intbool(f,a,b,m)
%TinhtichphanbangphuongphapBool
a=0;
b=2;
m=2;
h=(b‐a)/(4*m);
fork=1:4*m
x(k)=a+k*h;
326
end
tp=0;
j=1;
fork=1:m
tp=tp+(7*feval(f,a)+32*feval(f,x(j))+
12*feval(f,x(j+1))+32*feval(f,x(j+2))+7*feval(f,x(j+3)));
a=x(4*k);
j=4*k+1;
end
tp=tp*h*2/45;
Đểtínhtíchphâncủamộthàmtadùngchươngtrình
ctintbool.m:
clearall,clc
formatlong
f=inline(ʹx.*sin(x)ʹ);
a=0;
b=2;
m=2;
J=intbool(f,a,b,m)
§8.CÔNGTHỨCTÍCHPHÂNFILON
Giảsửcầntínhtíchphân:
b
a
J
f(x)cos( x)dx=ω
∫
LúcđótacóthểdùngcôngthứctíchphânFilon:
[]
{}
n
0
x
x
4
2n 2n 2n 2n 2n 2n 1 2n
f(x)cos(tx)dx
2
h(th)fsin(tx)‐f sin(tx ) ( th)C (th)C th S
45
−
′
=α +β +γ +
∫
Trongđó:
a=x
0,b=xn,t=ω
n
2n 2i 2i 2n 2n 0 0
i0
C f cos(tx ) 0.5 f cos(tx ) f cos(tx )
=
=− +
⎡
⎤
⎣
⎦
∑
327
n
2n 1 2i 1 2i‐1
i0
Cfcos(tx)
−−
=
=
∑
n
2n 1 2i 1 2i 1
i1
Sfsin(tx)
−− −
=
′ ′′′
=
∑
2
23
sin
1sin2
()
2
θ
θ
αθ = + −
θθ θ
2
23
1cos sin2
() 2
⎡⎤
+θ θ
βθ = −
⎢⎥
θθ
⎣⎦
32
sin cos
() 4
θθ
⎛⎞
γθ = −
⎜⎟
θθ
⎝⎠
Taxâydựnghàm
filon()đểthựchiệncáccôngthứctrên:
functionint=filon(f,a,b,t,m,key)
%hamfilontinhgandungtichphan
%
∫
b
a
f (x)cos(tx)dx neukey=1,
%hay
%
∫
b
a
f(x)sin(tx)dxneukey=2,
%dungmdiemtheoquytacFilon(mle).
if(any(size(a)~=[11]))
error(ʹThongsoaphailaso.ʹ);
end
if(any(size(b)~=[11]))
error(Thongsobnhapvaophailaso.ʹ);
end
if(any(size(t)
~=[11]))
error(ʹThongsotphailaso.ʹ);
end
if(any(size(m)~=[11]))
error(ʹThongsomphailaso.ʹ);
end
if(any([(fix(m)~=m)(rem(m,2)==0)]))
error(ʹThongsomphailasole.ʹ);
end
328
if(m<3)
error(ʹThongsomphailonhon3.ʹ);
end
if(all([(key~=1)(key~=2)]))
error(ʹThongsokeyphaila1hoac2.ʹ);
end
n=m‐1;
h=(b‐a)/n;
th=t*h;
thh
=th*th;
if(abs(th)>=0.1)
s=sin(th);
c=cos(th);
alfa=(1.0+s*(c‐2.0*s/th)/th)/th;
beta=2.0*(1.0+c*c‐2.0*s*c/th)/thh;
gamma=4.0*(s/th‐c)/thh;
else
alfa=th*thh*(2.0/45.0+thh*(‐2.0/315.0+2.0*thh/4725.0));
beta=2.0/3.0
+thh*(2.0/15.0+thh*(4.0/105.0+2.0*thh/567.0));
gamma=4.0/3.0+thh*(‐2.0/15.0+thh*(1.0/210.0‐thh/11340.0));
end
args=[ab];
fbounds=feval(f,args);
s1=sin(a*t);
s2=sin(b*t);
c1=cos(a*t);
c2=cos(b*t);
if(key==1)
sum=
s2*fbounds(2)‐s1*fbounds(1);
sum0=0.5*(c1*fbounds(1)+c2*fbounds(2));
if(n>2)
args=(a+(2:2:n‐2)*h)ʹ;
sum0=sum0+cos(t*args)ʹ*feval(f,args);
end
args=(a+(1:2:n‐1)*h)ʹ;
sum1=cos(t*args)ʹ*feval(f,args);
329
else
sum=c1*fbounds(1)‐c2*fbounds(2);
%sum=‐(c1*fbounds(1)‐c2*fbounds(2));
sum0=0.5*(s1*fbounds(1)+s2*fbounds(2));
%if(n==2)
if(n>2)
args=(a+(2:2:n‐2)*h)ʹ;
sum0=sum0+sin(t*args)ʹ*feval(f,args);
end
args=(a+(1:2:n‐
1)*h)ʹ;
sum1=sin(t*args)ʹ*feval(f,args);
end
int=h*(alfa*sum+beta*sum0+gamma*sum1);
Khitínhtíchphântadùngchươngtrình
ctintfilon.m:
clearall,clc
a=0;
b=2;
key=2;
t=3;
m=51;
f=inline(ʹ(x.^3+1).*sin(x)ʹ);
J=filon(f,a,b,t,key)
§9.QUYTẮCHARDY
Đểtínhtíchphân =
∫
b
a
J
f(x)dxtacóthểdùngcôngthứcHardy:
()
7
1
x
12 467
x
f(x)dx 0.01h 28f 162f 220f 162f 28f=++++
∫
Đểtăngđộchínhxáctadùngphươngphápchiađoạn[a,b]thànhmđoạnvà
trênmỗiđoạntadùngcôngthứcHardy.Taxâydựnghàm
inthardy()đểthực
hiệncôngthứctrên:
functiontp=inthardy(f,a,b,m)
330
%TinhtichphanbangphuongphapHardy
h=(b‐a)/(6*m);
fork=1:6*m
x(k)=a+k*h;
end
tp=0;
j=1;
fork=1:m
tp=tp+(28*feval(f,a)+162*feval(f,x(j))+
220*feval(f,x(j+2))+162*feval(f,x(j+4))+28*feval(f,x(j+5)));
a=x(6*k);
j=6*k+1;
end
tp=tp*h*0.01;
Đểtínhtíchphântadùngchươngtrình
ctinthardy.m:
clearall,clc
formatlong
f=inline(ʹexp(x).*sin(x)ʹ,ʹxʹ);
a=0;
b=2;
m=20;
J=inthardy(f,a,b,m)
§10.QUYTẮCDURANT
Đểtínhtíchphân =
∫
b
a
J
f(x)dxtacóthểdùngcôngthứcDurant:
n
1
x
123 n2n1n
x
211 11 2
f(x)dx h f f f f f f
510 10 5
−−
⎛⎞
=++++++
⎜⎟
⎝⎠
∫
L
Taxâydựnghàm
intdurant()đểthựchiệncôngthứctrên:
functiontp=intdurant(f,a,b,n)
%TinhtichphanbangphuongphapDurant
h=(b‐a)/(n);
331
fork=1:n
x(k)=a+k*h;
end
tp=0;
fori=2:n‐2
tp=tp+feval(f,x(i));
end
tp=tp+0.4*feval(f,a)+1.1*feval(f,x(1))+
1.1*feval(f,x(n‐1))+0.4*feval(f,x(n));
tp=h*tp;
Đểtínhtíchphântadùngchươngtrình
ctintdurant.m:
clearall,clc
formatlong
f=inline(ʹ1./(1+x.^2)ʹ);
a=0;
b=2;
n=50;
J=intdurant(f,a,b,n)
§11.QUYTẮCSHOVELTON
Đểtínhtíchphân =
∫
b
a
J
f(x)dxtacóthểdùngcôngthứcShovelton:
()
()()
11
1
x
111 24810 3579 6
x
5
f(x)dx h8ff 35ffff 15ffff 36f
126
=++++++++++
⎡⎤
⎣⎦
∫
Đểtăngđộchínhxáctadùngphươngphápchiađoạn[a,b]thànhmđoạnvà
trênmỗiđoạntadùngcôngthứcShovelton.Taxâydựnghàm
intshovelton()
đểthựchiệncôngthứctrên:
functiontp=intshovelton(f,a,b,m)
%TinhtichphanbangphuongphapShovelton
h=(b‐a)/(10*m);
fork=1:10*m
x(k)=a+k*h;
332
end
tp=0;
j=1;
fork=1:m
tp=tp+8*(feval(f,a)+feval(f,x(j+9)))+
35*(feval(f,x(j))+feval(f,x(j+2))+feval(f,x(j+6))+feval(f,x(j+8)))+
15*(feval(f,x(j+1))+feval(f,x(j+3))+feval(f,x(j+5))+feval(f,x(j+7)))+
36*feval(f,x(j+4));
a
=x(10*k);
j=10*k+1;
end
tp=tp*h*5/126;
Đểtínhtíchphântadùngchươngtrình
ctshovelton.m:
clearall,clc
formatlong
f=inline(ʹ1./(1+x.^2)ʹ);
a=0;
b=2;
m=20;
J=intshovelton(f,a,b,m)
§12.QUYTẮCWEDDLE
Đểtínhtíchphân =
∫
b
a
J
f(x)dxtacóthểdùngcôngthứcWeddle:
()
=++++++
∫
7
1
x
1234567
x
f(x)dx 0.3h f 5f f 6f f 5f f
Đểtăngđộchínhxáctadùngphươngphápchiađoạn[a,b]thànhmđoạnvà
trênmỗiđoạntadùngcôngthứcWeddle.Taxâydựnghàm
intweddle()để
thựchiệncôngthứctrên:
functiontp=intweddle(f,a,b,m)
%TinhtichphanbangphuongphapWeddle
h=(b‐a)/(6*m);
333
fork=1:6*m
x(k)=a+k*h;
end
tp=0;
j=1;
fork=1:m
tp=tp+feval(f,a)+5*feval(f,x(j))+
feval(f,x(j+1))+6*feval(f,x(j+2))+
feval(f,x(j+3))+5*feval(f,x(j+4))+feval(f,x(j+5));
a=x(6*k);
j
=6*k+1;
end
tp=tp*h*0.3;
Đểtínhtíchphântadùngchươngtrình
ctweddle.m:
formatlong
f=inline(ʹexp(x).*sin(x)ʹ,ʹxʹ);
a=0;
b=2;
m=20;
J=intweddle(f,a,b,m)
§13.CẦUPHƯƠNGGAUSS
1.CáccôngthứctíchphânGauss
:Trongphầnnàychúngtasẽxétmộtsố
phươngphápcầuphươngGauss:
‐TíchphânGauss‐Legendredùngxấpxỉ:
b
a
f(t )dt
∫
‐TíchphânGauss‐Hermitedùngxấpxỉ:
2
t
ef(t)dt
∞
−
−∞
∫
‐TíchphânGauss‐Laguerredùngxấpxỉ:
t
ef(t)dt
∞
−
−∞
∫
334
‐TíchphânGauss‐Chebyshev1dùngxấpxỉ:
1
2
1
1
f(t )dt
1t
−
−
∫
‐TíchphânGauss‐Chebyshev2dùngxấpxỉ:
1
2
1
1tf(t)dt
−
−
∫
2.TíchphânGauss‐Legendre:Nếuhàmdướidấutíchphânf(t)làđathức
bậcnhỏhơnhaybằng3(bằng2n‐1)thìtíchphân:
b
a
f(t )dt
∫
(1)
cóthểtínhchínhxácbởi2(n)điểmbằngcáchdùngcôngthức:
J[t
1,t2]=w1f(t1)+w2f(t2)(2)
vớiw
1vàw2làcáctrọngsốvàt1,t2làcácnút.
f(t)=1
1
11 22 1
1
wf(t) wf(t ) w w 1dt 2
+
−
+=+≡=
∫
(3a)
f(t)=t
1
11 22 11 22
1
wf(t) wf(t ) wt wt tdt 0
+
−
+=+≡=
∫
(3b)
f(t)=t
2
1
222
11 22 11 22
1
2
wf(t) wf(t ) wt wt tdt
3
+
−
+=+≡=
∫
(3c)
f(t)=t
3
1
333
11 22 11 22
1
wf(t) wf(t ) wt wt tdt 0
+
−
+=+≡=
∫
(3d)
Nhân(3b)với
2
1
t vàtrừkếtquảcho(3d)tacó:
32
22 12
w(t tt) 0−= nên t2=‐t1
Thayt
2=‐t1vào(3b)tacó:
(w
1‐w2)t1=0 nên w1=w2
Thayw
1=w2vào(3a)tacó:
w
1+w2=2 nên w1=w2=1
Thayw
1=w2=1vào(3c)tacó:
22
11
2
t(t)
3
+− = nên
12
1
tt
3
=− =−
Nhưvậy(2)trởthành:
[]
12
11
Jt,t f f
33
⎛⎞⎛⎞
=− +
⎜⎟⎜⎟
⎝⎠⎝⎠
(4)
335
nghĩalàcôngthứcxấpxỉnàychotakếtquảchínhxáccủa(1)khin≤3.
Khiđathứcd ướidấutíchphâncóbậcnhỏhơn(2n‐1)thìcôngthức
tíchphânGauss‐Legendre:
[]
n
GL 1 2 n i i
i1
J
t,t, ,t wf(t)
=
=
∑
K (5)
chotíchphânchínhxáccủađathức.Cácđiểmnút(nnút)lànghiệmcủađa
thứcLegendrebậcn:
n/2
in2i
n
n
i0
(2n 2i)!
L(t) ( 1) t
2 i!(n i)!(n 2i)!
−
=
−
=−
−−
∑
(6a)
haytínhtheocôngthứclặp:
n1 n2
n
(2n 1)tL (t) ( n 1)L ( t)
L(t)
n
−−
−−−
= (6b)
ĐểtạorađathứcLegendretadùnghàm
legendre():
functionp=legendre(n)
%taoradathucLegendre
p0=1;
p1=[10];
ifn<=0
p=p0;
elseifn==1
p=p1;
end
fork=2:n
p=((2*k‐1)*[p10]‐(k‐1)*[00p0])/k;
p0=p1;
p1
=p;
end
Chonđiểmnút,tacóth ểtínhcáctrọngsốtươngứngcủacôngthứctíchphân
Gauss‐Legendrenđiểmbằngcáchgiảihệphươngtrìnhtuyếntính: