Soustavy neline´ arn´ıch rovnic pomoc´ı syst´ emu Maple. Newtonova metoda. ´ Uvod Mnoho technick´ ych probl´em˚ u vede na ˇreˇsen´ı matematick´ ych u ´loh, kter´e se n´aslednˇe pˇrevedou na u ´lohy ˇreˇsen´ı soustav neline´arn´ıch rovnic f (x) = 0. (1) Rovnice (1) znamen´a soustavu n rovnic zapsanou ve vektorov´em tvaru, tj. f : Rn → Rn je vektorov´a ˇ sen´ı rovnice (1) pro pˇr´ıpad n = 1 je pops´an funkce a soustava se ˇreˇs´ı pro nezn´amou n-tici hodnot x. Reˇ ˇ sen´ı rovnic(Matematika I), na kter´ v textu Reˇ y se zde navazuje. Pouˇzit´ı Newtonovy metody pro pˇr´ıpad n = 1 nalezneme v pˇr´ıkladech pro zm´ınˇen´ y text. Pro ˇreˇsen´ı soustavy neline´arn´ıch rovnic pouˇz´ıv´ame velmi ˇcasto numerick´e iteraˇcn´ı metody. Zvl´aˇstˇe ˇcasto se pouˇz´ıv´a Newtonova metoda, kter´a je zobecnˇen´ım Newtonovy iteraˇcn´ı metody pouˇz´ıvan´e v pˇr´ıpadˇe jedn´e rovnice. Jak n´ıˇze uk´aˇzeme, jedn´a se sice o analogickou metodu, ve skuteˇcnosti jsou vˇsak mezi jednoa v´ıcedimenzion´aln´ım pˇr´ıpadem podstatn´e rozd´ıly. V pˇr´ıpadˇe jedn´e rovnice, tj. n = 1, je moˇzn´e snadno z´ıskat dobr´e informace o poloze koˇrene. Pokud polohu bl´ıˇze nezn´ame, lze uˇz´ıt k z´ısk´an´ı ˇreˇsen´ı nˇekterou z metod, kter´a vˇzdy konverguje, napˇr´ıklad metodu p˚ ulen´ı intervalu. V pˇr´ıpadˇe v´ıce dimenz´ı se informace o poloze ˇreˇsen´ı z´ısk´avaj´ı nesrovnatelnˇe obt´ıˇznˇeji, neˇz v pˇr´ıpadˇe n = 1. Nav´ıc nejsou zn´amy metody, kter´e vˇzdy konverguj´ı pˇri ˇreˇsen´ı (1) pro n ≥ 2. V tomto textu budeme d´ale uvaˇzovat pouze pˇr´ıpad n = 2, tj. soustavu dvou neline´ arn´ıch rovnic
Contents
First
Last
Prev
Next
Back
Close
Quit
o dvou nezn´ am´ ych f1 (x, y) = 0 (2) f2 (x, y) = 0 , kde f1 , f2 jsou re´aln´e funkce dvou re´aln´ ych promˇenn´ ych x, y. V druh´e ˇc´asti uk´aˇzeme, ˇze i pro n = 2 je obt´ıˇzn´e nejen urˇcit poˇcet ˇreˇsen´ı u ´lohy, ale tak´e tyto koˇreny separovat do oblast´ı tak, aby vhodn´e zvolen´ı poˇc´ateˇcn´ı aproximace ˇreˇsen´ı vedlo v iteraˇcn´ı metodˇe k nalezen´ı hledan´eho ˇreˇsen´ı soustavy. V tˇret´ı ˇc´asti tohoto textu se budeme zab´ yvat Newtonovou iteraˇcn´ı metodou pro ˇreˇsen´ı soustav neline´arn´ıch rovnic. Pop´ıˇseme algoritmus t´eto metody a uk´aˇzeme, jak lze Newtonovu metodu naprogramovat v syst´emu Maple. Poznamenejme, ˇze existuj´ı i jin´e metody pro ˇreˇsen´ı soustav typu (1); nˇekter´e z nich jsou modifikac´ı zde prob´ıran´e Newtonovy metody.
ˇ sitelnost dvou neline´ Reˇ arn´ıch rovnic Jak obt´ıˇzn´e je nal´ezt pˇribliˇznou polohu ˇreˇsen´ı soustavy neline´arn´ıch rovnic lze nejl´epe demonstrovat jiˇz pro pˇr´ıpad n = 2. Pro n > 2 by diskuse ˇreˇsitelnosti soustav byla daleko obt´ıˇznˇejˇs´ı. V pˇr´ıpadˇe dvou neline´arn´ıch rovnic (2) si lze udˇelat n´asleduj´ıc´ı geometrickou pˇredstavu. Pˇredpokl´adejme, ˇze soustava (2) m´a jenom izolovan´e koˇreny. Funkce f1 a f2 jsou funkce dvou promˇenn´ ych, jejichˇz nulov´e 2 vrstevnice oddˇeluj´ı v R oblasti, kde jsou tyto funkce kladn´e a kde z´aporn´e. Pr´avˇe body, kde se nulov´a vrstevnice funkce f1 prot´ın´a s nulovou vrstevnic´ı funkce f2 , jsou ˇreˇsen´ım soustavy (2). V pˇr´ıkladech 1 - 3 zn´azorn´ıme nulov´e vrstevnice funkc´ı f1 a f2 pomoc´ı syst´emu Maple pˇr´ıkazem implicitplot z bal´ıku plots. Pˇr´ali bychom si, obdobnˇe jako v pˇr´ıpadˇe n = 1 , abychom naˇsli Contents
First
Last
Prev
Next
Back
Close
Quit
takov´e oblasti v R2 a v nich prvn´ı pˇribl´ıˇzen´ı, kter´e by zaruˇcilo konvergenci numerick´e metody k ˇreˇsen´ı. Nahl´edneme, ˇze separovat pr˚ useˇc´ıky nulov´ ych vrstevnic do takov´ ych oblast´ı nen´ı pro n = 2 jednoduch´e. Pˇ r´ıklad 1. Definujme soustavu neline´arn´ıch rovnic > f1:=x-y^2+1; f1 := x − y 2 + 1 >
f2:=2*x^2-y-1; f2 := 2 x2 − y − 1
a nakresleme grafy pˇr´ısluˇsn´ ych nulov´ ych vrstevnic. >
plots[implicitplot]({f1=0,f2=0},x=-1.5..1.5,y=-1.5..2);
Contents
First
Last
Prev
Next
Back
Close
Quit
2 1.5 y
1 0.5
–1
–0.5
0.5 –0.5
x
1
1.5
–1 –1.5 Tato soustava m´a ˇctyˇri ˇreˇsen´ı, z nichˇz dvˇe jsou relativnˇe bl´ızko sebe, jedno je zˇrejmˇe x1 = [0; −1]. Contents
First
Last
Prev
Next
Back
Close
Quit
Pro ˇreˇsen´ı jedn´e algebraick´e rovnice jsme v Maple pouˇz´ıvali pˇr´ıkaz fsolve (zad´an´ı ve tvaru fsolve(eqns, vars, options)). Pro soustavy dvou rovnic lze pouˇz´ıt stejn´ y pˇr´ıkaz, kde je prvn´ı argument dvojice rovnic (bez nulov´ ych prav´ ych stran). Parametr vars nemus´ıme zad´avat, tj. ani promˇenn´e, ani poˇc´ateˇcn´ı pˇribl´ıˇzen´ı. N´asleduj´ıc´ım pˇr´ıkazem dost´av´ame jeden z koˇren˚ u soustavy, tedy x1 : >
reseni1:=fsolve({f1,f2}); reseni1 := {x = −0.6934800000 10−24 , y = −1.000000000}
Dalˇs´ı ˇreˇsen´ı se pokus´ıme nal´ezt tak, ˇze zad´ame poˇc´ateˇcn´ı pˇribl´ıˇzen´ı, kter´e se zd´a b´ yt dostateˇcnˇe bl´ızk´e jin´emu ˇreˇsen´ı. Dost´av´ame ale znovu prvn´ı nalezen´e ˇreˇsen´ı: > reseni1:=fsolve({f1,f2},{x=0,y=-0.7}); reseni1 := {x = 0., y = −1.000000000} Jiˇz pˇri drobn´e zmˇenˇe poˇc´ateˇcn´ıho pˇribl´ıˇzen´ı dostaneme druh´e hledan´e ˇreˇsen´ı x2 , kter´e je bl´ızk´e ˇreˇsen´ı prvn´ımu. D´ale pak lze syst´emem Maple (m´ame-li ˇstˇest´ı pˇri volbˇe poˇc´ateˇcn´ıch pˇribl´ıˇzen´ı) spoˇc´ıtat ostatn´ı koˇreny soustavy x3 , x4 . > reseni2:=fsolve({f1,f2},{x=0,y=-0.6}); >
reseni2 := {x = −0.2695944364, y = −0.8546376797} reseni3:=fsolve({f1,f2},{x=-1,y=1});
>
reseni3 := {x = −0.8375654353, y = 0.4030317168} reseni4:=fsolve({f1,f2},{x=1,y=1}); reseni4 := {y = 1.451605963, x = 1.107159872}
Contents
First
Last
Prev
Next
Back
Close
Quit
Dalˇs´ım pˇr´ıkladem je soustava rovnic, kterou rovnˇeˇz zn´azorn´ıme graficky. pr˚ useˇc´ıky dvou parabol, jako v pˇr´ıkladu 1.
Stejnˇe budeme hledat
Pˇ r´ıklad 2. Soustava > f1:=x-y^2; f1 := x − y 2 >
f2:=2*x^2-2*y+1; f2 := 2 x2 − 2 y + 1
nem´a ˇreˇsen´ı. Grafy nulov´ ych vrstevnic se neprot´ınaj´ı. >
plots[implicitplot]({f1=0,f2=0},x=-1..1,y=-1..1);
Contents
First
Last
Prev
Next
Back
Close
Quit
1
y
0.5
–0.6 –0.4 –0.2
0.2
0.4
x
0.6
0.8
1
–0.5
–1 N´asleduj´ıc´ım pˇr´ıkazem skuteˇcnˇe nedostaneme ˇreˇsen´ı soustavy. Syst´em Maple pouze pˇrep´ıˇse zad´an´ı Contents
First
Last
Prev
Next
Back
Close
Quit
do jin´eho tvaru: >
reseni1:=fsolve({f1,f2}); reseni1 := fsolve({2 x2 − 2 y + 1, x − y 2 }, {x, y})
Poznamenejme, ˇze syst´em Maple by spr´avnˇe nenalezl ˇreˇsen´ı ani kdybychom do pˇr´ıkazu zadali co nejbliˇzˇs´ı poˇc´ateˇcn´ı pˇribl´ıˇzen´ı k oˇcek´avan´emu ˇreˇsen´ı. V nˇekter´ ych pˇr´ıpadech m˚ uˇze b´ yt hranice mezi ˇz´adn´ ym ˇreˇsen´ım soustavy a pr´avˇe jedn´ım ˇreˇsen´ım zprvu nepostˇrehnuteln´a. V tˇechto pˇr´ıpadech je nutn´e prov´est syst´emem Maple detailnˇejˇs´ı graf. V dalˇs´ım pˇr´ıkladu m´a soustava pr´avˇe jedno ˇreˇsen´ı, ale syst´em Maple pˇri hled´an´ı tohoto ˇreˇsen´ı selh´av´a, i kdyˇz vol´ıme poˇc´ateˇcn´ı pˇribl´ıˇzen´ı dostateˇcnˇe bl´ızko hledan´emu ˇreˇsen´ı. Pˇ r´ıklad 3. Soustava > f1:=x-y^2-1/4;
>
f1 := x − y 2 −
1 4
f2 := x2 − y +
1 4
f2:=x^2-y+1/4;
m´a pr´avˇe jedno ˇreˇsen´ı x1 = [0, 5; 0, 5] , coˇz lze ovˇeˇrit jednoduch´ ym dosazen´ım nebo graficky. >
plots[implicitplot]({f1=0,f2=0},x=-1..1,y=-1..1);
Contents
First
Last
Prev
Next
Back
Close
Quit
1 0.8 y
0.6 0.4 0.2
–0.8 –0.6 –0.4 –0.2 0 –0.2
0.2 0.4 0.6 0.8 x
1
–0.4 –0.6 –0.8 >
reseni:=fsolve({f1,f2},{x=0.3,y=0.5}); Contents
First
Last
Prev
Next
Back
Close
Quit
1 1 reseni := fsolve({x − y 2 − , x2 − y + }, {y = 0.5, x = 0.3}) 4 4 Maple tedy zadanou u ´lohu pˇr´ıkazem fsolve nevyˇreˇsil. V pˇr´ıkladech pro tento text naleznete ˇreˇsen´ı tohoto pˇr´ıkladu Newtonovou metodou.
Newtonova metoda Nejdˇr´ıve zopakujeme odvozen´ı Newtonovy iteraˇcn´ı metody pro soustavu dvou neline´arn´ıch rovnic (2). D´ale v t´eto ˇc´asti uk´aˇzeme, jak postupovat pomoc´ı syst´emu Maple pˇri ˇreˇsen´ı konkr´etn´ı soustavy neline´arn´ıch rovnic. Stejnˇe jako jin´e iteraˇcn´ı metody vych´az´ı Newtonova metoda z vhodn´eho bodu X0 ∈ R2 , tzv. poˇc´ateˇcn´ıho pˇribl´ıˇzen´ı, a sestrojuje posloupnost iterac´ı Xi , kter´a pro i → ∞ konverguje k hledan´emu ˇreˇsen´ı soustavy (2). Necht’ X0 = [x0 , y0 ] je poˇc´ateˇcn´ı pˇribl´ıˇzen´ı k ˇreˇsen´ı X = [x, y] soustavy (2). Poloˇz´ıme X = X0 + ∆X, tj. x = x0 + ∆x , y = y0 + ∆y , a budeme poˇzadovat, aby f (X) = 0, tedy aby f1 (x0 + ∆x , y0 + ∆y ) = 0 (3) f2 (x0 + ∆x , y0 + ∆y ) = 0 . Nap´ıˇseme Taylor˚ uv rozvoj pro vektorovou funkci f = (f1 , f2 ) v okol´ı bodu X0 , kde se omez´ıme pouze na ˇcleny line´arn´ı v ∆X. Pouˇzijeme tedy Taylor˚ uv rozvoj prvn´ıho stupnˇe pro funkce f1 a f2 a dost´av´ame Contents
First
Last
Prev
Next
Back
Close
Quit
pˇribliˇznˇe f1 (X0 ) +
∂f1 ∂f1 (X0 ) ∆x + (X0 ) ∆y = 0 ∂x ∂y
(4)
∂f2 ∂f2 f2 (X0 ) + (X0 ) ∆x + (X0 ) ∆y = 0 . ∂x ∂y Tuto soustavu line´arn´ıch algebraick´ ych rovnic pro nezn´am´e ∆x a ∆y pˇrep´ıˇseme do tvaru ∂f1 1 (X0 ) ∂f (X0 ) ∆x f1 (X0 ) ∂x ∂y = − , ∂f2 ∂f2 ∆y f2 (X0 ) (X0 ) ∂y (X0 ) ∂x tj. J(X0 ) · ∆X = −f (X0 ),
(5)
kde J(X0 ) je matice parci´aln´ıch derivac´ı vektorov´e funkce f v bodˇe X0 , tedy Jacobiho matice. Je-li matice J(X0 ) regul´arn´ı, m´a soustava (5) pr´avˇe jedno ˇreˇsen´ı ∆X. Oznaˇc´ıme-li X1 = X0 + ∆X ,
(6)
je X1 prvn´ı dalˇs´ı pˇribl´ıˇzen´ı soustavy neline´arn´ıch rovnic (2). Pro v´ ypoˇcet dalˇs´ı iterace, tj. dalˇs´ı aproximace koˇrene soustavy (2), postupujeme stejn´ ym zp˚ usobem: povaˇzujeme X1 za nov´e poˇc´ateˇcn´ı pˇribl´ıˇzen´ı a nalezneme ˇreˇsen´ı soustavy line´arn´ıch algebraick´ ych rovnic (jako v pˇr´ıpadˇe rovnice (5)) pro nov´ y vektor nezn´am´ ych ∆X. Obdobnˇe jako v (6) dost´av´ame dalˇs´ı aproximaci ˇreˇsen´ı X2 = X1 + ∆X . D´ale uk´aˇzeme konkr´etn´ı postup pˇri ˇreˇsen´ı soustavy neline´arn´ıch rovnic typu (2) pomoc´ı syst´emu Maple. Contents
First
Last
Prev
Next
Back
Close
Quit
Z pˇredchoz´ı diskuse v tomto textu v´ıme, ˇze pro urˇcen´ı poˇc´ateˇcn´ıho pˇribl´ıˇzen´ı je vhodn´e v syst´emu Maple zn´azornit nulov´e vrstevnice funkc´ı f1 a f2 pˇr´ıkazem implicitplot. Pˇri hled´an´ı dalˇs´ı aproximace je numericky nejobt´ıˇznˇejˇs´ı ˇreˇsit soustavu line´arn´ıch algebraick´ ych rovnic (LAR). Nav´ıc obdobnou soustavu LAR mus´ıme ˇreˇsit opakovanˇe pro kaˇzdou dalˇs´ı iteraci. Mohli bychom sice (tedy zejm´ena pro n = 2) pro v´ ypoˇcet ˇreˇsen´ı soustavy LAR pouˇz´ıt Cramerova pravidla, ale v´ ypoˇcet determinant˚ u vyˇzaduje vˇzdy velk´e mnoˇzstv´ı operac´ı. Obecnˇe je numericky v´ yhodn´e ˇreˇsit soustavu line´arn´ıch algebraick´ ych rovnic pomoc´ı jiˇz osvˇedˇcen´ ych metod. Vˇetˇsinou se pro soustavu line´arn´ıch algebraick´ ych rovnic pouˇz´ıv´a nˇekter´ y ze softwarov´ ych ”bal´ık˚ u” s chybov´ ym hl´aˇsen´ım, pokud je matice soustavy ”bl´ızk´a” matici singul´arn´ı. Jelikoˇz m´ame k dispozici syst´em Maple, naˇcteme hned na zaˇc´atku pˇr´ıkazem with(linalg) programy umoˇzn ˇuj´ıc´ı ˇreˇsit u ´lohy line´arn´ı algebry, tedy tak´e pˇr´ıkazem linsolve ˇreˇsit soustavu line´arn´ıch algebraick´ ych rovnic. >
with(linalg):
Warning, the protected names norm and trace have been redefined and unprotected
Pˇ r´ıklad 4. Je d´ana soustava neline´arn´ıch rovnic > f1:=x^3+y^3-8; f1 := x3 + y 3 − 8 >
f2:=y*x-1; f2 := y x − 1
Grafy nulov´ ych vrstevnic se prot´ınaj´ı ve dvou bodech. Contents
First
Last
Prev
Next
Back
Close
Quit
>
plots[implicitplot]({f1=0,f2=0},x=-5..8,y=-5..5);
4 y 2
–4
–2
0
2
4 x
6
8
–2 –4
Contents
First
Last
Prev
Next
Back
Close
Quit
>
f := vector([f1,f2]); f := [x3 + y 3 − 8, y x − 1]
Budeme potˇrebovat Jacobiho matici, tj. matici parci´aln´ıch derivac´ı vektorov´e funkce f . V Maplu existuje funkce jacobian pro jej´ı v´ ypoˇcet: > Df := jacobian(f,[x,y]); 3 x2 3 y 2 Df := y x Pomoc´ı obr´azku zn´azorˇ nuj´ıc´ı nulov´e vrstevnice zvol´ıme poˇc´ateˇcn´ı aproximaci jednoho z koˇren˚ u, napˇr´ıklad Aprox0 = [1; 2]. Pro dosazen´ı jednotliv´ ych sloˇzek bodu Aprox0 do Jacobiho matice Df pouˇzijeme pˇr´ıkazu subs. Poznamenejme, ˇze pˇr´ıkaz evalm vyhodnocuje v´ yrazy ve vektorech nebo matic´ıch. N´asleduj´ıc´ımi pˇr´ıkazy z´ısk´ame prvn´ı aproximaci koˇrene soustavy Aprox1 . >
Aprox[0]:=[1.0,2.0]; Aprox 0 := [1.0, 2.0]
>
J[0]:=subs(x=Aprox[0][1],y=Aprox[0][2],evalm(Df)); 3.00 12.00 J0 := 2.0 1.0
>
F[0]:=subs(x=Aprox[0][1],y=Aprox[0][2],evalm(f)); F0 := [1.000, 1.00] Contents
First
Last
Prev
Next
Back
Close
Quit
>
DX:=linsolve(J[0],-F[0]); DX := [−0.5238095238, 0.04761904767]
>
Aprox[1]:=evalm(Aprox[0]+DX); Aprox 1 := [0.4761904762, 2.047619048]
Dalˇs´ı aproximace koˇrene bychom z´ıskali opakov´an´ım stejn´ ych pˇr´ıkaz˚ u, jenom s jin´ ymi hodnotami. Pro takov´ y pˇr´ıpad se ve vˇsech programovac´ıch jazyc´ıch pouˇz´ıv´a pˇr´ıkaz cyklu. V syst´emu Maple je rovnˇeˇz moˇzno pouˇz´ıt pˇr´ıkaz cyklu, kter´ y m´a tvar for n from 1 to nmax do pro opakuj´ıc´ı se skupinu pˇr´ıkaz˚ u za v´ yrazem do. Nejdˇr´ıve se dosad´ı n=1 a po proveden´ı skupiny pˇr´ıkaz˚ u (za pˇr´ıkazem do) se hodnota n zvˇetˇs´ı o 1. Skupina pˇr´ıkaz˚ u se provede znovu, a to tolikr´at, aˇz n dos´ahne hodnotu n=nmax, tj. celkem nmax-kr´at. Pokud napˇr´ıklad chceme vypoˇc´ıtat dalˇs´ı tˇri aproximace ˇreˇsen´ı Newtonovou metodou, zvol´ıme nmax = 3. >
nmax:=3; nmax := 3
>
for n from 1 to nmax do
> > > >
J[n]:=subs(x=Aprox[n][1],y=Aprox[n][2],evalm(Df)); F[n]:=subs(x=Aprox[n][1],y=Aprox[n][2],evalm(f)); DX:=linsolve(J[n],-F[n]); Aprox[n+1]:= evalm(Aprox[n]+DX);
>
end do; Contents
First
Last
Prev
Next
Back
Close
Quit
J1 :=
0.6802721088 12.57823130 2.047619048 0.4761904762
F1 := [0.693121698, −0.0249433105] DX := [0.02531510182, −0.05647398579] Aprox 2 := [0.5015055780, 1.991145062] J2 :=
0.7545235344 11.89397597 1.991145062 0.5015055780
F2 := [0.020343096, −0.0014296448] DX := [0.001167441817, −0.001784429226] Aprox 3 := [0.5026730198, 1.989360633] J3 :=
0.7580404944 11.87266718 1.989360633 0.5026730198
F3 := [0.000021070, −0.20831 10−5 ] DX := [0.1520067082 10−5 , −0.1871716950 10−5 ] Aprox 4 := [0.5026745399, 1.989358761] Vid´ıme, ˇze se Aprox4 liˇs´ı od Aprox3 aˇz na p´at´em desetinn´em m´ıstˇe. Pro praktick´e u ´ˇcely m˚ uˇzeme tedy prohl´asit koˇren Aprox4 za pˇribliˇzn´ y koˇren soustavy. Vˇetˇsinou je vˇsak pˇredem zad´ana pˇresnost ε , s jakou poˇzadujeme koˇren soustavy. Potom ukonˇc´ıme proces v´ ypoˇctu aproximac´ı aˇz tehdy, kdyˇz plat´ı Contents
First
Last
Prev
Next
Back
Close
Quit
k∆Xk < ε. Poznamenejme, ˇze je vhodn´e pouˇz´ıt numericky nejjednoduˇsˇs´ı normu vektoru, tedy ovˇeˇrit, zda-li jiˇz plat´ı | ∆x | + | ∆y |< ε. Z´avˇerem nutno ˇr´ıci, ˇze Newtonova metoda je u ´ˇcinn´a jen tehdy, pokud konverguje. Nalezen´ı vhodn´eho poˇc´ateˇcn´ıho pˇribl´ıˇzen´ı je ˇcasto obt´ıˇzn´e, ale pokud metoda konverguje, konverguje ke koˇreni soustavy. Pro soustavy neline´arn´ıch rovnic nejsou obecnˇe zn´amy metody, kter´e vˇzdy konverguj´ı. Probl´em ˇreˇsen´ı soustav neline´arn´ıch rovnic je jedn´ım z nejobt´ıˇznˇejˇs´ıch probl´em˚ u v numerick´e matematice a v souˇcasnosti nejsou zn´amy obecn´e uspokojiv´e postupy pro jeho ˇreˇsen´ı.
Contents
First
Last
Prev
Next
Back
Close
Quit