2. Nelinearne enačbe
Transcript of 2. Nelinearne enačbe
2. Resevanje nelinearnih enacb
Iscemo resitve enacbe f(x) = 0, kjer je f : R → R dana realna funkcija. Ponavadi
zahtevamo, da je f zvezna, saj imamo potem naslednji eksistencni izrek.
Izrek 1. Ce je f realna zvezna funkcija na [a, b] in velja f(a) ·f(b) < 0, potem obstaja
tak ξ ∈ (a, b), da je f(ξ) = 0.
a bx
Bor Plestenjak - Numericna analiza 2010
2.1 Bisekcija
Ponavadi ne obstaja tako predstavljivo stevilo x∗, da bi bilo f(x∗) eksaktno nic. Pri
bisekciji iscemo cim manjsi interval [a, b], na katerem je funkcija f v krajiscih razlicno
predznacena.
function c = bisekcija(f ,a,b,ε)
while |b− a| > ε|b|c = a+ (b− a)/2if sign(f(a)) = sign(f(c))
a = c
else
b = c
end
end
Bor Plestenjak - Numericna analiza 2010
Bisekcija
• Zakaj namesto c = (a+b)/2 uporabljamo c = a+(b−a)/2? fl((a+b)/2) lahko
ne lezi na [a, b]. V P (10, 4,−10, 10) tako npr. za a = 0.6666 in b = 0.6667
dobimo fl((a+ b)/2) = 0.6665.
◦ Zakaj ne uporabljamo pogoj |b−a| > ε? Namesto relativnega pogoja lahko vzamemo
tudi absolutnega, a moramo paziti. V enojni natancnosti npr. iz a = 1000 in b = 1001
ne moremo dobiti intervala, za katerega bi veljalo |b− a| ≤ 10−10.
• Zakaj ne testiramo, ce je fc = 0? Ker ta pogoj skoraj nikoli ni izpolnjen.
• Zakaj namesto fa · fc > 0 preverjamo sign(fa) = sign(fc)? Racunanje produkta
fa · fc je zahtevnejse od preverjanja predznakov, poleg tega pa se tudi izognemo
moznim tezavam zaradi podkoracitve ali prekoracitve.
• Metoda ocitno odpove pri sodih niclah.
• Bisekcijo lahko uporabljamo tudi za iskanje lihih polov, racunati pa moramo na tezave
zaradi prekoracitve v blizini pola.
• Ce je na [a, b] vec resitev, bisekcija najde le eno.
• V vsakem koraku se napaka priblizno razpolovi.
Bor Plestenjak - Numericna analiza 2010
Zgled: Z bisekcijo poiscimo nicle funkcije f(x) = x− tan(x).
Tezko je poiskati dober zacetni interval, saj so nicle v blizini polov. Resitev je, da namesto
f iscemo nicle g(x) = x cos(x)− sin(x). Sedaj nimamo tezav s poli.
Bor Plestenjak - Numericna analiza 2010
2.2 Navadna iteracija
Pri navadni iteraciji enacbo f(x) = 0 zapisemo v obliki x = g(x) in nato delamo iteracijo
xr+1 = g(xr), r = 0, 1, . . .. Funkcijo g imenujemo iteracijska funkcija.
Zgledi iteracijskih funkcij:
• g(x) = x− f(x),
• g(x) = x− Cf(x), kjer je C 6= 0,
• g(x) = x− h(x)f(x), kjer je h(x) 6= 0.
Bor Plestenjak - Numericna analiza 2010
Zgled : Iz grafa polinoma p(x) = x3 − 5x+ 1
vidimo, da ena nicla lezi blizu 0. Enacbo zapisemo v obliki x = 1+x3
5 in tvorimo zaporedje
priblizkov
x0 = 0
xr+1 =1+x3r
5 , r = 0, 1, . . .
To zaporedje skonvergira k α = 0.210639676 . . .. Iterativna funkcija je dobra le za
srednjo niclo. Do ostalih dveh korenov pridemo npr. z iteracijo xr+1 = 3√
5xr − 1.
Bor Plestenjak - Numericna analiza 2010
Konvergenca navadne iteracije
Naj bo α koren enacbe x = g(x). O konvergenci v blizini korena odloca g′(α). Ce je
|g′(α)| < 1, imamo privlacno tocko, sicer pa odbojno tocko.
Izrek 2. Naj bo α koren enacbe x = g(x), naj bo g zvezno odvedljiva in naj velja
|g′(α)| < 1. Potem obstaja taka okolica I za α, da za vsak x0 ∈ I zaporedje
xr+1 = g(xr), r = 0, 1, . . .
konvergira k α.
Dokaz. Naj bo ek = xk − α napaka priblizka xk.
Veljaek+1 = xk+1 − α = g(xk)− g(α) = g
′(ξk)(xk − α),
kjer je ξk tocka med xk in α.
Ce zacnemo dovolj blizu α, potem zaradi |g′(α)| < 1 obstaja konstanta C < 1, da je |g′(ξk)| ≤ C < 1.Tako dobimo
|ek+1| ≤ C|ek| ≤ C2|ek−1| ≤ · · · ≤ C
k|e0|in ko gre k →∞ gre xk → α.
Bor Plestenjak - Numericna analiza 2010
Red konvergence
Definicija 3. Red konvergence je p, ce v blizini α obstajata konstanti C1, C2 > 0, da
velja
C1|xr − α|p ≤ |xr+1 − α| ≤ C2|xr − α|p.
Lema 4. Naj bo iteracijska funkcija g v okolici negibne tocke α p-krat zvezno odvedljiva
in naj velja g(k)(α) = 0, k = 1, . . . , p − 1 in g(p)(α) 6= 0. Potem ima iteracija
xr+1 = g(xr), r = 0, 1, . . ., v blizini resitve red konvergence p.
Dokaz. Iz razvoja g v Taylorjevo vrsto okrog α dobimo g(x) = α+ 1p!(x− α)pg(p)(ξ).
Posebni primeri konvergence:
• p = 1: linearna (konstantno korakov za novo tocno decimalko)
• p = 2: kvadraticna (stevilo tocnih decimalk se v vsakem koraku podvoji)
• p = 3: kubicna (stevilo tocnih decimalk se v vsakem koraku potroji)
• 1 < p < 2: superlinearna
Bor Plestenjak - Numericna analiza 2010
Primerjava nekaterih iteracijskih funkcij za enacbo x2 + ln x = 0.
Za enacbo x2 + ln x = 0, ki ima resitev α = 0.6529186, primerjamo tri iteracijske
funkcije:
• g1(x) = e−x2, g′1(α) = −0.853, red je 1,
• g2(x) = 12(x+ e−x
2), g′2(α) = 0.074, red je 1,
• g3(x) = 2x3+e−x2
1+2x2, g′3(α) = 0, red je 2.
Za razlicne zacetne priblizke smo primerjali stevilo iteracij dokler se zaporedna priblizka ne
razlikujeta za manj kot 10−12.
x0 0.6 0.7 1 10 100
g1 163 162 173 175 175
g2 14 14 15 18 21
g3 5 5 7 109 10013
Bor Plestenjak - Numericna analiza 2010
2.3 Newtonova ali tangentna metoda
Naj bo x priblizek za niclo funkcije f . Ce upostevamo le prva dva clena v razvoju f(x+h)
v Taylorjevo vrsto
f(x+ h) = f(x) + f′(x)h+
f ′′(x)h2
2+ · · · ,
dobimo
f(x+ h) ≈ f(x) + f′(x)h.
Ce predpostavimo, da je f ′(x) 6= 0, iz enacbe f(x+h) = 0 dobimo h ≈ −f(x)/f ′(x).
Ker je to le priblizek, postopek ponavljamo:
r = 0, 1, . . .
xr+1 = xr −f(xr)
f ′(xr)
Izpeljali smo tangentno oz. Newtonovo metodo.
Bor Plestenjak - Numericna analiza 2010
Geometrijska izpeljava
Pri tangentni metodi funkcijo f aproksimiramo s tangento v tocki (xr, f(xr)) in za
naslednji priblizek vzamemo presecisce tangente z osjo x.
xr+1 = xr −f(xr)
f ′(xr)
Analiticno je tangentna metoda posebna oblika navadne iteracije, kjer za iteracijsko funkcijo
vzamemo
g(x) = x−f(x)
f ′(x).
Bor Plestenjak - Numericna analiza 2010
Red konvergence tangentne metode
g(x) = x−f(x)
f ′(x), z odvajanjem dobimo g
′(x) =
f(x)f ′′(x)
f ′2(x).
Ce je α enostaven koren, dobimo g′(α) = 0 in konvergenca tangentne metode je vsaj
kvadraticna. V tem primeru je
g′′(α) =
f ′′(α)
f ′(α),
torej je v primeru f ′′(α) 6= 0 konvergenca kvadraticna, sicer pa vsaj kubicna.
Ce je α veckratni koren, je konvergenca linearna, izkaze se, da za m-kratno niclo velja
limx→α g′(x) = 1− 1
m.
Konvergenca tangentne metode je
• kvadraticna: enostaven koren in f ′′(α) 6= 0 (standardna situacija),
• linearna: veckratni koren,
• vsaj kubicna: enostaven koren in f ′′(α) = 0.
Bor Plestenjak - Numericna analiza 2010
Zgled za tangentno metodo
Poglejmo polinom p(x) = x4 − 112 x
3 + 212 x
2 − 8x+ 2 = (x− 12)(x− 1)(x− 2)2.
Ce vzamemo zacetne priblizke 0.6, 1.1 in 2.1 opazimo, da imamo pri 0.6 kvadraticno
konvergenco, pri 1.1 kubicno konvergenco (prevoj) in pri 2.1 linearno konvergenco (dvojna
nicla).
Bor Plestenjak - Numericna analiza 2010
Zgled za tangentno metodo
1: 0.4352941176470592: 0.4893377302513863: 0.4996394867498804: 0.4999995675156965: 0.4999999999993776: 0.5000000000000007: 0.500000000000000
1: 0.9941176470588262: 1.0000012288182463: 1.0000000000000014: 1.000000000000001
1: 2.0535620052770512: 2.0278766853511873: 2.0142474938178684: 2.0072063268211485: 2.0036245395437506: 2.0018177101214267: 2.0009102275154938: 2.0004554584355719: 2.000227815584859
10: 2.00011392940793911: 2.00005697011590112: 2.00002848637698113: 2.00001424346700314: 2.00000712189769715: 2.00000356104860516: 2.00000178057494717: 2.00000089069201918: 2.00000044794600519: 2.00000022323117920: 2.00000011182657321: 2.00000006946678322: 2.00000001832416423: 2.000000018324164
Bor Plestenjak - Numericna analiza 2010
Konvergencni izreki za tangentno metodo
Pri enostavni nicli imamo vedno konvergenco, ce je zacetni priblizek dovolj dober.
Izrek 5. Naj bo α enostavna nicla dvakrat zvezno odvedljive funkcije f . Potem obstajata
okolica I tocke α in konstanta C, da tangentna metoda konvergira za vsak x0 ∈ I in da
priblizki xr zadoscajo oceni
|xr+1 − α| ≤ C(xr − α)2.
Pri dolocenih pogojih lahko dokazemo tudi globalno konvergenco iz poljubne zacetne tocke.
Izrek 6. Naj bo f na intervalu I = [a,∞) dvakrat zvezno odvedljiva, narascajoca in
konveksna funkcija, ki ima niclo α ∈ I. Potem je α edina nicla f na I in za vsak x0 ∈ Itangentna metoda konvergira k α.
Bor Plestenjak - Numericna analiza 2010
Tangentna metoda potrebuje dobre zacetne priblzke
Izreki nam zagotavljajo konvergenco tangentne metode dovolj blizu nicle ali pa za funkcijo
prave oblike. Sicer pa imamo lahko zelo razlicno obnasanje in slepa uporaba tangentne
metode ni priporocljiva. Naslednja dva primera kazeta divergenco, ko nismo dovolj blizu
nicle in zaciklanje priblizkov.
Bor Plestenjak - Numericna analiza 2010
Tangentna metoda v kompleksnem
Tangentno metodo lahko uporabljamo tudi za racunanje kompleksnih korenov enacb. Naj
bo f analiticna funkcija in naj velja f ′(z0) 6= 0. Oznacimo ploskev w(z) = |f(z)| nad
kompleksno ravnino. Kompleksno stevilo
z1 = z0 −f(z0)
f ′(z0),
ki ga dobimo po enem koraku tangentne metode, je presecisce dveh premic:
• presecisca tangentne ravnine na ploskev w = |w(z)| v tocki (z0, w(z0)) z ravnino
w = 0,
• projekcije gradienta na ploskev w = |w(z)| v tocki (z0, w(z0)) na ravnino w = 0.
Ce imamo npr. polinom z realnimi koeficienti in iscemo kompleksno niclo, potem moramo
uporabiti kompleksni zacetni priblizek, sicer bodo vsi priblizki realni.
Bor Plestenjak - Numericna analiza 2010
2.4 Sekantna metoda
Namesto tangente uporabljamo sekanto, potrebujemo dva zacetna priblizka:
xr+1 = xr −xr − xr−1
f(xr)− f(xr−1)f(xr), r = 1, 2, . . . .
Analiticno f ′(xr) aproksimiramo z diferencnim kvocientomf(xr)− f(xr−1)
xr − xr−1
.
Bor Plestenjak - Numericna analiza 2010
Lastnosti sekantne metode
◦ Ne spada med navadno iteracijo, saj je naslednji priblizek odvisen od dveh zadnjih.
◦ Ne potrebujemo odvodov.
◦ V vsakem koraku izracunamo le eno vrednost funkcije (razen v prvem).
◦ Red konvergence je 1.62 oz. (1 +√
5)/2, kar pomeni, da je superlinearna.
Pri tangentni metodi stevilo tocnih decimalk narasca kot
1, 2, 4, 8, 16,
pri sekantni metodi pa kot
1, 1.6, 2.6, 4.1, 6.6, 10.5, 16.8.
Za maksimalno natancnost v dvojni natancnosti tako pri tangentni metodi potrebujemo 4
korake in izracun 4f in 4f ′. Pri sekantni metodi porabimo 6 korakov in izracun 7f . To
pomeni, da je glede na porabljeno delo sekantna metoda lahko celo boljsa od tangentne.
Bor Plestenjak - Numericna analiza 2010
2.5 Inverzna interpolacija
Posplositev sekantne metode je, da vzamemo zadnje tri priblizke xr, xr−1, xr−2 in funkcijo
f aproksimiramo s parabolo skozi tocke (xr, f(xr)), (xr−1, f(xr−1)), (xr−2, f(xr−2)).
Tako dobimo Mullerjevo metodo. Uporabna je za iskanje kompleksnih nicel z realno
aritmetiko, saj ima dobljena parabola lahko kompleksni nicli. Red konvergence je 1.83, so
pa tezave, kadar ni jasno, katero izmed dveh nicel izbrati.
Obratni pristop je, da zamenjamo vlogi x in y ter poiscemo kvadratni polinom p, za katerega
velja p(f(xr)) = xr, p(f(xr−1)) = xr−1, p(f(xr−2)) = xr−2. Naslednji priblizek je
potem kar xr+1 = p(0). To je inverzna kvadratna interpolacija, red konvergence pa je
1.83 kot pri Mullerjevi metodi.
Mullerjeva m.
inv. kvad. int.
Bor Plestenjak - Numericna analiza 2010
2.6 Kombinirana metoda
S kombiniranjem razlicnih metod lahko dosezemo robustnost in hitro konvergenco. Ce
imamo tak zacetni interval [a, b], da je f(a)f(b) < 0, potem lahko npr. kombiniramo
bisekcijo, sekantno metodo in inverzno kvadratno interpolacijo:
a in b preuredimo tako, da je |f(b)| ≤ |f(a)| ter vzamemo c = a.
Dokler ni |a− b| < ε ponavljaj
a) Izracunaj s: ce je c 6= a naredi en korak inverzne kvadratne interpolacije, sicer pa
sekantne metode.
b) Ce je izpolnjen kateri izmed naslednjih pogojev, naredi korak bisekcije in vzemi s =
(a+ b)/2:
• s ne lezi med (3a+ b)/4 in b,
• v prejsnjem koraku je bila uporabljena bisekcija in |s−b| ≥ |b−c|/2 ali |b−c| < δ,
• v prejsnjem koraku ni bila uporabljena bisekcija in |s−b| ≥ |c−d|/2 ali |c−d| < δ.
c) d = c, c = b, glede na predznak f(s) zamenjaj a oziroma b z s.
d) Po potrebi medsebojno zamenjaj a in b, da je |f(b)| ≤ |f(a)|.
Ker nam tocka nikoli ne pade iz [a, b], imamo zagotovljeno konvergenco, ki je v blizini
nicle superlinearna.
Bor Plestenjak - Numericna analiza 2010
2.7 Nicle polinomov
Pri polinomih pogosto potrebujemo vse nicle polinoma p(x) stopnje n. Tudi ce so
koeficienti polinoma realni, so nicle lahko kompleksne. Za racunanje je na voljo vec
pristopov:
• Z eno izmed navedenih metod (npr. Newtonovo ali Mullerjevo) poiscemo eno niclo x1,
potem pa obravnavamo polinom q(x) = p(x)/(x− x1) ki je za eno nizje stopnje. To
ponavljamo, dokler ne izracunamo vseh nicel. Za stabilnost je potrebno nicle izlocati
v pravilnem vrstnem redu, priporocljivo pa je tudi, da na koncu vse nicle vzamemo kot
zacetne priblizke za originalni polinom p(x) in naredimo se nekaj korakov.
• Iz polinoma sestavimo t.i. pridruzeno matriko A velikosti n× n, katere karakteristicni
polinoma je enak p(x). Nicle polinoma p(x) so potem kar lastne vrednosti matrike A.
Tako nicle izracuna npr. Matlab z ukazom roots.
• Uporabimo posebne metode, ki so namenjene samo za polinome, kot so npr. Laguerrova,
Bairstowova, Jenkins-Traubova metoda, itd.
Bor Plestenjak - Numericna analiza 2010
Wilkinsonov zgled
Nicle polinomov so lahko zelo obcutljive na motnje koeficientov. Tako ima npr. polinom
p(x) = (x− 1)(x− 2) · · · (x− 20) = x20 − 210x
19+ · · ·+ 20!
nicle 1, 2, . . . , 20, tocne nicle polinoma
g(x) = p(x)− 2−23x
19
pa so
x9 = 8.91752
x10,11 = 10.0953± 0.64310i...
x16,17 = 16.7307± 2.81263i
x18,19 = 19.5024± 1.94033i
x20 = 20.8469
Ceprav so vse nicle enostavne in lepo separirane, majhna motnja povzroci velike spremembe.
Bor Plestenjak - Numericna analiza 2010
Wilkinsonov zgled, 2. del
Wilkinson je s pomocjo zgornjega primera pokazal, da je racunanje lastnih vrednosti matrike
preko nicel karakteristicnega polinoma lahko nestabilno. Standardni postopek je namrec bil:
• Vzamemo matriko A ∈ Rn×n in izracunamo koeficiente karakteristicnega polinoma
p(x) = a0 + a1x+ · · ·+ anxn.
• Z nekim algoritmom za racunanje nicel polinoma izracunamo nicle polinoma p(x) in to
so lastne vrednosti.
Danes se je postopek obrnil. Ce v Matlabu pozenete ukaz za racunanje nicel polinoma
p(x), se zgodi naslednje:
• Iz polinoma p(x) se sestavi matrika, katere karakteristicni polinoma je p(x).
• Z algoritmom za racunanje lastnih vrednosti se izracunajo lastne vrednosti A in to so
nicle nasega polinoma.
Bor Plestenjak - Numericna analiza 2010
Resevanje nelinearnih enacb v Matlabu
V standardni verziji je za iskanje nicle realne funkcije ene spremenljivke na voljo funkcija fzero, ki uporabljakombinirano metodo. Oblika je fzero(fun,x0,options,p1,p2,...).
• S prvim argumentom fun podamo funkcijo, katere niclo iscemo. Moznosti so:
◦ v obliki niza z definicijo funkcije, npr. fzero(’cos(x)-x’,0),◦ v obliki t.i. inline funkcije, npr. f=inline(’cos(x)-x’); fzero(f,[-1,1]),◦ v obliki niza z imenom funkcije, npr. fzero(’cos(x)-x’,0),◦ s kazalcem na funkcijo, npr. fzero(@humps,1).
• Drugi argument x0 je zacetni priblizek, ki je vektor z eno ali dvema komponentama.
◦ fzero(’cos(x)-x’,[-1,1]): podamo tocki, kjer je funkcija razlicno predznacena,◦ fzero(’cos(x)-x’,0): Matlab z iskanjem levo in desno sam isce zacetni interval.
• S tretjim argumentom lahko nastavimo parametre s pomocjo funkcije optimset, nprfzero(’cos(x)-x’,0,optimset(’Display’,’iter’,’TolX’,1e-4)). Parametri, ki jih lahko na-stavimo so:
◦ ’Display’: ali se izpisujejo tekoci priblizki, moznosti so ’iter’, ’off’, ’final’.◦ ’TolX’: pogoj za konec (ko bo razlika zadnjih dveh priblizkov pod mejo).◦ ’MaxIter’: maksimalno stevilo iteracij.◦ ’TolFun’: pogoj za konec (ko bo vrednost funkcije pod mejo).
• Z naslednjimi argumenti lahko nastavljamo dodatne argumente funkcije fun, ce je to funkcija vecspremenljivk. Zgled je f=inline(’besselj(0,x)-y’,’x’,’y’); fzero(f,[1 2],[],0.5).
Bor Plestenjak - Numericna analiza 2010
Zgled - dvig tracnice
f
d
d+eh
r
Imamo 2d dolgo tracnico, ki je na obeh koncih
trdno vpeta. Tracnica se raztegne za 2e in
se dvigne v obliki kroznega loka. Izracunaj,
koliksna je maksimalna oddaljenost od tal.
sinφ = d/r in rφ = d+ e, torej
sinφ
φ=
d
d+ e.
h = (1− cosφ)r = 2 sin2 (φ
2
)d+ e
φ.
Ce vzamemo d = 75 in e = 0.005, potem dobimo φ = 0.01999953335176 in nato
h = 0.75000749994107.
Bor Plestenjak - Numericna analiza 2010
Veckratne nicle
Za veckratne nicle velja pravilo, da za m kratno niclo lahko pravilno izracunamo le 1/m
decimalk, ki so na voljo. Tako npr. pri dvojni nicli dobimo le polovico, pri trojni nicli pa le
tretjino tocnih decimalk.
Ce vzamemo npr. f(x) = x4 − 7x3 + 18x2 − 20x+ 8 = (x− 1)(x− 2)3, dobimo s
tangentno metodo in zacetnim priblizkom 2.1:
1: 2.0676470588239312: 2.0455644308088353: 2.0305937551710174: 2.0204957583528925: 2.0137092724204856: 2.0091600227690007: 2.0061158922251488: 2.004081383953162. . . . .33: 1.99995158593283534: 1.99996825987540435: 1.99997590089332936: 1.99998609673505737: 1.999986096735057
Bor Plestenjak - Numericna analiza 2010
Dogajanje v okolici veckratne nicle
Poglejmo si racunanje vrednosti polinoma
x9−18x
8+144x
7−672x6+2016x
5−4032x4+5376x
3−4608x2+2304x−512,
ki je razclenjen izraz (x− 2)9, v okolici tocke 2. Z Matlabom dobimo
Bor Plestenjak - Numericna analiza 2010
Dogajanje v okolici veckratne nicle, 2.del
Napake niso povsem nakljucne, temvec tvorijo vzorec, ki ga opazimo, ce pogledamo izracun
pri prvih 2000 predstavljivih stevilih vecjih od 2:
Bor Plestenjak - Numericna analiza 2010
Sledenje implicitno podane funkcije
Denimo, da bi radi narisali graf krivulje, ki je implicitno podana z enacbo f(x, y) = 0.
Potrebujemo torej cim vec tock (xi, yi), za katere velja f(xi, yi) = 0.
Ce je (x0, y0) tocka na krivulji, potem lahko pricakujemo, da se bo ob majhni spremembi
x malo spremenil tudi y. Tu lahko uporabimo tangentno metodo, saj ima kvadraticno
konvergenco in vedno konvergira, ce je zacetni priblizek dovolj dober. Tako lahko kot
zacetni priblizek za f(x0 + dx, y) = 0 vzamemo kar y0.
Tezave se pojavijo, kadar se funkcija obraca, ima veckratne tocke in podobno. V teh
primerih si lahko pomagamo z zamenjavo spremenljivk x in y. Kot kriterij za to, v katero
smer naj se premikamo, lahko sluzita parcialna odvoda f po x in y.
(x0,y0)(x1,y1) (x2,y2)
(x3,y3)
(x4,y4)
f(x,y)=0
Bor Plestenjak - Numericna analiza 2010
Zgled - sekularna enacba
Pri racunanju lastnih vrednosti simetricne matrike z metodo deli in vladaj je potrebno
poiskati resitve sekularne enacbe f(λ) = 0, kjer je
f(λ) = 1 +
n∑i=1
u2i
di − λ.
Velja dn < · · · < d2 < d1 in
ui 6= 0 za i = 1, . . . , n.
Kako zgleda graf f(λ)? Poli so v di, asimptota je y = 1. Ker je f ′(λ) =∑n
i=1
u2i
(di−λ)2,
je f med poli strogo narascajoca. Nicle lezijo med poli, ena pa desno od zadnjega pola.
Slika je za primer u = [0.03 0.05 0.05 0.03] in d = [1 2 3 4].
Bor Plestenjak - Numericna analiza 2010
Sekularna enacba, 2.del
Navadne tangentne metode ne moremo uporabiti, saj so nicle lahko zelo blizu polov in
bi potrebovali zelo dobre priblizke. Namesto aproksimacije funkcije s tangento zato raje
uporabimo preprosto racionalno funkcijo, ki se prilega funkciji f .
Denimo, da iscemo resitev na intervalu (di+1, di), zacetni priblizek pa je xr. Sedaj
poiscemo racionalno funkcijo oblike
h(λ) =c1
di − λ+
c2
di+1 − λ+ c3,
za katero velja h(xr) = f(xr) in f ′(xr) = h′(xr).
Enacba h(λ) = 0 ima dve resitvi, za xr+1 pa vzamemo tisto, ki lezi znotraj (di+1, di).
Konvergenca je zelo hitra, saj h zelo dobro aproksimira f na intervalu (di+1, di).
Bor Plestenjak - Numericna analiza 2010
Sekularna enacba, podrobnosti
Zaradi stabilnosti razdelimo f na dva dela kot
f(λ) = 1 +
i∑k=1
u2k
dk − λ+
n∑k=i+1
u2k
dk − λ=: 1 + ψ1(λ) + ψ2(λ).
To naredimo zato, da v vsoti za ψ1(λ) oziroma ψ2(λ) sestevamo enako predznacene clene.
Sedaj dolocimo c1, c′1 tako, da za
h1(λ) =c1
di − λ+ c
′1
velja h1(xr) = ψ1(xr) in h′1(xr) = ψ′1(xr). Podobno dolocimo c2, c′2 tako, da za
h2(λ) =c2
di+1 − λ+ c
′2
velja h2(xr) = ψ2(xr) in h′2(xr) = ψ′2(xr). Sedaj je h(λ) = 1 + h1(λ) + h2(λ)
iskana racionalna funkcija.
Bor Plestenjak - Numericna analiza 2010