Professional Documents
Culture Documents
1.NISUYLAGRANGE
Trongthctnhiukhitacntnhgitrcahmy=f(x)timtgitr
x trong mt on [a, b] no m ch bit mt s nht nh cc gi tr ca
hm ti mt s im cho trc. Cc gi tr ny c cung cp qua thc
nghimhaytnhton.Vvynysinhvntonhcltrnonaxb
chomtlotccimxi(i=0,1,2...)vticcimxinygitrcahml
yi =f(xi)bitvtacntmy=f(x)datrnccgitrbit.Lcta
cntmathc:
Pn(x)=aoxn+a1xn1++an1x+an
saochoPn(xi)=f(xi)=yi.athcPn(x)cgilathcnisuycahm
y=f(x). Ta chn a thc ni suy hm y = f(x) v a thc l loi hm n
gin,luncohmvnguynhm.Victnhgitrcantheothutton
Hornercngngin.
BygitaxydngathcnisuykiuLagrange.GiLilathc:
( x x0 )...( x xi 1 )( x xi + 1 )...( x x n )
Li =
( xi x 0 )...( xi xi 1 )( x i x i + 1 )...( x i x n )
RrnglLi(x)lmtathcbcnv:
j=i
1
L i (x j ) =
0
j
TagiathcnylathcLagrangecbn.
Bygitaxtbiuthc:
n
Pn ( x) = f( x i )L i ( x)
i =0
x
x0
x1
y
y0
y 1
athcnisuysl:
P1(x)=yoL0(x)+y1L1(x1)
x x0
x x1
L0 =
L 1 =
x 0 x1
x1 x 0
210
nn P1 ( x) = y 0
x x0
x x1
+ y1
x1 x 0
x 0 x1
NhvyP1(x)lmtathcbcnhtivix
Vin=2tacbng
x
x0
x1
x2
y
y 0
y1
y2
athcnisuysl:
P2(x)=yoL0(x)+y1L1(x1)+y2L2(x2)
( x x1 )( x x 2 )
L0 =
( x 0 x1 )( x0 x 2 )
( x x0 )( x x 2 )
L1 =
( x1 x0 )( x1 x 2 )
( x x 0 )( x x1 )
L2 =
( x 2 x 0 )( x 2 x1 )
NhvyP1(x)lmtathcbchaiivix.
Ta xy dng hm lagrange() thc hin vic ni suy hm theo thut ton
Lagrange:
function[l,L]=lagrange(x,y)
%Duavao:x=[x0x1...xn],y=[y0y1...yn]
%ketqua:l=HesocuadathucLagrangebacn
%L=DathucLagrange
n=length(x)1;%baccuadathucl
l=0;
form=1:n+1
p=1;
fork=1:n+1
ifk~=m
p=conv(p,[1x(k)])/(x(m)x(k));
end
end
L(m,:)=p;%dathucLagrange
l=l+y(m)*p;
end
211
Chohmdidngbng:
x
2
1
1
2
y
6
0
0
6
vtmy(2.5)tadngchngtrnhctlagrange.m:
clearall,clc
x=[2112];
y=[6006];
l=lagrange(x,y);
yx=polyval(l,2.5)
2.NISUYNEWTON
Bygitaxtmtcchkhcxydngathcnisuygilphng
phpNewton.Trchttaavomtkhinimmilthiu
Gishmy=y(x)cgitrchotrongbngsau:
x
x0 x1 x2 xn1 xn
y
y0 y1 y2 yn1 yn
Thiucp1caytixi,xjl:
yi y j
y[x i , x j ] =
xi x j
Thiucphaicaytixi,xj,xkl:
y[x i , x j ] y[x j , x k ]
y[xi , x j , x k ] =
xi xk
v.v.
Viy(x)=Pn(x)lmtathcbcnththiucp1tix,x0:
P ( x) Pn ( x0 )
Pn [x , x0 ] = n
x x0
lmtathcbc(n1).Thiucp2tix,x0,x1:
P [x , x0 ] Pn [x0 , x1 ]
Pn [x , x 0 , x1 ] = n
x x1
lmtathcbc(n2)v.vvtithiucp(n+1)th:
212
Pn[x,xo,..,xn]=0
Tccnhnghathiutasuyra:
Pn(x)=Pn(x0)+(xx0)Pn[x,xo]
Pn[x,x0]=Pn[x0,x1]+(xx1)Pn[x,xo,x1]
Pn[x,xo,x1]=Pn[x0,x1,x2]+(xx2)Pn[x,xo,x1,x2]
............
Pn[x,xo,..,xn1]=Pn[x0,x1,..,xn]+(xxn)Pn[x,xo,..,xn]
Do Pn[x,xo,..,xn]=0nnttac:
Pn(x)=Pn(x0)+(xx0)Pn[xo,x1]+(xx0)(xx1)Pn[x0,x1,x2]+
+(xx0)(xxn1)Pn[x0,,xn]
NuPn(x)lathcnisuycahmy=f(x)th:
Pn(xi)=f(xi)=yivii=0n
Doccthiutcp1ncpncaPnvcayltrngnhauv
nhvytac:
Pn(x)=y0+(xx0)y[x0,x1]+(xx0)(xx1)y[x0,x1,x2]+..+
(xx0)(xx1)...(xxn1)y[x0,..,xn]
athcnygilathcnisuyNewtontinxutphttntx0ca
hmy=f(x).NgoiathctincncathcnisuyNewtonlixutpht
timxncdngnhsau:
Pn(x)=yn+(xxn)y[xn,xn1]+(xxn)(xxn1)y[xn,xn1,xn2]+..+
(xxn)(xxn1)...(xx1)y[xn,..,x0]
Trnghpccntcchuthxi=x0+ihvii=0,1,..,n.Tagisai
phntincp1tiil:
yi=yi+1yi
vsaiphntincphaitii:
2yi=(yi)=yi+22yi+1+yi
.........
vsaiphntincpnl:
nyi=(n1yi)
Khitac:
y 0
y[x 0 , x 1 ] =
h
2 y 0
y[x 0 , x 1 , x 2 ] =
2h 2
...........
213
n y 0
y[x 0 , x 1 , x 2 ,..., x n ] =
n! h n
Bygitx=x0+httrongathcNewtontintac:
t( t 1) 2
t( t 1) ( t n + 1) n
Pn ( x 0 + ht) = y 0 + ty 0 +
y0 + +
y0
2!
n!
thtanhnc athcNewtontinxutphttx0trongtrnghpnt
cchu.Vin=1tac:
P1(x0+ht)=y0+y0
Vin=2tac:
t( t 1) 2
Pn ( x 0 + ht) = y 0 + ty 0 +
y0
2!
Mtcchtngttackhinimccsaiphnlitii:
yi=yiyi1
2yi=(yi)=yi2yi1+yi2
.........
nyi=(n1yi)
vathcnisuyNewtonlikhiccimnisuycchu:
t( t + 1) 2
t( t + 1) ( t + n 1) n
Pn ( x 0 + ht) = y n + ty n +
yn + +
yn
2!
n!
Taxydnghmnewton()nisuy:
function[n,DD]=newton(x,y)
%Duavao:x=[x0x1...xN]
%y=[y0y1...yN]
%Layra:n=hesocuadathucNewtonbacN
N=length(x)1;
DD=zeros(N+1,N+1);
DD(1:N+1,1)=y;
fork=2:N+1
form=1:N+2k
DD(m,k)=(DD(m+1,k1)DD(m,k1))/(x(m+k1)x(m));
end
end
a=DD(1,:);
n=a(N+1);
fork=N:1:1
214
n=[na(k)][0n*x(k)];
end
Chohmdidngbng:
x
2
1
1
2
4
y
6
0
0
6
60
Tadngchngtrnhctnewton.mnisuy:
clearall,clc
x=[21124];
y=[600660];
a=newton(x,y)
yx=polyval(a,2.5)
3.NISUYAITKENNEVILLE
Mt dng khc ca a thc ni suy c xc nh bng thut ton
AitkenNeville.Gistacnimchocahmf(x).Nhvyquahai
im x0 v x1 ta c a thc ni suy Lagrange ca hm f(x) c vit di
dng:
y0 x0 x
y x1 x
P01 ( x) = 1
x1 x 0
ylmtathcbc1:
x x1
x x0
P01 ( x) = y 0
+ y1
x 0 x1
x1 x 0
Khix=x0th:
P01 ( x 0 ) =
y0
y1
x0 x0
x1 x 0
= y0
x1 x 0
Khix=x1th:
y 0 x 0 x1
y x1 x1
P01 ( x1 ) = 1
= y1
x1 x 0
athcnisuyLagrangecaf(x)qua3imx0,x1,x2cdng:
215
P01 ( x) x0 x
P ( x) x 2 x
P012 ( x) = 12
x2 x0
vlmtathcbc2:
( x x1 )( x x 2 )
( x x 0 )( x x 2 )
( x x 0 )( x x1 )
+ y2
+ y1
P012 ( x) = y 0
( x 0 x1 )( x 0 x 2 )
( x1 x 0 )( x1 x 2 )
( x 2 x 0 )( x 2 x1 )
Khix=x0th:
y0
x0 x0
P ( x) x 2 x 0
P012 ( x0 ) = 12
= y0
x 2 x0
Khix=x1th:
y 1 x 0 x1
y x 2 x1
P012 ( x1 ) = 1
= y1
x2 x0
Khix=x2th:
P01 ( x 2 ) x0 x 2
y2
x2 x2
P012 ( x 2 ) =
= y2
x2 x0
TngqutathcnisuyLagrangequaniml:
P01..( n 1) ( x) x 0 x
P12..n ( x) x n x
P012..n ( x) =
x2 x0
Nh vy ta c th dng php lp xc nh ln lt cc a thc
Lagrange.StnhtonnhvygilsNevilleAitken.
Taxydnghmaitkenneville()nisuy:
functiona=aitkenneville(xData,yData,x)
%Travegiatrinoisuytaix.
%Cuphap:y=aitkenneville(xData,yData,x)
n=length(xData);
y=yData;
fork=1:n1
y(1:nk)=((xxData(k+1:n)).*y(1:nk)...
+(xData(1:nk)x).*y(2:nk+1))...
./(xData(1:nk)xData(k+1:n));
216
end
a=y(1);
Chocccps(1,3),(2,5),(3,7),(4,9)v(5,11),tmytix=2.5tadng
chngtrnhctaitkennevile.m:
clearall,clc
x=[1234];
y=[3579];
yx=aitkenneville(x,y,2.5)
4.NISUYBNGNGCONGSPLINEBCBA
Khisimchotrcdngkhinisuytng,athcnisuycdng
sngvsaistng.Taxthmthc:
1
f31(x) =
1 + 8x 2
vnisuynbngthuttonNewtonnhchngtrnhcttestintp.m
%NoisuyNewton
x1=[10.500.51.0];
y1=f31(x1);
n1=newton(x1,y1)
x2=[10.750.50.2500.250.50.751.0];
y2=f31(x2);
n2=newton(x2,y2)
x3=[10.80.60.40.200.20.40.60.81.0];
y3=f31(x3);
n3=newton(x3,y3)
xx=[1:0.02:1];%phamvinoisuy
yy=f31(xx);%hamthuc
yy1=polyval(n1,xx);%hamxapxiqua5diem
yy2=polyval(n2,xx);%hamxapxiqua9diem
yy3=polyval(n3,xx);%hamxapxiqua11diem
subplot(221)
plot(xx,yy,k,xx,yy1,b)
subplot(224)
217
plot(xx,yy1yy,r,xx,yy2yy,g,xx,yy3yy,b)%dothisaiso
subplot(222)
plot(xx,yy,k,xx,yy2,b)
subplot(223)
plot(xx,yy,k,xx,yy3,b)
y
vnhncktqu.
fi,i+1
fi1,i
trnhhintngsaislnkhi
s im mc tng ta dng ni suy ni
trn(spline). Trn cc on ni suy ta
yi1 yi
yi+1
thay hm bng mt ng cong. Cc
x
ng cong ny c ghp trn ti cc
xi
xi+1
xi1
imni.Tachnccngcongnyl
hmbc3vhmbc1vbchaikh
bomiukinnitrn.
Chomtlotgitrnisuy(x1,y1),,(xi,yi),,(xn,yn).Trnmionta
cmthmbc3.Nhvygiantiv(i+1)tachmfi,i+1(x),nghalta
dng(n1)hmbc3f1,2(x),f2,3(x),,fn1,n(x)thaythchohmthc.Hm
fi,i+1(x)cdng:
(1)
fi,i+1(x)=ai+bi(xxi)+ci(xxi)2+di(xxi)3
Hmnythomn:
(3)
fi,i+1(xi)=ai=yi
3
2
(4)
fi,i+1 (xi ) = bi
(5)
fi,i+1 (x i ) = 2c i = yi
fi,i+1 (xi+1 ) = 6di h i + 2c i = yi+1
(6)
(7)
(8)
Munnitrntacncohmbcnhtlintcvdo:
fi1,i (x i ) = fi,i+1 (x i ) = k i
Lc ny cc gi tr k cha bit, ngoi tr k1 = kn = 0(ta cc cc mt l im
un).imxutphttnhcchscafi,i+1(x)lbiuthcca fi,i+1 (xi ) .S
dngnisuyLagrangechohaiimtac:
Li (x) =
x x i +1
x i x i +1
Li+1 (x) =
x xi
x i +1 x i
Dovy:
k i (x x i+1 ) k i+1 (x x i )
x i x i +1
Tchphnbiuthctrnhailntheoxtac:
k i (x xi+1 )3 k i+1 (x xi )3
fi ,i+1 (xi ) =
+ A(x xi+1 ) B(x xi )
6(xi xi+1 )
TrongAvBlcchngstchphn
ShngcuitrongphngtrnhtrnthngcvitlCx+D.
tC=ABvD=Axi+1+Bxiddngtnhton.Tiukinfi,i+1(xi)=yi
tac:
k i (xi xi+1 )3
+ A(xi xi+1 ) = y i
6(xi x i+1 )
nn:
yi
k (x x i+1 )
A=
i i
x i x i +1
6
fi,i+1 (x i ) =
Tngt,iukinfi,i+1(xi+1)=yi+1chota:
y i +1
k (x xi+1 )
B=
i +1 i
x i x i +1
6
Ktqul:
k (x xi+1 )3
(x xi+1 )(xi xi+1 )
fi ,i+1 (xi ) = i
6 x i x i +1
k i+1 (x xi )3
(x
x
)(x
x
)
i
i
i +1
6 xi xi+1
y i (x xi+1 ) y i+1 (x xi )
x i x i +1
ohmcp2kiticcntbntrongctnhtiukin:
fi1,i (x i ) = fi,i+1 (x i )
+
Saukhibinitacphngtrnh:
k i1 (xi1 xi ) + 2k i (xi1 xi+1 ) + k i+1 (xi xi+1 )
y y i y i y i +1
= 6 i 1
x i 1 x i x i x i + 1
Khiccimchiacchu(xi+1xi)=htac:
219
6
i=2,3,,n1
( yi1 2yi + yi+1 )
h2
Taxydnghmcubicspline()nisuy:
functiony=cubicspline(xData,yData,x)
%Hamnayxapxibangdathucbac3spline
%Cuphap:[yi,f]=cubicspline(xData,yData,x)
n=length(xData);
c=zeros(n1,1);d=ones(n,1);
e=zeros(n1,1);k=zeros(n,1);
c(1:n2)=xData(1:n2)xData(2:n1);
d(2:n1)=2*(xData(1:n2)xData(3:n));
e(2:n1)=xData(2:n1)xData(3:n);
k(2:n1)=6*(yData(1:n2)yData(2:n1))...
./(xData(1:n2)xData(2:n1))...
6*(yData(2:n1)yData(3:n))...
./(xData(2:n1)xData(3:n));
[c,d,e]=band3(c,de);
k=band3sol(c,d,e,k);
i=findseg(xData,x);
h=xData(i)xData(i+1);
y=((xxData(i+1))^3/h(xxData(i+1))*h)*k(i)/6.0...
((xxData(i))^3/h(xxData(i))*h)*k(i+1)/6.0...
+yData(i)*(xxData(i+1))/h...
yData(i+1)*(xxData(i))/h;
Tacchngtrnhctcubicspline.mdngnisuy:
clearall,clc
x1=0:0.1:5;
y1=(x1+1).^2;
while1
x=input(x=);
ifisempty(x)
fprintf(Ketthuc);
break
k i1 + 4k i + k i+1 =
220
end
y=cubicspline(xData,yData,x)
fprintf(\n)
end
5.NISUYBNGATHCCHEBYSHEV
xk = cos
k=1,2,,n
(1)
2(n + 1)
Vionnisuy[a,b]btk:
ba
b+a ba
2n + 1 2k
a+b
xk =
xk +
cos
=
+
k=1,2,,n (2)
2
2
2
2(n + 1)
2
CcntnisuynycgilccntChebyshev.athcnisuydatrn
ccntChebyschevgilathcnisuyChebyshev.
Taxthmthc:
1
f(x) =
1 + 8x 2
Tachnsntnisuylnltl5,9,11vxydngccathcNewton
(hay Lagrange) c4(x), c8(x) v c10(x) i qua cc nt nyv v th ca hm
thccngnhsaiskhinisuybngchngtrnhctcomchebynew.mvicc
Nkhcnhau.
x1=[10.500.51.0];
y1=f31(x1);
n1=newton(x1,y1);
xx=[1:0.02:1];%phamvinoisuy
yy1=polyval(n1,xx);%hamxapxiqua5diem
yy=f31(xx);%hamthuc
221
subplot(221)
plot(xx,yy,k,x,y,o,xx,yy1,b);
title(Newton)
subplot(223)
plot(xx,yy1yy,r)%dothisaiso
N=4;
k=[0:N];
x=cos((2*N+12*k)*pi/2/(N+1));
y=f31(x);
c=newton(x,y)%dathucnoisuyduatrencacnutChebyshev
xx=[1:0.02:1];%doannoisuy
yy=f31(xx);%dothihamthuc
yy1=polyval(c,xx);%dothihamxapxi
subplot(222)
plot(xx,yy,k,x,y,o,xx,yy1,b)
title(Chebyshev)
subplot(224)
plot(xx,yy1yy,r)%dothisaiso
Khitngsimmc,nghaltngbccaathcChebyschev,saisgim.
athcChebyshevbcncxcnhbng:
Tn+1(x)=cos((n+1)arccos(x))
(3)
vccntChebyshevchobi(1)lnghimca(3).
Tac:
Tn +1 (x) = cos(arccos(x) + narccos(x))
= cos(arccos(x))cos(narccos(x) sin(arccos(x))sin(narccos(x))
n1
v T0(x)=1
T1(x)=cos(arccos(x)=x
CcathcChebyshevnbc6l:
T0(x)=1
T1(x)=x
T2(x)=2x21
(4)
(5)
222
T3(x)=4x33x
T4(x)=8x48x2+1
T5(x)=16x520x3+5x
T6(x)=32x648x4+18x21
T7(x)=64x7112x5+56x37x
Hmf(x)cxpxbng:
N
f(x) = d m Tm (x) x=
m =0
2 a+b
x
b a
2
(6)
Trong:
1 n
1 n
d0 =
f(x k )
f(xk )T0 (xk ) = n + 1
n + 1 k =0
k =0
2 n
dm =
f(xk )Tm (xk )
n + 1 k =0
2 n
m(2n + 1 2k)
=
f(xk )cos 2(n + 1) m = 1,2,...,n
n + 1 k =0
Taxydnghmcheby()tmathcnisuyChebyshev:
function[c,x,y]=cheby(f,N,a,b)
%vao:f=tenhamtrendoan[a,b]
%Ra:c=CachesocuadathucNewtonbacN
%(x,y)=cacnutChebyshev
ifnargin==2
a=1;
b=1;
end
k=[0:N];
theta=(2*N+12*k)*pi/(2*N+2);
xn=cos(theta);%pt.(1)
x=(ba)/2*xn+(a+b)/2;%pt.(2)
y=feval(f,x);
d(1)=y*ones(N+1,1)/(N+1);
form=2:N+1
cos_mth=cos((m1)*theta);
d(m)=y*cos_mth*2/(N+1);%pt.(7)
end
xn=[2(a+b)]/(ba);%nghichdaocuat.(2)
(7)
(8)
223
T_0=1;T_1=xn;%pt.(5)
c=d(1)*[0T_0]+d(2)*T_1;%pt.(6)
form=3:N+1
tmp=T_1;
T_1=2*conv(xn,T_1)[00T_0];%pt.(4)
T_0=tmp;
c=[0c]+d(m)*T_1;%pt.(6)
end
1
ta dng chng
1 + 8x 2
trnhctcheby.m:
clearall,clc
N=2;
a=2;
b=2;
[c,x1,y1]=cheby(f31,N,a,b)%dathucChebyshev
%sosanhvoidathucLagrange/Newton
k=[0:N];
xn=cos((2*N+12*k)*pi/2/(N+1));%pt.(1):nutChebyshev
x=((ba)*xn+a+b)/2;%pt.(2)
y=f31(x);
n=newton(x,y)
l=lagrange(x,y)
6.XPXHMBNGPHNTHCHUT
XpxPaddngxpxhmf(x)tix0bnghmhut:
Q (x x 0 )
Pm ,n (x x 0 ) = m
D n (x x 0 )
q 0 + q 1 (x x0 ) + q 2 (x x0 )2 + L + q m (x x0 )m
1 + d1 (x x0 ) + d 2 (x x0 )2 + L + d n (x x0 )n
vim=nhaym=n+1
Trongf(x0),f(x0),,f(m+n)(x0)cho
TrchttakhaitrinTaylorhmf(x)tix=x0nbc(m+n).
(1)
224
(2)
Tm + n (x) m
= 0 hayTm+n(x)Dn(n)Qm(x)=0
Dn (x)
nghal:
(a 0 + a1x + L + a m + n x m + n )(1 + d1x + L + d n x n ) = (q 0 + q1x + L + q m x m ) (3)
Cnbngccshngcngbchaivtac:
a 0 = q 0
a + a d = q
0 1
1
1
a 2 + a1d1 + a 0d 2 = q 2
L
a m + a m 1d1 + a m 2d 2 + L + a m nd n = q m
a m +1 + a md1 + a m 1d 2 + L + a m n+1d n = 0
a
m + 2 + a m +1d1 + a md 2 + L + a m n+ 2d n = 0
a m + n + a m + n 1d1 + a m + n2d 2 + L + a md n = 0
Trchttagii(5)tmdivsauthayvo(4)tmqi.
Taxydnghmpadeapp()tnhxpx:
function[num,den]=padeapp(f,xo,M,N,x0,xf)
%Vao:f=Hamcanxapxitrongdoan[xo,xf]
%Ra:num=Cachesocuatuso
%den=Cachesocuamauso
a(1)=feval(f,xo);
h=.01;
tmp=1;
fori=1:M+N
tmp=tmp*i*h;%i!h^i
dix=difapx(i,[ii])*feval(f,xo+[i:i]*h);%daoham
a(i+1)=dix/tmp;%hesochuoiTaylor
(4)
(5)
225
end
form=1:N
n=1:N;
A(m,n)=a(M+1+mn);
b(m)=a(M+1+m);
end
d=A\b;%pt.(5)
form=1:M+1
mm=min(m1,N);
q(m)=a(m:1:mmm)*[1;d(1:mm)];%pt.(4)
end
num=q(M+1:1:1)/d(N);den=[d(N:1:1)1]/d(N);%giamdan
ifnargout==0%vehamthuc,khaitrientaylorvahamPade
ifnargin<6
x0=xo1;
xf=xo+1;
end
x=x0+[xfx0]/100*[0:100];
yt=feval(f,x);
x1=xxo;
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
xpxhmextadngchngtrnhctpadeapp.m:
f1=inline(exp(x),x);
M=3;
N=2;%baccuaQ(x)vaD(x)
xo=0;%tamcuachuoiTaylor
[n,d]=padeapp(f1,xo,M,N)%tinhcachesocuaQ(x)/P(x)
x0=3.5;
xf=0.5;%bientraivaphaicuakhoangxapxi
padeapp(f1,xo,M,N,x0,xf)%xemdothi
226
7.NISUYBNGATHCHERMIT
Trongmtstrnghp,tacntmhmathckhngnhngiqua
ccimchotrcmcnphithomniukinvohmticcim
.TagiathcnhvylathcnisuyHermit.ngin,takho
stmtathcbc3:
h(x) = H 3 x 3 + H 2 x 2 + H1x + H0
(1)
iquahaiim(x0,y0),(x1,y1)vcccohml y0 , y1 .Tatmcchs
Hibngcchgiihphngtrnh:
h(x 0 ) = H 3 x03 + H 2 x02 + H1x0 + H0 = y 0
3
2
h(x1 ) = H 3 x1 + H 2 x1 + H1x1 + H0 = y1
h
(x
)
=
3H
x
+
2H
x
+
H
=
y
0
3 0
2 0
1
0
h(x ) = 3H x 2 + 2H x + H = y
1
3 1
2 1
1
1
(2)
Ccohmbcnhtctnhgnngbng:
h(x0 + ) h(x0 ) y 2 y 0
=
y0 =
(3)
h(x1 ) h(x1 ) y1 y 3
=
y1 =
BygitatmathcnisuyLagrangehayNewtoniqua4im:
(x0,y0), (x 2 = x0 + ,y2 = y0 + y0 ) , (x 3 = x1 , y3 = y1 y1) ,(x1,y1)
Hmhermit()tonnphngtrnh(2):
functionH=hermit(x0,y0,dy0,x1,y1,dy1)
A=[x0^3x0^2x01;x1^3x1^2x11;
3*x0^22*x010;3*x1^22*x110];
b=[y0y1dy0dy1];%Pt.(2)
H=(A\b);
Hm hermits()dnghm hermit()tnhcchscaathcHermittrn
nhiuonvgitrnisuy:
function[H,yi]=hermits(x,y,dy,xi)
%TimcachesocuacdathucHermitetrencdoan
clc
forn=1:length(x)1
H(n,:)=hermit(0,y(n),dy(n),x(n+1)x(n),y(n+1),dy(n+1));
227
end
yi=ppval(mkpp(x,H),xi)
nisuytadngchngtrnhcthermite.m:
clearall,clc
x=[0123];
y=[1245];
dy=[0246];
[h,y]=hermits(x,y,dy,1.5)
8.BINIFOURIER
1.BiniFourrier:Tnhiuthctthngbaogmccthnhphnctn
s khc nhau. Chui Fourier v php bn i Fourier l cng c ton hc
dngphntchctnhtnscatnhiu.C4nhnghatngtnhau
v chui v php bin i Fourier, gm: chui Fourier lin tc theo t(CFS),
php bin i Fourier lin tc theo t(CFT), chui Fourier gin on theo
t(DFS) v php bin i Fourier gin on theo t(DFT). Trong cc cng c
ny,DFTddnglptrnhtrnmytnhnntrongphnnytaschn
n.
Gischuisliu{x[n]=x(nT),n=0:M1}viTlchuklymu
ccbngcchlymumttnhiulintcx(t)Tlntrongmtgiy.N
cpimDFTviDFTcnhnghabng:
N 1
DFT:
(1a)
n =0
N 1
1
X(k)e j2nk/N
(1b)
N n =0
NichunghsDFTcaX(k)lmtsphcvnxcnhbinvpha
ca thnh phn tn hiu c tn s s k = k0(rad), tng ng vi tn s
tngtk=k0=k0/T=2k/NT(rad/s).Tagi0=2/Nv0=2/NTl
cctnscbnsvtngt(tnsphngii)vylhiutnscth
phnbitbiNimDFT.
iDFT:
x[n] =
228
phntchbiDFSvDFScanX(k)lchuktnhiuvichukNtrnton
btpsnguyn.
BiniFouriernhanhFFTlthuttonhiuqutnhDFTviDFT
c xy dng bng cch dng tnh chu k v tnh i xng cu nhn t
ei2nk/NgimbtsnhntphctN2thnh(N/2)log2N)Nthhinkch
thccaDFT.HmMATLABfft()vifft()thchinthuttoniviN=
2l (llsnguynkhngm).NudiMcachuisliubanukhng
philbisca2,cthmrngbngcchmthms0vocuichui
vgilmzero.
%SosanhphepbiendoiFouriernhanhvaroirac
clear,clf
N=2^10;
n=[0:N1];
x=cos(2*pi*200/N*n)+0.5*sin(2*pi*300/N*n);
tic%ngungdongho
fork=0:N1
X(k+1)=x*exp(j*2*pi*k*n/N).;
end%DFT
k=[0:N1];
forn=0:N1
xr(n+1)=X*exp(j*2*pi*k*n/N).;
end%IDFT
time_dft=toc
plot(k,abs(X))
pause,holdon
tic
X1=fft(x);%FFT
xr1=ifft(X1);%IFFT
time_fft=toc%duarathoigianthuchien
clf,plot(k,abs(X1),r)%phobiendo
Chyonlnhvsosnhthigianthchin1024imtnhDFT/iDFTv
FFT/iFFT.
229
2.nghavtlcabiniFourrierrirc:hiucnghavtlca
FFttathchincclnhtrongchngtrnhctmeanning.m.Chngtrnhcho
taphbincatnhiu
x(t)=sin(1.5t)+0.5cos(3t)
(2)
clymumiTs.
TccktqutathykhiT=0.1vN=32thXa(k)lntik=2vk=5.
Lck0=2k/NT=2k/3.21.5v3.1253.
KhiT=0.05vN=64thXb(k)cnglntik=2vk=5.Lc
k0=1.251.5v3.1253.
KhiT=0.1vN=64thXc(k)lntik=4,k=5,k=9vk=10.Lc
k0=2k/NT=2k/6.41.25~1.5625v2.8125~3.
Khi T = 0.1 v N = 64 th Xd(k) ln ti k = 5 v k = 10. Lc k0 =
1.56251.5v3.1253.
TntinhiuphDFTkhcnhaucacngmttnhiutngt,tu
thucvokchthcDFT,chuklymu,khongbinthincahmvm
zero.SosnhviphtiT=0.1s,phtiT=0.05scphmvitnstngt
[0,2/Tb]rnghnnhngccngtnsphngiitngtl0=0/Tb=
2/NbTb=/1.6=2/NaTa.Phkhicmzerotrn.
clear,clf
w1=1.5*pi;
w2=3*pi;
N=32;
n=[0:N1];
T=0.1;%chukilaymau
t=n*T;
xan=sin(w1*t)+0.5*sin(w2*t);
subplot(421)
stem(t,xan,.)
k=0:N1;
Xa=fft(xan);
dscrp=norm(xanreal(ifft(Xa)))
subplot(423)
stem(k,abs(Xa),.)
N=32;
n=[0:N1];
230
T=0.1;
t=n*T;
xan=sin(w1*t)+0.5*sin(w2*t);
subplot(422)
stem(t,xan,.)
k=0:N1;
Xa=fft(xan);
Dscrp=norm(xanreal(ifft(Xa)))
subplot(424)
stem(k,abs(Xa),.)
N=64;
n=[0:N1];
T=0.05;
t=n*T;
xbn=sin(w1*t)+0.5*sin(w2*t);
subplot(425)
stem(t,xbn,.)
k=0:N1;
Xb=fft(xbn);
subplot(427)
stem(k,abs(Xb),.)
N=64;
n=[0:N1];
T=0.1;
t=n*T;
xbn=sin(w1*t)+0.5*sin(w2*t);
subplot(426)
stem(t,xbn,.)
k=0:N1;
Xb=fft(xbn);
subplot(428)
stem(k,abs(Xb),.)
3.NisuybngccdngbiniFourrierrirc:TadngDFS/DFTni
suydyx[n]nhnctktqulymutnhiukhongcchcchu.
Thtcgmhaibc:lyNimFFTX(k)cax[n]vdngcngthc:
1
j2 kt / NT
%
x (t) =
X(k)e
N |k|<N / 2
(5)
N / 2 1
1
Taxydnghmnisuyinterpdfs():
function[xi,Xi]=interpdfs(T,x,Ws,ti)
%T:chulilaymau
%x:thuturoirachoa
%Ws:tansodungchuan(1.0=pi[rad])
%ti:khoangthoigiannoisuy
ifnargin<4
ti=5;
end
ifnargin<3|Ws>1
Ws=1;
end
N=length(x);
iflength(ti)==1
ti=0:T/ti:(N1)*T;%khoangconduocchiachoti
end
ks=ceil(Ws*N/2);
Xi=fft(x);
Xi(ks+2:Nks)=zeros(1,N2*ks1);%phodaloc
xi=zeros(1,length(ti));
fork=2:N/2
xi=xi+Xi(k)*exp(j*2*pi*(k1)*ti/N/T);
end
xi=real(2*xi+Xi(1)+Xi(N/2+1)*cos(pi*ti/T))/N;%pt.(.5)
nisuytadngchngtrnhctfourier.m:
clear,clf
232
w1=pi;
w2=.5*pi;%haitanso
N=32;
n=[0:N1];
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:(N1)*T];
subplot(411),plot(t,x,k.)%solieubandau
title(Solieubandauvaketquanoisuy)
[xi,Xi]=interpdfs(T,x,1,ti);
holdon,plot(ti,xi,r)%taitaotinhieu
k=[0:N1];
subplot(412),stem(k,abs(Xi),k.)%phobandau
title(Phobandau)
[xi,Xi]=interpdfs(T,x,1/2,ti);
subplot(413),stem(k,abs(Xi),r.)%phodaloc
title(Phodaloc)
subplot(414),plot(t,x,k.,ti,xi,r)%tinhieudaloc
title(Tinhieudaloc)
9.XPXHMBNGPHNGPHPBNHPHNGBNHT
1.Khinimchung:Trongccmctrctanisuygitrcahm.Bi
tonlchomthmdidngbngsvphitmgitrcahmtimt
gitrcaiskhngnmtrongbng.
Trongthct,bncnhbitonnisuytacngpmtdngbiton
khc.ltmcngthcthcnghimcamthm.
Nidungbitonltmtlotccimchotrc(cthlccgitr
camtphpono)taphitmmthmxpxccgitrcho.Tas
dngphngphpbnhphngtithiugiibiton.
Gi s c mu quan st (xi, yi) ca hm y = f(x). Ta chn hm f(x) c
dng:
f(x)=a0f0(x)+a1f1(x)+a2f2(x)...
(1)
Trongcchmf0(x),f1(x),f2(x)v.v.l(m+1)hmclptuyntnhmta
cthchntuvcchsailthamschabitmtaphixcnhda
233
vohhmchnvccimquanst.Saisgiatrocvtrtnh
theo(1)l:
ei=yif(xi)
(2)
Sai s ny c th m hay dng tu tng gi tr ca yi. Khi dng phng
phpbnhphngbnhttaxtbnhphngcasaistimtim:
e i2 = [ y i f(x i )] 2
(3)
Vinimtngbnhphngcasaissl:
i =1
i =1
S = e i2 = {y i [a 0 f0 (x i ) + a1f1 (x i ) + + a m fm (x i )]}
2
RrngSlhmcaccgitrcntmai vchngtaschnccaisao
S
phibngkhng.
choStgitrmin,nghalccohm
a i
Tasxtcctrnghpcth.
2.Hmxpxcdngathc:Trongtrnghptngquttachnhhm
xpxlmtathc,nghal:
f(x)=a0+a1x+a2x2++amxm
VyhmSl:
S = ( y i a 0 + a1x + a 2 x 2 + + a m x m )
Theoiukinohm
S
= 0 tanhnchphngtrnh:
a i
n
n
a n x m + a
m 1
+
+
=
x
na
yi
m 1
i
0
m i =1 i
i =1
i =1
n
n
n
n
a x m + 1 + a x m + +a x = x y
m 1
i
0
i
i i
m i =1 i
i =1
i =1
i =1
n
n
n
n
m+2
m +1
2
2
a m xi + a m 1 x i + +a 0 xi = x i y i
i =1
i =1
i =1
i =1
n
n
n
n m+3
m+2
3
+
+
+
=
a
x
a
x
a
x
xi3 y i
m i
m 1 i
0 i
i =1
i =1
i =1
i =1
n
n
n
n
a m xi2 m + a m 1 x i2 m 1 + +a 0 x im = x im y i
i =1
i =1
i =1
i =1
ylmthphngtrnhtuyntnh.Giintanhncccgatrai.
Taxydnghmpolynomfit()thchinthuttontrn:
234
functionx=polyfits(xData,yData,m)
%Dungdetinhhesocuadathucxapxi
%Cuphap:x=polyfits(xData,yData,m)
m=m+1;
A=zeros(m);
b=zeros(m,1);
s=zeros(2*m1,1);
fori=1:length(xData)
temp=yData(i);
forj=1:m
b(j)=b(j)+temp;
temp=temp*xData(i);
end
temp=1;
forj=1:2*m1
s(j)=s(j)+temp;
temp=temp*xData(i);
end
end
fori=1:m
forj=1:m
A(i,j)=s(i+j1);
end
end
x=A\b;
%Sapxeplaihesotusomucaonhat
x=flipdim(x,1);
clearall,clc
xData=[01234];
yData=[182463124];
x=polyfits(xData,yData,3);
y=0:0.1:4;
235
z=polyval(x,y);
holdon
plot(y,z,b,xData,yData,ro);
3.HmdngAecx:Khiccsliuthhinmtsbininiutadng
hmxpxly=Aecx.Lylogarithaivtac:
lny=lnA+cxlne
S
= 0 tachphngtrnh:
Theoiukinohm
a i
c n x + n ln A = n ln y
i
i
i =1
i =1
n
n
n
c x i2 + ln A xi = x i ln y i
i =1
i =1
i =1
GiihphngtrnhnytaccchsAvc.
Taxydnghmexpfit()xpx
function[c,A]=expfit(x,y)
a=sum(x);
b=size(x,2);
c=sum(log(y));
d=sum(x.^2);
e=sum(x.*log(y));
d1=a*ad*b;
d2=c*ae*b;
d3=a*ec*d;
c=d2/d1;
A=exp(d3/d1);
Tadngchngtrnhctexpfit.mxpxdysliucho
clearall,clc
x=[1.22.84.3 5.4 6.8 7.9];
y=[7.5
16.1 38.9 67 146.6266.2];
[c,A]=expfit(x,y);
t=0:0.1:8;
z=A*exp(c*t);
plot(t,z,b,x,y,ro);
236
4.Hm dngAxq:Khiccsliuthhinmtsbininiutacng
cthdnghmxpxly=Axq.Lylogarithaivtac:
lny=lnA+qlnx
Theoiukinohmtrittiutachphngtrnh:
q n ln x + n ln A = n ln y
i
i
i =1
i =1
n
n
n
2
q ln x i + ln A ln x i = ln x i ln y i
i =1
i =1
i =1
Giihphngtrnhnytaccchs
Avq.
Taxydnghmpowerfit()xpx:
function[q,A]=powerfit(x,y)
a=sum(log(x));
b=size(x,2);
c=sum(log(y));
d=sum(log(x).^2);
e=sum(log(x).*log(y));
d1=a*ad*b;
d2=c*ae*b;
d3=a*ec*d;
q=d2/d1;
A=exp(d3/d1);
Tadngchngtrnhctpowerfit.mxpxdysliucho:
clc
x=[ 1
2
3
45];
y=[1.5
15.1 52.5130.5
253];
[q,A]=powerfit(x,y)
t=0.1:0.1:5;
z=exp(log(A)+q*log(t));
plot(t,z,b,x,y,ro);
5.Hmlnggic:Khiquanhy=f(x)cdngtunhontadnghmxp
xlthptuyntnhcacchmsinvcosindng:
237
i =1
i =1
ngintrchttaxthmchcmtshngsincos,nghal:
f( x) = a 0 + a 1 cos x + b1 sin x
HmSscdng:
n
S = y i (a 0 + a1cosx + b1sinx)
2
i =1
a 0 y i
n
cosxi
sinx i
Do:
sinxi = 0
cos xi = 0
n
n
2
sin xi = 1 cos2xi = 1
n
2
n
2
cos xisinxi = 0
n
nnhphngtrnhcdngngin:
0 a 0 y i
n 0
0 n 2 0 a =
y
cos
1
i
i
0 0 n 2 b1 y i sinxi
Giihtac:
y
2
2
a0 = i
a1 = y i cos xi
b1 = y i sin x i
n
n
n
Trongtrnghptngqut,mtcchtngttac:
y
2
2
a0 =
a i = y cos ix
bi = y sin ix
n
n
n
Taxydnghmsinfit()xpx:
function[a,b,c,omega]=sinfit(x,y,T)
%Tlachuki
omega=2*pi/T;
n=size(x,2);
238
a=sum(y)/n;
b=(2/n)*sum(y.*cos(omega*x));
c=(2/n)*sum(y.*sin(omega*x));
Tadngchngtrnhctsinfit.mtnh:
cearall, clc
x=[00.15 0.3 0.45 0.6 0.75 0.9 1.05 1.2 1.3];
y=[2.2
1.5951.0310.7220.7861.2 1.81 2.3692.6782.614];
T=1.5;
[a,b,c,omega]=sinfit(x,y,T)
t=0.:0.01:1.5;
z=a+b*cos(omega*t)+c*sin(omega*t);
plot(t,z,b,x,y,ro);
b+x
Lynghchocantac:
1 b1 1
=
+
y ax a
t1/y=Y,1/x=X,b/a=Bv1/a=Aphngtrnhtrnscdng:
Y=A+BX
vlmtathcbcmt.DovytachphngtrnhivicchsA
vBl:
nA + B n 1 = n 1
x y
i =1 i
i =1 i
n
n
n
1
1
1
A + B =
2
i =1 x i
i =1 xi
i =1 xi y i
vttnhcavb.
Taxydnghmracfit()xpx:
function[a,b]=racfit(x,y)
a1=size(x,2);
b1=sum(1./x);
c1=sum(1./y);
239
d1=sum(1./x.^2);
e1=sum((1./x).*(1./y));
del=a1*d1b1*b1;
del1=c1*d1e1*b1;
del2=a1*e1b1*c1;
A=del1/del;
B=del2/del;
a=1/A;
b=B/A;
xpxtadngchngtrnhctracfit.m:
clearall,clc
x=[12345];
y=[0.3333333 0.5 0.6 0.66666
[a,b]=racfit(x,y)
t=0.:0.01:5;
z=a*t./(b+t)
plot(t,z,b,x,y,ro);
0.7142857];
240