Thứ Năm, 20 tháng 2, 2014

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


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

Không có nhận xét nào:

Đăng nhận xét