63
Reˇ sevanje nelinearnih enaˇ cb cemo reˇ sitve enaˇ cbe f (x ) = 0, kjer je f : R R (ali C C) dana funkcija. Na sploˇ sno je o obstoju in ˇ stevilu reˇ sitev enaˇ cbe f (x ) = 0 teˇ zko karkoli povedati. Tako ima enaˇ cba lahko: eno samo reˇ sitev, primer je e x + x = 0, neskonˇ cno ˇ stevilo reˇ sitev, primer je x + tan x = 0, konˇ cno ˇ stevilo reˇ sitev, primer je x 3 - 5x + 1 = 0, nobene realne reˇ sitve, primer je x 2 + 1 = 0 (ima pa seveda reˇ sitve v C). Naj bo α niˇ cla funkcije f , ki je zvezno odvedljiva v okolici α. ˇ ce je f 0 (α) 6= 0, je α enostavna niˇ cla funkcije f , ˇ ce je f 0 (α) = 0, je α veˇ ckratna niˇ cla funkcije f , ˇ ce je f zadostikrat zvezno odvedljiva, iz f (α)= f 0 (α)= ··· = f (m-1) (α) = 0 in f (m) (α) 6= 0 sledi, da je α m-kratna niˇ cla funkcije f . B. Plestenjak, J.Kozak: Uvod v numeriˇ cne metode 2011-2012 1 / 63

Re sevanje nelinearnih ena cb - uni-lj.si

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Re sevanje nelinearnih ena cb - uni-lj.si

Resevanje nelinearnih enacb

Iscemo resitve enacbe f (x) = 0, kjer je f : R→ R (ali C→ C) danafunkcija. Na splosno je o obstoju in stevilu resitev enacbe f (x) = 0 tezkokarkoli povedati. Tako ima enacba lahko:

eno samo resitev, primer je ex + x = 0,

neskoncno stevilo resitev, primer je x + tan x = 0,

koncno stevilo resitev, primer je x3 − 5x + 1 = 0,

nobene realne resitve, primer je x2 + 1 = 0 (ima pa seveda resitve vC).

Naj bo α nicla funkcije f , ki je zvezno odvedljiva v okolici α.

ce je f ′(α) 6= 0, je α enostavna nicla funkcije f ,

ce je f ′(α) = 0, je α veckratna nicla funkcije f ,

ce je f zadostikrat zvezno odvedljiva, izf (α) = f ′(α) = · · · = f (m−1)(α) = 0 in f (m)(α) 6= 0 sledi, da je αm-kratna nicla funkcije f .

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 1 / 63

Page 2: Re sevanje nelinearnih ena cb - uni-lj.si

Obcutljivost nicle

Naj bo α enostavna nicla funkcije f , ki je v tocki α zvezno odvedljiva.Potem je odvod inverzne funkcije enak 1/f ′(α) in je 1/|f ′(α)| absolutnaobcutljivost nicle α: za kaksen faktor se najvec lahko spremeni nicla gledena spremembo vrednosti funkcije. O relativni obcutljivosti ne moremogovoriti, saj je f (α) = 0. Ce je x priblizek za enostavno niclo α in velja|f (x)| = ε, sledi |x − α| ≈ ε/|f ′(α)|.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 2 / 63

Page 3: Re sevanje nelinearnih ena cb - uni-lj.si

Ce je nicla veckratna, je f ′(α) = 0, kar pomeni, da je neskoncnoobcutljiva. Ce je nicla npr. dvojna, iz razvoja v Taylorjevo vrsto iz|f (x)| = ε v blizini nicle sledi

|x − α| ≈

√2ε

|f ′′(α)|.

To pomeni, da lahko dvojno niclo izracunamo le z natancnostjo O(√ε).

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 3 / 63

Page 4: Re sevanje nelinearnih ena cb - uni-lj.si

Zgled nelinearne enacbe

Imamo 150m dolgo tracnico, ki je na obeh koncih trdno vpeta. Zaradivelike vrocine se tracnica raztegne za 1cm in se dvigne v obliki kroznegaloka. Na 8 decimalk tocno izracunaj, koliksna je maksimalna oddaljenostod tal.

150m

150m+1cm

h=?

Tocen rezultat je ?

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 4 / 63

Page 5: Re sevanje nelinearnih ena cb - uni-lj.si

Zgled - dvig tracnice

f

d

d+eh

r

sinφ = d/r in rφ = d + e,torej

sinφ

φ=

d

d + e.

Ko resimo enacbo in dobimo φ,lahko izracunamo

h = (1−cosφ)r = 2 sin2(φ

2

)d + e

φ.

Ce vzamemo d = 75 in e = 0.005, potem dobimo φ = 0.01999953335176in nato h = 0.75000749994107.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 5 / 63

Page 6: Re sevanje nelinearnih ena cb - uni-lj.si

Bisekcija

Izrek

Ce je f realna zvezna funkcija na [a, b] in velja f (a) · f (b) < 0, potemobstaja tak ξ ∈ (a, b), da je f (ξ) = 0.

a bx

Najpogosteje ne obstaja tako predstavljivo stevilo ξ, da bi bilo f (ξ)eksaktno nic. Iscemo torej cim manjsi interval [a, b], na katerem jefunkcija f v krajiscih razlicno predznacena.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 6 / 63

Page 7: Re sevanje nelinearnih ena cb - uni-lj.si

Bisekcija

1cm0cm

function c = bisekcija(f , a, b, ε)

while|b − a| > εdo

c = a + b−a2

if sgn(f (a)) = sgn(f (c))then

a = c

else

b = c

end

end

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 7 / 63

Page 8: Re sevanje nelinearnih ena cb - uni-lj.si

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.

Pri pogoju |b − a| > ε moramo paziti. V enojni natancnosti npr. iza = 1000 in b = 1001 ne moremo dobiti intervala, za katerega biveljalo |b − a| ≤ 10−10.

Zakaj ne testiramo, ce je f (c) = 0? Ker ta pogoj skoraj nikoli niizpolnjen.

Zakaj namesto f (a) · f (c) > 0 preverjamo sgn(f (a)) = sgn(f (c))?Racunanje produkta f (a) · f (c) je zahtevnejse od preverjanjapredznakov, poleg tega pa se tudi izognemo moznim tezavam zaradipodkoracitve ali prekoracitve.

Metoda ocitno odpove pri sodih niclah.

Bisekcijo lahko uporabljamo tudi za iskanje lihih polov, racunati pamoramo 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.

Metoda se konca po log2(ε/|b − a|) korakih.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 8 / 63

Page 9: Re sevanje nelinearnih ena cb - uni-lj.si

Zgled

Z bisekcijo poiscimo nicle funkcije f (x) = x − tan(x)

Tezko je poiskati dober zacetni interval, saj so nicle v blizini polov. Temuse izognemo, ce namesto nicel f iscemo nicle g(x) = x cos(x)− sin(x).Tedaj nimamo tezav s poli.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 9 / 63

Page 10: Re sevanje nelinearnih ena cb - uni-lj.si

Veckratne nicle

Vzemimo funkcijo f (x) := x4 − 7x3 + 18x2 − 20x + 8 = (x − 1)(x − 2)3

in poiscimo nicli z bisekcijo, z zacetnima intervaloma [1.8, 2.1] (levo) in[0.8, 1.1] (desno):

1: 1.9500000000000002 1: 0.95000000000000012: 2.0250000000000004 2: 1.02500000000000013: 1.9875000000000003 3: 0.98750000000000004: 2.0062500000000001 4: 1.00625000000000015: 1.9968750000000002 5: 0.99687500000000016: 2.0015625000000004 6: 1.00156250000000017: 1.9992187500000003 7: 0.99921875000000008: 2.0003906250000001 8: 1.0003906250000001

. . . . . .45: 1.9999845263781000 45: 0.999999999999997246: 1.9999845263781042 46: 1.000000000000001647: 1.9999845263781022 47: 0.999999999999999348: 1.9999845263781033 48: 0.999999999999998349: 1.9999845263781026 49: 0.999999999999997850: 1.9999845263781024 50: 0.999999999999998051: 1.9999845263781026 51: 0.9999999999999981

Za veckratne nicle velja ugotovitev, da za m kratno niclo lahko pravilnoizracunamo le 1/m decimalk, ki so na voljo. Tako npr. pri dvojni niclidobimo le polovico, pri trojni nicli pa le tretjino tocnih decimalk.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 10 / 63

Page 11: Re sevanje nelinearnih ena cb - uni-lj.si

Navadna iteracija

Pri navadni iteraciji enacbo f (x) = 0 prepisemo v obliko x = g(x) innato iterativno iscemo x , ki tej enacbi zadosca. Iteracija se glasi

xr+1 = g(xr ), r = 0, 1, . . . ,

kjer zacetni priblizek x0 vnaprej izberemo. Funkciji g recemo iteracijskafunkcija, tocki, ki zadosca enacbi x = g(x) pa negibna ali fiksna tocka.

Zgledi iteracijskih funkcij, ki jih dolocimo najpreprosteje:

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 6= 0 za vse x v dovolj veliki okolicinegibne tocke.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 11 / 63

Page 12: Re sevanje nelinearnih ena cb - uni-lj.si

Zgled: polinom p(x) = x3 − 5x + 1

Iz grafa polinoma p(x) = x3 − 5x + 1

vidimo, da ena nicla lezi blizu 0. Enacbo zapisemo v obliki x = 1+x3

5 intvorimo zaporedje priblizkov

x0 = 0, xr+1 =1 + x3

r

5, r = 0, 1, . . .

To zaporedje skonvergira k α = 0.210639676 . . .. Iterativna funkcija jedobra le za srednjo niclo. Do ostalih dveh korenov pridemo npr. ziteracijo xr+1 = 3

√5xr − 1.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 12 / 63

Page 13: Re sevanje nelinearnih ena cb - uni-lj.si

Konvergenca navadne iteracije

Naj bo α fiksna tocka enacbe x = g(x). O konvergenci v blizini korenaodloca g ′(α). Ce je |g ′(α)| < 1, je α privlacna tocka, sicer pa odbojnatocka.

Izrek

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

xr+1 = g(xr ), r = 0, 1, . . .

konvergira k α.

Dokaz. Naj bo ek := xk − α napaka priblizka xk . Tedaj

ek+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. Takodobimo

|ek+1| ≤ C |ek | ≤ C 2|ek−1| ≤ · · · ≤ C k |e0|in ko gre k →∞ gre xk → α.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 13 / 63

Page 14: Re sevanje nelinearnih ena cb - uni-lj.si

Red konvergence

Definicija

Naj zaporedje (xk) konvergira k α. Red konvergence je p, ce obstajatakonstanti C1 > 0,C2 > 0, da za vse dovolj pozne clene zaporedja velja

C1|xr − α|p ≤ |xr+1 − α| ≤ C2|xr − α|p.

Lema

Naj bo iteracijska funkcija g v okolici privlacne negibne tocke α p-kratzvezno odvedljiva in naj velja g (k)(α) = 0, k = 1, . . . , p − 1 ing (p)(α) 6= 0. Red konvergence je p.

Dokaz. Iz razvoja g v Taylorjevo vrsto okrog α dobimo

g(x) = g(α) + · · ·+ 1

(p − 1)!(x − α)p−1g (p−1)(α) +

1

p!(x − α)pg (p)(ξ)

= α +1

p!(x − α)pg (p)(ξ).

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 14 / 63

Page 15: Re sevanje nelinearnih ena cb - uni-lj.si

Red konvergence, ki ga srecamo pogosto

Najpogosteje srecamo tele rede konvergence

p = 1: linearna (konstantno korakov za novo tocno decimalko)

p = 2: kvadraticna (stevilo tocnih decimalk se v vsakem korakupodvoji)

p = 3: kubicna (stevilo tocnih decimalk se v vsakem koraku potroji)

1 < p < 2: superlinearna

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 15 / 63

Page 16: Re sevanje nelinearnih ena cb - uni-lj.si

Nekaj izbir iteracijskih funkcij za f (x) := x2 + ln x = 0.

Pri resevanju enacbe f (x) := x2 + ln x = 0, z resitvijo α = 0.6529186,izpeljimo ekvivalentne oblike iteracijske funkcije in jih primerjajmo:

x = g1(x), g1(x) := e−x2

, g ′1(α) = −0.853, red je 1,

x = g2(x), g2(x) :=1

2(x + g1(x)), g ′2(α) = 0.074, red je 1,

x = g3(x), g3(x) := x − x − g1(x)

1 + 2x2, g ′3(α) = 0, red je 2.

V tabeli, ki sledi, je zapisano stevilo opravljenih iteracij. Iteracija tece,dokler se zaporedna priblizka ne razlikujeta za manj kot 10−12.

x0 0.6 0.7 1 10 100g1 160 159 171 173 173g2 11 11 12 15 18g3 5 5 6 109 10012

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 16 / 63

Page 17: Re sevanje nelinearnih ena cb - uni-lj.si

Tangentna, splosneje Newtonova metoda

Naj bo x priblizek za niclo funkcije f . Iscemo boljsi priblizek x + h.Predpostavimo, da je f mogoce razviti v Taylorjevo vrsto,

f (x + h) = f (x) + f ′(x)h +f ′′(x)

2h2 +O

(h3).

Ce upostevamo le prva dva clena v razvoju, dobimo

f (x + h) ≈ f (x) + f ′(x)h.

Ce je f ′(x) 6= 0, iz enacbe f (x + h) = 0 izracunamo popravekh = (x + h)− x kot

h ≈ −f (x)/f ′(x).

Ker je to le priblizek, izberemo zacetni priblizek x0 in korak popravkaponavljamo

xr+1 = xr −f (xr )

f ′(xr ), r = 0, 1, . . .

Izpeljali smo tangentno ali Newtonovo metodo.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 17 / 63

Page 18: Re sevanje nelinearnih ena cb - uni-lj.si

Geometrijsko ozadje Newtonove metode

Pri tangentni metodi funkcijo f aproksimiramo s tangento v tocki(xr , f (xr )) in za naslednji priblizek vzamemo presecisce tangente z osjo x .Res, tangenta na funkcijo f v tocki xk je premica

t(x) = f (xr ) + f ′(xr )(x − xr ).

Analiticno je tangentna metoda posebna oblika navadne iteracije, kjer zaiteracijsko funkcijo vzamemo

g(x) := x − f (x)

f ′(x).

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 18 / 63

Page 19: Re sevanje nelinearnih ena cb - uni-lj.si

Red konvergence tangentne metode

Iteracijska funkcija v tangentni metodi je

g(x) = x − f (x)

f ′(x),

torej je njen odvod g ′(x) =f (x)f ′′(x)

f ′2(x).

Ce je α enostaven koren, torej f (α) = 0, f ′(α) 6= 0, dobimo g ′(α) = 0 inkonvergenca tangentne metode je vsaj kvadraticna. V tem primeru je

g ′′(α) =f ′′(α)

f ′(α),

torej je v primeru f ′′(α) 6= 0 konvergenca res le kvadraticna, sicer vsajkubicna. Za veckratne korene α je konvergenca le linearna. Izkaze se, daza m-kratno niclo velja limx→α g ′(x) = 1− 1

m .

Konvergenca tangentne metode je

kvadraticna: enostaven koren in f ′′(α) 6= 0 (najpogosteje),

linearna: veckratni koren,

vsaj kubicna: enostaven koren in f ′′(α) = 0.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 19 / 63

Page 20: Re sevanje nelinearnih ena cb - uni-lj.si

Zgled za tangentno metodo

Vzemimo polinom

p(x) := x4 − 11

2x3 +

21

2x2 − 8x + 2 = (x − 1

2)(x − 1)(x − 2)2

in poiscimo nicle.

Ce vzamemo zacetne priblizke 0.6, 1.1 in 2.1 opazimo, da imamo pri 0.6kvadraticno konvergenco, pri 1.1 kubicno konvergenco (prevoj p) in pri2.1 linearno konvergenco (dvojna nicla).

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 20 / 63

Page 21: Re sevanje nelinearnih ena cb - uni-lj.si

Zgled za tangentno metodo

kvadraticna konvergenca

1: 0.4352941176470592: 0.4893377302513863: 0.4996394867498804: 0.4999995675156965: 0.4999999999993776: 0.5000000000000007: 0.500000000000000

kubicna konvergenca

1: 0.9941176470588262: 1.0000012288182463: 1.0000000000000014: 1.000000000000001

linearna konvergenca

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

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 21 / 63

Page 22: Re sevanje nelinearnih ena cb - uni-lj.si

Konvergencni izreki za tangentno metodo

Izrek

Naj bo α enostavna nicla dvakrat zvezno odvedljive funkcije f . Potemobstajata okolica I tocke α in konstanta C > 0, da tangentna metodakonvergira za vsak x0 ∈ I in da priblizki xr zadoscajo oceni

|xr+1 − α| ≤ C (xr − α)2.

Pri dolocenih pogojih lahko dokazemo tudi globalno konvergenco izpoljubne zacetne tocke.

Izrek

Naj bo f na intervalu I = [a,∞) dvakrat zvezno odvedljiva, narascajocain konveksna funkcija, ki ima niclo α ∈ I . Potem je α edina nicla f na Iin za vsak x0 ∈ I tangentna metoda konvergira k α.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 22 / 63

Page 23: Re sevanje nelinearnih ena cb - uni-lj.si

Tangentna metoda potrebuje dobre zacetne priblzke

Izreki nam zagotavljajo konvergenco tangentne metode dovolj blizu nicleali pa za funkcijo prave oblike. Sicer pa imamo lahko zelo razlicnoobnasanje in slepa uporaba tangentne metode ni priporocljiva. Naslednjadva primera kazeta divergenco, ko nismo dovolj blizu nicle in zaciklanjepriblizkov.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 23 / 63

Page 24: Re sevanje nelinearnih ena cb - uni-lj.si

Tangentna metoda v kompleksnem

Tangentno metodo lahko uporabljamo tudi za racunanje kompleksnihkorenov enacb. Naj bo f analiticna funkcija in naj velja f ′(z0) 6= 0.Oznacimo ploskev w(z) = |f (z)| nad kompleksno ravnino. Kompleksnostevilo

z1 = z0 −f (z0)

f ′(z0),

ki ga dobimo po enem koraku tangentne metode, je presecisce dvehpremic:

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)) naravnino w = 0.

Ce imamo npr. polinom z realnimi koeficienti in iscemo kompleksno niclo,potem moramo uporabiti kompleksni zacetni priblizek, sicer bodo vsipriblizki realni.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 24 / 63

Page 25: Re sevanje nelinearnih ena cb - uni-lj.si

Sekantna metoda

Namesto tangente uporabljamo sekanto, potrebujemo dva zacetnapriblizka:

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.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 25 / 63

Page 26: Re sevanje nelinearnih ena cb - uni-lj.si

Lastnosti sekantne metode

Ne spada med navadno iteracijo, saj je naslednji priblizek odvisen odprejsnjih dveh.

Ne potrebujemo odvodov.

V vsakem koraku izracunamo le eno vrednost funkcije (razen vprvem).

Red konvergence je 1.62 oz. (1 +√

5)/2, kar pomeni, da jesuperlinearna.

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 tangentnimetodi potrebujemo 4 korake in izracun 4f in 4f ′. Pri sekantni metodiporabimo 6 korakov in izracun 7f . To pomeni, da je glede na porabljenodelo sekantna metoda lahko celo boljsa od tangentne.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 26 / 63

Page 27: Re sevanje nelinearnih ena cb - uni-lj.si

Inverzna interpolacija

Posplositev sekantne metode je, da vzamemo zadnje tri priblizkexr , 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 Mullerjevometodo. Uporabna je za iskanje kompleksnih nicel z realno aritmetiko, sajima 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 kvadratnipolinom 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 jeinverzna kvadratna interpolacija, red konvergence pa je 1.83 kot priMullerjevi metodi.

Mullerjeva m.

inv. kvad. int.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 27 / 63

Page 28: Re sevanje nelinearnih ena cb - uni-lj.si

Sestavljanje metod

S kombiniranjem razlicnih metod lahko dosezemo robustnost in hitrokonvergenco. Denimo, da poznamo tak zacetni interval [a, b], da jef (a)f (b) < 0. Tedaj lahko npr. sestavimo bisekcijo, sekantno metodo ininverzno kvadratno interpolacijo:a in b preuredimo tako, da je |f (b)| ≤ |f (a)| ter vzamemo c = a.Dokler ni |a− b| < ε ponavljamo

Izracunamo novo tocko d : v primeru c 6= a naredimo en korakinverzne kvadratne interpolacije, v primeru c = a pa sekantnometodo.

Ce d ne lezi znotraj [a, b], potem za d vzamemo (a + b)/2.

Glede na f (d) zamenjamo a oziroma b z d , tocki a, b uredimo tako,da je f (a)f (b) < 0 in |f (b)| ≤ |f (a)|. Ce se je b premaknila, je cstara vrednost b, sicer pa je c = a.

Ker nam tocka nikoli ne pade iz [a, b], imamo zagotovljeno konvergenco,ki je v blizini nicle superlinearna.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 28 / 63

Page 29: Re sevanje nelinearnih ena cb - uni-lj.si

Nicle polinomov

Pri polinomih pogosto potrebujemo vse nicle polinoma p stopnje n. Tudice so koeficienti polinoma realni, so nicle lahko kompleksne. Zaracunanje je na voljo vec pristopov:

Z eno izmed navedenih metod (npr. Newtonovo ali Mullerjevo)poiscemo eno niclo x1, potem pa obravnavamo polinomq(x) := p(x)/(x − x1) ki je za eno nizje stopnje. To ponavljamo,dokler ne izracunamo vseh nicel. Za stabilnost je potrebno nicleizlocati v pravilnem vrstnem redu, po absolutni vrednosti najmanjsenajprej. To ni vedno povsem preprosto. Priporocalo se je tudi, da nakoncu vse izracunane nicle vzamemo kot zacetne priblizke za nicleprvotnega polinoma p in naredimo se nekaj korakov. A numericnaevidenca kaze, da lahko tako celo poslabsamo dobljeni rezultat.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 29 / 63

Page 30: Re sevanje nelinearnih ena cb - uni-lj.si

Iz polinoma p(x) := a0xn + a1xn−1 + · · ·+ an, a0 6= 0, sestavimot.i. pridruzeno matriko

A =

0 0 · · · 0 −an/a0

1 0 · · · 0 −an−1/a0

0 1 · · · 0 −an−2/a0

......

. . ....

...0 0 · · · 1 −a1/a0

velikosti n × n, katere karakteristicni polinom je do faktorja a0 enakp,

det (xI − A) =1

a0p(x).

Nicle polinoma p so potem kar lastne vrednosti matrike A. Takonicle izracuna npr. Matlab z ukazom roots.

Uporabimo posebne metode, ki so namenjene samo za polinome, kotso npr. Laguerrova, Durand–Kernerjeva, Bairstowova,Jenkins-Traubova metoda, itd.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 30 / 63

Page 31: Re sevanje nelinearnih ena cb - uni-lj.si

Laguerreova metoda

Naj bo p polinom stopnje n, iscemo njegov koren. 1cm0cm

Izberi zacetni priblizek x0

Ponavljaj za k = 0, 1, . . .

G = p′(xk )p(xk )

H = g 2 − p′′(xk )p(xk )

α = n

G±√

(n−1)(nH−G 2)

xk+1 = xk − αdokler ni |α| < ε

Predznak v izracunu α izberemo tako, da je imenovelec po absolutnivrednosti cim vecji. Za enostavne korene metoda konvergira kubicno, zaveckratne le linearno. Velika prednost metode je v tem, da skoraj vednokonvergira k korenu polinoma p, neodvisno od zacetnega priblizka.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 31 / 63

Page 32: Re sevanje nelinearnih ena cb - uni-lj.si

Durand–Kernerjeva metoda

Pri tej metodi izracunamo vse nicle polinoma hkrati. Naj bo

p(z) := (z − α1)(z − α2) · · · (z − αn)

polinom z vodilnim koeficientom enakim 1. Naj bodo z1, . . . , zn po vrstipriblizki za nicle α1, . . . , αn. Poiskati zelimo popravke ∆z1, . . . ,∆zn, dabodo z1 + ∆z1, . . . , zn + ∆zn nicle polinoma p, torej mora veljati

p(z) = (z − (z1 + ∆z1))(z − (z2 + ∆z2)) · · · (z − (zn + ∆zn)).

Ce to preuredimo po clenih ∆zi , dobimo

p(z) =n∏

j=1

(z − zj)−n∑

j=1

∆zj

n∏k=1k 6=j

(z − zk) +n∑

j,k=1j<k

∆zj∆zk

n∏`=1` 6=j,k

(z − z`) + · · · .

Ce zanemarimo kvadratne in visje clene, potem bodo ∆zi le pribliznipopravki. Ko vstavimo z = zi , dobimo

∆zi = − p(zi )n∏

k=1k 6=i

(zi − zk).

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 32 / 63

Page 33: Re sevanje nelinearnih ena cb - uni-lj.si

Durand–Kernerjeva metoda

Tako dobimo Durand–Kernerjevo metodo:

z(r+1)i = z

(r)i −

p(z(r)i )

n∏k=1k 6=i

(z(r)i − z

(r)k )

, i = 1, . . . , n.

Metoda ima v primeru, ko so vse nicle enostavne, kvadraticnokonvergenco v blizini resitve, konvergira pa skoraj za vsak zacetni vektor

z (0) = (z(0)1 · · · z

(0)1 )T ∈ Cn. Za zacetni vektor lahko izberemo kar

nakljucnih n kompleksnih stevil. Ce pri izracunu uporabljamo ze novevrednosti, dobimo superkvadraticno konvergenco, algoritem pa je:

z(r+1)i = z

(r)i −

p(z(r)i )

j−1∏k=1

(z(r+1)i − z

(r)k )

n∏k=j+1

(z(r)i − z

(r)k )

, i = 1, . . . , n.

Pri racunanju iteriramo le tiste priblizke zi , ki se niso skonvergirali.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 33 / 63

Page 34: Re sevanje nelinearnih ena cb - uni-lj.si

Wilkinsonov zgled

Nicle polinomov so lahko zelo obcutljive na motnje koeficientov.Spomnimo se Wilkinsovega zgleda, Polinom

p(x) := (x − 1)(x − 2) · · · (x − 20) = x20 − 210x19 + · · ·+ 20

nicle 1, 2, . . . , 20, tocne nicle polinoma

g(x) = p(x)− 2−23x19

pa so

x9 = 8.91752x10,11 = 10.0953± 0.64310i

...x16,17 = 16.7307± 2.81263ix18,19 = 19.5024± 1.94033i

x20 = 20.8469

Ceprav so vse nicle enostavne in lepo separirane, majhna motnja vpodatkih povzroci velike spremembe nicel.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 34 / 63

Page 35: Re sevanje nelinearnih ena cb - uni-lj.si

Wilkinsonov zgled, 2. del

Wilkinson je s pomocjo tega primera pokazal, da je racunanje lastnihvrednosti matrike preko nicel karakteristicnega polinoma lahko nestabilno.Standardni postopek je namrec bil:

Vzamemo matriko A ∈ Rn×n in izracunamo koeficientekarakteristicnega polinoma

p(x) := det (xI − A) = a0xn + a1xn−1 + · · ·+ an.

Z nekim algoritmom za racunanje nicel polinoma izracunamo niclepolinoma p in to so lastne vrednosti.

Danes se je pristop do velike mere obrnil. Ce v Matlabu poklicete ukaz zaracunanje nicel polinoma p, se zgodi naslednje:

Iz polinoma p se sestavi matrika, katere karakteristicni polinom je p.

Z algoritmom za racunanje lastnih vrednosti se izracunajo lastnevrednosti A, ki so tako nicle polinoma p.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 35 / 63

Page 36: Re sevanje nelinearnih ena cb - uni-lj.si

Resevanje nelinearnih enacb v Matlabu

Za iskanje nicle realne funkcije ene spremenljivke je (vsaj) na voljofunkcija fzero, ki uporablja kombinirano metodo:fzero(fun,x0,options,p1,p2,...).

S prvim argumentom fun podamo funkcijo, katere niclo iscemo:

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

fzero(’cos(x)-x’,[-1,1]): podamo tocki, kjer je funkcija razlicnopredznacena,fzero(’cos(x)-x’,0): Matlab z iskanjem levo in desno sam isce zacetniinterval.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 36 / 63

Page 37: Re sevanje nelinearnih ena cb - uni-lj.si

S tretjim argumentom lahko nastavimo parametre s pomocjofunkcije optimset, npr.fzero(’cos(x)-x’,0,optimset(’Display’,’iter’,’TolX’,1e-4)). Parametri,ki jih lahko nastavimo so:

’Display’: ali se izpisujejo tekoci priblizki, moznosti so ’iter’, ’off’,’final’.’TolX’: pogoj za konec (ko bo razlika zadnjih dveh priblizkov podmejo).’MaxIter’: maksimalno stevilo iteracij.’TolFun’: pogoj za konec (ko bo vrednost funkcije pod mejo).

Z naslednjimi argumenti lahko nastavljamo dodatne argumentefunkcije fun, ce je to funkcija vec spremenljivk. Zgled jef=inline(’besselj(0,x)-y’,’x’,’y’); fzero(f,[1 2],[],0.5).

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 37 / 63

Page 38: Re sevanje nelinearnih ena cb - uni-lj.si

Zgled: sledenje implicitno podane funkcije

Denimo, da bi radi narisali graf krivulje, ki je implicitno podana z enacbof (x , y) = 0. Potrebujemo torej cim vec tock (xi , yi ), za katere veljaf (xi , yi ) = 0.Ee je (x0, y0) tocka na krivulji, potem lahko pricakujemo, da se bo obmajhni spremembi x malo spremenil tudi y . Tu lahko uporabimotangentno metodo, saj ima kvadraticno konvergenco in vedno konvergira,ce je zacetni priblizek dovolj dober. Tako lahko kot zacetni priblizek zaf (x0 + dx , y) = 0 vzamemo kar y0. Tezave se pojavijo, kadar se funkcijaobraca, ima veckratne tocke in podobno. V teh primerih si lahkopomagamo z zamenjavo spremenljivk x in y . Kot kriterij za to, v katerosmer naj se premikamo, lahko sluzita parcialna odvoda ∂f

∂x in ∂f∂y .

(x0,y0)(x1,y1) (x2,y2)

(x3,y3)

(x4,y4)

f(x,y)=0

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 38 / 63

Page 39: Re sevanje nelinearnih ena cb - uni-lj.si

Zgled - sekularna enacba

Pri racunanju lastnih vrednosti simetricne matrike z metodo deli in vladajje 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=1u2i

(di−λ)2 , je f med poli strogo narascajoca. Nicle lezijo med

poli, ena pa desno od zadnjega pola. Slika je za primeru = [0.03 0.05 0.05 0.03] in d = [1 2 3 4].

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 39 / 63

Page 40: Re sevanje nelinearnih ena cb - uni-lj.si

Sekularna enacba, 2.del

Navadne tangentne metode ne moremo uporabiti, saj so nicle lahko zeloblizu polov in bi potrebovali zelo dobre priblizke. Namesto aproksimacijefunkcije s tangento zato raje uporabimo preprosto racionalno funkcijo, kise prilega funkciji f .Denimo, da iscemo resitev na intervalu (di+1, di ), zacetni priblizek pa jexr . 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 leziznotraj (di+1, di ). Konvergenca je zelo hitra, saj h zelo dobro aproksimiraf na intervalu (di+1, di ).

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 40 / 63

Page 41: Re sevanje nelinearnih ena cb - uni-lj.si

Sekularna enacba, podrobnosti

Zaradi stabilnosti razdelimo f na dva dela,

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 enakopredznacene 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 zah2(λ) =

c2

di+1 − λ+ c ′2

velja h2(xr ) = ψ2(xr ) in h′2(xr ) = ψ′2(xr ). Funkcijah(λ) = 1 + h1(λ) + h2(λ) je iskana racionalna funkcija.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 41 / 63

Page 42: Re sevanje nelinearnih ena cb - uni-lj.si

Resevanje sistemov nelinearnih enacb

Resujemo sistem nelinearnih enacb

f1(x1, x2, . . . , xn) = 0,

f2(x1, x2, . . . , xn) = 0,

...

fn(x1, x2, . . . , xn) = 0.

Sistem na kratko zapisemo FFF (xxx) = 0, kjer je xxx ∈ Rn in FFF : Rn → Rn. Zatestni sistem vzemimo enacbe

3x1 − cos(x1x2)− 0.6 = 0

x21 − 81(x2 + 0.1)2 + sin(x3) + 1.1 = 0

e−x1x2 + 20x3 + 9.1 = 0,

ki imajo eno resitev ααα = (0.533332, 0.0054539,−0.504855).

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 42 / 63

Page 43: Re sevanje nelinearnih ena cb - uni-lj.si

Kako pridemo do zacetnih priblizkov

V primeru ene same enacbe f (x) = 0 lahko iz grafa dolocimo zacetnipriblizek. V primeru dveh enacb

f1(x1, x2) = 0,

f2(x1, x2) = 0,

iscemo presecisce dveh implicitno podanih krivulj. Uporabimo lahkometode za implicitno risanje krivulj in spet graficno dolocimo zacetnipriblizek. Ce se da, lahko tudi iz ene enacbe izrazimo eno spremenljivkoin jo vstavimo v drugo enacbo, da dobimo eno samo nelinearno enacbo.Ce imamo vec enacb, je situacija bolj zapletena. Vec kot imamo enacb,tezje pridemo do dobrih zacetnih priblizkov, ce ne poznamo tudi ozadjasistema, ki ga resujemo. Ce so enacbe algebraicne, torej funkcije fipolinomi v vec spremenljivkah, lahko morda posezemo po orodjih, kot sorezultante ali celo Grobnerjeve baze.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 43 / 63

Page 44: Re sevanje nelinearnih ena cb - uni-lj.si

Navadna iteracija

Prva metoda je posplositev navadne iteracije. Sistem FFF (xxx) = 0 zapisemov ekvivalentni obliki xxx = GGG (xxx), kjer je GGG : Rn → Rn in tvorimo zaporedjepriblizkov:

xxx (r+1) = GGG (xxx (r)), r = 0, 1, . . . .

ce v nasem testnem primeru iz i-te enacbe izrazimo xi , dobimo

x(r+1)1 =

1

3

(cos(x

(r)1 x

(r)2 ) + 0.6

)x

(r+1)2 =

1

9

√(x

(r)1 )2 + sin(x

(r)3 ) + 1.1− 0.1

x(r+1)3 = − 1

20

(e−x

(r)1 x

(r)2 + 9.1

),

od koder lahko razberemo GGG (xxx).

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 44 / 63

Page 45: Re sevanje nelinearnih ena cb - uni-lj.si

Jacobijeva iteracija in testni primer

ce vzamemo zacetni priblizek xxx (0) = (0.4, 0.1,−0.4), potem iz

x(r+1)1 =

1

3

(cos(x

(r)1 x

(r)2 ) + 0.6

)x

(r+1)2 =

1

9

√(x

(r)1 )2 + sin(x

(r)3 ) + 1.1 − 0.1

x(r+1)3 = − 1

20

(e−x

(r)1 x

(r)2 + 9.1

),

dobimo zaporedje

r x(r)1

x(r)2

x(r)3

‖xxx(r) − xxx(r−1)‖∞ ‖FFF (xxx(r))‖∞1 0.533066702220 0.003672183829 −0.503039471957 1.3 · 10−1 3.7 · 10−1

2 0.533332694686 0.005530371351 −0.504902219788 1.9 · 10−3 1.3 · 10−3

3 0.533331883381 0.005451521829 −0.504852740886 7.9 · 10−5 4.2 · 10−5

4 0.533331924436 0.005454006133 −0.504854837609 2.5 · 10−6 1.8 · 10−6

5 0.533331923152 0.005453901274 −0.504854771543 1.0 · 10−7 5.6 · 10−8

6 0.533331923206 0.005453904579 −0.504854774331 3.3 · 10−9 2.4 · 10−9

7 0.533331923204 0.005453904439 −0.504854774243 1.4 · 10−10 7.5 · 10−11

8 0.533331923204 0.005453904444 −0.504854774247 4.4 · 10−12 3.2 · 10−12

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 45 / 63

Page 46: Re sevanje nelinearnih ena cb - uni-lj.si

Konvergenca navadne iteracije za sisteme nelinearnih enacb

Izrek

Ce obstaja obmocje Ω ⊂ Rn z lastnostima:

a) xxx ∈ Ω⇒ GGG (xxx) ∈ Ω,

b) xxx ∈ Ω⇒ ρ(JG (xxx)) ≤ m < 1, kjer je JG (xxx) Jacobijeva matrika

JG (xxx) :=

∂g1(xxx)∂x1

∂g1(xxx)∂x2

· · · ∂g1(xxx)∂xn

∂g2(xxx)∂x1

∂g2(xxx)∂x2

· · · ∂g2(xxx)∂xn

......

...∂gn(xxx)∂x1

∂gn(xxx)∂x2

· · · ∂gn(xxx)∂xn

in ρ spektralni radij (najvecja absolutna vrednost lastne vrednosti),

potem ima GGG (xxx) = xxx v Ω natanko eno resitev ααα, zaporedjexxx (r+1) = GGG (xxx (r)), r = 0, 1, . . . , pa za vsak xxx (0) ∈ Ω konvergira k ααα.

Red konvergence je odvisen od Jacobijeve matrike. V primeru JG (ααα) = 0dobimo vsaj kvadraticno konvergenco, ta pogoj pa je izpolnjen npr. priNewtonovi metodi, ki je posplositev tangentne metode.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 46 / 63

Page 47: Re sevanje nelinearnih ena cb - uni-lj.si

Newtonova metoda - izpeljava

Izpeljava Newtonove metode poteka preko Taylorjeve vrste. Denimo, daso vse fi dvakrat zvezno odvedljive v okolici resitve. Tedaj lahkorazvijemo:

fi (xxx + ∆xxx) = fi (xxx) +n∑

k=1

∂fi (xxx)

∂xk∆xk + · · · , i = 1, . . . , n.

Ce zanemarimo kvadratne in visje clene in zelimo, da bo FFF (xxx + ∆xxx) = 0,dobimo linearni sistem za popravke

∂f1(xxx)∂x1

∂f1(xxx)∂x2

· · · ∂f1(xxx)∂xn

∂f2(xxx)∂x1

∂f2(xxx)∂x2

· · · ∂f2(xxx)∂xn

......

...∂fn(xxx)∂x1

∂fn(xxx)∂x2

· · · ∂fn(xxx)∂xn

∆x1

∆x2

...∆xn

= −

f1(xxx)f2(xxx)

...fn(xxx)

,nato pa popravimo priblizke v

xk + ∆xk , k = 1, . . . , n.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 47 / 63

Page 48: Re sevanje nelinearnih ena cb - uni-lj.si

Newtonova metoda

Pri Newtonovi metodi tvorimo zaporedje

xxx (r+1) = xxx (r) − JF (xxx (r))−1FFF (xxx (r)), r = 0, 1, . . . .

V praksi skoraj nikoli ne racunamo inverza Jacobijeve matrike, temvec navsakem koraku posebej resujemo sistem linearnih enacb:

JF (xxx (r))∆xxx (r) = −FFF (xxx (r)),xxx (r+1) = xxx (r) + ∆xxx (r), r = 0, 1, . . . .

Tako kot pri tangentni metodi imamo tudi tukaj v blizini enostavne niclezagotovljeno kvadraticno konvergenco, tezava pa je v tem, da moramo zakonvergenco ponavadi poznati dovolj dober zacetni priblizek.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 48 / 63

Page 49: Re sevanje nelinearnih ena cb - uni-lj.si

Preprost zgled za Newtonovo metodo

Z Newtonovo metodo in z zacetnim priblizkom x0 = 2, y0 = 4 resi sistem

x2 + y 2 − 10x + y = 1x2 − y 2 − x + 10y = 25.

Torej sta funkciji (ki dolocata kroznico in hiperbolo)

f1(x , y) = x2 + y 2 − 10x + y − 1f2(x , y) = x2 − y 2 − x + 10y − 25

in

JF (x , y) =

[2x − 10 2y + 12x − 1 −2y + 10

].

V prvem koraku resimo sistem[−6 93 2

] [∆x∆y

]=

[−3−1

]=⇒ ∆x = − 1

13, ∆y = −15

39.

Torej je novi priblizek x1 = 1.9231, y1 = 3.6154. Ce postopeknadaljujemo, dobimo x2 = 1.9625, y2 = 3.6262, tocen rezultat pa je(x , y) = (1.96231079, 3.62582649).

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 49 / 63

Page 50: Re sevanje nelinearnih ena cb - uni-lj.si

Newtonova metoda in testni primer

Za testni primer velja

JF (xxx) =

3 + x2 sin(x1x2) x1 sin(x1x2) 02x1 −162(x2 + 0.1) cos(x3)

−x2e−x1x2 −x1e−x1x2 20

.Z zacetnim priblizkom xxx (0) = (0.4, 0.1,−0.4) Newtonova metoda da

r x(r)1

x(r)2

x(r)3

‖xxx(r) − xxx(r−1)‖∞ ‖f (xxx(r))‖∞1 0.533277157343 0.027209850424 −0.503797935671 1.8 · 10−1 4.1 · 10−1

2 0.533349540310 0.007317424279 −0.504802389730 2.0 · 10−2 3.2 · 10−2

3 0.533332076670 0.005470116245 −0.504854320569 1.8 · 10−3 2.8 · 10−4

4 0.533331923216 0.005453905692 −0.504854774212 1.6 · 10−5 2.1 · 10−8

5 0.533331923204 0.005453904443 −0.504854774247 1.2 · 10−9 1.8 · 10−15

6 0.533331923204 0.005453904443 −0.504854774247 1.2 · 10−16 2.2 · 10−16

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 50 / 63

Page 51: Re sevanje nelinearnih ena cb - uni-lj.si

Zgled uporabe Newtonove metode

Natancno izracunaj mejno vrednost parametra r , pri kateri lahko pride dopreskoka v stevilu realnih resitev sistema

x2 + y 2 = r 2

x2 − 2xy + y = 1.

Iscemo tak r , da se krivulji dotikata. V tocki dotika imamo dvojno niclo,kar pomeni, da mora biti determinanta Jacobijeve matrike enaka 0. Takodobimo se tretjo enacbo ∣∣∣∣ 2x 2y

2x − y −2x + 1

∣∣∣∣ = 0

in resimo sistem treh enacb s tremi neznankami. Ce za zacetno tockovzamemo (x0, y0, r0) = (−0.5, 0.5, 0.7), pridemo do ene izmed resitevr = 0.61380095. Vsi kandidati so koreni polinoma

80r 8 + 16r 6 + 108r 4 − 241r 2 + 73.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 51 / 63

Page 52: Re sevanje nelinearnih ena cb - uni-lj.si

Variacijske metode

Iscemo ekstrem funkcije G : Rn → R, kjer je G dvakrat zvezno odvedljivana vse spremenljivke. Potreben pogoj za ekstrem je

∂G (xxx)

∂xk= 0 za k = 1, . . . , n.

Iskanje ekstrema funkcij vec spremenljivk tako prevedemo na resevanjesistema nelinearnih enacb. Gre pa tudi obratno. Iscemo resitev sistemaFFF (xxx) = 0, kjer je FFF : Rn → Rn. Funkcija

G (xxx) =n∑

i=1

f 2i (xxx)

ima globalni minimum ravno v tockah, kjer je FFF (xxx) = 0, zato lahko nicloFFF poiscemo tako, da poiscemo globalni minimum G .

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 52 / 63

Page 53: Re sevanje nelinearnih ena cb - uni-lj.si

Resevanje sistemov nelinearnih enacb v Matlabu

V standardni verziji so na voljo naslednje funkcije:

fminsearch: iskanje minimuma realne funkcije iz Rn v R. Uporabljasimpleksni algoritem.

fminbnd: iskanje minimuma funkcije ene spremenljivke. Uporabljakombinacijo metode zlatega reza in parabolicne interpolacije.

Ce ga imamo, potem je v dodatnem paketu za optimizacijo na voljo se:

fsolve: resevanje sistema FFF (xxx) = 0 z iskanjem minimuma ‖FFF (xxx)‖2.

Primeri uporabe:

f = inline(’x(1)^2+x(2)^2’); fminsearch(f,[0.3;0.2])

f = inline(’(x(1)^2+x(2)^2-10*x(1)-1)^2+(x(1)^2-x(2)^2+10*x(2)-25)^2’); fminsearch(f,[2;4])

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 53 / 63

Page 54: Re sevanje nelinearnih ena cb - uni-lj.si

Metode za iskanje minimuma funkcije n spremenljivk

Splosni nastavek je, da se iterativno monotono priblizujemo minimumu.Naj bo x (r) tekoci priblizek. Izberemo vektor (smer) vr ∈ Rn in v tejsmeri poiscemo naslednji priblizek

x (r+1) = x (r) + λrvr ,

tako da bo G (x (r+1)) < G (x (r)).

xr1xr

G x =G xr

Pogledati moramo:

kako izberemo smer vr ,

kako dolocimo λ.B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 54 / 63

Page 55: Re sevanje nelinearnih ena cb - uni-lj.si

Izbira smeri

Za izbiro smeri imamo med drugim naslednje moznosti:

a) splosna metoda spusta: izberemo poljubno smer vr , le da nipravokotna na G (x (r)), saj v tej smeri ne moremo vedno dobitimanjse vrednosti.

b) metoda najhitrejsega spusta oz. gradientna metoda: za smerizberemo negativni gradient vr = −G (x (r)). Pri tem pristopumoramo poznati parcialne odvode funkcije G .

c) metoda koordinatnega spusta: za smeri po vrsti ciklicno izbiramokoordinatne smeri e1, e2, . . . , en.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 55 / 63

Page 56: Re sevanje nelinearnih ena cb - uni-lj.si

Dolocanje premika

Pri dolocanju λr imamo opravka s funkcijo ene spremenljivke

gr (λ) : = G (x (r) + λvr ).

Iscemo tak λr , da bo gr (λr ) < gr (0). Nekaj metod je:

a) metoda najvecjega spusta: poiscemo λr , kjer funkcija gr doseze svojminimum. Za to resimo nelinearno enacbo g ′r (λr ) = 0 ali pauporabimo kaksno metodo za racunanje minimuma funkcije enespremenljivke, npr. metodo zlatega reza.

b) metoda tangentnega spusta: za λr vzamemo presecisce tangente nay = gr (λ) v tocki λ = 0 z osjo x , oziroma λr = −gr (0)/g ′r (0). ce jegr (λr ) ≥ gr (0), potem λr toliko casa razpolavljamo, dokler nedobimo manjse vrednosti.

c) metoda parabolicnega spusta: najprej s tangentno metodo dolocimoα, potem pa skozi tocke (0, gr (0)), (α/2, gr (α/2)), (α, gr (α))potegnemo parabolo in za λr vzamemo tocko, kjer parabola dosezeminimum.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 56 / 63

Page 57: Re sevanje nelinearnih ena cb - uni-lj.si

0 /2

d) metoda diskretnega spusta: Izberemo hr . ce je gr (hr ) < gr (0),potem se premikamo naprej s korakom hr in za λr vzamemo khr ,kjer je prvic gr ((k + 1)hr ) ≥ gr (khr ). Sicer pa hr razpolavljamotoliko casa, da je gr (hr ) < gr (0) in za λr vzamemo hr .

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 57 / 63

Page 58: Re sevanje nelinearnih ena cb - uni-lj.si

Konvergenca

Ce iscemo minimum nenegativne funkcije, kar delamo, ko uporabimovariacijsko metodo za resevanje nelinearnega sistema, imamozagotovljeno konvergenco ne glede na zacetni priblizek, saj dobimozaporedje priblizkov x (r), za katere velja G (x (r+1)) < G (x (r)). Kar setice reda konvergence, je ta ponavadi linearen. Tako vedno dobimo neklokalni minimum, nic pa nam ne zagotavlja, da bomo nasli tudi globalniminimum. Ponavadi uporabimo kombinacijo variacijske metode inNewtonove metode ali kvazi–Newtonove metode. Variacijska metoda nasne glede na kvaliteto zacetnega priblizka pripelje v blizino resitve, potempa uporabimo hitrejso metodo, ki potrebuje dobre zacetne priblizke.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 58 / 63

Page 59: Re sevanje nelinearnih ena cb - uni-lj.si

Uporabne formule

Ce resujemo nelinearni sistem FFF (xxx) = 0, kjer je FFF : Rn → Rn, potem zaG (xxx) = f1(xxx)2 + · · ·+ fn(xxx)2 velja

G (xxx) = FFF (xxx)TFFF (xxx).

Za gradient ugotovimo

G (xxx) = 2

f1(xxx)f1x1 (xxx) + f2(xxx)f2x1 (xxx) + · · ·+ fn(xxx)fnx1 (xxx)f1(xxx)f1x2 (xxx) + f2(xxx)f2x2 (xxx) + · · ·+ fn(xxx)fnx2 (xxx)

...f1(xxx)f1xn(xxx) + f2(xxx)f2xn(xxx) + · · ·+ fn(xxx)fnxn(xxx)

oziroma enostavneje

G (xxx) = JF (xxx)TFFF (xxx).

Ce definiramo g(λ) = G (xxx + λzzz), potem dobimo

g ′(0) = 2FFF (xxx)T JF (xxx)zzz .

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 59 / 63

Page 60: Re sevanje nelinearnih ena cb - uni-lj.si

Testni primer in gradientna metoda

Resevanje testnega primera lahko prevedemo na iskanje minimumafunkcije

G (xxx) = f1(xxx)2 + f2(xxx)2 + f3(xxx)2,

kjer so

f1(xxx) = 3x1 − cos(x1x2)− 0.6

f2(xxx) = x21 − 81(x2 + 0.1)2 + sin(x3) + 1.1

f3(xxx) = e−x1x2 + 20x3 + 9.1.

ce vzamemo zacetni priblizek x (0) = (0, 0, 0) potem po 20 korakihdobimo x (20) = (0.65079172132,−0.21305107190,−0.511385522215).ce to uporabimo za zacetni priblizek za Newtonovo metodo, potem po 5korakih dobimo resitevα = (0.531357185580,−0.205028183876,−0.510754950476).ce bi namesto Newtonove metode se naprej uporabljali gradientnometodo, bi za enako natancnost potrebovali se 104 korake gradientnemetode.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 60 / 63

Page 61: Re sevanje nelinearnih ena cb - uni-lj.si

Metoda zveznega nadaljevanja

To je metoda za resevanje nelinearne enacbe f (x) = 0. ce je tezkopoiskati zacetni priblizek (se posebno pri nelinearnih sistemih), si lahkopomagamo z uvedbo dodatnega parametra. Opazujemo npr.

F (t, x) = t · f (x) + (1− t) · g(x),

kjer je 0 ≤ t ≤ 1 in poznamo resitve g(x) = 0.

0 1

g x =0 f x =0

t

S sledenjem krivulji od t = 0 do t = 1 dobimo resitve f (x) = 0.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 61 / 63

Page 62: Re sevanje nelinearnih ena cb - uni-lj.si

Metoda zveznega nadaljevanja in diferencialne enacbe

Povezava z diferencialnimi enacbami je naslednja. Z odvajanjem po tdobimo

Ft(t, x) + Fx(t, x) · x = 0,

kar nam da zacetni problem

x = −Fx(t, x)−1 · Ft(t, x), x(0) = x0,

kjer je g(x0) = 0.Z metodami za resevanje zacetnih problemov lahko sledimo resitvi, polegtega pa pri vsaki vrednosti t lahko upostevamo se, da mora za x(t)veljati F (t, x(t)) = 0.

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 62 / 63

Page 63: Re sevanje nelinearnih ena cb - uni-lj.si

Prediktor-korektor sledenje homotopske krivulje

t th

prediktor x pth

korektor xk th

x t

a) prediktor: Iz tocke (t, x(t)) z eno izmed metod za resevanjezacetnega problema (npr. z Eulerjevo metodo) izracunamo prediktorx (P)(t + h), ki je priblizek za resitev v tocki t + h.

b) korektor: Z eno izmed metod za resevanje nelinearnega sistema (npr.z Newtonovo metodo) resimo sistem F (t + h, x(t + h)) = 0, zazacetni priblizek pa vzamemo (t + h, x (P)(t + h)).

B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 63 / 63