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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Top Related