Tài liệu CHƯƠNG 5: CÁC PHƯƠNG TRÌNH PHI TUYẾN - Pdf 99


241
CHƯƠNG 5: CÁC PHƯƠNG TRÌNH PHI TUYẾN

§1.KHÁINIỆMCHUNG
Nếuphươngtrìnhđạisốhaysiêuviệtkháphứctạpthìítkhitìmđược
nghiệmđúng.Bởivậyviệctìmnghiệmgầnđúngvàướclượngsaisốlàrất
c
ầnthiết.
 Taxétphươngtrình:
 f(x)=0(1)
vớif(x)làhàmchotrướccủabiếnx.Chúngtacầntìmgiátrịgầnđúngcủa
nghiệmcủaphươngtrìnhnày.
 Quátrìnhgi
ảithườngchialàmhaibước:bướcsơbộvàbướckiệntoàn
nghiệm.
 Bước giải sơ bộ có 3 nhiệm vụ: vây nghiệm,tách nghiệmvàthuhẹp
khoảngchứanghiệm.
 Vây
nghiệmlàtìmxemcácnghiệmcủaphươngtrìnhcóthểnằmtrên
nhữngđoạnnàocủatrụcx.Táchnghiệmlàtìmcáckhoảngchứanghiệmsao
cho trong mỗi khoảng chỉ cóđúng m
ột nghiệm. Thu hẹp khoảng chứa
nghiệmlà làmchokhoảngchứanghiệmcàngnhỏcàngtốt.Saubướcsơbộta
cókhoảngchứanghiệmđủnhỏ.Đểxácđịnhkhoảngchứanghiệmta
cóthể
dùngphươngphápđồthị.Ngoàiratacũngcóthểtìmnghiệmbằngphương
pháptìmtăngdần.Ýtưởngcủaphươngphápnàylànếyf
1(x).f2(x)<0thìcóít
nhấtmộtnghiệmcủaphươngtrìnhtrongđoạn[x
1,x2].Nếuđoạn[x1,x2]đủ

ệnthấykhoảng chứanghiệm,hàm trảvềgiátrịbiên củađoạn.
Nếukhôngcónghiệm,x1=x2=NaN.Tagọirootsearch()nhiềulầnđểphát
hiệnhếtcácđoạnchứanghiệm.
Vớivídụtìmkhoảngchứanghiệmcủahàm
f(x)=x
3
‐10x
2
+5tadùngchươngtrìnhctrootsearch.m

clearall,clc
f=inline(ʹx^3‐10*x^2+5ʹ);
[x1,x2]=rootsearch(f,2,10,.2)

 Bướckiệntoànnghiệmtìmcácnghiệmgầnđúngtheoyêucầuđặtra.
 Córấtnhiềuph
ươngphápxácđịnhnghiệmcủa(1).Sauđâychúngta
xéttừngphươngpháp.

§2.PHƯƠNGPHÁPLẶPĐƠN
Giảsửphươngtrình(1)đượcđưavềdạngtươngđương:
 x=g(x)(2)
từgiátrịx
onàođógọilàgiátrịlặpđầutiêntalậpdãyxấpxỉbằngcôngthức:
 x
n=g(xn‐1)(3)
vớin=1,2, 
Hàmg(x)đượcgọilàhàmlặp.Nếudãyx
n→αkhin→∝thìtanóiphéplặp
(3)hộitụ.

%ra:x=nghiem
%err=
saiso|x(k)‐x(k‐1)|
%xx=cacgiatritrunggian

ifnargin<4
maxiter=100;
end
ifnargin<3
tolx=1e‐6;
end
xx(1)=x0;
fork=2:maxiter
xx(k)=feval(g,xx(k‐1));
err=abs(xx(k)‐xx(k‐1));
if
err<tolx
break;
end
x1
xo
x1
xo

244
end
x=xx(k);
ifk==maxiter
fprintf(ʹKhonghoitusau%dlanlap\nʹ,maxiter)
else

%a/b=biencuadoancantimnghiem
%tolx=saisomongmuon
%maxiterlanlapmax
%ra:x
=nghiem
%err=saiso
%xx=cacgiatritrunggian

y
x
a
b
ξ

b
1

245
tol=eps;
fa=feval(f,a);
fb=feval(f,b);
iffa*fb>0
error(ʹNghiemkhongotrongdoannayʹ);
end
fork=1:maxiter
xx(k)=(a+b)/2;
fx=feval(f,xx(k));
err=(b‐a)/2;
ifabs(fx)<tol|abs(err)<
tolx

1=a+h1

246
Trongđó

1
f(a)
(b a)
h
f(a) f(b)
=


−+

 Tiếptheodùngcáchđóvớiđoạn[a,x
1]
hay[x
1,b]màhaiđầuhàmnhậngiátrịtrái
dấutađượcnghiệmgầnđúngx
2v.v.
Vềmặthìnhhọc,phươngphápnàycó
nghĩalàkẻdâycungcủađườngcongf(x)
quahaiđiểmA[a,f(a)]vàB[b,f(b)]haynóicáchkháclàtuyếntínhhoáhàm
f(x)trongđoạn[a,b].
Thật
vậyphươngtrìnhdâycungABcódạng:

f(a) f(b) af(b) bf(a)
yx

fa=feval(f,a);
fb=feval(f,b);
iffa*fb>0
error(ʹNghiemkhongotrongdoannay!ʹ);
end
fork=1:maxiter
xx(k)=(a*fb‐b*fa)/(fb‐fa);%pt.(1)
fx=feval(f,xx(k));

err=min(abs(xx(k)‐a),abs(b‐xx(k)));
a
b
x
y
x1
ξ

247
ifabs(fx)<tolfun|err<tolx
break;
elseiffx*fa>0
a=xx(k);
fa=fx;
else
b=xx(k);
fb=fx;
end
end
x=xx(k);
ifk==maxiter

0 f(x ) f (x )(x x ) O(x x )
++

=+ −+ −(2)
Giảsửrằngx
igầnvớixi+1,tacóthểbỏquasốhạngcuốitrong(2)vàcócông
thứcNewton‐Raphson:

i
i1 i
i
f(x )
xx
f(x)
+
=−

(3)
Nếux
i+1lànghiệmđúngcủaphươngtrìnhthìsaisốlàei=x‐xi.Khinghiệm
đượctínhtheo(3)thìsaisốlà:

248

2
i
i1 i
i
f(x)
ee

%ra:x=nghiem
%fx=f(x(last)),xx=cacgiatritrunggian
h=1e‐4;
h2=2*h;
tolf=eps;
ifnargin==4&isnumeric(df)

maxiter=tolx;
tolx=x0;
x0=df;
end
xx(1)=x0;
fx=feval(f,x0);
fork=1:maxiter
if~isnumeric(df)
dfdx=feval(df,xx(k));%daohamcuaham
else
dfdx=(feval(f,xx(k)+h)‐feval(f,xx(k)‐h))/h2;%daohamso
a
b
=xo
x1
y
x

249
end
dx=‐fx/dfdx;
xx(k+1)=xx(k)+dx;%pt.(3)
fx=feval(f,xx(k+1));






(1)
vàtốnítthờigiantínhhơnkhidùngđạohàmgiảitíchhayđạohàmsố.
 Bằngcáchxấpxỉ,biểuthức:

k
k1 k
k
f(x )
xx
f(x )
+
=−


trởthành:


+

⎡⎤

=− =−
⎢⎥

⎣⎦









Phéplặpcóthểkhônghộitụ(hìnhb).Tuynhiênkhihộitụ,nóhộirấtnhanh.
Taxâydựnghàm
secant()đểthựchiệnthuậttoántrên.

function[x,fx,xx]=secant(f,x0,x1,tolx,maxiter)
%giaiptf(x)=0bgphuongphapdaycung
%vao:f‐hamcantimnghiem
%x0,x1‐giatrikhoidongpheplap
%tolx‐saisomongmuon
%maxiter‐solanlapmax
%ra:x
=nghiem
%fx=f(x(last)),xx=cacgiatritrunggian
h=(x1‐x0)/100;
h2=2*h;
tolfun=eps;
xx(1)=x0;
fx=feval(f,x0);
fork=1:maxiter
ifk<=1
dfdx=(feval(f,xx(k)+h)‐feval(f,xx(k)‐h))/h2;
else

lap\nʹ,maxiter)
else
fprintf(ʹHoitusau%dlanlap\nʹ,k)
end


Đểtính nghiệm của hàm f(x) =  x
3
‐10x
2
 + 5 ta dùng chương trình
ctsecant.m

clearall,clc
f=inline(ʹx.^3‐10*x.^2+5ʹ);
[x,ss,xx]=secant(f,0.5,1,1e‐4,50)


§7.PHƯƠNGPHÁPBRENT
 Phương pháp Brent kêt hợp phương pháp chiađôi cung và phương
phápnộisuybậchaiđểtạo ra mộtphươngpháptìmnghiệm của phương
trìnhf(x) =0rấthiệuquả.Phương
phápnàydùngkhiđạohàmcủaf(x)khó
tínhhaykhôngthểtínhđược.Giảsửtacầntìmnghiêmtrong đoạn[x
1,x2].
Quátrìnhtìmnghiệmbắtđầubằngviệcchiađôiđoạn[x
1,x2]bằngđiểmx3.




−− −− −−
=++
−− −− −−

Choy=0tacó:

2312 3 1323 1 1231 2
122331
ffx(f f) ffx(f f) ffx(f f)
x
(f f )(f f )(f f )
−+ −+ −
=−
−−−
(1)
Độthayđổicủanghiệmlà:

31 2 2 3 1 212 3 123 1
33
122331
x (f f )( f f f ) f x (f f ) f x (f f )
xxx f
(f f )(f f )(f f )
−−++ −+ −
∆= − =
−−−
 (2)
Taxâydựnghàm
brent()đểthựchiệnthuậttoántrên


fori=1:30
f3=feval(f,x3);
ifabs(f3)<tol
root=x3;
return
end
%xacdinhdoanchuanghiem.
if
f1*f3<0.0;
b=x3;
else
a=x3;
end
if(b‐a)<tol*max(abs(b),1.0)
root=0.5*(a+b);
return
end
%noisuybac2.
denom=(f2‐f1)*(f3‐f1)*(f2‐f3);
numer=x3*(f1‐f2)*(f2‐f3+f1) 
+f2*x1*(f2‐f3)+
f1*x2*(f3‐f1);
ifdenom==0;
dx=b‐a;
else
dx=f3*numer/denom;
end
x=x3+dx;
%neulaprangoaidoan(a,b),dungcachchiadoicung
if(b‐x)*(x‐a)<0.0

Nhưvậ
y:
 x
n+1=f(xn)(3)
 x
n=f(xn‐1)(4)
Trừ(3)cho(4)vàápdụngđịnhlíLagrangechovếphảivớic∈[a,b]tacó:
 x
n+1‐xn=f(xn)‐f(xn‐1)=(xn‐xn‐1)f’(c)(5)
Vìphéplặp(1)nên:
 |x
n+1‐xn|≤q|xn‐xn‐1|(6)
Do(6)đúngvớimọinnênchon=1,2,3,...tacó:
|x
2‐x1|≤q|x1‐xo|
|x
3‐x2|≤q|x2‐x1|

255
...................
|x
n+1‐xn|≤q|xn‐xn‐1|
Điềunàycónghĩalàdãyx
i+1‐xi,mộtcáchgầnđúng,là mộtcấpsốnhân.Ta
cũngcoirằngdãyx
n‐yvớiylànghiệmđúngcủa(1),gầnđúngnhưmộtcấp
sốnhâncócôngsaiq.Nhưvậy:

n1
n

   (10)
Thaygiátrịcủaqvừatínhở(10)vàobiểuthứccủaqởtrêntacó:

(
)
2
nn1
n
nn1n2
xx
yx
x2x x
+
++

=−
−+
 (11)
Công thức (11)được gọi là công thức ngoại suy Adam. Nhưvậytheo(11)
trướchếttadùngphươngpháplặpđểtínhgiátrịgầnđúngx
n+2,xn+1,xncủa
nghiệmvàsauđótheo(11)tìmđượcnghiệmvớisaisốnhỏhơn.
 Khi phương pháp lặpđược k ết hợp với phương pháp Aitken ta có
phươngphápSteffensen.Bắtđầulặptừx
0,haibướclặpđượcdùngđểtính:
 x
1=f(x0)  x2=f(x1)
vàsauđódùngthuậttoánAitkenđểtinhy
0theo(11).Đểtiếptụclặptacho
x

<maxiter)&(abs(f0‐x2)>.0000001))
 count=count+1;
 x1=feval(g,x0);
x2=feval(g,x1);
 f0=x0‐(x1‐x0)*(x1‐x0)/(x2‐2.*x1+x0);
 x0=f0;
end
y=f0;

Đểtìm nghiệmcủaphươngtrìnhx=(2‐e
x
+x
2
)/3=g(x)tadùngchươngtrình
ctaitstef.m

clearall,clc
f=inline(ʹ(2.‐exp(x)+x.^2)/3ʹ);
[x,y]=aitstef(f,0.,1e‐4,50)

§9.PHƯƠNGPHÁPMUELLER
Trongphươngphápdâycungkhitìmnghiệmtrongđoạn[a,b]taxấp
xỉ hàm bằng mộtđường thẳng. Tuy nhiênđểgiảm lượng tính toán vàđể
nghiệmhộitụnhanhhơntacóthểdùngphương
phápMuller.Nộidungcủa
phươngphápnàylàthayhàmtrongđoạn[a,b]bằngmộtđườngcongbậc2
màtahoàntoàncóthểtìmnghiệmchínhxáccủanó.

257
Gọicácđiểmđócóhoànhđộlầnlượtlàa=x2,b=x1vàtachọnthêm

2
22 22 2
v0(xx) a(0) b(0)cf
vh(xx) ah bh cf
vh(xx)ahbhcf
== ++=
== ++=
=− = − + =

Từđótacó:

0
1
2
101
2
1
201
fc
h
ahff
b
)1(h
f
)1(
f
f
a
=
−−

%giaiptf(x)=0
h1
h2
f(x)
x0,
f
0
x1,
f
1
x2,
f
2

258
%vao‐flahamcantimnghiem
%‐a,bladoanchuanghiem
%‐maxitersolanlapmax
%ra‐pxapxiMullercuaf
%‐ylagiatriy=f(p)
%‐errsaisothuccuanghiem.
%khoigana,b,x0vacacgiatrituongung
cuaham
x0=(a+b)/2.;
P=[x0ab];
Y=feval(f,P);
delta=1e‐4;
%tinhcachesocuaptbachai
fork=1:maxiter
h0=P(1)‐P(3);

P=R;
Y=feval(f,P);
end
%cactritinhlanmoi
P(3)=p;
Y(3)=feval(f,P(3));
y=Y(3);
%dieukien
dunglap
err=abs(z);
relerr=err/(abs(p)+delta);
if(err<delta)|(relerr<delta)|(abs(y)<eps)
break
end
end

Đểgiảiphươngtrìnhsin(x)‐0.5*x=0tadùngchươngtrình
ctmuller.m

clearall,clc
formatlong
f=inline(ʹsin(x)‐0.5*xʹ);
x=muller(f,1.8,2.2,50)


§10.PHƯƠNGPHÁPHALLEY
PhéplặpNewtontìmnghiệmcủahàmphươngtrìnhx=g(x)là:


f(x)

%vao:‐hamcantimnghiemf
%‐giatridaux0
%‐solanlapcucdaimaxiter
%ra‐nghiemx
%dungdaohamso
i=0;
h=1e‐4;
while(i
<maxiter)
f1=feval(f,x);
df1=(feval(f,x+h)‐feval(f,x‐h))/(2*h);
ddf1=(feval(f,x+h)‐2*feval(f,x)+feval(f,x‐h))/(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


haydùnghàm
halley2()

functionx=halley2(f,x,maxiter)
%hamdungdetimnghiemcuaptf(x)=0
%vao:‐hamcantimnghiemf
%‐giatridaux
%‐solanlapcucdaimaxiter
%ra‐nghiemx

x=halley2(f,‐3,50)


§11.PHƯƠNGPHÁPCHEBYSHEV
 Khitìmnghiệmcủaphươngtrìnhđạisốtuyếntínhhayphương trình
siêuviệtf(x)=0tacóthểdùngmộthàmcó4thôngsốđểxấpxỉhàmf(x)
 y(x)=p
1+p2(x‐p3)
e
(1)
Cácthôngsốp
1 và p3tạosựchuyểndịchtheocáctrục;thôngsốpxácđịnh
biênđộvàecungcấpđộcongcủahàm.
 Takhảosáthàmf(x)trênđoạn[a,b]trongđóf(a).f(b)<0,nghĩalàtrong
đoạn[a,b]
tồntạinghiệmcủaphươngtrìnhf(x)  =0.Tacóthêmđiềukiện
fʹ(x).fʹʹ(x) ≠ 0 ∀x∈[a,b]. Gọi x
i∈[a,b]làlầnxấp xỉ thứ i của nghiệmthì
nghiệmlầnthứi+1theocôngthứcPopovskilà:

1
e
i1 i
2
fef.f
xx(e1)1 1
fe1f
+
⎡⎤
′′′

xx
f
+
−=−


vàđólàphéplặpNewton
Khie=0.5

2
2
iii
i1 i
33
ii
10.5f.f
f
f(x) f(x) f(x)
f
xx
ff(x)2f(x)
+
′′
+
⎛⎞

⎜⎟


×

df=
(feval(f,xx(k)+h)‐feval(f,xx(k)‐h))/h2;%daohamso
d2f=(feval(f,xx(k)+h)‐2*feval(f,xx(k))+feval(f,xx(k)‐h))/h^2;
dx=‐fx/df^3‐0.5*fx^2*d2f/df^3;
xx(k+1)=xx(k)+dx;
fx=feval(f,xx(k+1));

263
ifabs(fx)<tol|abs(dx)<tol
break;
end
end
x=xx(k+1);

Đểgiảiphươngtrìnhtadùngchươngtrình
ctchebyiter

clearall,clc
f=inline(ʹx.^3‐10*x.^2+5ʹ);
x=chebyiter(f,‐3,1e‐4)


§12.PHƯƠNGPHÁPNEWTONDÙNGCHOHỆPHITUYẾN
Phương pháp Newton có thể được tổng quát hoáđểgiải hệ phương
trìnhphituyếndạng:

1123 n
2123 n
n123 n
f (x ,x ,x , ,x ) 0

+

hay:
fʹ(x
i).∆x=‐f(xi)
với ∆x=x
i+1‐xi
Đốivớihệphươngtrình,côngthứclặplà:
J(X
i)∆X=‐F(Xi)
TrongđóJ(X
i)làtoántửJacobi.Nólàmộtmatrậnbậcn(n‐tươngứngvới
sốthànhphầntrongvectơX)códạng:

264
















⋅⋅⋅






=
n
n
3
n
2
n
1
n
n
2
3
2
2
2
1
2
n
1
3
1
2
1

 PhươngphápNewtontuyếntínhhoáhệvànhưvậyvớimỗibướclặp
cầngiảimộthệphươngtrìnhtuyếntính(màbiếnlà∆X
i)xácđịnhbởicông
thứclặpchotớikhivectơX(x
1,x2,x3, ,xn)gầnvớinghiệm.
Taxâydựnghàm
new4sys()đểthựchiệnthuậttoánnày

function[P,iter,err]=new4sys(f,jf,P,max1)
%vao‐FlaheptluutrongM‐filef.m
%‐JFlamatranjacobiluutrongM‐filejf.m
%‐Pvectonghiembandau
%‐max1solanlapcucdai
%ra‐Plavetonghiem
%
‐itersolanlapthucte
%‐errsaiso
Y=f(P);
fork=1:max1
J=jf(P);
Q=P‐(J\Yʹ)ʹ;
Z=f(Q);
err=norm(Q‐P);
relerr=err/(norm(Q)+eps);
P=Q;
Y=Z;
iter=
k;
if(err<eps)|(relerr<eps)|(abs(Y)<eps)
break

functionf=f(p)
f=[(p(1)^2+p(1)*p(2)‐2),(2*p(1)*p(2)+p(2)^2‐3)];

Nộidungcủa
jf.m:

functionjf=jf(p)
jf=[(2*p(1)+p(2))p(1)
(2*p(1))(2*p(1)+2*p(2))];

Tacóthểdùnghàm
new4sys2()đểthựchiệnthuậttoán:

functionroot=new4sys2(func,x,maxiter)
%PhuongphapNewton‐Raphsondetimnghiem
%cuaheptfi(x1,x2, ,xn)=0,i=1,2, ,n.
%Cuphap:root=new4sys2(func,x,tol)
%vao:
%func=controham,trave[f1,f2, ,fn].
%x=vec
tobandau[x1,x2, ,xn].
%tol=saisomongmuon
%ra:
%root‐nghiemcuahe

ifsize(x,1)==1;
x=xʹ;


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status