Thứ Năm, 20 tháng 2, 2014
Tài liệu CHƯƠNG 6: ĐẠO HÀM VÀ TÍCH PHÂN ppt
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);
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét