You are on page 1of 31

CHNG 3: NI SUY V XP X HM

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

Ta thy Pn(x) l mt a thc bc n v cc Li(x) l cc a thc bc n v


thomniukinPn(xi)=f(xi)=yi.TaginlathcnisuyLagrange.
Vin=1tacbng

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

fi ,i+1 (xi+1 ) = di h i + c i h i + bi h i + a i = y i+1

(4)

fi,i+1 (xi ) = bi

(5)

fi,i+1 (xi+1 ) = 3di h i2 + 2c i h i + bi

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:

fi,i+1 (x i ) = k i L i (x) + k i+1L i+1 (x)


Trong:
218

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

Khi ni suy bng a thc Newton hay Lagrange, ngha l thay hm


thcbngathcxpx,ckhongcchcchuthsaisgiaathcni
suyvhmthccxuhngtngtihaimtnisuy.Tathyriuny
khichychngtrnhcttestintp.m.
Dovytannchnccimmcnisuy
hai mt dy hn gia. Mt trong nhng cch
chn phn b cc im mc l hnh chiu ln
trc x ca cc im cch u trn ng trn
1
tmtiimgiacaonnisuy.Nhvyvi 1 x1
onnisuy[1,1]tac:
2n + 1 2k

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))

= xT n(x) + 0.5 cos((n + 1)arccos(x) cos((n 1)arccos(x)

= xT n(x) + 0.5T n +1(x) 0.5T n 1(x)


nn:

Tn +1(x) = 2xT n(x) T n 1(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

tm a thc Chebyshev dng xp x hm f(x) =

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

f(x) Tm + n (x) = f(x0 ) + f (x0 )(x x0 )


f(x0 )
f (m + n) (x0 )
2
+
(x x0 ) + L +
(x x0 )m + n
2!
(m + n)!

(2)

= a 0 + a1(x x0 ) + a 2(x x0 )2 + L + a m + n(x x0 )m + n


ngintacoix0=0.TacntnhcchscaDn(x)vQm(x)saocho:
Q (x)

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:

X(k) = x[n]e j2nk/N

(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.

DFT v DFS c cng bn cht nhng khc nhau v phm vi thi


gian/tns.Cthltnhiux[n]vDFTX[k]cankodihuhntrn
phmvithigian/tns{0nN1}v{0kN1}.Tnhiux[n]c

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.

Ta xem xt hiu qa ny bng cch thc hin on lnh trong


ctcompdftfft.m.

%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),.)

Ta c nhiu ph DFT cho cng mt tn hiu tng t, tu thuc vo


kchthcDFT,chuklymu,khonglymuvmzero.Sosnhph
khigimchuklymuTt0.1sn0.05s
231

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

= X(0) + 2 Real X(k)e j2 kt / NT + X(N / 2)cos(/T)


N
k =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);

xp x mt dy s liu bng hm a thc ta dng chng trnh


ctpolynomfit.m:

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

f( x) = a 0 + a i cos( ix) + bi sin(ix)

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

Theo iu kin o hm trit tiu ta c h phng trnh i vi cc h s


dng:

a 0 y i

n
cosxi
sinx i

cos2xi cos xisinxi a1 = yicosxi


cosxi
sinxi cos xi sinxi
sin 2xi b1 yisinxi

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);

6.Hmhut:Khiquanhy=f(x)c dngng congbohohaydng


arctan,tanv.vtadnghmxpxlhmhutdngngin:
ax
y=

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

You might also like