You are on page 1of 70

CHNG 5: CC PHNG TRNH PHI TUYN

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.

Bc gii s b c 3 nhim v: vy nghim, tch nghim v thu hp


khongchanghim.

Vy nghim l tm xem cc nghim ca phng trnhc th nm trn


nhngonnocatrcx.Tchnghimltmcckhongchanghimsao
cho trong mi khong ch c ng mt nghim. Thu hp khong cha
nghimllmchokhongchanghimcngnhcngtt.Saubcsbta
ckhongchanghimnh.xcnhkhongchanghimtacth
dngphngphpth.Ngoiratacngcthtmnghimbngphng
phptmtngdn.tngcaphngphpnylnyf1(x).f2(x)<0thct
nhtmtnghimcaphngtrnhtrongon[x1,x2].Nuon[x1,x2]
nh th trong on s c mt nghim duy nht. Nh vy ta c th pht
hinranghimbngcchtnhtrcahmtrncconxvxemchngc
idukhng.
Taxydnghmrootsearch()tmkhongchanghim.

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

Khi pht hin thy khong cha nghim, hm tr v gi tr bin ca on.


Nukhngcnghim,x1=x2=NaN.Tagirootsearch()nhiulnpht
hinhtcconchanghim.Vivdtmkhongchanghimcahm
f(x)=x310x2+5tadngchngtrnhctrootsearch.m

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

2. Nu f((a + b)/2) 0 th chn


a
b1
[a,(a+b)/2] hay [(a + b)/2, b] m gi tr hm
haiutriduvkhiul[a1,b1].ivi
[a1,b1]talitinhnhnh[a,b].
Taxydnghmbisection()thchinthuttontrn

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

tnh li nghim ca hm cho trong v d trn ta dng chng trnh


ctnewraph.m

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

tnh nghim ca hm f(x) = x3 10x2 + 5 ta dng chng trnh


ctsecant.m

clearall,clc
f=inline(x.^310*x.^2+5);
[x,ss,xx]=secant(f,0.5,1,1e4,50)

7.PHNGPHPBRENT

Phng php Brent kt hp phng php chia i cung v phng


php ni suy bc hai to ra mt phng php tm nghim ca phng
trnhf(x)=0rthiuqu.Phngphpnydngkhiohmcaf(x)kh
tnh hay khng th tnh c. Gi s ta cn tm nghim trong on [x1, x2].
Qutrnhtmnghimbtubngvicchiaion[x1,x2]bngimx3.

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)

(f1 f2 )(f2 f3 )(f3 f1 )


thayicanghiml:
x (f f )(f f + f ) + f2 x1 (f2 f3 ) + f1x 2 (f3 f1 )
x = x x 3 = f3 3 1 2 2 3 1

(2)

(f1 f2 )(f2 f3 )(f3 f1 )


Taxydnghmbrent()thchinthuttontrn

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;

tm nghim ca phng trnh x|cos(x)| 1 = 0 ta dng chng trnh


ctbrent.m

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.

Khi phng php lp c kt hp vi phng php Aitken ta c


phngphpSteffensen.Btulptx0,haibclpcdngtnh:

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

Khi tm nghim ca phng trnh i s tuyn tnh hay phng trnh


siuvitf(x)=0tacthdngmthmc4thngsxpxhmf(x)

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:

f(pk )(pk pk1 ) = f(pk ) f(pk1 )


Mrngchohphngtrnhtacthvit:

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]

(1 + [ V]T [ A]1 [ U])[ A]1


1

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

.................................

Bcn1 k=n1 P=P(xo)=(...((aox+a1)x+a2x)+...+an1)x

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!

(x x0 )Pn 1 (x0 ) + Pn (x0 ) = Pn (x 0 ) +

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

Pn1(x)bo b1b2b3... bn1 bn=Pn(xo)


Taxydnghmgenhorner()thchinthuttontrn

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)

G(x) (n 1) nH(x) G 2 (x)


NhvythuttontmimzerocaathctngquttheoLaguerrel:

chogitrbanucanghimcaathclx

tnhPn(x), Pn (x) v Pn(x)

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

tm nghim ca mt a thc theo thut ton Laguerre ta dng chng


trnhctpolyroots.m

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
=

Phng trnh ny c th gii d dng nh phng php Newton. Tht vy


vimtphngtrnhphituyntaccngthclp:
xi+1=xif(xi)/f(xi)
hay f(xi)(xi+1xi)=f(xi)
Vimthchaiphngtrnh,cngthclptrthnh:
J(Xi)(Xi+1Xi)=F(Xi)
vi Xi={ri,si}Tv Xi+1={ri+1,si+1}T
f(ri ,si )
F(X i ) =


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

Phng php ny c Karl Heinrich Grffe, Germinal Pierre


DandelinvNikolaiIvanovichLobachevskyara.Ncmtnhcim
lccktqutrunggianctrsrtln.
Xtphngtrnh:

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

Phng trnh ny c th gii d dng nh phng php Newton. Tht vy


vimtphngtrnhphituyntaccngthclp:
xi+1=xif(xi)/f(xi)
hay f(xi)(xi+1xi)=f(xi)
Vimthchaiphngtrnh,cngthclptrthnh:
J(Xi)(Xi+1Xi)=F(Xi)
vi Xi={ri,si}Tv Xi+1={ri+1,si+1}T
f(ri ,si )
F(X i ) =


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

dng c cng thc ny ta cn tnh c cc o hm

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

Phng php ny c Karl Heinrich Grffe, Germinal Pierre


DandelinvNikolaiIvanovichLobachevskyara.Ncmtnhcim
lccktqutrunggianctrsrtln.
Xtphngtrnh:

(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

( 1)n P(x)P( x) = a 02 (x 2 x12 )(x 2 x 22 ) (x 2 x n2 )


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

You might also like