2. Nelinearne enačbe

33
2. Reˇ sevanje nelinearnih enaˇ cb cemo reˇ sitve enaˇ cbe f (x)=0, kjer je f : R R dana realna funkcija. Ponavadi zahtevamo, da je f zvezna, saj imamo potem naslednji eksistenˇ cni 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 b x Bor Plestenjak - Numeriˇ cna analiza 2010

Transcript of 2. Nelinearne enačbe

Page 1: 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

Page 2: 2. Nelinearne enačbe

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

Page 3: 2. Nelinearne enačbe

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

Page 4: 2. Nelinearne enačbe

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

Page 5: 2. Nelinearne enačbe

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

Page 6: 2. Nelinearne enačbe

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

Page 7: 2. Nelinearne enačbe

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

Page 8: 2. Nelinearne enačbe

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

Page 9: 2. Nelinearne enačbe

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

Page 10: 2. Nelinearne enačbe

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

Page 11: 2. Nelinearne enačbe

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

Page 12: 2. Nelinearne enačbe

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

Page 13: 2. Nelinearne enačbe

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

Page 14: 2. Nelinearne enačbe

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

Page 15: 2. Nelinearne enačbe

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

Page 16: 2. Nelinearne enačbe

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

Page 17: 2. Nelinearne enačbe

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

Page 18: 2. Nelinearne enačbe

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

Page 19: 2. Nelinearne enačbe

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

Page 20: 2. Nelinearne enačbe

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

Page 21: 2. Nelinearne enačbe

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

Page 22: 2. Nelinearne enačbe

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

Page 23: 2. Nelinearne enačbe

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

Page 24: 2. Nelinearne enačbe

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

Page 25: 2. Nelinearne enačbe

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

Page 26: 2. Nelinearne enačbe

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

Page 27: 2. Nelinearne enačbe

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

Page 28: 2. Nelinearne enačbe

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

Page 29: 2. Nelinearne enačbe

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

Page 30: 2. Nelinearne enačbe

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

Page 31: 2. Nelinearne enačbe

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

Page 32: 2. Nelinearne enačbe

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

Page 33: 2. Nelinearne enačbe

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