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

Tài liệu CHƯƠNG 3: NỘI SUY VÀ XẤP XỈ HÀM ppt

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 (391.95 KB, 31 trang )


210
CHƯƠNG 3: NỘI SUY VÀ XẤP XỈ HÀM

§1.NỘISUYLAGRANGE
Trongthựctếnhiềukhitacầntínhgiátrịcủahàmy =f(x)tạimộtgiátrị
xtrongmộtđoạn[a,b]nàođómàchỉbiếtmộtsốnhấtđịnhcác
giátrịcủa
hàm tại một số điểm cho trước. Các giá trị nàyđược cung cấp qua thực
nghiệmhaytínhtoán.Vìvậynảysinhvấnđềtoánhọclàtrênđoạna≤x≤
b
chomộtloạtcácđiểmx
i(i=0,1,2 )vàtạicácđiểmxinàygiátrịcủahàmlà
y
i=f(xi)đãbiếtvàtacầntìmy=f(x)dựatrêncácgiátrịđãbiếtđó.Lúcđóta
cầntìmđathức:
 P
n(x)=aoxn+a1x
n‐1

+…+an‐1x+an
saochoP
n(xi)=f(xi)=yi.ĐathứcPn(x)đượcgọilàđathứcnộisuycủahàm
y=f(x).Tachọn đathứcđểnộisuyhàmy=f(x)vìđathứclàloạihàmđơn 
giản,luôncóđạohàmvànguyênhàm.Việctínhgiátr
ịcủanótheothuậttoán
Hornercũngđơngiản.
 BâygiờtaxâydựngđathứcnộisuykiểuLagrange.GọiL
ilàđathức:
)xx) (xx)(xx) (xx(
)xx) (xx)(xx) (xx(


L
ni1ii1ii0i
n1i1i0
i
−−−−


−−
=
+−
+−

 RõrànglàL
i(x)làmộtđathứcbậcnvà:




=
=
ij0
ij1
)x(L
ji

TagọiđathứcnàylàđathứcLagrangecơbản.
Bâygiờtaxétbiểuthức:


=

=
n
0i
iin
)x(L)x(f)x(P 
TathấyP
n(x)làmộtđathứcbậcnvìcácLi(x)làcácđath ứcbậcnvà
thoảmãnđiềukiệnP
n(xi)=f(xi)=yi.TagọinólàđathứcnộisuyLagrange.
Vớin=1tacóbảng

x x
0 x1
y y0 y1

Đathứcnộisuysẽlà:
 P
1(x)=yoL0(x)+y1L1(x1)

10
1
0
xx
xx
L


=

01

0
1
xx
xx
L


= 

211
nên
01
0
1
10
1
01
xx
xx
y
xx
xx
y)x(P


+


= 
NhưvậyP

1(x)làmộtđathứcbậcnhấtđốivớix
Vớin=2tacóbảng

x x
0 x1 x2
y y0 y1 y2

Đathứcnộisuysẽlà:
 P
2(x)=yoL0(x)+y1L1(x1)+y2L2(x2)

)xx)(xx(
)xx)(xx(
L
2010
21
0
−−
−−
= 
)xx)(xx(
)xx)(xx(
L
2101
20
1
−−
−−
= 
)xx)(xx(

)xx)(xx(
L
1202
10
2
−−
−−
=

NhưvậyP
1(x)làmộtđathứcbậchaiđốivớix.
Taxâydựnghàm
lagrange()đểthựchiệnviệcnộisuyhàmtheothuậttoán
Lagrange:

function[l,L]=lagrange(x,y)
%Duavao:x=[x0x1 xn],y=[y0y1 yn]
%ketqua:l=HesocuadathucLagrangebacn
%L=DathucLagrange
n=length(x)‐1;%baccuadathucl
l=0;
for
m=1:n+1
p=1;
fork=1:n+1
ifk~=m
p=conv(p,[1‐x(k)])/(x(m)‐x(k));
end
end
L(m,:)=p;%dathucLagrange

l=l+y(m)*p;
end


212
Chohàmdướidạngbảng:

x‐2‐1 1 2
y‐6 0 0 6

vàtìmy(2.5)tadùngchươngtrình
ctlagrange.m:


clearall,clc
x
=[‐2‐112];
y=[
‐6006];
l=lagrange(x,y);
yx=polyval(l,2.5)

§2.NỘISUYNEWTON
Bâygiờtaxétmộtcáchkhácđểxâydựngđathứcnộisuygọilàphương
phápNewton.Trướchếttađưavàomộtkháiniệmmớilàtỉhiệu
 Giảsửhàmy=y(x)cógiá
trịchotrongbảngsau:

x x
0 x1 x2

…
xn‐1 xn
y y0 y1 y2
…
yn‐1 yn

Tỉhiệucấp1củaytạix
i,xjlà:

ji
ji
ji
xx
yy
]x,x[y


= 
 Tỉhiệucấphaicủaytạix
i,xj,xklà:
k
i
k
jji
k
ji
xx
]x,x[y]x,x[y
]x,x,x[y



= 
v.v.
 Vớiy(x)=P
n(x)làmộtđathứcbậcnthìtỉhiệucấp1tạix,x0:

0
0nn
0n
xx
)x(P)x(P
]x,x[P


= 
làmộtđathứcbậc(n‐1).Tỉhiệucấp2tạix,x
0,x1:
1
10n0n
10n
xx
]x,x[P]x,x[P
]x,x,x[P


= 
làmộtđathứcbậc(n‐2)v.vvàtớitỉhiệucấp(n+1)thì:

213
 Pn[x,xo, ,xn]=0

Từcácđịnhnghĩatỉhiệutasuyra:
 P
n(x)=Pn(x0)+(x‐x0)Pn[x,xo]
 P
n[x,x0]=Pn[x0,x1]+(x‐x1)Pn[x,xo,x1]
 P
n[x,xo,x1]=Pn[x0,x1,x2]+(x‐x2)Pn[x,xo,x1,x2]
 
 P
n[x,xo, ,xn‐1]=Pn[x0,x1, ,xn]+(x‐xn)Pn[x,xo, ,xn]
Do P
n[x,xo, ,xn]=0nêntừđótacó:
P
n(x)=Pn(x0)+(x‐x0)Pn[xo,x1]+(x‐x0)(x‐x1)Pn[x0,x1,x2]+…
+(x‐x
0)…(x‐xn‐1)Pn[x0,…,xn]
NếuP
n(x)làđathứcnộisuycủahàmy=f(x)thì:
 P
n(xi)=f(xi)=yivớii=0÷n
 Dođócáctỉhiệutừcấp1đếncấpncủaP
nvàcủaylàtrùngnhauvà
nhưvậytacó:
P
n(x)=y0+(x‐x0)y[x0,x1]+(x‐x0)(x‐x1)y[x0,x1,x2]+ +
(x‐x
0)(x‐x1) (x‐xn‐1)y[x0, ,xn]
ĐathứcnàygọilàđathứcnộisuyNewtontiếnxuấtpháttừnútx
0của
hàmy=f(x).NgoàiđathứctiếncòncóđathứcnộisuyNewtonlùixuấtphát

từđiểmx
ncódạngnhưsau:
 P
n(x)=yn+(x‐xn)y[xn,xn‐1]+(x‐xn)(x‐xn‐1)y[xn,xn‐1,xn‐2]+ +
(x‐x
n)(x‐xn‐1) (x‐x1)y[xn, ,x0]
Trườnghợpcácnútcáchđềuthìx
i=x0+ihvớii=0,1, ,n.Tagọisai
phântiếncấp1tạiilà:
 ∆y
i=yi+1‐yi
vàsaiphântiếncấphaitạii:
 ∆
2
yi=∆(∆yi)=yi+2‐2yi+1+yi
 
vàsaiphântiếncấpnlà:
 ∆
n
yi=∆(∆
n‐1
yi)
Khiđótacó:

[]
h
y
x,xy
0
10


=


[]
2
0
2
210
h2
y
x,x,xy

= 
 

214

[]
n
0
n
n210
h!n
y
x, ,x,x,xy

= 
Bâygiờđặtx=x
0+httrongđathứcNewtontiếntađược:


0
n
0
2
000n
y
!n
)1nt()1t(t
y
!2
)1t(t
yty)htx(P ∆
+−




+⋅⋅⋅+∆

+∆+=+

thìtanhậnđượcđathứcNewtontiếnxuấtpháttừx
0trongtrườnghợpnút
cáchđều.Vớin=1tacó:
 P
1(x0+ht)=y0+∆y0
Vớin=2tacó:
0
2

000n
y
!2
)1t(t
yty)htx(P ∆

+∆+=+ 
Mộtcáchtươngtựtacókháiniệmcácsaiphânlùitạii:
 ∇y
i=yi‐yi‐1
 ∇
2
yi=∇(∇yi)=yi‐2yi‐1+yi‐2
 
 ∇
n
yi=∇(∇
n‐1
yi)
vàđathứcnộisuyNewtonlùikhicácđiểmnộisuycáchđều:
n
n
n
2
nn0n
y
!n
)1nt()1t(t
y
!2

)1t(t
yty)htx(P ∇
−+



+
+⋅⋅⋅+∇
+
+∇+=+ 
Taxâydựnghàm
newton()đểnộisuy:

function[n,DD]=newton(x,y)
%Duavao:x=[x0x1 xN]
%y=[y0y1 yN]
%Layra:n=hesocuadathucNewtonbacN
N=length(x)‐1;
DD=zeros(N+1,N+1);
DD(1:N+1,1)=yʹ;

fork=2:N+1
form=1:N+2‐k
DD(m,k)=(DD(m+1,k‐1)‐DD(m,k‐1))/(x(m+k‐1)‐x(m));
end
end
a=DD(1,:);
n=a(N+1);
fork=N:‐1:1


215
n=[na(k)]‐[0n*x(k)];
end
Chohàmdướidạngbảng:

x‐2‐1 1 2 4
y‐6 0 0 6 60

Tadùngchươngtrình
ctnewton.mđểnộisuy:


clearall,clc
x=
[‐2‐1124];
y=[‐600660];
a=newton(x,y)
yx=polyval(a,2.5)

§3.NỘISUYAITKEN‐NEVILLE
Một dạng khác củađa thức nội suyđược xácđịnh bằng thuật toán
Aitken‐Neville.Giảsửtacónđiểmđãchocủahàmf(x).Nhưvậyquahai
điểm x
0 và x1 ta cóđa thức nội suy Lagrange của hàm f(x)được viết dưới
dạng:
01
11
00
01
xx

xxy
xxy
)x(P



= 
Đâylàmộtđathứcbậc1:
01
0
1
10
1
001
xx
xx
y
xx
xx
y)x(P


+


= 
Khix=x
0thì:
0
01

011
000
001
y
xx
xxy
xxy
)x(P =



= 
Khix=x
1thì:
1
01
111
100
101
y
xx
xxy
xxy
)x(P =



= 
ĐathứcnộisuyLagrangecủaf(x)qua3điểmx
0,x1,x2códạng:


216

02
212
001
012
xx
xx)x(P
xx)x(P
)x(P



= 
vàlàmộtđathứcbậc2:

)xx)(xx(
)xx)(xx(
y
)xx)(xx(
)xx)(xx(
y
)xx)(xx(
)xx)(xx(
y)x(P
1202
10
2
2101

20
1
2010
21
0012
−−


+
−−


+
−−
−−
= 
Khix=x
0thì:

0
02
0212
000
0012
y
xx
xx)x(P
xxy
)x(P =




= 
Khix=x
1thì:

1
02
121
101
1012
y
xx
xxy
xxy
)x(P =



= 
Khix=x
2thì:

2
02
222
20201
2012
y
xx

xxy
xx)x(P
)x(P =



= 
TổngquátđathứcnộisuyLagrangequanđiểmlà:
02
nn 12
0)1n (01
n 012
xx
xx)x(P
xx)x(P
)x(P



=


Như vậy ta có thể dùng phép lặpđểxácđịnh lần lượt cácđa thức
Lagrange.SơđồtínhtoánnhưvậygọilàsơđồNeville‐Aitken.
Taxâydựnghàm
aitkenneville()đểnộisuy:

functiona=aitkenneville(xData,yData,x)
%Travegiatrinoisuytaix.
%Cuphap:y=aitkenneville(xData,yData,x)

n=length(xData);
y=yData;
fork=1:n‐1
y(1:n‐k)=((x‐xData(k+1:n)).*y(1:n‐k) 
+(xData(1:n‐k)‐x).*y(2:n‐k+1)) 
./(xData(1:n‐k)‐xData(k+1:n));

217
end
a=y(1);


Chocáccặpsố(1,3),(2,5),(3,7),(4,9)và(5,11),đểtìmytạix=2.5tadùng
chươngtrình
ctaitkennevile.m:

clearall,clc
x=
[1234];
y=[3579];
yx=aitkenneville(x,y,2.5)

§4.NỘISUYBẰNGĐƯỜNGCONGSPLINEBẬCBA
 Khisốđiểmchotrướcdùngkhinộisuytăng,đathứcnộisuycódạng
sóngvàsaisốtăng.Taxéthàmthực:

2
1
f31(x)
18x

=
+

vànộisuynóbằngthuậttoánNewtonnhờchươngtrình
cttestintp.m

%NoisuyNewton
x1=[‐1‐0.500.51.0];
y1=f31(x1);
n1=newton(x1,y1)
x2=[‐1‐0.75‐0.5‐0.2500.250.50.751.0];
y2=f31(x2);
n2=newton(x2,y2)
x3=[‐1‐0.8‐0.6‐0.4‐0.200.20.40.60.81.0];
y3
=f31(x3);
n3=newton(x3,y3)
xx=[‐1:0.02:1];%phamvinoisuy
yy=f31(xx);%hamthuc
yy1=polyval(n1,xx);%hamxapxiqua5diem
yy2=polyval(n2,xx);%hamxapxiqua9diem
yy3=polyval(n3,xx);%hamxapxiqua11diem
subplot(221)
plot(xx,
yy,ʹk‐ʹ,xx,yy1,ʹbʹ)
subplot(224)

218
plot(xx,yy1‐yy,ʹrʹ,xx,yy2‐yy,ʹgʹ,xx,yy3‐yy,ʹbʹ)%dothisaiso
subplot(222)

plot(xx,yy,ʹk‐ʹ,xx,yy2,ʹbʹ)
subplot(223)
plot(xx,yy,ʹk‐ʹ,xx,yy3,ʹbʹ)

vànhậnđượckếtquả.
Đểtránhhiệntượngsaisốlớnkhi
số điểm mốc tăng ta dùng nội suy nối
trơn(spline). Trên cácđoạn nội suy ta
thay hàm bằng mộtđường cong.
Các
đườngcongnàyđượcghéptrơntạicác
điểmnối.Tachọncácđườngcongnàylà
hàmbậc3vìhàmbậc1vàbậchaikhó
bảođảmđiềukiệnnốitrơn.
 Cho
mộtloạtgiátrịnộisuy(x1,y1),…,(xi,y i),…,(xn,yn).Trênmỗiđoạnta
cómộthàmbậc3.Nhưvậygiữanútivà(i+1) tacóhàmf
i,i+1(x),nghĩalàta
dùng(n‐1)hàmbậc3f
1,2(x),f2,3(x),…,fn‐1,n(x)đểthaythếchohàmthực.Hàm
f
i,i+1(x)códạng:
f
i,i+1(x)=ai+bi(x‐xi)+ci(x‐xi)
2
+di(x‐xi)
3
(1)
Hàmnàythoảmãn:
f

i,i+1(xi)=ai=yi (3)

32
i,i1 i1 ii ii ii i i1
f(x)dh ch bha y
++ +
=+++=(4)

i,i 1 i i
f(x)b
+

= (5)
2
i,i 1 i 1 i i i i i
f(x)3dh 2ch b
++

=++(6)
i,i 1 i i i
f(x)2c y
+
′′ ′′
==
(7)
i,i1 i1 i i i i1
f(x)6dh2cy
++ +
′′ ′′
=+=(8)

Muốnnốitrơntacần cóđạohàmbậcnhấtliêntụcvàdođó:

i1,i i i,i1 i i
f (x) f (x) k
−+
′′ ′′
==

Lúcnàycácgiátrịkchưabiết,ngoạitrừk
1=kn=0(tacáccácmútlàđiểm
uốn).Điểmxuấtphátđểtínhcáchệsốcủaf
i,i+1(x)làbiểuthứccủa
i,i 1 i
f(x)
+


.Sử
dụngnộisuyLagrangechohaiđiểmtacó:

i,i 1 i i i i 1 i 1
f(x)kL(x)kL(x)
+++
′′
=+

Trongđó:
y
x
x

i‐1
xi
xi+1
yi‐1
yi+1
yi
f
i‐1,i
f
i,i+1

219

i1 i
ii1
ii1 i1i
xx xx
L (x) L ( x)
xx x x
+
+
++
−−
==
−−

Dovậy:

ii1i1i
i,i 1 i

ii1
k(x x ) k (x x)
f(x)
xx
++
+
+
−− −
′′
=


Tíchphânbiểuthứctrênhailầntheoxtacó:

33
ii1i1i
i,i 1 i i 1 i
ii1
k(x x ) k (x x)
f (x) A(x x ) B(x x)
6(x x )
++
++
+
−− −
=+−−−


TrongđóAvàBlàcáchằngsốtíchphân
SốhạngcuốitrongphươngtrìnhtrênthườngđượcviếtlàCx+D.

ĐặtC=A‐BvàD=‐Ax
i+1+Bxiđểdễdàngtính toán.Từđiềukiệnfi,i+1(xi)=yi
tacó:

3
ii i1
ii1 i
ii1
k(x x )
A(x x ) y
6(x x )
+
+
+

+−=


nên:

i
ii i1
ii1
y
k(x x )
A
xx 6
+
+


=−


Tươngtự,điềukiệnf
i,i+1(xi+1)=yi+1chota:

i1
i1 i i1
ii1
y
k(x x)
B
xx 6
+
++
+

=−


Kếtquảlà:
3
ii1
i,i 1 i i 1 i i 1
ii1
3
i1 i
ii i1
ii1
ii1i1i

ii1
k(xx)
f (x ) (x x )(x x )
6xx
k(xx)
(x x )(x x )
6xx
y(x x ) y (x x)
xx
+
+++
+
+
+
+
++
+
⎡⎤

=−−−
⎢⎥

⎣⎦
⎡⎤

−−−−
⎢⎥

⎣⎦
−− −

+


Đạohàmcấp2k
itạicácnútbêntrongđượctínhtừđiềukiện:

i1,i i i,i1 i
f (x) f (x)
−+
′′
=

Saukhibiếnđổitacóphươngtrình:

i1 i1 i i i1 i1 i1 i i1
i1 i i i1
i1 i i i1
k(xx)2k(xx)k(xx)
yyyy
6
xxxx
−− − + + +
−+
−+
−+ − + −
⎛⎞
−−
=−
⎜⎟
−−

⎝⎠

Khicácđiểmchiacáchđều(x
i+1‐xi)=htacó:

220

()
i1 i i1 i1 i i1
2
6
k4kk y2yy
h
−+−+
++= −+  i=2,3,…,n‐1
Taxâydựnghàm
cubicspline()đểnộisuy:

functiony=cubicspline(xData,yData,x)
%Hamnayxapxibangdathucbac3spline
%Cuphap:[yi,f]=cubicspline(xData,yData,x)
n=length(xData);
c=zeros(n‐1,1);d=ones(n,1);
e=zeros(n‐1,1);k=zeros(n,1);
c(1:n‐2)=xData(1:n‐2)‐xData(2:n‐1);

d(2:n‐1)=2*(xData(1:n‐2)‐xData(3:n));
e(2:n‐1)=xData(2:n‐1)‐xData(3:n);
k(2:n‐1)=6*(yData(1:n‐2)‐yData(2:n‐1)) 
./(xData(1:n‐2)‐xData(2:n‐1)) 

‐6*(yData(2:n‐1)‐yData(3:n)) 
./(xData(2:n‐1)‐xData(3:n));
[c,d,e]=band3(c,de);
k=band3sol(c,d,e,k);
i=findseg(xData,x);
h=xData(i)‐xData(i+1);

y=((x‐xData(i+1))^3/h‐(x‐xData(i+1))*h)*k(i)/6.0 
‐((x‐xData(i))^3/h‐(x‐xData(i))*h)*k(i+1)/6.0 
+yData(i)*(x‐xData(i+1))/h


‐yData(i+1)*(x‐xData(i))/h;

Tacóchươngtrình
ctcubicspline.mdùngnộisuy:

clearall,clc
x1=0:0.1:5;
y1=(x1+1).^2;
while1
x=input(ʹx=ʹ);
ifisempty(x)
fprintf(ʹKetthucʹ);
break

221
end
y=cubicspline(xData,yData,x)
fprintf(ʹ\nʹ)

end


§5.NỘISUYBẰNGĐATHỨCCHEBYSHEV

Khi nội suy bằngđa  thức Newton hay Lagrange, nghĩa là thay hàm
thựcbằngđathứcxấpxỉ,cókhoảngcáchcáchđềuthìsaisốgiữađathứcnội
suyvàhàmthựccóxu
hướngtăngtạihaimútnộisuy.Tathấyrõđiềunày
khichạychươngtrình
cttestintp.m.
Dovậytanênchọncácđiểmmốcnộisuyở
haimútdàyhơnởgiữa.Mộttrongnhữngcách
chọn phân bố cácđiểm mốc là hình chiếu lên
trục x của cácđiểm
 cáchđều  trênđường tròn
tâmtạiđiểmgiữacủađoạnnộisuy.Nhưvậyvới
đoạnnộisuy[‐1,1]tacó:

k
2n 1 2k
xcos
2(n 1)
+−


+
 k=1,2,…,n(1)
Vớiđoạnnộisuy[a,b]bấtkì:


kk
b
ababa2n12kab
xx cos
2222(n1)2
−+− +−+

=+= π+
+
k=1,2,…,n (2)
CácnútnộisuynàyđượcgọilàcácnútChebyshev.Đathứcnộisuydựatrên
cácnútChebyschevgọilàđathứcnộisuyChebyshev.
Taxéthàmthực:

2
1
f(x)
18x
=
+

Tachọnsốnútnộisuylầnlượtlà5,9,11vàxâydựngcácđathứcNewton
(hayLagrange)c
4(x),c8(x)vàc10(x)điquacácnútnàyvàvẽđồthịcủahàm
thựccũngnhưsaisốkhinộisuybằngchươngtrình
ctcomchebynew.mvớicác
Nkhácnhau.
x1=[‐1‐0.500.51.0];
y1=f31(x1);
n1=newton(x1,y1);

xx=[‐1:0.02:1];%phamvinoisuy
yy1=polyval(n1,xx);%hamxapxiqua5diem
yy=f31(xx);%hamthuc
‐1
1
1
x



222
subplot(221)
plot(xx,yy,ʹk‐ʹ,x,y,ʹoʹ,xx,yy1,ʹbʹ);
title(ʹNewtonʹ)
subplot(223)
plot(xx,yy1‐yy,ʹrʹ)%dothisaiso
N=4;
k=[0:N];
x=cos((2*N+1‐2*k)*pi/2/(N+1));
y=f31(x);
c=newton(x,y)%dathucnoisuydua
trencacnutChebyshev
xx=[‐1:0.02:1];%doannoisuy
yy=f31(xx);%dothihamthuc
yy1=polyval(c,xx);%dothihamxapxi
subplot(222)
plot(xx,yy,ʹk‐ʹ,x,y,ʹoʹ,xx,yy1,ʹbʹ)
title(ʹChebyshevʹ)
subplot(224)
plot(xx,yy1‐yy,ʹrʹ)

%dothisaiso

Khităngsốđiểmmốc,nghĩalàtăngbậccủađathứcChebyschev,saisốgiảm.
ĐathứcChebyshevbậcnđượcxácđịnhbằng:
 T
n+1(xʹ)=cos((n+1)arccos(xʹ))(3)
vàcácnútChebyshevchobởi(1)lànghiệmcủa(3).
Tacó:

n1
n
nn1n1
T (x ) cos(arccos(x ) narccos( x ))
cos(arccos(x ))cos(narccos(x ) sin(arccos(x ))sin(narccos(x ))
x T (x ) 0.5 cos((n 1)arccos(x ) cos((n 1)arccos(x )
x T (x ) 0.5T (x ) 0.5T (x )
+
+−
′′′
=+
′′′′
=−
′′ ′ ′
=+ + −−
⎡⎤
⎣⎦
′′ ′ ′
=+ −

nên:


n1 n n1
T (x) 2xT (x) T (x)
+−
′′′
=−
 n≥1(4)
và T
0(xʹ)=1 T1(xʹ)=cos(arccos(xʹ)=xʹ(5)
CácđathứcChebyshevđếnbậc6là:
 T
0(x)=1
 T
1(xʹ)=xʹ
 T
2(xʹ)=2xʹ
2
‐1

223
 T3(xʹ)=4xʹ
3
‐3xʹ
 T
4(xʹ)=8xʹ
4
‐8ʹx
2
+1
 T5(xʹ)=16xʹ

5
‐20ʹx
3
+5xʹ
 T
6(xʹ)=32xʹ
6
‐48xʹ
4
+18xʹ
2
‐1
 T
7(xʹ)=64xʹ
7
‐112xʹ
5
+56xʹ
3
‐7xʹ
Hàmf(x)đượcxấpxỉbằng:

N
2ab
mm
xx
b
a2
m0
f(x) d T (x )

+
⎛⎞

=−
⎜⎟

⎝⎠
=

=

(6)
Trongđó:

nn
0k0k k
k0 k0
11
d f(x )T (x ) f(x )
n1 n1
==

==
++
∑∑
(7)

n
mkmk
k0

n
k
k0
2
d f(x )T (x )
n1
2m(2n12k)
f(x )cos m 1,2, ,n
n1 2(n1)
=
=

=
+
+−
=π=
++


  (8)
Taxâydựnghàm
cheby()đểtìmđathứcnộisuyChebyshev:

function[c,x,y]=cheby(f,N,a,b)
%vao:f=tenhamtrendoan[a,b]
%Ra:c=CachesocuadathucNewtonbacN
%(x,y)=cacnutChebyshev
ifnargin==2
a=‐1;
b=1;

end
k=
[0:N];
theta=(2*N+1‐2*k)*pi/(2*N+2);
xn=cos(theta);%pt.(1)
x=(b‐a)/2*xn+(a+b)/2;%pt.(2)
y=feval(f,x);
d(1)=y*ones(N+1,1)/(N+1);
form=2:N+1
 cos_mth=cos((m‐1)*theta);
d(m)=y*cos_mthʹ*2/(N+1);%pt.(7)
end
xn=[2‐(a+b)]/(b‐a);%nghichdaocuat.(2)

224
T_0=1;T_1=xn;%pt.(5)
c=d(1)*[0T_0]+d(2)*T_1;%pt.(6)
form=3:N+1
tmp=T_1;
T_1=2*conv(xn,T_1)‐[00T_0];%pt.(4)
T_0=tmp;
c=[0c]+d(m)*T_1;%pt.(6)
end


Đểtìmđa thứcChebyshev dùngxấp xỉhàm
2
1
f(x)
18x

=
+
ta dùngchương
trình
ctcheby.m:

clearall,clc
N=2;
a=‐2;
b=2;
[c,x1,y1]=cheby(ʹf31ʹ,N,a,b)%dathucChebyshev
%sosanhvoidathucLagrange/Newton
k=[0:N];
xn=cos((2*N+1‐2*k)*pi/2/(N+1));%pt.(1):nutChebyshev
x=((b‐a)*xn+a+b)/2;%pt.(2)

y=f31(x);
n=newton(x,y)
l=lagrange(x,y)

§6.XẤPXỈHÀMBẰNGPHÂNTHỨCHỮUTỈ

XấpxỉPadédùngđểxấpxỉhàmf(x)tạix0bằnghàmhữutỉ:

m0
m,n 0
n0
Q(x x)
P(xx)
D(x x)


−=


 
2m
01 0 2 0 m 0
2n
1020 n0
qq(xx)q(xx) q(xx)
1 d (x x ) d (x x ) d (x x )
+−+−++ −
=
+−+−++−
L
L
 (1)
vớim=nhaym=n+1
Trongđóf(x
0),fʹ(x0),…,f
(m+n)
(x0)đãcho
TrướchếttakhaitriểnTaylorhàmf(x)tạix=x
0đếnbậc(m+n).

225
mn 0 0 0
(m n)
2mn
00

00
2mn
01 0 2 0 mn 0
f(x) T (x) f(x ) f (x )( x x )
f(x) f (x)
(x x) (x x)
2! (m n)!
a a (x x ) a (x x ) a (x x )
+
+
+
+
+

≈=+−
′′
+−++ −
+
=+ − + − ++ −
L
L
  (2)
Đểđơngiảntacoix
0=0.TacầntínhcáchệsốcủaDn(x)vàQm(x)saocho:

m
mn
n
Q(x)
T(x) 0

D(x)
+
−=hayTm+n(x)Dn(n)‐Qm(x)=0
nghĩalà:
mn n m
01 mn 1 n 01 m
(a a x a x )(1 d x d x ) (q q x q x )
+
+
+++ +++ =+++LLL(3)
Cânbằngcácsốhạngcùngbậcởhaivếtacó:
00
101 1
21102 2
mm11m22 mnn m
aq
aadq
aadadq
aadad adq
−− −
=


+=


++=




++++ =


L
L
(4)


m1 m 1 m1 2 mn1 n
m2 m1 1 m 2 mn2 n
mn mn1 1 mn2 2 m n
aadad ad0
aadad ad0
aadad ad0
+−−+
++ −+
++− +−
++ ++ =


++++ =




++++=

L
L
L

L
(5)
Trướchếttagiải(5)đểtìmd
ivàsauđóthayvào(4)đểtìmqi.
Taxâydựnghàm
padeapp()đểtínhxấpxỉ:

function[num,den]=padeapp(f,xo,M,N,x0,xf)
%Vao:f=Hamcanxapxitrongdoan[xo,xf]
%Ra:num=Cachesocuatuso
%den=Cachesocuamauso
a(1)=feval(f,xo);
h=.01;
tmp=1;
for
i=1:M+N
tmp=tmp*i*h;%i!h^i
dix=difapx(i,[‐ii])*feval(f,xo+[‐i:i]*h)ʹ;%daoham
a(i+1)=dix/tmp;%hesochuoiTaylor

226
end
form=1:N
n=1:N;
A(m,n)=a(M+1+m‐n);
b(m)=‐a(M+1+m);
end

d=A\bʹ;%pt.(5)
form=1:M+1

mm=min(m‐1,N);
q(m)=a(m:‐1:m‐mm)*[1;d(1:mm)];%pt.(4)
end
num=q(M+1:‐1:1)/d(N);den=[d(N:‐1:1)ʹ1]/d(N);%giamdan
ifnargout==0%vehamthuc,khaitrientaylorvaham
Pade
ifnargin<6
x0=xo‐1;
xf=xo+1;
end
x=x0+[xf‐x0]/100*[0:100];
yt=feval(f,x);
x1=x‐xo;
yp=polyval(num,x1)./polyval(den,x1);
yT=polyval(a(M+N+1:‐1:1),x1);
clf,plot(x,yt,ʹkʹ,
x,yp,ʹrʹ,x,yT,ʹbʹ)
end


Đểxấpxỉhàme
x
tadùngchươngtrìnhctpadeapp.m:

f1=inline(ʹexp(x)ʹ,ʹxʹ);
M=3;
N=2;%baccuaQ(x)vaD(x)
xo=0;%tamcuachuoiTaylor
[n,d]=padeapp(f1,xo,M,N)%tinhcachesocuaQ(x)/P(x)
x0=‐3.5;

xf=0.5;%bientraivaphaicuakhoangxapxi

padeapp(f1,xo,M,N,x0,xf)%xemdothi



227
§7.NỘISUYBẰNGĐATHỨCHERMIT

Trongmộtsốtrườnghợp,tacầntìmhàmđathứckhôngnhữngđiqua
cácđiểmchotrướcmàcònphảithoảmãnđiềukiệnvềđạohàmtạicácđiểm
đó.Tagọiđa
thứcnhưvậylàđathứcnộisuyHermit.Đểđơngiản,takhảo
sátmộtđathứcbậc3:

32
3210
h(x) H x H x H x H=+++(1)
điquahaiđiểm(x
0,y0),(x1,y1)vàcócácđạohàmlà
01
y,y


.Tatìmcáchệsố
H
ibằngcáchgiảihệphươngtrình:

32
030201000

32
131211101
2
0302010
2
1312111
h(x ) H x H x H x H y
h(x ) H x H x H x H y
h(x ) 3H x 2H x H y
h(x ) 3H x 2H x H y

=+++=

=+++=


′′
=++=


′′
=++=

(2)
Cácđạohàmbậcnhấtđượctínhgầnđúngbằng:

20
00
0
13

11
1
yy
h(x ) h(x )
y
yy
h(x ) h(x )
y

+ε −

==
εε

−−ε

==
εε
(3)
BâygiờtatìmđathưcnộisuyLagrangehayNewtonđiqua4điểm:
(x
0,y0),
20 2 00
(x x , y y y )

=+ε =+ε,
31 3 11
(x x ,y y y )

=

−ε = − ε ,(x1,y1)
Hàm
hermit()tạonênphươngtrình(2):

functionH=hermit(x0,y0,dy0,x1,y1,dy1)
A=[x0^3x0^2x01;x1^3x1^2x11;
3*x0^22*x010;3*x1^22*x110];
b=[y0y1dy0dy1]’;%Pt.(2)
H=(A\b)’;


Hàm
hermits()dùnghàmhermit()đểtínhcáchệsốcủađathứcHermittrên
nhiềuđoạnvàgiátrịnộisuy:

function[H,yi]=hermits(x,y,dy,xi)
%TimcachesocuacdathucHermitetrencdoan
clc
forn=1:length(x)‐1
H(n,:)=hermit(0,y(n),dy(n),x(n+1)‐x(n),y(n+1),dy(n+1));

228
end
yi=ppval(mkpp(x,H),xi)

Đểnộisuytadùngchươngtrìnhcthermite.m:


clearall,clc
x=

[0123];

y=[1245];
dy=[0246];
[
h,y]=hermits(x,y,dy,1.5)

§8.BIẾNĐỔIFOURIER
1.BiếnđổiFourrier
:Tínhiệuthựctếthườngbaogồmcácthànhphầncótần
số khácnhau. Chuỗi Fouriervà phép bíếnđổiFourierlà côngcụ toán học
dùngđểphântíchđặctínhtầnsốcủatínhiệu.Có
4địnhnghĩatươngtựnhau
vềchuỗivàphépbiếnđổiFourier,gồm:chuỗiFourierliêntụctheot(CFS),
phép biến đổi Fourier liên tục theo t(CFT), chuỗi Fourier giánđoạn theo
t(DFS) và phép biếnđổi
Fourier giánđoạn theo t(DFT). Trong các công cụ
này,DFTdễdànglậptrìnhtrênmáytínhnêntrongphầnnàytasẽchúýđến
nó.
Giảsửchuỗisốliệu{x[n]=x(nT),n=0:M‐1}vớiT
làchukìlấymẫu
cóđượcbằngcáchlấymẫumộttínhiệuliêntụcx(t)Tlầntrongmộtgiây.N
cặpđiểmDFTvàiDFTđượcđịnhnghĩabằng:
 DFT:
N1
‐j2 nk/N
n0
X(k) x[n]e

π

=
=

(1a)
 iDFT:
N1
j
2nk/N
n0
1
x[n] X(k)e
N

π
=
=

(1b)
NóichunghệsốDFTcủaX(k)làmộtsốphứcvànóxácđịnhbiênđộvàpha
của thành phần tín hiệu có tần số số Ω
k = k Ω0(rad), tươngứng với tần số
tươngtựω
k=kω0=kΩ0/T=2πk/NT(rad/s).TagọiΩ0=2π/Nvàω0= 2π/NTlà
cáctầnsốcơbảnsốvàtươngtự(tầnsốphângiải)vìđâylàhiệutầnsốcóthể
phânbiệtbởiNđiểmDFT.
 DFT và DFS có cùng bản chất
 nhưng khác nhau về phạm vi thời
gian/tầnsố.Cụthểlàtínhiệux[n]vàDFTX[k]củanókéodàihữuhạntrên
phạmvithờigian/tầnsố{0≤n≤N‐1}và{0
≤k≤N‐1}.Tínhiệux[n]được


229
phântíchbởiDFSvàDFScủanóX(k)làchukìtínhiệuvớichukìNtrêntoàn
bộtậpsốnguyên.
 BiếnđổiFouriernhanhFFTlàthuậttoánhiệuquảđểtínhDFTvàiDFT
được xây dựng
 bằng cách dùng tính chu kì và tínhđối xứng cuả nhân tử
e
i2
π
nk/N
đểgiảmbớtsốnhântửphứctừN
2
thành(N/2)log2N)Nthểhiệnkích
thướccủaDFT.HàmMATLABfft()vàifft()thựchiệnthuậttoánđốivớiN =
2
l
(llàsốnguyênkhôngâm).NếuđộdàiMcủachuỗisốliệubanđầukhông
phảilàbộisốcủa2,cóthểmởrộngbằngcáchđệmthêmsố0vàocuốichuỗi
vàgọilàđệm
zero.
 Ta xem xét hiệu qủa này bằng cách thực hiệnđoạn lệnh trong
ctcompdftfft.m.

%SosanhphepbiendoiFouriernhanhvaroirac
clear,clf
N=2^10;
n=[0:N‐1];
x=cos(2*pi*200/N*n)+0.5*sin(2*pi*300/N*n);
tic%ngungdongho

fork=0:N‐1
X(k+1)=x*exp(‐j*2*pi*k*n/N).ʹ;
end%DFT
k=[0:N‐1];
forn=0:N‐1
xr(n+
1)=X*exp(j*2*pi*k*n/N).ʹ;
end%IDFT
time_dft=toc
plot(k,abs(X))
pause,holdon
tic
X1=fft(x);%FFT
xr1=ifft(X1);%IFFT
time_fft=toc%duarathoigianthuchien
clf,plot(k,abs(X1),ʹrʹ)%phobiendo


Chạyđoạnlệnhvàsosánhthờigianthựchiện1024đi ểmtínhDFT/iDFTvà
FFT/iFFT.

230
2.ÝnghĩavậtlýcủabiếnđổiFourrierrờirạc:Đểhiểuđượcýnghĩavậtlícủa
FFttathựchiện cáclệnhtrongchươngtrình
ctmeanning.m.Chươngtrìnhcho
taphổbiênđộcủatínhiệu
 x(t)=sin(1.5πt)+0.5cos(3πt)(2)
đượclấymẫumỗiTs.
TừcáckếtquảtathấykhiT=0.1vàN =32thìX
a(k)lớntạik=2vàk=5.

Lúcđókω
0=2πk/NT=2πk/3.2≈1.5πvà3.125π≈3π.
KhiT=0.05vàN=64thìX
b(k)cũnglớntạik=2vàk=5.Lúcđó

0=1.25π≈1.5πvà3.125π≈3π.
KhiT=0.1vàN=64thìX
c(k)lớntạik=4,k=5,k= 9vàk=10.Lúcđó

0=2πk/NT=2πk/6.4≈1.25π~1.5625πvà2.8125π~3π.
Khi T = 0.1 và  N = 64 thì X
d(k) lớntại k = 5 và k = 10. Lúcđókω0 =
1.5625π≈1.5πvà3.125π≈3π.
TồntạinhiềuphổDFTkhácnhaucủacùngmộttínhiệutươngtự,tuỳ
thuộcvàokíchthướcDFT,chukìlấymẫu,khoảngbiến
thiêncủahàmvàđệm
zero.SosánhvớiphổtạiT=0.1s,phổtạiT=0.05scóphạmvitầnsốtươngtự
[0,2π/T
b]rộnghơnnhưngcócùngtầnsốphângiảitươngtựlàω0=Ω0/Tb=
2π/N
bTb=π/1.6=2π/NaTa.Phổkhicóđệmzerotrơn.

clear,clf
w1=1.5*pi;
w2=3*pi;
N=32;
n=[0:N‐1];
T=0.1;%chukilaymau
t=n*T;
xan=sin(w1*t)+0.5*sin(w2*t);

subplot(421)
stem(t,xan,ʹ.ʹ)
k=0:N‐1;
Xa=fft(xan);
dscrp=norm(xan‐real(ifft(Xa)))
subplot(423)
stem(k,abs(Xa),ʹ.ʹ)
N=32;
n
=[0:N‐1];

231
T=0.1;
t=n*T;
xan=sin(w1*t)+0.5*sin(w2*t);
subplot(422)
stem(t,xan,ʹ.ʹ)
k=0:N‐1;
Xa=fft(xan);
Dscrp=norm(xan‐real(ifft(Xa)))
subplot(424)
stem(k,abs(Xa),ʹ.ʹ)
N=64;
n=[0:N‐1];
T=0.05;
t=n*T;
xbn=sin(w1*t)+0.5*sin(w2*t);
subplot(425)
stem(t,xbn,
ʹ.ʹ)

k=0:N‐1;
Xb=fft(xbn);
subplot(427)
stem(k,abs(Xb),ʹ.ʹ)
N=64;
n=[0:N‐1];
T=0.1;
t=n*T;
xbn=sin(w1*t)+0.5*sin(w2*t);
subplot(426)
stem(t,xbn,ʹ.ʹ)
k=0:N‐1;
Xb=fft(xbn);
subplot(428)
stem(k,abs(Xb),ʹ.ʹ)

Ta cónhiều phổ DFT chocùng một tínhiệu tương tự, tuỳ thuộc vào
kíchthướcDFT,chukìlấymẫu,khoảnglấymẫuvàđệmzero.Sosánhphố
khigiảmchukìlấy
mẫuTtừ0.1sđến0.05s

232
3.NộisuybằngcácdùngbiếnđổiFourrierrờirạc:TadùngDFS/DFTđểnội
suydãyx[n]nhậnđượctừkếtquảlấymẫutínhiệuởkhoảngcáchcáchđều.
Thủtụcgồmhaibước:lấyNđiểmFFTX(k)củax[n]vàdùngcôngthức:


j2 kt/ NT
|k| N / 2
N/2 1

j2 kt/ NT
k1
1
ˆ
x(t) X(k)e
N
1
X(0) 2 Real X(k )e X(N/ 2)cos( /T)
N
π
<

π
=
=
⎧⎫
⎡⎤
=+ + π
⎨⎬
⎣⎦
⎩⎭


%
 (5)
Taxâydựnghàmnộisuy
interpdfs():

function[xi,Xi]=interpdfs(T,x,Ws,ti)
%T:chulilaymau

%x:thuturoirachoa
%Ws:tansodungchuan(1.0=pi[rad])
%ti:khoangthoigiannoisuy
ifnargin<4
ti=5;
end
ifnargin<3|Ws>1

Ws=1;
end
N=length(x);
iflength(ti)==1
ti=0:T/ti:(N‐1)*T;%khoangconduocchiachoti
end
ks=ceil(Ws*N/2);
Xi=fft(x);
Xi(ks+2:N‐ks)=zeros(1,N‐2*ks‐1);%phodaloc
xi=zeros(1,length(ti));
fork=2:N/2
xi=xi+Xi(k)*exp(j*2*pi*(k
‐1)*ti/N/T);
end
xi=real(2*xi+Xi(1)+Xi(N/2+1)*cos(pi*ti/T))/N;%pt.(.5)

Đểnộisuytadùngchươngtrìnhctfourier.m:

clear,clf

233
w1=pi;

w2=.5*pi;%haitanso
N=32;
n=[0:N‐1];
T=0.1;
t=n*T;
x=sin(w1*t)+0.5*sin(w2*t)+(rand(1,N)‐0.5);%0.2*sin(20*t);
ti=[0:T/5:(N‐1)*T];
subplot(411),plot(t,x,ʹk.ʹ)%solieubandau
title(ʹSolieubandauvaketquanoisuyʹ)
[xi,Xi]=interpdfs(T,x,1,ti);
holdon,plot(ti,xi,ʹrʹ)%taitaotinhieu
k=[0:N‐1];
subplot(412),stem(k,abs(Xi),ʹk.ʹ)%phobandau
title(ʹPhobandauʹ)
[xi,Xi]=interpdfs(T,x,1/2,ti);
subplot(413),stem(k,abs(Xi),ʹr.ʹ)%phodaloc
title(ʹPhodalocʹ)
subplot(414),plot(t,x,ʹk.ʹ,ti,xi,ʹrʹ)%tin
hieudaloc
title(ʹTinhieudalocʹ)

§9.XẤPXỈHÀMBẰNGPHƯƠNGPHÁPBÌNHPHƯƠNGBÉNHẤT
1.Kháiniệmchung
:Trongcácmụctrướctađãn ội suygiátrịcủahàm.Bài
toánđólàchomộthàmdướidạngbảngsốvàphảitìmgiátrịcủahàmtạimột
giátrịcủađốis
ốkhôngnằmtrongbảng.
 Trongthựctế,bêncạnhbàitoánnộisuytacòngặpmộtdạngbàitoán 
khác.Đólàtìmcôngthứcthựcnghiệmcủamộthàm.
Nộidungbàitoán

làtừmộtloạtcácđiểmchotrước(cóthểlàcácgiátrị
củamộtphépđonàođó)taphảitìmmộthàmxấpxỉcácgiátrịđãcho.Tasẽ
dùngphươngphápbìnhphương
tốithiểuđểgiảibàitoán.
Giảsửcómẫu  quansát(x
i,yi)củahàmy= f(x).Tachọnhàmf(x) có
dạng:
 f(x)=a
0f0(x)+a1f1(x)+a2f2(x) (1)
Trongđócáchàmf
0(x),f1(x),f2(x)v.v.là(m+1)hàmđộclậptuyếntínhmàta
cóthểchọntuỳývàcách ệsốa
ilàthamsốchưabiếtmàtaphảixácđịnh dựa

234
vàohệhàmđãchọnvàcácđiểmquansát.Saisốgiữatrịđođượcvàtrịtính
theo(1)là:
 e
i=yi‐f(xi)(2)
Sai số này có thểâm hay dươngtuỳ từng giátrị củay
i.Khi dùng phương
phápbìnhphươngbénhấttaxétbìnhphươngcủasaisốtạimộtđiểm:

[]
22
ii i
eyf(x)=−
(3)
Vớinđiểmtổngbìnhphươngcủasaisốsẽlà:


[]
{}
nn
2
2
ii00i11i mmi
i1 i1
S e y af(x) af(x) a f (x)
==
= = − + +⋅⋅⋅+
∑∑

RõràngSlàhàmcủacácgiátrịcần tìma
ivàchúngtasẽchọncácaisao
choSđạtgiátrịmin,nghĩalàcácđạohàm
i
a
S


phảibằngkhông.
Tasẽxétcáctrườnghợpcụthể.
2.Hàmxấpxỉcódạngđathức:Trongtrườnghợptổngquáttachọnhệhàm
xấpxỉlàmộtđathức,nghĩalà:
 f(x)=a
0+a1x+a2x
2
+∙∙∙+amx
m


VậyhàmSlà:

(
)
2
2m
i01 2 m
Syaaxax ax=−++ +⋅⋅⋅+ 
Theođiềukiệnđạohàm
0
a
S
i
=


tanhậnđượchệphươngtrình:


















=+⋅⋅⋅++
⋅⋅⋅
=+⋅⋅⋅++
=+⋅⋅⋅++
=+⋅⋅⋅++
=+⋅⋅⋅++
∑∑∑∑
∑∑∑∑
∑∑∑∑
∑∑∑∑
∑∑∑
====


====
+

+
====
+

+
====

+
===



n
1i
i
m
i
n
1i
m
i0
n
1i
n
1i
1m2
i1m
m2
im
n
1i
i
3
i
n
1i
3
i0
n
1i

n
1i
2m
i1m
3m
im
n
1i
i
2
i
n
1i
2
i0
n
1i
n
1i
1m
i1m
2m
im
n
1i
ii
n
1i
i0
n

1i
n
1i
m
i1m
1m
im
n
1i
i0
n
1i
n
1i
1m
i1m
m
im
yxxaxaxa
yxxaxaxa
yxxaxaxa
yxxaxaxa
ynaxaxa


Đâylàmộthệphươngtrìnhtuyếntính.Giảinótanhậnđượccácgíatrịa
i.
Taxâydựnghàm
polynomfit()thựchiệnthuậttoántrên:


×