Professional Documents
Culture Documents
1.KHINIMCHUNG
Nuphngtrnhishaysiuvitkhphctpthtkhitmc
nghim ng. Bi vy vic tm nghim gn ng v c lng sai s l rt
cnthit.
Taxtphngtrnh:
f(x)=0
(1)
vi f(x) l hm cho trc ca bin x. Chng ta cn tm gi tr gn ngca
nghimcaphngtrnhny.
Qutrnhgiithngchialmhaibc:bcsbvbckinton
nghim.
function[x1,x2]=rootsearch(func,a,b,dx)
%Timdoanchuanghiemcuahamf(x).
%Cuphap:[x1,x2]=rootsearch(func,a,d,dx)
%func=hamf(x).
%a,b=daontim.
%dx=khoangtang
%x1,x2=doanchunghiem(a,b);
%datlaNaNneukhongthaynghiem
241
x1=a;f1=feval(func,x1);
x2=a+dx;f2=feval(func,x2);
whilef1*f2>0.0
ifx1>=b
x1=NaN;x2=NaN;
return
end
x1=x2;f1=f2;
x2=x1+dx;f2=feval(func,x2);
end
clearall,clc
f=inline(x^310*x^2+5);
[x1,x2]=rootsearch(f,2,10,.2)
Bckintonnghimtmccnghimgnngtheoyucutra.
Crtnhiuphngphpxcnhnghimca(1).Sauychngta
xttngphngphp.
2.PHNGPHPLPN
Gisphngtrnh(1)cavdngtngng:
x=g(x)
(2)
tgitrxonogilgitrlputintalpdyxpxbngcngthc:
xn=g(xn1)
(3)
vin=1,2,....
Hmg(x)cgilhmlp.Nudyxnkhinthtaniphplp
(3)hit.
Tacnhl:Xtphngphplp(3),gis:
[a,b]lkhongchanghimcaphngtrnh(1)tclca(2)
mixntnhtheo(3)uthuc[a,b]
g(x)cohmthomn:
242
g(x) q < 1
a < x < b
(4)
trongqlmthngsthphngphplp(3)hit
Tacthminhhophplptrnbnghnhvsau.
xo x1
xo
x1
Taxydnghmsimpiter()lp
function[x,err,xx]=simpiter(g,x0,tolx,maxiter)
%giaiptx=g(x)tux0bangcahlap
%vao:g,x0=hamvagiatridau
%tolx=saisomongmuon
%maxiter=solanlapmax
%ra:x=nghiem
%err=saiso|x(k)x(k1)|
%xx=cacgiatritrunggian
ifnargin<4
maxiter=100;
end
ifnargin<3
tolx=1e6;
end
xx(1)=x0;
fork=2:maxiter
xx(k)=feval(g,xx(k1));
err=abs(xx(k)xx(k1));
iferr<tolx
break;
end
243
end
x=xx(k);
ifk==maxiter
fprintf(Khonghoitusau%dlanlap\n,maxiter)
else
fprintf(Hoitusau%dlanlap\n,k)
end
tnhlivdtrntadngchngtrnhctsimpiter4_2.m
clearall,clc
f=inline(0.5*((x1).^23));
[x,ss,xx]=simpiter(f,0.5,.00001,200)
3.PHNGPHPCHIAICUNG
Gi s cho phng trnh f(x) = 0 vi
y
f(x) lin tc trn on [a, b] v f(a).f(b) < 0.
Chia on [a, b] thnh 2 phn bi chnh
imchia(a+b)/2.
1.Nuf((a+b)/2)=0th=(a+b)/2
function[x,err,xx]=bisection(f,a,b,tolx,maxiter)
%bisection.mdegiaiptf(x)=0bangphuongphapchiadoicung
%vao:f=hamcantimnghiem
%a/b=biencuadoancantimnghiem
%tolx=saisomongmuon
%maxiterlanlapmax
%ra:x=nghiem
%err=saiso
%xx=cacgiatritrunggian
x
b
244
tol=eps;
fa=feval(f,a);
fb=feval(f,b);
iffa*fb>0
error(Nghiemkhongotrongdoannay);
end
fork=1:maxiter
xx(k)=(a+b)/2;
fx=feval(f,xx(k));
err=(ba)/2;
ifabs(fx)<tol|abs(err)<tolx
break;
elseiffx*fa>0
a=xx(k);
fa=fx;
elseb=xx(k);
end
end
x=xx(k);
ifk==maxiter
fprintf(Khonghoitusau%dlanlap\n,maxiter),
else
fprintf(Hoitusau%dlanlap\n,k),
end
tmnghimcahmf(x)=tg()xtadngchngtrnhctbisection.m
clearall,clc
f=inline(tan(pix)x);
[x,ss,xx]=bisection(f,1.6,3,1e4,50)
4.PHNGPHPDYCUNG
Gi sf(x)lintctrntrnon[a,b]vf(a).f(b)<0.Cntmnghim
ca f(x) = 0. xc nh ta xem f(a) < 0 v f(b) > 0. Khi thay v chia i
on[a,b]tachia[a,b]theotlf(a)/f(b).iuchotanghimgnng:
x1=a+h1
245
y
Trong
= f(a)
h f(a)+ f(b) (ba)
Tiptheodngcchvion[a,x1]
x
x1
a
hay [x1, b] m hai u hm nhn gi tr tri
b
dutacnghimgnngx2v.v.
V mt hnh hc, phng php ny c
nghalkdycungcangcongf(x)
quahaiimA[a,f(a)]vB[b,f(b)]haynicchkhcltuyntnhhohm
f(x)trongon[a,b].
ThtvyphngtrnhdycungABcdng:
f(a) f(b)
af(b) bf(a)
y =
x+
ab
ab
Chox=x1,y=0tac
af(b) bf(a)
x1 =
(1)
f(b) f(a)
Taxydnghmchord()thchinthuttontrn
function[x,err,xx]=chord(f,a,b,tolx,maxiter)
%giaiptf(x)=0bgphuongphapdaycung.
%vao:fhamcantimnghiem
%a/bkhoangtimnghiem
%tolxsaisomongmuoncuanghiem
%maxiterlanlapmax
%ra:xnghiem
%errsaiso
%xxcacgiatritrunggian
tolfun=eps;
fa=feval(f,a);
fb=feval(f,b);
iffa*fb>0
error(Nghiemkhongotrongdoannay!);
end
fork=1:maxiter
xx(k)=(a*fbb*fa)/(fbfa);%pt.(1)
fx=feval(f,xx(k));
err=min(abs(xx(k)a),abs(bxx(k)));
1
246
ifabs(fx)<tolfun|err<tolx
break;
elseiffx*fa>0
a=xx(k);
fa=fx;
else
b=xx(k);
fb=fx;
end
end
x=xx(k);
ifk==maxiter
fprintf(Khonghoitusau%dlanlap\n,maxiter)
else
fprintf(Hoitusau%dlanlap\n,k)
end
tmnghimcahmf(x)=tg(x)xtadngchngtrnhctchord.m
clearall,clc
f=inline(tan(pix)x);
[x,ss,xx]=falsp(f,1.7,3,1e4,50)
5.PHNGPHPNEWTONRAPHSON
Phng php lp Newton(cn gi l phng php tip tuyn)c
dngnhiuvnhitnhanh.Tuynhinphngphpnyihitnhf(x).
CngthcNewtonRaphsoncsuytkhaitrinTaylorcaf(x)lncnx:
f(xi+1 ) = f(xi ) + f(xi )(xi+1 xi ) + O(xi+1 xi )2
(1)
Nuxi+1lnghimcaphngtrnhf(x)=0th(1)trthnh:
0 = f(xi ) + f(xi )(xi+1 xi ) + O(xi+1 xi )2
(2)
Gisrngxignvixi+1,tacthbquashngcuitrong(2)vccng
thcNewtonRaphson:
f(xi )
x i +1 = x i
(3)
f(xi )
Nuxi+1lnghimngcaphngtrnhthsaislei=xxi.Khinghim
ctnhtheo(3)thsaisl:
247
f(x i ) 2
ei
y
2f(xi )
Minh ho hnh hc ca thut ton
NewtonRaphsonnhhnhbn.
Thuttonctmlcnhsau:
a
choxo
x1 b=xo
f(x)
tnh x =
f (x)
chox=x+x
lplibc2v3chonkhi|x|
Taxydnghmnewtonraphson()thchinthuttontrn.
function[x,fx,xx]=newtonraphson(f,df,x0,tolx,maxiter)
%giaiptf(x)=0bangppNewtonRaphson.
%vao:f=ftntobegivenasastringfifdefinedinanMfile
%df=df(x)/dx(neukhongchosedungdaohamso.)
%x0=giatribandau
%tolx=saisomongmuon
%maxiter=solanlapmax
%ra:x=nghiem
%fx=f(x(last)),xx=cacgiatritrunggian
h=1e4;
h2=2*h;
tolf=eps;
ifnargin==4&isnumeric(df)
maxiter=tolx;
tolx=x0;
x0=df;
end
xx(1)=x0;
fx=feval(f,x0);
fork=1:maxiter
if~isnumeric(df)
dfdx=feval(df,xx(k));%daohamcuaham
else
dfdx=(feval(f,xx(k)+h)feval(f,xx(k)h))/h2;%daohamso
e i +1 =
248
end
dx=fx/dfdx;
xx(k+1)=xx(k)+dx;%pt.(3)
fx=feval(f,xx(k+1));
ifabs(fx)<tolf|abs(dx)<tolx,
break;
end
end
x=xx(k+1);
ifk==maxiter
fprintf(Khonghoitusau%dlanlap\n,maxiter)
else
fprintf(Hoitusau%dlanlap\n,k)
end
clearall,clc
f=inline(x.^310*x.^2+5);
[x,ss,xx]=newtonraphson(f,0.7,1e4,50)
6.PHNGPHPCTTUYN
PhngphpcttuyncthcoilbinthcaphngphpNewton
Raphsontheonghaohmcthaybngxpx:
f(x k ) f(x k 1 )
f(x)
(1)
x k x k 1
vtntthigiantnhhnkhidngohmgiitchhayohms.
Bngcchxpx,biuthc:
f(x k )
x k +1 = x k
f(x k )
trthnh:
x k x k 1
f(x k )
x k +1 = x k f(x k )
(2)
= xk
f(x
)
f(x
)
dfdx
k 1
k
k
f(x k ) f(x k 1 )
vi dfdx k =
x k x k 1
249
Phng trnh (2) chnh l biu thc tng qut ca php lp. Hai gi tr u
tinx1vx2cnkhingphplp.Qutrnhlpcminhhobng
hnha
y
y
f(x)
x1
x0
x2 x1
x0
x
x
f(x)
a
b
Phplpcthkhnghit(hnhb).Tuynhinkhihit,nhirtnhanh.
Taxydnghmsecant()thchinthuttontrn.
function[x,fx,xx]=secant(f,x0,x1,tolx,maxiter)
%giaiptf(x)=0bgphuongphapdaycung
%vao:fhamcantimnghiem
%x0,x1giatrikhoidongpheplap
%tolxsaisomongmuon
%maxitersolanlapmax
%ra:x=nghiem
%fx=f(x(last)),xx=cacgiatritrunggian
h=(x1x0)/100;
h2=2*h;
tolfun=eps;
xx(1)=x0;
fx=feval(f,x0);
fork=1:maxiter
ifk<=1
dfdx=(feval(f,xx(k)+h)feval(f,xx(k)h))/h2;
else
dfdx=(fxfx0)/dx;
250
end
dx=fx/dfdx;
xx(k+1)=xx(k)+dx;%pt.(2)
fx0=fx;
fx=feval(f,xx(k+1));
ifabs(fx)<tolfun|abs(dx)<tolx,
break;
end
end
x=xx(k+1);
ifk==maxiter
fprintf(Khonghoitusau%dlanlap\n,maxiter)
else
fprintf(Hoitusau%dlanlap\n,k)
end
clearall,clc
f=inline(x.^310*x.^2+5);
[x,ss,xx]=secant(f,0.5,1,1e4,50)
7.PHNGPHPBRENT
x1 x
x3 x
x1
x
x
x3
x2
x2
251
Trongqutrnhnytatnhcf(x1),f(x2)vf(x3).Qua3imnytacmt
ng cong bc 2 v tm c nghim x ca ng cong bc 2 ny. Nu x
nm trong on [x1, x2] nh hnh trn th gi tr ny c chp nhn. Tip
theotatmnghimtrongon[x1,x3]hay[x3,x2]tutheovtrcax.
athcnisuyLagrangequa3iml:
(f f2 )(f f3 )
(f f1 )(f f3 )
(f f1 )(f f2 )
x(y) =
x1+
x2+
x3
(f1 f2 )(f1 f3 )
(f2 f1 )(f2 f3 )
(f3 f1 )(f3 f2 )
Choy=0tac:
f f x (f f ) + f1f3 x 2 (f3 f1 ) + f1f2 x 3 (f1 f2 )
x= 2 3 1 2 3
(1)
(2)
functionroot=brent(f,a,b,tol)
%giaiptf(x)=0bangthuattoanBrent.
%Cuphap:root=brent(f,a,b,tol)
%vao:f=hamcantimnghiem
%a,b=doanchuanghiem
%tol=saisochotruoc
ifnargin<4;
tol=1.0e6*eps;
end
%lanchiadoidautien
x1=a;
f1=feval(f,x1);
iff1==0;
root=x1;
return;
end
x2=b;
f2=feval(f,x2);
iff2==0;
root=x2;
return;
252
end
iff1*f2>0.0
error(Nghiemkhongnamtrongdoannay)
end
x3=0.5*(a+b);
%batdaulap.
fori=1:30
f3=feval(f,x3);
ifabs(f3)<tol
root=x3;
return
end
%xacdinhdoanchuanghiem.
iff1*f3<0.0;
b=x3;
else
a=x3;
end
if(ba)<tol*max(abs(b),1.0)
root=0.5*(a+b);
return
end
%noisuybac2.
denom=(f2f1)*(f3f1)*(f2f3);
numer=x3*(f1f2)*(f2f3+f1)...
+f2*x1*(f2f3)+f1*x2*(f3f1);
ifdenom==0;
dx=ba;
else
dx=f3*numer/denom;
end
x=x3+dx;
%neulaprangoaidoan(a,b),dungcachchiadoicung
if(bx)*(xa)<0.0
dx=0.5*(ba);
x=a+dx;
253
end
%chox=x3&chonx1,x2moisaochox1<x3<x2.
ifx<x3
x2=x3;
f2=f3;
else
x1=x3;
f1=f3;
end
x3=x;
end
root=NaN;
clearall,clc
f=inline(x.*abs(cos(x))1);
x=brent(f,0.0,4,1e4)
8.PHNGPHPNGOISUYAITKEN
Xtphngphplp:
x=f(x)
(1)
vif(x)thomniukinhitcaphplp,nghalvimix[a,b]ta
c:
|f(x)|q<1
(2)
Nhvy:
(3)
xn+1=f(xn)
(4)
xn=f(xn1)
Tr(3)cho(4)vpdngnhlLagrangechovphivic[a,b]tac:
(5)
xn+1xn=f(xn)f(xn1)=(xnxn1)f(c)
Vphplp(1)nn:
(6)
|xn+1xn|q|xnxn1|
Do(6)ngviminnnchon=1,2,3,...tac:
|x2x1|q|x1xo|
|x3x2|q|x2x1|
254
...................
|xn+1xn|q|xnxn1|
iunycnghaldyxi+1xi,mtcchgnng,lmtcpsnhn.Ta
cngcoirngdyxnyviylnghimngca(1),gnngnhmtcp
snhnccngsaiq.Nhvy:
x n +1 y
= q < 1
(7)
xn y
hay: x n +1 y = q(x n y)
(8)
Tngttac:
x n + 2 y = q(x n +1 y)
(9)
T(8)v(9)tac:
x x n +1
q = n+2
(10)
x n +1 x n
Thaygitrcaqvatnh(10)vobiuthccaqtrntac:
2
x n x n +1 )
(
y = xn
(11)
x n 2x n +1 + x n + 2
Cng thc (11) c gi l cng thc ngoi suy Adam. Nh vy theo (11)
trchttadngphngphplptnhgitrgnngxn+2,xn+1,xnca
nghimvsautheo(11)tmcnghimvisaisnhhn.
x1=f(x0)
x2=f(x1)
vsaudngthuttonAitkentinhy0theo(11).tiptclptacho
x0=y0vlplibctnhtrc.
Taxydnghmaitstef()thchinhaithuttontrn
function[x,y]=aitstef(g,x0,tolx,maxiter)
%phuongphapAitkenSteffenson
%giaiptx=g(x)
xstart=x0;
f0=0;
f0old=1.;
count=0;
while((count<maxiter)&(abs(f0f0old)>.0000001))
count=count+1;
f0old=f0;
255
x1=feval(g,x0);
x2=feval(g,x1);
f0=x0(x1x0)*(x1x0)/(x22.*x1+x0);
x0=x1;
end
x=f0;
fprintf(\n);
fprintf(PhuongphapAitkenSteffenson);
x0=xstart;
count=0;
f0=0;
x2=1.;
while((count<maxiter)&(abs(f0x2)>.0000001))
count=count+1;
x1=feval(g,x0);
x2=feval(g,x1);
f0=x0(x1x0)*(x1x0)/(x22.*x1+x0);
x0=f0;
end
y=f0;
tmnghimcaphngtrnhx=(2ex+x2)/3=g(x)tadngchngtrnh
ctaitstef.m
clearall,clc
f=inline((2.exp(x)+x.^2)/3);
[x,y]=aitstef(f,0.,1e4,50)
9.PHNGPHPMUELLER
Trongphngphpdycungkhitmnghimtrongon[a,b]taxp
x hm bng mt ng thng. Tuy nhin gim lng tnh ton v
nghimhitnhanhhntacthdngphngphpMuller.Nidungca
phngphpnylthayhmtrongon[a,b]bngmtngcongbc2
mtahontoncthtmnghimchnhxccan.
256
Giccimchonhlnltla=x2,b=x1vtachnthm
mtimx0nmtrongon[x2,x1].Gi
x0,f0
h1=x1x0
h2=x0x2
x1,f1
v=xx0
f(x0)=f0
f(x1)=f1
f(x2)=f2
f(x) x2,f2
h2
h1
h2
h1
Qua3imnytacmtngparabol:
y=av2+bv+c
Tatmcchsa,b,ctccgitrbitv:
v = 0 (x = x 0 ) a(0)2 + b(0) + c = f0
v = h1 (x = x1 )
v = h 2 (x = x 2 )
ah12 + bh1 + c = f1
ah 22 bh 2 + c = f2
Ttac:
f f (1 + ) + f2
a = 1 02
h 1 (1 + )
f1 f0 ah 12
b=
h1
c = f0
Sautatmnghimcaphngtrnhav2+bv+c=0vc:
2c
n = x0
b b 2 4ac
Ducamuscchnsaochoncgitrtuytilnnht,nghal
khib>0,talydu+,khib<0talydu.
Tip ta chn x0 lm mt trong 3 im tnh xp x mi. Cc im ny
c chn gn nhau nht, ngha l nu nghim n bn phi x0 th ba im
tnhmilx0,x1vn;nunnmbntrix0th3imtnhmilx0,x2v
nghim.Tiptcqutrnhtnhnkhitchnhxcyucuthdngli.
Taxydnghmmuller()thchinthuttontrn
functionp=muller(f,a,b,maxiter)
%giaiptf(x)=0
257
%vaoflahamcantimnghiem
% a,bladoanchuanghiem
%maxitersolanlapmax
%rapxapxiMullercuaf
%ylagiatriy=f(p)
%errsaisothuccuanghiem.
%khoigana,b,x0vacacgiatrituongungcuaham
x0=(a+b)/2.;
P=[x0ab];
Y=feval(f,P);
delta=1e4;
%tinhcachesocuaptbachai
fork=1:maxiter
h0=P(1)P(3);
h1=P(2)P(3);
e0=Y(1)Y(3);
e1=Y(2)Y(3);
c=Y(3);
denom=h1*h0^2h0*h1^2;
a=(e0*h1e1*h0)/denom;
b=(e1*h0^2e0*h1^2)/denom;
%neunghiemphuc
ifb^24*a*c>0
disc=sqrt(b^24*a*c);
else
disc=0;
end
%timnghiemnhonhat
ifb<0
disc=disc;
end
z=2*c/(b+disc);
p=P(3)+z;
%sapxeplaicactritinhlap
ifabs(pP(2))<abs(pP(1))
Q=[P(2)P(1)P(3)];
258
P=Q;
Y=feval(f,P);
end
ifabs(pP(3))<abs(pP(2))
R=[P(1)P(3)P(2)];
P=R;
Y=feval(f,P);
end
%cactritinhlanmoi
P(3)=p;
Y(3)=feval(f,P(3));
y=Y(3);
%dieukiendunglap
err=abs(z);
relerr=err/(abs(p)+delta);
if(err<delta)|(relerr<delta)|(abs(y)<eps)
break
end
end
giiphngtrnhsin(x)0.5*x=0tadngchngtrnhctmuller.m
clearall,clc
formatlong
f=inline(sin(x)0.5*x);
x=muller(f,1.8,2.2,50)
10.PHNGPHPHALLEY
PhplpNewtontmnghimcahmphngtrnhx=g(x)l:
f(x)
g(x)=x
(1)
f (x)
Tchittngngkkhihmcnghimn.tngtchi
t,EdmonHalleyaracngthclp:
1
f(x) f(x)f(x)
h(x)=x
1
2
f (x) 2 [ f(x)]
(2)
Taxydnghmhalley1()thchinthuttontrn
259
functionx=halley1(f,x,maxiter)
%hamdungdetimnghiemcuaptf(x)=0
%vao:hamcantimnghiemf
%giatridaux0
%solanlapcucdaimaxiter
%ranghiemx
%dungdaohamso
i=0;
h=1e4;
while(i<maxiter)
f1=feval(f,x);
df1=(feval(f,x+h)feval(f,xh))/(2*h);
ddf1=(feval(f,x+h)2*feval(f,x)+feval(f,xh))/(h*h);
hx=x(f1/df1)*1./(1(f1*ddf1)/(2*(df1)^2))
x=hx;
i=i+1;
if(abs(f1)<eps)
break;
end
end
haydnghmhalley2()
functionx=halley2(f,x,maxiter)
%hamdungdetimnghiemcuaptf(x)=0
%vao:hamcantimnghiemf
%giatridaux
%solanlapcucdaimaxiter
%ranghiemx
%dungdaohamsymbolic
df=diff(f,x);
ddf=diff(f,x,2);
i=0;
while(i<maxiter)
f1=eval(f);
260
df1=eval(df);
ddf1=eval(ddf);
hx=x(f1/df1)*1./(1(f1*ddf1)/(2*(df1)^2));
x=hx;
i=i+1;
if(abs(f1)<eps)
break;
end
end
giiphngtrnhf(x)=x33x+2=0tadngchngtrnhcthalley.m:
clc,clearall
%f=inline(x.^33*x+2);%khidunghalley1()
%x=halley1(f,3,50);
symsx
f=x^33*x+2;%khidunghalley2()
x=halley2(f,3,50)
11.PHNGPHPCHEBYSHEV
y(x)=p1+p2(xp3)e
(1)
Cc thng s p1 v p3 to s chuyn dch theo cc trc; thng s p xc nh
binvecungcpcongcahm.
Takhosthmf(x)trnon[a,b]trongf(a).f(b)<0,nghaltrong
on [a, b] tn ti nghim ca phng trnh f(x) = 0. Ta c thm iu kin
f(x).f(x) 0 x [a, b]. Gi xi [a, b] l ln xp x th i ca nghim th
nghimlnthi+1theocngthcPopovskil:
1
f
e f.f e
xi+1 xi = (e 1) 1
(2)
1
f
e 1 f 2
Khie=1
f.f
x i +1 x i =
0.5f.f f2
vlphplpHalley
261
Khie1:
f
vlphplpNewton
Khie=0.5
1 + 0.5f.f
f
f(xi ) f 2 (x i ) f (xi )
f 2
= 3
x i +1 x i =
f
f (xi )
2f3 (xi )
vtacphplpChebyshev.
Taxydmghmchebyiter()thchinthuttontrn
function[x,fx,xx]=chebyiter(f,x0,tol,maxiter)
%giaiptf(x)=0bangppChebyshev.
%vao:f=hamcantimnghiem
%x0=giatribandau
%tol=saisomongmuon
%maxiter=solanlapmax
%ra:x=nghiem
%fx,xx=cacgiatritrunggian
ifnargin<4
maxiter=200;
end
ifnargin<3
maxiter=100;
tol=1e4;
end
h=1e4;
h2=2*h;
xx(1)=x0;
fx=feval(f,x0);
fork=1:maxiter
df=(feval(f,xx(k)+h)feval(f,xx(k)h))/h2;%daohamso
d2f=(feval(f,xx(k)+h)2*feval(f,xx(k))+feval(f,xx(k)h))/h^2;
dx=fx/df^30.5*fx^2*d2f/df^3;
xx(k+1)=xx(k)+dx;
fx=feval(f,xx(k+1));
x i +1 x i =
262
ifabs(fx)<tol|abs(dx)<tol
break;
end
end
x=xx(k+1);
giiphngtrnhtadngchngtrnhctchebyiter
clearall,clc
f=inline(x.^310*x.^2+5);
x=chebyiter(f,3,1e4)
12.PHNGPHPNEWTONDNGCHOHPHITUYN
Phng php Newton c th c tng qut ho gii h phng
trnhphituyndng:
f1 (x1 ,x 2 ,x 3 ,...,x n ) = 0
f (x ,x ,x ,...,x ) = 0
2 1 2 3
n
fn (x1 ,x 2 ,x 3 ,...,x n ) = 0
hayvitgnhndidng:
F(X)=0
Trong:
X=(x1,x2,x3,.....,xn)
Vimtphngtrnhmtbin,cngthcNewtonl:
f( x i )
x i +1 = x i
f ( x i )
hay:
f(xi).x=f(xi)
vi x=xi+1xi
ivihphngtrnh,cngthclpl:
J(Xi)X=F(Xi)
TrongJ(Xi)ltontJacobi.Nlmtmatrnbcn(ntngngvi
sthnhphntrongvectX)cdng:
263
f1
x 1
f2
x
J( X i ) = 1
fn
x 1
f1
x 2
f2
x 2
fn
x 2
f1
x 3
f2
x 3
fn
x 3
f1
x n
f2
x n
fn
x n
X=Xi+1Xi
PhngphpNewtontuyntnhhohvnhvyvimibclp
cn gii mt h phng trnh tuyn tnh (m bin l Xi) xc nh bi cng
thclpchotikhivectX(x1,x2,x3,.....,xn)gnvinghim.
Taxydnghmnew4sys()thchinthuttonny
function[P,iter,err]=new4sys(f,jf,P,max1)
%vaoFlaheptluutrongMfilef.m
%JFlamatranjacobiluutrongMfilejf.m
%Pvectonghiembandau
%max1solanlapcucdai
%raPlavetonghiem
%itersolanlapthucte
%errsaiso
Y=f(P);
fork=1:max1
J=jf(P);
Q=P(J\Y);
Z=f(Q);
err=norm(QP);
relerr=err/(norm(Q)+eps);
P=Q;
Y=Z;
iter=k;
if(err<eps)|(relerr<eps)|(abs(Y)<eps)
break
end
end
264
giihphngtrnh:
x 2 + xy 2 = 0
2
2xy
+
y
3
=
0
tadngchngtrnhctnew4sys.m
clearall,clc
formatlong
p=[.5,.5];
[n,ll,ss]=new4sys(@f,@jf,p,50)
Nidungcaf.m:
functionf=f(p)
f=[(p(1)^2+p(1)*p(2)2),(2*p(1)*p(2)+p(2)^23)];
Nidungcajf.m:
functionjf=jf(p)
jf=[(2*p(1)+p(2))p(1)
(2*p(1))(2*p(1)+2*p(2))];
Tacthdnghmnew4sys2()thchinthutton:
functionroot=new4sys2(func,x,maxiter)
%PhuongphapNewtonRaphsondetimnghiem
%cuaheptfi(x1,x2,...,xn)=0,i=1,2,...,n.
%Cuphap:root=new4sys2(func,x,tol)
%vao:
%func=controham,trave[f1,f2,...,fn].
%x=vectobandau[x1,x2,...,xn].
%tol=saisomongmuon
%ra:
%rootnghiemcuahe
ifsize(x,1)==1;
x=x;
265
end%xphailavecto
i=0;
while(i<maxiter)
[jac,f0]=jacobi(func,x);
dx=jac\(f0);
x=x+dx;
root=x;
ifmax(abs(dx))<eps
break;
else
i=i+1;
end
end
ifi==maxiter
fprintf(Khonghoitusau%dlanlap\n,maxiter);
else
fprintf(Hoitusau%dlanlap\n,i);
end
Hmjacobi()gmcclnh:
function[jac,f0]=jacobi(func,x)
%TinhmatranJacobivahamf(x).
h=1.0e4;
n=length(x);
jac=zeros(n);
f0=feval(func,x);
fori=1:n
temp=x(i);
x(i)=temp+h;
f1=feval(func,x);
x(i)=temp;
jac(:,i)=(f1f0)/h;
end
Hmt()gmcclnh:
266
functionx=t(p)
x=[(p(1)^2+p(2)^2+p(3)^214)
(p(1)^2+2*p(2)^2p(3)6
(p(1)3*p(2)^2+p(3)^2+2)];
giihphngtrnhtadngchngtrnhctnew4sys2.m:
clearall,clc
formatlong
p=[111];
r=new4sys2(@t,p,50)
13.PHNGPHPBROYDENDNGCHOHPHITUYN
1.PhngphpBroyden: giihphngtrnhphituyntnhF([X])=[0]
bngphngphplpNewtontachovectnghimbanu[P0]vtora
dy[Pk]hitvnghim[P],nghalF([P])=[0].Khinytacntnhmatrn
Jacobicah.VictnhmatrnJacobiihitnhn2ohmring.
ohmcahmf(x)tipkcthtnhgnngbngcngthc:
f(pk ) f(pk 1 )
f(pk ) =
pk pk 1
nn:
J([Pk])([Pk][Pk1])=F([Pk])F([Pk1])
PhngphpBroydenbtubngvictnhmatrnJacobiA0=J([P0]).Sau
trongqutrnhlplintiptadngmatrnJacobiccpnhtAk:
Ak([Pk][Pk1])=F([Pk])F([Pk1])
ThuttonBroydennhvybaogmccbc:
Bc0:TnhmatrnJacobibanuA0=J([P0]).
SdngntnhlnlputintheophngphpNewton
[P1]=[P0](A0)1F([P0])
Vik1,gisbit[Pk]sdngccbcsautnh[Pk+1]
f1 (pk ,q k )
Bc1:Tnhhm F([ Pk ]) =
f
(p
,q
)
2
k
k
Bc2:CpnhtmatrnJacobibngcchdng
[S]=[Pk][Pk1]v[Yk]=F([Pk])F([Pk1])
267
vc:
[ Ak ] = [ Ak1 ] +
[S] [S]
T
( [ Y ] [ A ][ S ] ) [ S ]
k 1
Bc3:Giihphngtrnhtuyntnh[Ak][Pk]=F([Pk])tm[Pk]
Bc4:Lptipvi[Pk+1]=[Pk]+[Pk]
thchinthuttonnytaxydnghmbroyden()
functionroot=broyden(g,p0,maxiter)
ifnargin==2
maxiter=50;
end
ifsize(p0,1)==1;
p0=p0;
end
[a0,f0]=jacobi(g,p0);
p1=p0inv(a0)*f0;
i=0;
whilei<maxiter
s=p1p0;
d=(s)*s;
f1=feval(g,p1);
y=feval(g,p1)feval(g,p0);
m=ya0*s;
a1=a0(1/d)*(ya0*s)*s;
dp=inv(a1)*f1;
p2=p1+dp;
err=max(abs(dp));
iferr<eps
root=p2;
break;
end
p0=p1;
p1=p2;
f0=f1;
a0=a1;
i=i+1;
268
end
giihphngtrnh
2x 2 2y 3 4x + 1 = 0
4
4
x + 4y + 4y 4 = 0
tadngchngtrnhctbroyden.m
clearall,clc
formatlong
p=[.1.7];
root=broyden(@g,p,50)
Tacthdnghmbroyden1():
function[t,k]=broyden1(fcn1,fcn2,x0,maxits,tol)
%Timnghiemcuaheptphituyen
%cuphap[t,k]=broyden1(fcn1,fcn2,x0,maxits,tol)
%vao
%fcn1:hamthunhat
%fcn2:hamthuhai
%x0:nghiembandau
%maxiter:solanlapmax
%tolsaisomongmuon
%ra
%x:nghiem
%k:solanlap
tol=1e8;
maxiter=50;
ifsize(x0,1)==1
x0=x0;
end
symsxy
B=[diff(fcn1,x)diff(fcn1,y);diff(fcn2,x)diff(fcn2,y)];
x=x0(1);
y=x0(2);
269
h=inline(fcn1);
g=inline(fcn2);
f(1:2,1)=[h(x,y);g(x,y)];
B=eval(B);
t=[xy];
fork=1:maxiter
s=B\(f);
t=t+s;
fnew=[h(t(1),t(2));g(t(1),t(2))];
u=fnewf;
ifabs(fnewf)<tol
break
end
f=fnew;
B=B+((uB*s)*s)/(s*s);
end
vdngchngtrnhctbroyden1.m
clc,clearall
symsxy
f1=2*x^22*y^34*x+1;
f2=x^4+4*y^4+4*y4;
[n,l]=broyden1(f1,f2,[.1.7],50)
Ngoiratacmtphinbnkhclhmbroyden2():
function[t,k]=broyden2(f,x0,maxiter,tol)
%Timnghiemcuaheptphituyen
%cuphap[t,k]=broyden2(fcn1,fcn2,x0,maxits,tol)
%vao
%fcn1:hamthunhat
%fcn2:hamthuhai
%x0:nghiembandau
%maxiter:solanlapmax
%tolsaisomongmuon
270
%ra
%x:nghiem
%k:solanlap
tol=eps;
maxiter=50;
ifsize(x0,1)==1
x0=x0;
end
symsxy
B=[diff(f(1),x)diff(f(1),y);
diff(f(2),x)diff(f(2),y)];
x=x0(1);
y=x0(2);
h=inline(f(1));
g=inline(f(2));
f(1:2,1)=double([h(x,y);g(x,y)]);
B=double(eval(B));
t=[xy];
fork=1:maxiter
s=double(B\(f));
t=t+s;
fnew=[h(t(1),t(2));
g(t(1),t(2))];
u=fnewf;
ifabs(double(u))<tol
break
end
f=fnew;
B=B+((uB*s)*s)/(s*s);
end
vdngvichngtrnhctroyden2.m
clc,clearall
symsxy
271
f=[2*x^22*y^34*x+1;
x^4+4*y^4+4*y4];
[n,l]=broyden2(f,[.7.7])
2.PhngphpBroydencitin:Matrnnghchotnhtonrtphctp.
V vy ta dng cng thc Sherman Morison gim bt khi lng tnh
tonkhinghchomatrn.
Nu[A]1khngsuybinv[U],[V]l2vectsaocho[V]T[A]1[U]1
th:
([ A] + [U][ V] )
T 1
([ A ]
[ U ][ V ]T [ A ]1 )
= [A]
hay
[ A]1 [ U ] [ V ]T 1
[ A ] + [ U][ V ] = [E]
[ A ]
T
1
+
1
V
A
U
[
]
[
]
[
]
giihphngtrnhphituynF([X])=[0]tachovectnghimban
u[P0]vtorady[Pk]hitv[P],nghalF([P])=[0].
TrchttatnhmatrnJacobiA0=J([P0])vdngntnhlnlpth
nhttheophngphpNewton.
[P1]=[P0][A]1F([P0])
Gisc[Pk]vik1tadngccbcsautnh[Pk+1]
Bc1:Tnhhm Fk = F([ Pk ])
T 1
Bc2:CpnhtmatrnJacobibngcchdng
[V]=[Pk][Pk1]
1
[ U ] = T ([Fk ] [ Fk1 ] [ A k1 ][ V ])
[V] [V]
vc:
[ A k ] = [ A k1 ] + [ U ][ V ]T
Bc3:Tnh[Bk]=[Ak]1bngcchdngcngthcShermanMorison
1
[ Ak1 ] [ U] [ V ]T
1
1
[ Bk ] = [ Ak ] = [E]
[ A k 1 ]
1
T
1 + [ V ] [ A k 1 ] [ U ]
Bc4:Lptipvi[Pk+1]=[Pk][Bk]F([Pk])
thchinthuttontrntaxydnghmimprovedbroyden()
272
function[m,ll]=improvedbroyden(g,p0,maxiter);
%cuphap[n,ll]=improvedboyden(g,x0,maxiter);
%vao:
%glafichuahamcantimnghiem
%p0lavectonghiembandau
%maxitersolanlapmax
%ra:
%mlanghiem
%llsolanlapthucte
ifsize(p0,1)==1
p0=p0;
end
n=length(p0);
[a0,f0]=jacobi(g,p0);
b0=inv(a0);
p1=p0b0*g(p0);
fork=1:maxiter
f1=g(p1);
v=p1p0;
d=v*v;
u=(1/d)*(f1f0a0*v);
a1=a0+u*v;
e=eye(n);
ts=(b0*u)*v;
ms=1+v*b0*u;
b1=(ets/ms)*b0;
p2=p1b1*g(p1);
ifabs(max(v))<eps
break;
end
a0=a1;
b0=b1;
p0=p1;
p1=p2;
f0=f1;
end
273
m=p2;
ll=k;
Tagiihphngtrnh:
2x 2 2y 3 4x + 1 = 0
4
4
+
+
=
x
4y
4y
4
0
bngcchdngchngtrnhctimprovedbroyden.m
clearall,clc
formatlong
p=[.1.7];
[r,s]=improvedbroyden(@g,p,50)
14.TNHTRSCAATHC
1. S Horner: Gi s chng ta cn tm gi tr ca mt a thc tng qut
dng:
(1)
P(x)=a0xn+a1xn1+a2xn2+....+an
timttrsxno.Trong(1)cchsailccsthccho.Chngta
vitli(1)theothuttonHornerdidng:
P(xo)=(...((a0x+a1)x+a2x)+...+an1)x+an
(2)
T(2)tac:
P0=a0
P1=P0x+a1
P2=P1x+a2
P3=P2x+a3
..................
P(x)=Pn=Pn1x+an
Tngquttac:
Pk=Pk1x+akvik=1,2...n;P0=a0
DochngtachquantmntrscaPnnntrongcccngthctruyhi
vsauchngtasbquachskcaPvvitgnP:=Px+akvik=0...n.
Khi ta tnh ti k = n th P chnh l gi tr cn tm ca a thc khi cho x.
Chngtathccbctnhnhsau:
Banu
P=0
Bc0
k=0
P=ao
Bc1
k=1
P=aox+a1
274
Bc2
k=2
P=(aox+a1)x+a2
.................................
Bcn
k=n
P=P(xo)=(...((aox+a1)x+a2x)+...+an1)x+an
Taxydnghmhorner()tnhtrcaathctix:
functionp=horner(a,x)
%Tinhtrisodathuc
%p=a(1)*xn+a(2)*x(n1)+...+a(n+1)
%cuphap:p=horner(a,x)
n=length(a)1;
p=a(1);
fori=1:n
p=p*x+a(i+1);
end
tnhtrscaathcP3(x)=x3+3x2+2x5tix=1tadngchngtrnh
cthorner.m
clearall,clc
a=[1325];
p=horner(a,1)
2.SHornertngqut:Gischngtacathc:
Pn(x)=a0xn+a1xn1+a2xn2+....+an
(1)
KhaitrinTaylorcaathctix=xocdng:
P( x 0 )
P( x 0 )
P( n ) ( x 0 )
2
Pn ( x) = Pn ( x 0 ) +
( x x0 ) +
( x x0 ) + +
( x x0 )n (2)
1!
2!
2!
Mtkhcchngtacthbiniathcvdng:
Pn(x)=(xxo)Pn1(x)+Pn(xo)
(3)
TrongPn1(x)lathcbcn1vcdng:
Pn1(x)=boxn1+bo1xn2+b2xn3+....+bn1
(4)
Thuttontmcchsnhncbngcchsosnh(1)v(3):
bo=ao
bi=ai+bi1xo
bn=Pn(xo)
Sosnh(2)v(3)tac:
275
P(x0 )
P(x0 )
(x x0 ) +
(x x 0 )2
1!
2!
(n)
P (x0 )
n
(x x0 )
+ +
2!
hay:
( x x0 )Pn 1 ( x) =
P( x0 )
P( x 0 )
P( n ) ( x 0 )
( x x0 ) +
( x x 0 )2 + +
( x x 0 )n
1!
2!
2!
vkhichiahaivcho(xx0)tanhnc:
P( x0 ) P( x 0 )
P( n ) ( x 0 )
Pn 1 ( x) =
+
( x x0 ) + +
( x x 0 )n 1
(5)
1!
2!
2!
Sosnh(4)v(5)tanhncktqu:
P( x 0 )
Pn 1 ( x0 ) =
1!
TrongPn1(x)licthphntchgingnhPn(x)dng(3)tmraPn1(xo).
QutrnhnyctiptcchonkhitatmhtcchscachuiTaylor
caPn(x).Tngqutthuttonthhinbngsau:
Pn(x)ao a1 a2a3...an1 an
x=xo0 boxob1xob2xo...bn2xo bn1xo
functionb=genhorner(a,x)
%travehesocuadathuckhaitrien
%c(1)(xx0)^n+c(2)(xx0)^(n1)+...+c(n+1)
m=length(a)
x=2;
fork=1:m
b(1)=a(1);
fori=2:mk+1
b(i)=b(i1)*x+a(i);
end
c(mk+1)=b(mk+1)
a=b(1:mk);
end
276
khaitrinathcP(x)=x52x4+x35x+4tix0=2tadngchngtrnh
ctgenhorner.m
clearall,clc
a=[121054];
c=genhorner(a,2)
15.PHNGPHPLAGUERRE
Taxtathcbcn:
Pn(x)=a1xn+a2xn1++an+1
(1)
Nuathccnghimlrthtac:
(2)
Pn(x)=(xr)Pn1(x)
Trong:
Pn1(x)=b1xn1+b2xn2++bn
Cnbng(1)v(2)tac:
b1=a1
b2=a2+rb1
......
bn=an+rbn1
Taxydnghmdeflpoly()tnhcchscaathcPn1(x)
functionb=deflpoly(a,r)
%habacdathuc
n=length(a)1;
b=zeros(n,1);
b(1)=a(1);
fori=2:n
b(i)=a(i)+r*b(i1);
end
BygitaxtathcPn(x)cnghimnx=rv(n1)nghimtrng
nhaux=q.athcnhvyscvitthnh:
(3)
Pn(x)=(xr)(xq)n1
Bitoncatalchoathc(3)didng:
Pn(x)=a1xn+a2xn1++an+1
vcntmr(chlqcngchabit).
277
ohm(3)theoxtac:
Pn (x) = (x q)n 1 + (n 1)(x q)n 2 (x r)
1
n 1
= Pn (x)
xr xq
Nhvy:
Pn (x)
1
n 1
=
Pn (x) x r x q
Ttac:
(4)
(5)
Pn(x) Pn (x)
1
n 1
2
Pn (x) Pn (x)
(x r) (x q)2
Tat:
Pn (x)
P(x)
(6)
H(x) = G 2 (x) n
Pn (x)
Pn (x)
Nhvy(4)v(5)trthnh:
P (x)
1
n 1
=
+
(7)
G(x) = n
Pn (x) x r x q
P(x)
1
n 1
H(x) = G 2 (x) n
=
+
(8)
2
Pn (x) (x r) (x q)2
Nutagii(7)theo(xq)vthayktquvo(8)tanhncphngtrnh
bc2ivi(xr).NghimcaphngtrnhnylcngthcLaguerre:
n
xr=
(9)
chogitrbanucanghimcaathclx
tnhG(x)vH(x)theo(6)
tnhnghiemtheo(9).Chndusaochomuslnnht.
chox=rvtiptclptbc2chon5nkhi|Pn(x)|<hay
|xr|<.
Taxydnghmlaguerre()thchinthuttontrn
functionx=laguerre(a,tol)
%timnghiemcuadathuc
x=randn;%choxngaunhien
n=length(a)1;
G(x) =
278
fori=1:30
[p,dp,ddp]=evalpoly(a,x);
ifabs(p)<tol;
return;
end
g=dp/p;
h=g*gddp/p;
f=sqrt((n1)*(n*hg*g));
ifabs(g+f)>=abs(gf)
dx=n/(g+f);
else
dx=n/(gf);
end
x=xdx;
ifabs(dx)<tol
return;
end
end
error(Lapquanhieu)
tmttcccnghimcaathctadnghmpolyroots()
functionroot=polyroots(a,tol)
%Timcacnghiemcuadathuc%a(1)*xn+a(2)*x(n1)+...+a(n+1).
%Cuphap:root=polyroots(a,tol).
%tol=saiso
ifnargin==1
tol=1.0e6;
end
n=length(a)1;
root=zeros(n,1);
fori=1:n
x=laguerre(a,tol);
ifabs(imag(x))<tol
x=real(x);
end
279
root(i)=x;
a=deflpoly(a,x);
end
clearall,clc
a=[1325];
r=polyroots(a);
16.PHNGPHPLPBERNOULLI
Cnhiuphngphptmnghimcamtathc.Taxtphng
trnh:
aoxn+a1xn1++an=0
Nghimcaphngtrnhtrnthomnnhl:
Nu max{| a1 |, | a2 |,..., |an |} = A th cc nghim ca phng trnh tho
mniukin|x|<1+A/|a0|
PhngphpBernoullichophptnhtonnghimlnnhtcamt
athcPn(x)cnnghimthcphnbit.Saukhitmcnghimlnnht
tachiaathcPn(x)cho(x)vnhncathcmiQn1(x).Tiptc
dngphngphpBernoullitmnghimlnnhtcaQn1(x).
SaulitiptcccbctrnchonkhitmhtccnghimcaPn(x).
Chngtakhostphngtrnhsaiphncdngnhsau:
=aoyk+n+a1yk+n1+.....+anyk=0
(1)
y l mt phng trnh sai phn tuyn tnhh s hng. Khi cho trc cc
gi tr u yo, y1,..yn1 ta tm c cc gi tr yn, yn+1,.. Chng c gi l
nghimcaphngtrnhsaiphntuyntnh(1).
athc
(2)
Pn(x)=a0xn+a1xn1+..+an1x+an
vicngmthsainh(1)cgilathcctnhcaphngtrnh
saiphntuyntnh(1).Nu(2)cnnghimphnbitx1,x2,..,xnth(1)ccc
nghimringl
y i = x ik
Nuyilccnghimcaphngtrnhsaiphnltuyntnh(1),th
y k = c 1 x 1k + c 2 x k2 + + c n x kn
(3)
280
vicchscibtkcnglnghimcaphngtrnhsaiphntuyntnhh
shng(1).
Nuccnghimcnsaocho:
|x1||x2|...|xn|
c x k
k
1
2
Vy y k = c 1 x 1 1 + +
c 2 x 1
c x k +1
k +1
v y k +1 = c 1 x 1 1 + 1 2 +
c 2 x 1
c x k +1
1 + 1 2 +
c 2 x1
y
do: k +1 = x 1
k
yk
c x
1 + 1 2 +
c 2 x 1
do x1>x2>...>xn
k
k +1
x x
nn: 2 , 2 0 khik
x1 x1
y
vy: k +1 0 khik
yk
Nghal:
y
lim k +1 = x 1
k y
k
Nuphngtrnhviphngmn+1hs,mtnghimringykcth
cxcnhtngitryk1,yk2,...,yn1.iuchophptnhtonbngcch
truyhiccnghimringcaphngtrnhviphn.
tnhnghimlnnhtcaathc,taxutphttccnghimring
y1=0,y1=0,..,yn=1tnhyn+1.Cchtnhnyctiptctnhyn+2xut
phtty1=0,y2=0,..,yn+1vtiptcchonkhiyk+1/ykkhngbinina.
Trscayk+nctnhtheocngthctruyhi:
1
y k + n = (a 1 y k + n 1 + + a n y k )
(4)
a0
Taxydnghmbernoulli()thchinthuttontrn
functionx=bernoulli(p)
%timnghiemlonnhatcuaP(x)
%theothuattoanBernoulli
281
%cuphapx=bernoulli(p)
n=length(p);
maxiter=200;
y=zeros(maxiter);
y(n1)=1;
k=0;
while(k<maxiter)
s=0;
fori=1:n1
s=s+p(i+1)*y(k+ni);
end
y(k+n)=s/p(1);
x=y(k+n)/y(k+n1);
err=polyval(p,x);
iferr<1e6
break;
end
k=k+1;
end
tmnghimcaathcP4(x)=x422x3+179x2638x+840tadng
ctbernoulli.m
clearall,clc
p=[122179638840];
m=length(p);
fprintf(Nghiemcuadathuc:\n);
whilem>3
x=bernoulli(p);
m=m1;
fprintf(%f\n,x);
p=deflpoly(p,x);
end
x1=(p(2)+sqrt(p(2)^24*p(1)*p(3)))/2*p(1);
fprintf(%f\n,x1);
x2=(p(2)sqrt(p(2)^24*p(1)*p(3)))/2*p(1);
282
fprintf(%f\n,x2);
17.PHNGPHPLPBERGEVIETTE
Ccnghimthc,ncamtathcPn(x)ctnhtonkhisdng
phngphpNewton
P (x )
x i +1 = x i n i
(1)
Pn ( x i )
btutnhtoncnchnmtgitrbanuxo.Chngtacth
chnmtgitrxono,vd:
a
x0 = n
a n 1
vtnhtipccgitrsau:
P (x )
x1 = x 0 n 0
Pn ( x 0 )
P (x )
x 2 = x1 n 1
Pn ( x 1 )
TiptheocthnhgiPn(xi)theothuttonHorner:
P0=a0
P1=P0xi+a1
(2)
P2=P1xi+a2
P3=P2xi+a3
..................
P(xi)=Pn=Pn1xi+an
MtkhckhichiaathcPn(x)chomtnhthc(xxi)tac:
Pn(x)=(xxi)Pn1(x)+bn
(3)
vibn=Pn(xi).athcPn1(x)cdng:
Pn1(x)=boxn1+b1xn2+p3xn3+..+bn2x+bn1
(4)
xcnhcchscaathc(4)tathay(4)vo(3)vcnbngcc
hsviathccntmnghimPn(x)mcchsaicho:
(xxi)(boxn1+b1xn2+b3xn3+..+bn2x+bn1)+bn
=aoxn+a1xn1+a2xn2+...+an1x+a
(5)
T(5)rtra:
bo=ao
b1=a1+boxi
(6)
b2=a2+b1xi
......
283
bk=ak+bk1xi
.......
bn=an+bn1xi=Pn(xi)
ohm(3)tac:
Pn ( x) = ( x xi )Pn 1 ( x) + Pn 1 ( x)
v: Pn ( x i ) = Pn 1 ( x i )
(7)
Nhvyvimtgitrxinotheo(2)tatnhcPn(xi)vkthp
(6)vi(7)tnhcPn(xi).Thayccktqunyvo(1)tatnhcgitr
xi+1.Qutrnhctiptcchonkhi|xi+1xi|<hayPn(xi+1)0nn1
xi+1lmtnghimcaathc.
PhpchiaPn(x)cho(x1)chotaPn1(x)vmtnghimmikhcc
tmtheocchtrnkhichnmtgitrxomihaychnchnhxo =1.Khibc
ca a thc gim xung cn bng 2 ta dng cc cng thc tm nghim ca
tamthctmccnghimcnli.
Taxydnghmbirgeviette()thchinthuttontrn
functionx=birgeviette(a,x0)
%timnghiemtheothuattoanlapBirgeViette
%vao:adathuccantimnghiem
%x0giatridau
%cuphapx=birgeviete(a,x0,maxiter)
n=length(a)1;
k=0;
x0=3.5;
maxiter=50;
while(k<maxiter)
p=a(1);
b(1)=a(1);
fori=1:n
p=p*x0+a(i+1);
b(i+1)=p;
end
b=b(1,1:n);
p1=horner(b,x0);
x1=x0p/p1;
k=k+1;
284
err=horner(a,x1);
if(abs(err)<eps)
break;
end
x0=x1;
end
x=x0;
tmnghimcaathcP4(x)=x422x3+179x2638x+840tadng
ctbirgeviette.m
clearall,clc
p=[122179638840];
m=length(p);
x0=1;
fprintf(Nghiemcuadathuc:\n);
whilem>3
x=birgeviete(p,x0);
m=m1;
fprintf(%f\n,x);
p=deflpoly(p,x);
end
x1=(p(2)+sqrt(p(2)^24*p(1)*p(3)))/2*p(1);
fprintf(%f\n,x1);
x2=(p(2)sqrt(p(2)^24*p(1)*p(3)))/2*p(1);
fprintf(%f\n,x2);
18.PHNGPHPBAIRSTOW
NguyntccaphngphpBairstowltrchtathcPn(x)mttam
thcQ2(x)=x2rxsmtacthtnhnghimthchaynghimphccan
mtcchnginbngccphngphpbit.VicchiaathcPn(x)cho
tathcQ2(x)atiktqu:
Pn(x)=Q2(x).Pn2(x)+R1(x)
vi: Pn(x)=a1xn+a2xn1+a3xn2++an+1
Q2(x)=x2rxs
Pn2(x)=b1xn2+b2xn3+b3xn4++bn1
285
R1(x)=x+
c c mt thng ng, cn tm cc gi tr s v p sao cho R1(x) = 0
(nghalvtrittiu).Virvscho,cchsbicaathcPn2(x)v
cchsvctnhbngphngphptruyhi.Cccngthcnhn
ckhikhaitrinbiuthcPn(x)=Q2(x).Pn2(x)+R1(x)vspxpliccs
hngcngbc:
a1xn+a2xn1+a3xn2+...+an+1=(x2rxs)(b1xn2+b2xn3+b3xn4+...+bn1)
HscaQ2(x).Pn2(x)
Shngbc HscaPn(x)
xn
a1
b1
xn1
a2
b1rb1
n2
x
a3
b3rb2sb1
......
......
.....
a k
bkrbk1sbk2
xnk
x
an
rbn1sbn2
xo
an+1
rbn1
Nhvy:
b1=a1
(1)
b2=a2+rb1
b3=a3+rb2+sb1
.............
bk=ak+rbk1+sbk2
=an+rbn1+sbn2
=anpb2
Chngtanhnthyrngctnhtonxutphttcngmtcng
thctruyhinhcchsbkvtngngvihsbn
bn=an1+rbn1+sbn2=
Hsbn+1l:
bn+1=an+1+rbn1+sbn2=sbn2+
vcuicng:
R1(x)=x+=bn(xr)+bn+1
Ngoiracchsbiphthucvorvsvbygichngtacnphi
tmccgitrcbitr*vs*chobn vbn+1trittiu.KhiR1(x)=0v
nghimcatamthcx2r*xs*xslnghimcaathcPn(x).
Tabitrngbn1vbnlhmcasvp:
bn=f(r,s)
286
bn+1=g(r,s)
Victmr*vs*anvicgiihphngtrnhphituyn:
f(r ,s) = 0
g(r
,s)
0
=
g(r
,s
)
i i
f f
r s
J(X i ) =
g g
r s
Quan h : J(Xi)X = F(Xi) vi X = {ri+1 ri,si+1 si}T tng ng vi mt h
phngtrnhtuyntnhhainsr=ri+1rivs=si+1si:
f
f
r r + s s = f(ri ,si )
g
g
r +
s = g(ri ,si )
r
s
TheocngthcCramertac:
g
f
f + g
s
r = s
f g
g + f
s = r r
f g f g
r s s r
f f g g
dng c cng thc ny ta cn tnh c cc o hm , , , .
r s r s
Ccohmnyctnhtheocngthctruyhi.
Dob1=a1nn
287
b1 a1
b1 a1
=
=0
=
= 0
r
r
s
s
b2=a2+rb1nn
b 2
b
b 2 a 2
b
=
+ r 1 = 0
= r 1 + b1 = b1
s
s
s
r
r
b3=a3+rb2+sb1nn
b 3 a 3 (rb2 ) (sb1 )
=
+
+
r
r
r
r
Mtkhc:
a 3
(rb 2 )
(b 2 )
(rb1 )
= 0
= 0
=r
+ b 2
r
r
r
r
b
b 3
b
b
nn: 3 = b 2 + rb1
= r 2 + s 1 + b 1 = b1
r
s
s
s
b4=a4+rb3+sb2nn:
b 4
b
b
b 4
b
b
= b3 + r 3 + s 2
= r 3 + s 2 + b2
r
r
r
s
s
s
.....
b n
b
b
b n
b
b
= r n 1 + s n 2 + b n 1
= r n 1 + s n 2 + b n 2
r
r
r
s
r
r
Nuchngtat:
b k
= c k 1
r
th:
c1=b1
(2)
c2=b2+rc1
c3=b3+rc2+sc1
..........
cn=bn+rcn1+scn2
Nhvytac:
b c + b n +1c n 2
r = n 2 n 1
(3)
c n 1 c n c n 2
b c + bnc n
s = n2+1 n 1
(4)
c n 1 c n c n 2
Sau khi phn tch xong Pn(x) ta tip tc phn tch Pn2(x) theo phng
phptrn.Ccbctnhtongm:
288
Chnccgitrbanubtks0vp0
Tnhccgitrb1,..,bn+1theo(1)
Tnhccgitrc1,...,cntheo(2)
Tnhrovsotheo(3)v(4)
Tnhs1=r0+rovs1=so+so
Lplibc1chonkhiri+1=ri=rvsi+1=si=s
Giiphngtrnhx2rxstm2nghimcaathc
BtuqutrnhtrnchoathcPn2(x)
Taxydnghmbairstow()thchinthuttontmr,s
function[r,s]=bairstow(p,r0,s0,maxiter)
%timdathucbac2dangx^2rxs
%vaopladathuccantimnghiem
%r0,s0giatribandau
%maxitersolanlapmax
%rar,s
%cuphap[r,s]=bairstow(p,r0,s0,maxiter)
n=length(p)1;
c=zeros(n);
b=zeros(n);
j=0;
whilej<maxiter
b(1)=p(1);
b(2)=p(2)+r0*b(1);
fork=3:(n+1)
b(k)=p(k)+r0*b(k1)+s0*b(k2);
end
c(1)=b(1);
c(2)=b(2)+r0*c(1);
fork=3:(n)
c(k)=b(k)+r0*c(k1)+s0*c(k2);
end
d0=det([c(n1),c(n2);c(n),c(n1)]);
d1=det([b(n),c(n2);b(n+1),c(n1)]);
d2=det([c(n1),b(n);c(n)b(n+1)]);
r=r0+d1/d0;
289
s=s0+d2/d0;
if((abs(d1/d0))&(abs(d2/d0)))<eps
break;
end
r0=r;
s0=s;
j=j+1;
end
tmnghimcaathcP4(x)=x41.1x3+2.3x20.5x+3.3tadngchng
trnhctbairstow.m
clearall,clc
p=[11.12.30.53.3];
m=length(p);
s0=1,;
r0=1;
fprintf(Nghiemcuadathuc:\n);
whilem>3
[r,s]=bairstow(p,r0,s0,50);
m=m2;
x1=(r+sqrt(r^2+4*s))/2;
x2=(rsqrt(r^2+4*s))/2;
fprintf(%s\n,num2str(x1));
fprintf(%s\n,num2str(x2));
p=deconv(p,[1rs]);
end
iflength(p)==3
x1=(p(2)+sqrt(p(2)^24*p(3)))/2;
x2=(p(2)sqrt(p(2)^24*p(3)))/2;
fprintf(%s\n,num2str(x1));;
fprintf(%s\n,num2str(x2));;
else
x1=p(2)/p(1);
fprintf(%f\n,x1);;
end
290
19.PHNGPHPLOBACHEVSKYGRAEFFE
P(x)=a0xn+a1xn1++an=0
(1)
chcnghimthcvigitrtuytikhcnhau.Tanhsccnghim
theothtgitrtuytigim:
|x1|>|x2|>>|xn|
(2)
Davo(1)taxydngmtphngtrnhmi:
Q(x)=c0xn+c1xn1++cn=0
(c00)
(3)
m
m
m
cnghiml x1 , x 2 ,..., x n .Sautavitliphngtrnhtrn:
Q(x) = c 0 (x + x1m )(x + x 2m ) (x + x nm )
(4)
Sosnh(3)v(4)tac:
x m + x m + + x m = c1
2
n
1
c0
x m x m + x m x m + + x m x m = c 2
2 3
n 1 n
1 2
c0
(5)
x m x m x m x m = c n
n 1 n
1 2
c0
Vcgithit(2)nnkhimtngthvtricaccngthc(5)shng
utriln,lntccshngsauvvimlntac:
x m c1
1 c
0
x m x m c 2
1 2
c0
(6)
x m x m x m x m c n
n 1 n
1 2
c0
T(6)tac:
291
x m c1
1 c
0
x m c 2
2
c1
(7)
x m c n
n c
n 1
Tasuyratrtuyticaccnghiml:
c
x1 m 1
c0
c
x2 m 2
(8)
c1
x m cn
n
c n 1
Sautathay|xi|vo(1)vtmcnghim.Nhvyvnlphitm
cphngtrnh(3)davophngtrnh(1).Qutrnhbini(1)thnh
(3)ctinhnhnhsau:
utint(1)taxydngphngtrnhmicnghiml x12 vqu
trnhnycgilbnhphngnghim.VP(x)cccnghimlxinnn
cdng:
P(x)=a0(xx1)(xx2)(xxn)
Do:
(1)nP(x)=a0(x+x1)(x+x2)(x+xn)
Tasuyra:
( 1)n P(x)P( x) = a 02 (x 2 x12 )(x 2 x 22 ) (x 2 x 2n )
Thayx2=ytac:
P1 (y) = P(x)P( x) = a 02 (y + x12 )(y + x 22 ) (y + x 2n )
athcP1(y)cnghiml y i = x12 .athcnycdng:
n
(1) n 1
n 2
P1 (y) = a(1)
+ a(1)
+ + a(1)
(9)
0 y + a1 y
2 y
n
Do
P(x)=a0xn+a1xn1++an=0
nn
P(x)=(1)n[a0xna1xn1++(1)nan]
(1)nP(x)=a0xna1xn1++(1)nan
292
v
( 1)n P(x)P( x) = a 02 x 2n (a12 2a 0a 2 )x 2n 2 + (a 22 2a1a 3 + 2a 0a 4 )x 2n 4
+ + ( 1)n a n2
Thayx2=ytac:
P1 (y) = a 02 y n (a12 2a 0a 2 )y n 1 + (a 22 2a1a 3 + 2a 0a 4 )y n 2 + + ( 1)n a 2n (10)
Sosnh(9)v(10)taccngthctnhcchscaP1(y)tccakl:
2
a(1)
0 = a0
(1)
2
a1 = a1 2a 0a 2
a(1) = a 2 2a a + 2a a
2
1 3
0 4
2
(11)
(1)
2
i
a
a
2
(
1)
a
a
=
+
k
k i k +i
k
i =1
(1)
2
a n 1 = a n1 2a n 2a n
a(1) = a 2
n
n
TiptcqutrnhbnhphngnghimathcP1(y)tacP2(y)c
(1)
nghiml y k = ( x12 )2 vicchs a(2)
k ctnhtheo a k tngtnh(11)
khitnh a(1)
k theoak.Tinhnhbnhphngnghim(s+1)lntac(3).Lc
cchscxcnhbng:
a(s+1) = a(s) 2
0
0
k
a(s+1) = a(s) 2 + 2 ( 1)i a(s) a(s)
k i
k+i
k
k
i =1
(s+1)
2
(s) (s)
a n 1 = a(s)
n 1
2a n 2a n
2
a(sn +1) = a(s)
n
Vykhislntac:
a(s)
2s
m
i
xi = xi (s)
a i 1
Tacm=26=64.Dnglogarittatnhraccnghim:x1=4,x2=2,x3=1
Taxydnghmlobachevskygraeffe()thchinthuttontrn
293
functiony=lobachevskygraeffe(a,maxiter)
%giaiptbangppLochevskyGraeffe
%aladathuccantimnghiem
%maxiterlasolanlapmax
c=a;
n=length(a);
m=1;
whilem<maxiter
b=a;
fork=2:n1;
s=0;
i=1;
while(((ki)>=1)&((k+i)<=n))
s=s+(1)^i*b(ki)*b(k+i);
i=i+1;
end
a(k)=b(k)^2+2*s;
end
a(1)=a(1)^2;
a(n)=a(n)^2;
j=2^m;
fori=1:n1
err=1;
x(i)=a(i+1)/a(i);
ifx(i)==1
x(i)=1;
else
x(i)=exp((1/j)*log(x(i)));
end
err=abs(horner(c,x(i)));
end
iferr<eps
break;
end
m=m+1;
end
294
fori=1:n1
ifround(polyval(c,x(i)))~=0
x(i)=x(i);
end
end
y=x;
tmnghimcaathcP4(x)=x4+2x325x226x2+120tadngchng
trnhctlobachevskygraeffe.m:
clc,clearall
a=[122526120];
x=lobachevskygraeffe(a,50)
20.PHNGPHPSCHRODER
PhngphplpSchroderdngtmnghimbi,cdngtngt
nhcngthclpNewton:
mf(x k )
x k +1 = x k
f(x k )
Trong m l bi ca nghim. Ban u ta c th cha bit m nn cn phi
th.Taxydnghmschroder()thchinthuttontrn:
function[r,iter]=schroder(f1,df1,m,x0,tol)
%HamtimnghiemboibangthuattoanSchroder
iter=0;
d=feval(f1,x0)/feval(df1,x0);
whileabs(d)>tol
x1=x0m*d;
iter=iter+1;
x0=x1;
d=feval(f1,x0)/feval(df1,x0);
end
r=x0;
giiphngtrnh
(e x x)2 = 0
295
Tadngchngtrnhctschroder.mvim=2:
clearall,clc
[x,iter]=schroder(f1,df1,2,2,1e4)
Trong:
functiony=f1(x)
y=(exp(x)x).^2;
functiony=df1(x)
y=2.0*(exp(x)x).*(exp(x)1);
%cuphapx=bernoulli(p)
n=length(p);
maxiter=200;
y=zeros(maxiter);
y(n1)=1;
k=0;
while(k<maxiter)
s=0;
fori=1:n1
s=s+p(i+1)*y(k+ni);
end
y(k+n)=s/p(1);
x=y(k+n)/y(k+n1);
err=polyval(p,x);
iferr<1e6
break;
end
k=k+1;
end
tmnghimcaathcP4(x)=x422x3+179x2638x+840tadng
ctbernoulli.m
clearall,clc
296
p=[122179638840];
m=length(p);
fprintf(Nghiemcuadathuc:\n);
whilem>3
x=bernoulli(p);
m=m1;
fprintf(%f\n,x);
p=deflpoly(p,x);
end
x1=(p(2)+sqrt(p(2)^24*p(1)*p(3)))/2*p(1);
fprintf(%f\n,x1);
x2=(p(2)sqrt(p(2)^24*p(1)*p(3)))/2*p(1);
fprintf(%f\n,x2);
17.PHNGPHPLPBERGEVIETTE
Ccnghimthc,ncamtathcPn(x)ctnhtonkhisdng
phngphpNewton
P (x )
x i +1 = x i n i
(1)
Pn ( x i )
btutnhtoncnchnmtgitrbanuxo.Chngtacth
chnmtgitrxono,vd:
a
x0 = n
a n 1
vtnhtipccgitrsau:
P (x )
x1 = x 0 n 0
Pn ( x 0 )
P (x )
x 2 = x1 n 1
Pn ( x 1 )
TiptheocthnhgiPn(xi)theothuttonHorner:
P0=a0
P1=P0xi+a1
P2=P1xi+a2
P3=P2xi+a3
..................
P(xi)=Pn=Pn1xi+an
MtkhckhichiaathcPn(x)chomtnhthc(xxi)tac:
(2)
297
Pn(x)=(xxi)Pn1(x)+bn
(3)
vibn=Pn(xi).athcPn1(x)cdng:
Pn1(x)=boxn1+b1xn2+p3xn3+..+bn2x+bn1
(4)
xcnhcchscaathc(4)tathay(4)vo(3)vcnbngcc
hsviathccntmnghimPn(x)mcchsaicho:
(xxi)(boxn1+b1xn2+b3xn3+..+bn2x+bn1)+bn
=aoxn+a1xn1+a2xn2+...+an1x+a
(5)
T(5)rtra:
bo=ao
b1=a1+boxi
(6)
b2=a2+b1xi
......
bk=ak+bk1xi
.......
bn=an+bn1xi=Pn(xi)
ohm(3)tac:
Pn ( x) = ( x xi )Pn 1 ( x) + Pn 1 ( x)
(7)
v: Pn ( x i ) = Pn 1 ( x i )
Nhvyvimtgitrxinotheo(2)tatnhcPn(xi)vkthp
(6)vi(7)tnhcPn(xi).Thayccktqunyvo(1)tatnhcgitr
xi+1.Qutrnhctiptcchonkhi|xi+1xi|<hayPn(xi+1)0nn1
xi+1lmtnghimcaathc.
PhpchiaPn(x)cho(x1)chotaPn1(x)vmtnghimmikhcc
tmtheocchtrnkhichnmtgitrxomihaychnchnhxo =1.Khibc
ca a thc gim xung cn bng 2 ta dng cc cng thc tm nghim ca
tamthctmccnghimcnli.
Taxydnghmbirgeviette()thchinthuttontrn
functionx=birgeviette(a,x0)
%timnghiemtheothuattoanlapBirgeViette
%vao:adathuccantimnghiem
%x0giatridau
%cuphapx=birgeviete(a,x0,maxiter)
n=length(a)1;
k=0;
x0=3.5;
298
maxiter=50;
while(k<maxiter)
p=a(1);
b(1)=a(1);
fori=1:n
p=p*x0+a(i+1);
b(i+1)=p;
end
b=b(1,1:n);
p1=horner(b,x0);
x1=x0p/p1;
k=k+1;
err=horner(a,x1);
if(abs(err)<eps)
break;
end
x0=x1;
end
x=x0;
tmnghimcaathcP4(x)=x422x3+179x2638x+840tadng
ctbirgeviette.m
clearall,clc
p=[122179638840];
m=length(p);
x0=1;
fprintf(Nghiemcuadathuc:\n);
whilem>3
x=birgeviete(p,x0);
m=m1;
fprintf(%f\n,x);
p=deflpoly(p,x);
end
x1=(p(2)+sqrt(p(2)^24*p(1)*p(3)))/2*p(1);
fprintf(%f\n,x1);
299
x2=(p(2)sqrt(p(2)^24*p(1)*p(3)))/2*p(1);
fprintf(%f\n,x2);
18.PHNGPHPBAIRSTOW
NguyntccaphngphpBairstowltrchtathcPn(x)mttam
thcQ2(x)=x2rxsmtacthtnhnghimthchaynghimphccan
mtcchnginbngccphngphpbit.VicchiaathcPn(x)cho
tathcQ2(x)atiktqu:
Pn(x)=Q2(x).Pn2(x)+R1(x)
vi: Pn(x)=a1xn+a2xn1+a3xn2++an+1
Q2(x)=x2rxs
Pn2(x)=b1xn2+b2xn3+b3xn4++bn1
R1(x)=x+
c c mt thng ng, cn tm cc gi tr s v p sao cho R1(x) = 0
(nghalvtrittiu).Virvscho,cchsbicaathcPn2(x)v
cchsvctnhbngphngphptruyhi.Cccngthcnhn
ckhikhaitrinbiuthcPn(x)=Q2(x).Pn2(x)+R1(x)vspxpliccs
hngcngbc:
a1xn+a2xn1+a3xn2+...+an+1=(x2rxs)(b1xn2+b2xn3+b3xn4+...+bn1)
Shngbc HscaPn(x)
HscaQ2(x).Pn2(x)
xn
a1
b1
n1
x
a2
b1rb1
xn2
a3
b3rb2sb1
......
......
.....
nk
x
a k
bkrbk1sbk2
x
an
rbn1sbn2
xo
an+1
rbn1
Nhvy:
b1=a1
(1)
b2=a2+rb1
b3=a3+rb2+sb1
.............
bk=ak+rbk1+sbk2
=an+rbn1+sbn2
=anpb2
300
Chngtanhnthyrngctnhtonxutphttcngmtcng
thctruyhinhcchsbkvtngngvihsbn
bn=an1+rbn1+sbn2=
Hsbn+1l:
bn+1=an+1+rbn1+sbn2=sbn2+
vcuicng:
R1(x)=x+=bn(xr)+bn+1
Ngoiracchsbiphthucvorvsvbygichngtacnphi
tmccgitrcbitr*vs*chobn vbn+1trittiu.KhiR1(x)=0v
nghimcatamthcx2r*xs*xslnghimcaathcPn(x).
Tabitrngbn1vbnlhmcasvp:
bn=f(r,s)
bn+1=g(r,s)
Victmr*vs*anvicgiihphngtrnhphituyn:
f(r ,s) = 0
=
g(r
,s)
0
g(ri ,si )
f f
r s
J(X i ) =
r s
Quan h : J(Xi)X = F(Xi) vi X = {ri+1 ri,si+1 si}T tng ng vi mt h
phngtrnhtuyntnhhainsr=ri+1rivs=si+1si:
f
f
r
+
s = f(ri ,si )
r
s
g
g
r +
s = g(ri ,si )
s
r
TheocngthcCramertac:
301
g
f
+g
s
r = s
f g
g + f
s = r r
f g f g
=
r s s r
f
f f g g
, , , .
r s r s
Ccohmnyctnhtheocngthctruyhi.
Dob1=a1nn
b1 a1
b1 a1
=
=0
=
= 0
r
r
s
s
b2=a2+rb1nn
b 2
b
b 2 a 2
b
= r 1 + b1 = b1
=
+ r 1 = 0
r
r
s
s
s
b3=a3+rb2+sb1nn
b 3 a 3 (rb 2 ) (sb1 )
=
+
+
r
r
r
r
Mtkhc:
a 3
(rb 2 )
(b2 )
(rb1 )
= 0
=r
+ b 2
= 0
r
r
r
r
b
b 3
b
b
= r 2 + s 1 + b 1 = b1
nn: 3 = b 2 + rb1
r
s
s
s
b4=a4+rb3+sb2nn:
b 4
b
b
b 4
b
b
= b3 + r 3 + s 2
= r 3 + s 2 + b2
r
r
r
s
s
s
.....
b n
b
b
b n
b
b
= r n 1 + s n 2 + bn 1
= r n 1 + s n 2 + b n 2
r
r
r
s
r
r
Nuchngtat:
b k
= c k1
r
th:
c1=b1
c2=b2+rc1
c3=b3+rc2+sc1
(2)
302
..........
cn=bn+rcn1+scn2
Nhvytac:
b c + b n +1c n 2
r = n 2 n 1
(3)
c n 1 c n c n 2
b c + bncn
s = n2+1 n 1
(4)
c n 1 c n c n 2
Sau khi phn tch xong Pn(x) ta tip tc phn tch Pn2(x) theo phng
phptrn.Ccbctnhtongm:
Chnccgitrbanubtks0vp0
Tnhccgitrb1,..,bn+1theo(1)
Tnhccgitrc1,...,cntheo(2)
Tnhrovsotheo(3)v(4)
Tnhs1=r0+rovs1=so+so
Lplibc1chonkhiri+1=ri=rvsi+1=si=s
Giiphngtrnhx2rxstm2nghimcaathc
BtuqutrnhtrnchoathcPn2(x)
Taxydnghmbairstow()thchinthuttontmr,s
function[r,s]=bairstow(p,r0,s0,maxiter)
%timdathucbac2dangx^2rxs
%vaopladathuccantimnghiem
%r0,s0giatribandau
%maxitersolanlapmax
%rar,s
%cuphap[r,s]=bairstow(p,r0,s0,maxiter)
n=length(p)1;
c=zeros(n);
b=zeros(n);
j=0;
whilej<maxiter
b(1)=p(1);
b(2)=p(2)+r0*b(1);
fork=3:(n+1)
303
b(k)=p(k)+r0*b(k1)+s0*b(k2);
end
c(1)=b(1);
c(2)=b(2)+r0*c(1);
fork=3:(n)
c(k)=b(k)+r0*c(k1)+s0*c(k2);
end
d0=det([c(n1),c(n2);c(n),c(n1)]);
d1=det([b(n),c(n2);b(n+1),c(n1)]);
d2=det([c(n1),b(n);c(n)b(n+1)]);
r=r0+d1/d0;
s=s0+d2/d0;
if((abs(d1/d0))&(abs(d2/d0)))<eps
break;
end
r0=r;
s0=s;
j=j+1;
end
tmnghimcaathcP4(x)=x41.1x3+2.3x20.5x+3.3tadngchng
trnhctbairstow.m
clearall,clc
p=[11.12.30.53.3];
m=length(p);
s0=1,;
r0=1;
fprintf(Nghiemcuadathuc:\n);
whilem>3
[r,s]=bairstow(p,r0,s0,50);
m=m2;
x1=(r+sqrt(r^2+4*s))/2;
x2=(rsqrt(r^2+4*s))/2;
fprintf(%s\n,num2str(x1));
fprintf(%s\n,num2str(x2));
304
p=deconv(p,[1rs]);
end
iflength(p)==3
x1=(p(2)+sqrt(p(2)^24*p(3)))/2;
x2=(p(2)sqrt(p(2)^24*p(3)))/2;
fprintf(%s\n,num2str(x1));;
fprintf(%s\n,num2str(x2));;
else
x1=p(2)/p(1);
fprintf(%f\n,x1);;
end
19.PHNGPHPLOBACHEVSKYGRAEFFE
(1)
P(x)=a0xn+a1xn1++an=0
chcnghimthcvigitrtuytikhcnhau.Tanhsccnghim
theothtgitrtuytigim:
(2)
|x1|>|x2|>>|xn|
Davo(1)taxydngmtphngtrnhmi:
(c00)
(3)
Q(x)=c0xn+c1xn1++cn=0
m
m
m
cnghiml x1 , x 2 ,..., x n .Sautavitliphngtrnhtrn:
Q(x) = c 0 (x + x1m )(x + x 2m ) (x + x nm )
(4)
Sosnh(3)v(4)tac:
x m + x m + + x m = c1
2
n
1
c0
x m x m + x m x m + + x m x m = c 2
2 3
n 1 n
1 2
c0
(5)
x m x m x m x m = c n
n 1 n
1 2
c0
Vcgithit(2)nnkhimtngthvtricaccngthc(5)shng
utriln,lntccshngsauvvimlntac:
305
x m c1
1 c
0
x m x m c 2
1 2
c0
x m x m x m x m c n
n 1 n
1 2
c0
T(6)tac:
x m c1
1 c
0
x m c 2
2
c1
x m c n
n c
n 1
(6)
(7)
Tasuyratrtuyticaccnghiml:
c
x1 m 1
c0
c
x2 m 2
(8)
c1
x m cn
n
c n 1
Sautathay|xi|vo(1)vtmcnghim.Nhvyvnlphitm
cphngtrnh(3)davophngtrnh(1).Qutrnhbini(1)thnh
(3)ctinhnhnhsau:
utint(1)taxydngphngtrnhmicnghiml x12 vqu
trnhnycgilbnhphngnghim.VP(x)cccnghimlxinnn
cdng:
P(x)=a0(xx1)(xx2)(xxn)
Do:
(1)nP(x)=a0(x+x1)(x+x2)(x+xn)
Tasuyra:
306
(9)
0 y + a1 y
2 y
n
Do
P(x)=a0xn+a1xn1++an=0
nn
P(x)=(1)n[a0xna1xn1++(1)nan]
(1)nP(x)=a0xna1xn1++(1)nan
v
( 1)n P(x)P( x) = a 02 x 2n (a12 2a 0a 2 )x 2n 2 + (a 22 2a1a 3 + 2a 0a 4 )x 2n 4
+ + ( 1)n a 2n
Thayx2=ytac:
P1 (y) = a 02 y n (a12 2a 0a 2 )y n 1 + (a 22 2a1a 3 + 2a 0a 4 )y n 2 + + ( 1)n a n2 (10)
Sosnh(9)v(10)taccngthctnhcchscaP1(y)tccakl:
2
a(1)
0 = a0
(1)
2
a1 = a1 2a 0a 2
a(1) = a 2 2a a + 2a a
2
1 3
0 4
2
(11)
(1)
2
i
a
a
2
(
1)
a
a
=
+
k
k i k +i
k
i =1
(1)
2
a n 1 = a n1 2a n 2a n
a(1) = a 2
n
n
TiptcqutrnhbnhphngnghimathcP1(y)tacP2(y)c
(1)
nghiml y k = ( x12 )2 vicchs a(2)
k ctnhtheo a k tngtnh(11)
khitnh a(1)
k theoak.Tinhnhbnhphngnghim(s+1)lntac(3).Lc
cchscxcnhbng:
307
a(s+1) = a(s) 2
0
0
k
a(s+1) = a(s) 2 + 2 ( 1)i a(s) a(s)
k i
k+i
k
k
i =1
(s+1)
2
(s) (s)
a n 1 = a(s)
n 1
2a n 2a n
2
a(sn +1) = a(s)
n
Vykhislntac:
a(s)
2s
m
i
xi = xi (s)
a i 1
Tacm=26=64.Dnglogarittatnhraccnghim:x1=4,x2=2,x3=1
Taxydnghmlobachevskygraeffe()thchinthuttontrn
functiony=lobachevskygraeffe(a,maxiter)
%giaiptbangppLochevskyGraeffe
%aladathuccantimnghiem
%maxiterlasolanlapmax
c=a;
n=length(a);
m=1;
whilem<maxiter
b=a;
fork=2:n1;
s=0;
i=1;
while(((ki)>=1)&((k+i)<=n))
s=s+(1)^i*b(ki)*b(k+i);
i=i+1;
end
a(k)=b(k)^2+2*s;
end
a(1)=a(1)^2;
a(n)=a(n)^2;
j=2^m;
308
fori=1:n1
err=1;
x(i)=a(i+1)/a(i);
ifx(i)==1
x(i)=1;
else
x(i)=exp((1/j)*log(x(i)));
end
err=abs(horner(c,x(i)));
end
iferr<eps
break;
end
m=m+1;
end
fori=1:n1
ifround(polyval(c,x(i)))~=0
x(i)=x(i);
end
end
y=x;
tmnghimcaathcP4(x)=x4+2x325x226x2+120tadngchng
trnhctlobachevskygraeffe.m:
clc,clearall
a=[122526120];
x=lobachevskygraeffe(a,50)
20.PHNGPHPSCHRODER
PhngphplpSchroderdngtmnghimbi,cdngtngt
nhcngthclpNewton:
mf(x k )
x k +1 = x k
f(x k )
Trong m l bi ca nghim. Ban u ta c th cha bit m nn cn phi
th.Taxydnghmschroder()thchinthuttontrn:
309
function[r,iter]=schroder(f1,df1,m,x0,tol)
%HamtimnghiemboibangthuattoanSchroder
iter=0;
d=feval(f1,x0)/feval(df1,x0);
whileabs(d)>tol
x1=x0m*d;
iter=iter+1;
x0=x1;
d=feval(f1,x0)/feval(df1,x0);
end
r=x0;
giiphngtrnh
(e x x)2 = 0
Tadngchngtrnhctschroder.mvim=2:
clearall,clc
[x,iter]=schroder(f1,df1,2,2,1e4)
Trong:
functiony=f1(x)
y=(exp(x)x).^2;
functiony=df1(x)
y=2.0*(exp(x)x).*(exp(x)1);
310