Uvod v numeri cne metode - fmf.uni-lj.sikozak/PedagoskoDelo/Gradiva/UvodVNumericne... · Obveznosti...

56
Uvod v numeriˇ cne metode Jernej Kozak Jadranska 21, IV. nadstropje, ˇ st. 407. Iz dvigala, v desno, do konca hodnika in korak v smeri Krima. [email protected] http://www.fmf.uni-lj.si/ ~ kozak/.htm Asistent: Gaˇ sper Jakliˇ c B. Plestenjak, J.Kozak: Uvod v numeriˇ cne metode 2011-2012 1 / 56

Transcript of Uvod v numeri cne metode - fmf.uni-lj.sikozak/PedagoskoDelo/Gradiva/UvodVNumericne... · Obveznosti...

Uvod v numericne metode

Jernej Kozak

Jadranska 21, IV. nadstropje, st. 407.Iz dvigala, v desno, do konca hodnika in korak v smeri Krima.

[email protected]

http://www.fmf.uni-lj.si/~kozak/.htm

Asistent: Gasper Jaklic

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

Obveznosti

V dogovorjenem roku je treba uspesno resiti dve domacinalogi. Pozitivna ocena domacih nalog predstavlja 20%-nidelez pisnega dela koncne ocene.

Opraviti je treba pisni izpit. Ocena pisnega izpita predstavlja80%-ni delez pisnega dela koncne ocene. Opravljen pisni izpitvelja en mesec.

Ustni izpit. Predpogoj za opravljanje ustnega izpita jepozitivna ocena pisnega dela. Na ustni izpit se prijavite nastrani http://www.fmf.uni-lj.si/~kozak/PrijaveNaUstneIzpite/.

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

Osnovno o numericnem racunanju

Pri numericnem resevanju dane naloge iscemo resitev v numericniobliki. To pomeni, da npr. kot namesto iracionalnega stevila

√3

vrnemo njegov numericni priblizek 1.73205 . . ..

Numericna metoda

Numericna metoda je postopek, ki iz vhodnih numericnih podatkovs koncnim zaporedjem elementarnih operacij izracuna numericnipriblizek za resitev danega problema.

Elementarne operacije

Elementarne operacije, ki jih lahko numericna metoda uporabi, soodvisne od okolja. Mi bomo privzeli kar +, −, /, ∗ in

√.

Za zglede bomo uporabljali program Matlab, vcasih bo zademonstracijo primernejsi program Mathematica. NamestoMatlaba lahko doma uporabljate prosto dostopen program Octave.

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

Numericno racunanje se razlikuje od eksaktnega racunanja

Prva nadloga: predstavitev realnih stevil v racunalniku. Racunamos stevili, ki so predstavljena v plavajoci piki (ali plavajoci vejici). Jekaj pri racunanju s tako predstavljenimi stevili kaj nepricakovanega?

Vzamemo kalkulator in izracunamo

100 ∗ (100/3− 33)− 100/3.

Rezultat je (ne)pricakovan, npr. v Matlabu dobimo

2.3448 · 10−13 6= 0.

Za osnovne racunske operacije naj bi veljala asociativnost,toda, ce npr. vzamemo

x = 0.1234567890

y = 0.0987654321

z = 0.9911991199,

potem v Matlabu dobimo

x ∗ y ∗ z − z ∗ y ∗ x = 1.7347 · 10−18 6= 0.B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 4 / 56

Numericna matematika

Numericna matematika se ukvarja z razvojem in analizo algoritmovza numericno resevanje matematicnih problemov.Ukvarjali se bomo z naslednjimi problemi:

linearni sistem: poisci x ∈ Rn, ki resi sistem Ax = b zaA ∈ Rn×n in b ∈ Rn.

nelinearni sistem: poisci resitev enacbe f (x) = y , kjer jef : Rn → Rn.

linearni problem najmanjsih kvadratov: poisci x ∈ Rn, kiminimizira ‖Ax − b‖2 za A ∈ Rm×n in b ∈ Rm, kjer je m > n.

lastne vrednosti: izracunaj lastne vrednosti in vektorje matrikeA ∈ Rn×n.

interpolacija: poisci polinom, ki gre skozi tocke(x0, f (x0)), . . . , (xn, f (xn)).

integriranje: izracunaj integral∫ ba f (t)dt.

diferencialne enacbe: resi zacetni problem y ′ = f (x , y),y(x0) = y0.

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

Povezani predmeti

Prva stopnja:

Numericna linearna algebra

Numericne metode II (ISRM)

Druga stopnja:

Iterativne numericne metode v linearni algebri

Numericna aproksimacija in interpolacija

Racunalnisko podprto (geometrijsko) oblikovanje

Numericna integracija in navadne diferencialne enacbe

Numericno resevanje parcialnih diferencialnih enacb

Numericne metode za linearne sisteme upravljanja

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

Ozadje

Stevilne fizikalne, tehnoloske, in druge procese lahko simuliramo naracunalniku. Postopek je sestavljen iz naslednjih korakov:

1 razvoj matematicnega modela,

2 razvoj numericnih metod za numericno resevanje modela,

3 implementacija numericnih metod,

4 simuliranje procesov z racunalnikom,

5 predstavitev dobljenih numericnih rezultatov v pregledni obliki,

6 analiza dobljenih rezultatov, po potrebi se vrnemo na enegaizmed prejsnjih korakov.

Mi se bomo ukvarjali v glavnem s tockama 2. in 3.

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

Kdaj uporabljamo numericne metode

Ko drugih moznosti ne poznamo, npr.:

iskanje nicel polinoma pete stopnje: x5 + 3x − 1 = 0,

resevanje transcendentne enacbe: x + ln x = 0,

racunanje dolocenega integrala:∫ 1

0 ex2dx ,

vecina nelinearnih enacb, diferencialnih enacb, . . . .

Kadar so udobnejse oziroma manj casovno ali prostorsko zahtevneod analiticnih resitev, npr.:

racunanje inverzne matrike velikosti 100× 100,

Cardanove formule za dolocanje nicel kubicnega polinoma.

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

Problem prevedemo na lazji problem

Glavni princip pri numericnem resevanju je, da namesto podanegatezkega problema resujemo lazji problem, ki ima ali enako resitevali pa se resitvi ne razlikujeta dosti. Npr.:

neskoncne procese nadomestimo s koncnimi procesi,

neskoncno razsezne prostore nadomestimo s koncnorazseznimi,

diferencialne enacbe nadomestimo z algebraicnimi enacbami,

nelinearni problem nadomestimo z linearnim,

zapletene funkcije nadomestimo z enostavnejsimi, npr. spolinomi,

matrike nadomestimo z matrikami, ki imajo enostavnejsoobliko, npr. zgornja trikotna oblika, zgornja Hessenbergovaoblika.

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

Zanimalo nas bo torej:

kaksna je tipska oblika dolocenega problema in kako joucinkovito in stabilno resimo,

kako splosni problem cim bolj ucinkovito in stabilnoprevedemo na tipsko obliko.

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

Dobra numericna metoda

Glavne zahteve za dobro numericno metodo so:

zanesljivost: na enostavnih problemih vedno deluje pravilno.

robustnost: obicajno deluje na tezjih problemih, kadar pa nedeluje, nas o tem obvesti.

natancnost: izracuna resitev tako natancno, kot je to moznoglede na natancnost podanih zacetnih podatkov.

ekonomicnost: casovna (stevilo operacij) in prostorska(poraba prostora v pomnilniku).

uporabnost: lahko jo uporabimo na sirokem spektruproblemov.

prijaznost do uporabnika: je dobro dokumentirana in imaenostaven uporabniski vmesnik.

Numericne metode se stalno razvijajo. Dejavniki razvoja so:

novi problemi,

novi pristopi in novi algoritmi,

razvoj racunalnikov,

razvoj paralelnih racunalnikov oz. vecjedrnih procesorjev.B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 11 / 56

Absolutna in relativna napaka

Pri numericnem racunanju vedno izracunamo numericni priblizekza tocno resitev problema.Razlika med priblizkom in tocno vrednostjo je napaka priblizka.Locimo absolutno in relativno napako.

absolutna napaka = priblizek− tocna vrednost,

relativna napaka =absolutna napaka

tocna vrednost.

Naj bo x tocna vrednost, x pa priblizek za x .

Ce je x = x + da, potem je da = x − x absolutna napaka .

Ce je x = x(1 + dr ) oziroma dr =x − x

x, potem je dr

relativna napaka.

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

Plavajoca vejica (ali pika)

V racunalniku so stevila zapisana v plavajoci vejici kot

x = ±m · be ,

kjer je m = 0.c1c2, . . . ct mantisa in

b: baza (2, lahko tudi 10 ali 16),

t: dolzina mantise,

e: eksponent v mejah L ≤ e ≤ U,

ci : stevke v mejah od 0 do b − 1.

Ce je c1 6= 0, potem je stevilo normalizirano, sicer pasubnormalizirano.

Mnozica predstavljivih stevil

Mnozico predstavljivih stevil oznacimo s P(b, t, L,U).

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

Zgled

Vsa normalizirana pozitivna predstavljiva stevila iz mnoziceP(2, 3,−1, 1) so:

0.1002 · 2−1 = 0.2500 0.1002 · 20 = 0.500 0.1002 · 21 = 1.000.1012 · 2−1 = 0.3125 0.1012 · 20 = 0.625 0.1012 · 21 = 1.250.1102 · 2−1 = 0.3750 0.1102 · 20 = 0.750 0.1102 · 21 = 1.500.1112 · 2−1 = 0.4375 0.1112 · 20 = 0.875 0.1112 · 21 = 1.75

0 0.25 0.5 0.75 1 1.25 1.5 1.75 2

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

Subnormalizirana stevila (mozna le pri najmanjsem eksponentu) so:

0.0112 · 2−1 = 0.18750.0102 · 2−1 = 0.12500.0012 · 2−1 = 0.0625

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

Standard IEEE

single: P(2, 24,−125, 128), stevilo je shranjeno v 32 bitih,

predznak: prvi biteksponent: naslednjih osem bitovmantisa: zadnjih 23 bitov

double: P(2, 53,−1021, 1023), stevilo je shranjeno v 64 bitih,

predznak: prvi biteksponent: naslednjih 11 bitovmantisa: zadnjih 52 bitov

standard IEEE pozna se stevila 0, ∞, −∞ in NaN.

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

Tehnicne podrobnosti zapisa predstavljivih stevil

Ce je s predznak, 0 ≤ e ≤ 255 eksponent in 0 ≤ f < 1 stevilo0.c2 . . . c24, velja

0 < e < 255 poljuben f x = (−1)s(1 + f ) · 2e−127

e = 255 f = 0 x = (−1)s∞e = 255 f 6= 0 x = NaNe = 0 f = 0 x = (−1)s0e = 0 f 6= 0 x = (−1)s(0 + f ) · 2−126

Primeri pozitivnih stevil:

e f stevilo

10000010 01100000000000000000000 x = (1 + 2−2 + 2−3) · 2130−127 = 1111111111 00000000000000000000000 x =∞11111111 01011010100000000000000 x = NaN00000000 00000000000000000000000 x = 000000000 00000100000000000000000 x = 2−6 · 2−126 = 2−132

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

Osnovna zaokrozitvena napaka

Stevila, ki niso predstavljiva, predstavimo s priblizki, ki jih dobimoz zaokrozanjem. Naj bo x stevilo in fl (x) najblizje predstavljivostevilo. Z naslednjim izrekom bomo dokazali, da velja

fl(x) = x(1 + δ) in |δ| ≤ u,

kjer je

u =1

2b1−t

osnovna zaokrozitvena napaka:

enojna natancnost: u = 2−24 = 6 · 10−8,

dvojna natancnost: u = 2−53 = 1 · 10−16.

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

Izrek

Ce stevilo x lezi znotraj intervala predstavljivih stevil, potem velja

|fl(x)− x ||x |

≤ u

1 + u.

Dokaz. Naj bo x = (y + z)be , kjer je y = 0.d1 . . . dt inz = 0.0 . . . 0dt+1dt+2 . . . in naj bo fl(x) = mbe , kjer jem = 0.c1 . . . ct . Predpostavimo lahko, da je x pozitiven.

a) dt+1 < b/2 =⇒ m = y

|fl(x)− x ||x |

=z

y + z≤

12 b−t

b−1 + 12 b−t

=u

1 + u.

Pri oceni smo izbrali najvecji z in najmanjsi y .

b) dt+1 ≥ b/2 =⇒ m = y + b−t

|fl(x)− x ||x |

=b−t − z

y + z≤

b−t − 12 b−t

b−1 + 12 b−t

=u

1 + u.

Pri oceni smo izbrali najmanjsi z in najmanjsi y .B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 19 / 56

Racunanje po standardu IEEE

Standard IEEE zahteva, da mora za operacije procesne enoteveljati:

fl(x ⊕ y) = (x ⊕ y)(1 + δ), |δ| ≤ u za ⊕ = +,−, /, ∗,

fl(√

x) =√

x(1 + δ), |δ| ≤ u.

Izjema je, ce pride do prekoracitve (overflow) ali podkoracitve(underflow) obsega predstavljivih stevil. V tem primeru dobimo poIEEE:

prekoracitev: ±∞,

podkoracitev: 0.

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

Nesreca rakete Arianne

4. junija 1996 je pri prvem poletu rakete Ari-ane 5, ki naj bi nadomestila manjso raketoAriane 4,prislo do nesrece. Raketa je po 40sekundah zavila s prave poti in eksplodirala.Izkazalo se je, da je do nesrece prislo zaradiprekoracitve obsega. Ker program ni imeltestiranja prekoracitve, se je sesul, s tem patudi celoten polet.Podrobna analiza je pokazala, da je del pro-grama, ki je povzrocil napako, prisel iz pro-grama za Ariane 4, kjer je vedno deloval breznapak. Tokrat pa je mocnejsa raketa pov-zrocila, do so bile izmerjene kolicine prevelikein prislo je do prekoracitve obsega.

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

Obcutljivost problema

Ce se rezultat pri majhni spremembi argumentov (motnjioz. perturbaciji) ne spremeni veliko, je problem neobcutljiv, sicerpa je obcutljiv. S tem se ukvarja teorija motenj. Poglejmo zgled.

a)x + y = 2x − y = 0

=⇒ x = y = 1.

Zmotimo desno stran:

x + y = 1.9999x − y = 0.0002

=⇒ x = 1.00005, y = 0.99985.

Ta sistem je neobcutljiv.

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

b)x + 0.99y = 1.99

0.99x + 0.98y = 1.97=⇒ x = y = 1.

Zmotimo desno stran:

x + 0.99y = 1.98990.99x + 0.98y = 1.9701

=⇒ x = 2.97, y = −0.99.

Ta sistem je zelo obcutljiv.

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

Wilkinsonov zgled

Polinom

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

ima nicle 1, 2, . . . , 20, polinom

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

pa ima nicle

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 motnjapovzroci velike spremembe. Wilkinson je s tem primerom pokazal,da racunanje lastnih vrednosti preko karakteristicnega polinoma nistabilno.

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

Stopnja obcutljivosti

Stopnjo obcutljivosti merimo z razmerjem med velikostjospremembe rezultata in velikostjo spremembe podatkov.

Zgled: obcutljivost izracuna vrednosti funkcije

Naj bo f : R→ R zvezna in odvedljiva funkcija. Kaksna jeobcutljivost izracuna vrednosti f v tocki x? Naj bo δx majhnasprememba x . Po Lagrangeovem izreku je

|f (x + δx)− f (x)| ≈ |f ′(x)| · |δx |.

Torej je |f ′(x)| absolutna obcutljivost f v tocki x . Za ocenorelativne napake dobimo

|f (x + δx)− f (x)||f (x)|

≈ |f′(x)| · |x ||f (x)|

· |δx ||x |

,

torej je|f ′(x)| · |x ||f (x)|

relativna obcutljivost f v tocki x .

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

Aproksimacije pri numericnem racunanju

Naj bo izracun vrednosti funkcije f : X → Y pri danem xabstraktna predstavitev numericnega resevanja dolocenegaproblema pri podatkih x . Numericna metoda vrne priblizek y zay = f (x), tocno resitev. Razlika D = y − y je celotna napakapriblizka. V njej se skriva vec vrst napak.

Izvori napak

nenatancnost zacetnih podatkov,

napaka numericne metode,

zaokrozitvene napake med racunanjem.

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

Celotno napako lahko razdelimo na tri dele

Neodstranljiva napaka

Napaka metode

Zaokrozitvena napaka

Neodstranljiva napaka

Namesto s podatkom x racunamo s priblizkom x in namestoy = f (x) izracunamo y = f (x). Neodstranljiva napaka je

Dn = y − y .

Dn je posledica napak v zacetnih podatkih.

Zgled neodstranljive napake

Izracun vrednosti sin(π/10) z osnovnimi operacijami vP(10, 4,−5, 5). Namesto z x = π/10 racunamo z x = 0.3142 · 100

Dn = y − y = sin(π/10)− sin(0.3142) = −3.9 · 10−5

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

Napaka metode

Namesto vrednosti funkcije f racunamo vrednost njeneaproksimacije g , ki jo lahko izracunamo s koncnim stevilomoperacij. Namesto y = f (x) tako izracunamo y = g(x). Napakametode je

Dm = y − y .

Pri sami numericni metodi pogosto neskoncen proces nadomestimos koncnim (sestejemo le koncno clenov neskoncne vrste, pokoncnem stevilu korakov prekinemo iterativno metodo).

Zgled napake metode

Namesto sin(x) izracunamo g(x) za g(x) := x − x3/6. Napakametode je

Dm = y − y = 2.5 · 10−5

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

Zaokrozitvena napaka

Pri racunanju y = g(x) se pri vsaki racunski operaciji pojavizaokrozitvena napaka, tako da namesto y izracunamo y . Samavrednost y je odvisna od vrstnega reda operacij in nacina izracunag(x). Zaokrozitvena napaka je

Dz = y − y .

Dz je odvisna je od vrstnega reda in nacina racunanja g(x).

Primer zaokrozitvene napake

a1 = fl(x · x) = fl(0.09872164) = 0.9872 · 10−1

a2 = fl(a1 · x) = fl(0.03101154) = 0.3101 · 10−1

a3 = fl(a2/6) = fl(0.0051683 . . .) = 0.5168 · 10−2

y = fl(x − a3) = fl(0.309032) = 0.3090 · 100

Zaokrozitvena napaka je torej

Dz = y − g(x) = 3.0 · 10−5

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

Celotna napaka

Celotna napaka

Celotna, koncna napaka je sestevek vseh napak,

D = Dn + Dm + Dz .

Velja tudi|D| ≤ |Dn|+ |Dm|+ |Dz |.

Zgled celotne napaka

Celotna napaka je

D = Dn + Dm + Dz = 1.6 · 10−5

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

Stabilnost metode

Pri racunskem procesu pravimo, da je stabilen oz. nestabilen,locimo pa direktno in obratno stabilnost. S tem se ukvarja analizazaokrozitvenih napak.

direktna analiza: Iz x namesto y = f (x) izracunamo y . Ce jerazlika med y in y majhna (absolutno oz. relativno), je procesdirektno stabilen (absolutno oz. relativno), sicer pa nestabilen.obratna analiza: Iz x namesto y = f (x) izracunamo y . Sedajse vprasamo, za koliko moramo spremeniti argument x v x , dabo f (x) = y . Ce je razlika med x in x majhna (absolutno oz.relativno), je proces obratno stabilen (absolutno oz.relativno), sicer pa nestabilen.

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

Obcutljivost, stabilnost in natancnost

Algoritem je stabilen, ce so rezultati, ki jih vrne, relativnoneobcutljivi na motnje, ki se pojavijo zaradi zaokrozitvenih napakmed samim racunanjem.Obratno stabilen algoritem tako vrne tocno resitev bliznjegaproblema.Ce je problem obcutljiv, se tocna resitev bliznjega problema lahkozelo razlikuje od tocne resitve zacetnega problema in izracunanirezultat je nenatancen.Nenatancnost je tako lahko posledica:

uporabe stabilnega algoritma na obcutljivem problemu,

uporabe nestabilnega algoritma na neobcutljivem problemu.

Natancnost je zagotovljena, kadar neobcutljiv problem resimo sstabilno numericno metodo.

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

Analiza zaokrozitvenih napak za produkt n + 1 stevil

Racunamo produkt p = x0x1 · · · xn predstavljivih stevilx0, x1, . . . , xn.

Eksaktni algoritem:p0 = x0

i = 1, . . . , npi = pi−1xi

p = pn

Dejanski algoritem:p0 = x0

i = 1, . . . , npi = pi−1xi (1 + δi ), |δi | ≤ u

p = pn

Dobimop = p(1 + γ) = p(1 + δ1) · · · (1 + δn).

Velja(1− u)n ≤ 1 + γ ≤ (1 + u)n.

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

Ocenimo

(1± u)n = 1±(

n

1

)u +

(n

2

)u2 + · · ·+ un = 1± nu +O

((nu)2

).

Ce je nu � 1, dobimo oceno

|γ| ≤ nu +O(

(nu)2).

To pomeni, da je ocena relativne napake linearno odvisna od stevilamnozenj. Za relativno napako izracunanega produkta torej velja

|p − p||p|

= |γ| ≤ nu +O(

(nu)2).

Podobno lahko ugotovimo, da je izracunani produkt p cen produktmalo spremenjenih podatkov xi = xi (1 + δi ). S tem smo dokazalitale izrek.

Izrek

Racunanje produkta n + 1 stevil je direktno in obratno stabilno.

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

Analiza zaokrozitvenih napak za skalarni produkt

Dana sta vektorja predstavljivih stevil xxx = (x1 · · · xn)T inyyy = (y1 · · · yn)T . Izracunati je treba skalarni produkt

s := yyyTxxx =n∑

i=1

xiyi .

Eksaktni algoritem:s0 = 0i = 1, . . . , n

pi = xiyisi = si−1 + pi

s = sn

Dejanski algoritem:s0 = 0i = 1, . . . , n

pi = xiyi (1 + αi ), |αi | ≤ usi = (si−1 +pi )(1+βi ), |βi | ≤ u

s = sn

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

Ker pristevanje stevila 0 opravimo eksaktno, privzamemo β1 = 0.V izracunu nastopajo le istolezni produkti podatkov xiyi . Zato sepri obratni analizi vprasajmo, za kaksen faktor 1 + γi je trebaspremeniti te produkte, da dobimo koncni izracunani rezultat,

s =n∑

i=1

xiyi (1 + γi ).

Iz algoritma preberemo relacije

1 + γi = (1 + αi )(1 + βi )(1 + βi+1) · · · (1 + βn), i = 1, 2, . . . , n.

Podobno kot pri produktu stevil ocenimo, z malo svobode pri γ1

|γi | ≤ (n − i + 2)u +O(

(nu)2), i = 1, 2, . . . , n.

To pomeni, da je s tocni skalarni produkt relativno malo zmotenihvektorjev xxx in yyy in potrdi sledeci izrek.

Izrek

Racunanje skalarnega produkta je obratno stabilno.

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

Direktna analiza za izracun skalarnega produkta

Pri direktni analizi najprej izracunamo absolutno napako,

s − s =n∑

i=1

xiyi (1 + γi )−n∑

i=1

xiyi =n∑

i=1

xiyiγi ,

torej ocenimo, ob ugotovitvi |γi | ≤ nu in zanemarjanju clenovvisjega reda,

|s − s| ≤n∑

i=1

|xi | · |yi | · |γi | ≤ nun∑

i=1

|xi | · |yi | = nu|yyy |T |xxx |.

Dobimo ∣∣∣∣ s − s

s

∣∣∣∣ ≤ |yyy |T |xxx ||yyyTxxx |nu.

Ce so vsi xiyi enakega predznaka, dobimo∣∣∣ s−ss ∣∣∣ ≤ nu in racunanje

je direktno stabilno, sicer pa imamo v primeru, ko sta vektorjaskoraj pravokotna, lahko veliko relativno napako.

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

Racunanje vrednosti polinoma s Hornerjevim algoritmom

Dan je polinom p(x) = a0xn + a1xn−1 + · · ·+ an, racunamo pavrednost v tocki x po Hornerjevem algoritmu.

Eksaktni algoritem:p0 = a0

i = 1, . . . , npi = pi−1x + ai

p = pn

Dejanski algoritem:p0 = a0

i = 1, . . . , npi = (pi−1x(1+αi )+ai )(1+βi )

p = pn

Dobimo

p = a0xn(1 + γ0) + a1xn−1(1 + γ1) + · · ·+ an(1 + γn),

kjer je

1 + γ0 =(1 + α1) · · · (1 + αn)(1 + β1) · · · (1 + βn),

1 + γi =(1 + αi+1) · · · (1 + αn)(1 + βi ) · · · (1 + βn), i = 1, . . . , n − 1,

1 + γn =(1 + αn).

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

Torej lahko ocenimo |γ0| ≤ 2nu in

|γi | ≤ (2(n − i) + 1)u, i = 1, . . . , n.

Racunanje vrednosti polinoma je obratno stabilno, saj smoizracunali vrednost bliznjega polinoma s koeficienti ai (1 + γi )namesto ai . Iz absolutne napake

p − p = a0xnγ0 + a1xn−1γ1 + · · ·+ anγn

sledi

|p − p||p|

≤ 2nu(|a0||xn|+ |a1||xn−1|+ · · ·+ |an|)|a0xn + · · ·+ an|

.

Racunanje vrednosti polinoma po Hornerju ni direktno stabilno,tezave nastopijo tam, kjer cleni aix

n−i niso enakega predznaka, aje njihova vsota blizu 0.

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

Racunanje vrednosti polinoma, numericno

Za predstavo o dobljenih ocenah si poglejmo racunanje polinoma

(x − 2)9 =x9 − 18x8 + 144x7 − 672x6 + 2016x5 − 4032x4 + 5376x3

− 4608x2 + 2304x − 512

v okolici tocke 2. Z Matlabom dobimo, ce vrednosti gostotabeliramo v blizini korena 2,

Napake niso povsem nakljucne, saj v blizini 2 odkrijemo vzorec.

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

Racunanje vrednosti polinoma, z oceno

V algoritem lahko vstavimo sprotno racunanje ocene. Sproti polegvrednosti samega polinoma racunamo tudi glavni del stevca ocene,torej vsoto

|a0||xn|+ |a1||xn−1|+ · · ·+ |an|.

Algoritem:p0 = a0

e0 = |a0|i = 1, . . . , n

pi = pi−1x + aiei = ei−1|x |+ |ai |

p = pn

e = 2nu en|p|

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

e je ocena za relativno napako. Graf prikazuje razmerje medresnicno napako in oceno (minus desetiski logaritem nam da ravnostevilo tocnih decimalk). Ocena je res zgornja meja in dejanskanapaka je manjsa ali enaka, vendar zgled kaze, da so v blizini tocke2 napake res vecje in tudi obnasajo se tako, kot napoveduje ocena.

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

Poucni primeri - racunanje stevila π

π je limita obsega Sn pravilnega mnogokotnika, vcrtanega v krog spolmerom r = 1

2 . Naj bo an stranica pravilnega n-kotnika.Poiscimo zvezo med an in a2n:

Velja

a2n =

√√√√(an2

)2+

(1

2−√

1

4−(an

2

)2)2

=

√1−

√1− a2

n

2.

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

Racunanje stevila π, 2.del

Od tod pa iz Sn = nan sledi

S2n = 2na2n = 2n

√√√√1−√

1−(Snn

)2

2.

Zacnemo pri n = 6,S6 = 3 in uporabimo to formulo iterativno.

n Sn n Sn

6 3.0000000 768 3.143072612 3.1058285 1536 3.148660724 3.1326292 3072 3.137475048 3.1393456 6144 3.181980496 3.1410184 12288 3.0000000

192 3.1413245 24576 4.2426405384 3.1416743 49152 0.0000000

Formula odpove, saj pride do odstevanja skoraj enako velikih stevil,napaka se mnozi z 2n. V zgornji tabeli so napacne decimalke rdece.

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

Racunanje stevila π, 3.del

Kadar imamo nestabilen postopek, nam ne pomaga niti racunanjez vecjo natancnostjo. Prava resitev je preurediti postopek tako, dase med racunanjem ne izgublja natancnost. Za stabilno racunanjeje potrebno formulo preurediti in se izogniti odstevanju enakovelikih stevil. Stabilna oblika je

S2n = 2n

√√√√√√√(

1−√

1−(Snn

)2)(

1 +

√1−

(Snn

)2)

2

(1 +

√1−

(Snn

)2)

= Sn

√√√√ 2

1 +

√1−

(Snn

)2.

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

Sedaj dobimo pravilne rezultate:

n Sn n Sn

6 3.0000000 768 3.141583912 3.1058285 1536 3.137590624 3.1326287 3072 3.141592348 3.1393502 6144 3.141592796 3.1410320 12288 3.1415927

192 3.1414526 24576 3.1415927384 3.1415577 49152 3.1415927

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

Sestevanje Taylorjeve vrste za e−x

Vemo, da Taylorjeva vrsta za eksponentno funkcijo

e−x =∞∑n=0

(−1)nxn

n!

konvergira za vsak x ∈ C. Ce to vrsto sestevamo numericno povrsti, za x � 0 ne dobimo pricakovanih rezultatov.

x e−x vrsta relativna napaka

1 3.678795 · 10−1 3.678794 · 10−1 1.4 · 10−7

2 1.353353 · 10−1 1.353353 · 10−1 2.3 · 10−7

3 4.978707 · 10−2 4.978702 · 10−2 9.3 · 10−7

4 1.831564 · 10−2 1.831531 · 10−2 1.8 · 10−5

5 6.737947 · 10−3 6.737477 · 10−3 7.0 · 10−5

6 2.478752 · 10−3 2.477039 · 10−3 6.9 · 10−4

7 9.118820 · 10−4 9.139248 · 10−4 2.2 · 10−3

8 3.354626 · 10−4 3.485951 · 10−4 3.9 · 10−2

9 1.234098 · 10−4 1.799276 · 10−4 4.6 · 10−1

10 4.539992 · 10−5 −7.266693 · 10−5 2.6 · 10−0

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

Sestevanje Taylorjeve vrste za e−x , 2. del

Za alternirajoce vrste vemo, da konvergirajo, ce cleni od nekegaclena naprej padajo in je njihova limita enaka 0. Prav to, dazaporedje clenov vrste alternira in po absolutni vrednosti nekajcasa narasca, je razlog za nesmiselni rezultat. Ko so cleni najvecji,se zameglijo majhne decimalke, ki ostanejo netocne do koncaracunanja.

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

Izracunane vrednosti clenov in delnih vsot vrste kaze sledeca tabela.

n an sn n an sn0 1.000000 1.000000 20 41.103188 13.3967511 −10.000000 −9.000000 21 −19.572947 −6.1761952 50.000000 41.000000 22 8.896794 2.7205993 −166.666672 −125.666672 23 −3.868171 −1.1475724 416.666687 291.000000 24 1.611738 0.4641665 −833.333374 −542.333374 25 −0.644695 −0.1805296 1388.888916 846.555542 26 0.247960 0.0674307 −1984.127075 −1137.571533 27 −0.091837 −0.0244078 2480.158936 1342.587402 28 0.032799 0.0083929 −2755.732178 −1413.144775 29 −0.011310 −0.002918

10 2755.732178 1342.587402 30 0.000380 0.00085211 −2505.211182 −1162.623779 31 −0.001216 −0.00036412 2087.676025 925.052246 32 0.000380 0.00001613 −1605.904663 −680.852417 33 −0.000115 −0.00009914 1147.074707 466.222290 34 0.000034 −0.00006515 −764.716492 −298.494202 35 −0.000010 −0.00007516 477.947815 179.453613 36 0.000003 −0.00007217 −281.145782 −101.692169 37 −0.000001 −0.00007318 156.192108 54.499939 38 0.000000 −0.00007319 −82.206375 −27.706436 39 −0.000000 −0.000073

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

Racunanje vrednosti integrala I10

Integrale In :=

∫ 1

0xnex−1dx , n = 0, 1, . . ., lahko racunamo

rekurzivno po formuli, ki jo dobimo z integracijo per partes,

In = xnex−1∣∣10− n

∫ 1

0xn−1ex−1dx = 1− nIn−1.

Poznamo zacetno vrednost I0 = 1− e−1. V enojni natancnostidobimo

n In n In0 0.6321205 7 0.11242961 0.3678795 8 0.10056302 0.2642411 9 0.09493263 0.2072767 10 0.05067444 0.1708932 11 0.44258125 0.1455340 12 −4.31097416 0.1267958 13 57.0426636

Razlog je v formuli In = 1− nIn−1. Napaka pri clenu In−1 sepomnozi z n in torej po absolutni vrednosti hitro narasca, tocnevrednosti In pa padajo.

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

Racunanje I10, 2. del

Ce racunamo v obratni smeri,

In−1 =1− In

n,

se napaka v vsakem koraku deli z n. Ce zacnemo pri nekem dovoljvelikem clenu, lahko z napacnim zacetnim In = 0 izracunamo vsezacetne clene dovolj natancno. Ce zacnemo z I26 = 0 tako dobimo(v enojni natancnosti) vse clene od I12 do I0 na vse decimalketocno.

n In n In0 0.6321205 8 0.10093201 0.3678795 9 0.09161232 0.2642411 10 0.08387713 0.2072766 11 0.07735224 0.1708934 12 0.07177335 0.1455329 13 0.0669477

6 0.1268024...

...7 0.1123835 26 0.0000000

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

Zaporedno korenjenje in kvadriranje

Vzamemo stevilo x > 0, ga najprej 80-krat korenimo in nato 80-kratkvadriramo. Kaj dobimo? Izkaze se, da za x ≥ 1 dobimo 1, za 0 < x < 1 padobimo 0! Za razumljivejso razlago si poglejmo model kalkulatorja HP 48G,kjer je baza desetiska, dolzina mantise pa je 12.Poglejmo najprej primer 0 < x < 1. Za taksne x velja

√x > x . Najvecje

predstavljivo stevilo, ki je se manjse od 1, je 1− 10−12 oziroma 0. 9 . . . 9︸ ︷︷ ︸12

.

Zaradi√

1 + x = 1 + 12x − 1

8x2 + · · · velja√

1− 10−12 = 1− 1

210−12 − 1

810−24 + · · · = 0. 9 . . . 9︸ ︷︷ ︸

12

4 9 . . . 9︸ ︷︷ ︸11

87 . . . ,

in stevilo se zaokrozi na 0. 9 . . . 9︸ ︷︷ ︸12

. Tako s korenjenjem nikoli ne pridemo do 1,

ko pa kvadriramo, je stevilo vedno manjse, dokler ne pride do podkoracitve indobimo 0.Prvo predstavljivo stevilo, ki je vecje od 1 je 1 + 10−11. Tu dobimo√

1 + 10−11 = 1 +1

210−11 − 1

810−22 + · · · = 1. 0 . . . 0︸ ︷︷ ︸

11

4 9 . . . 9︸ ︷︷ ︸10

87 . . . ,

kar se zaokrozi na 1. Tako s korenjenjem pridemo do 1, s kvadriranjem pa se to

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

Sestevanje stevilske vrste

Znano je, da velja

∞∑k=1

1

k2=π2

6= 1.644934066848 . . .

Kako bi to sesteli, ce tega ne bi vedeli?

Pristevamo clene, dokler se vsota ne spreminja vec. V enojninatancnosti tako dobimo 1.64472532 . . ., vrednost padosezemo pri k = 4096. V tem koraku delni vsoti ≈ 1.6pristevamo 2−24.

Sestevamo v obratnem vrstnem redu od malih cifer protivelikim. Izkaze se, da bi za priblizek 1.64493406 z 8 tocnimidecimalkami morali sesteti 109 clenov!

Seveda nobeden izmed zgornjih dveh nacinov ni primeren, se pa daz ustrezno numericno metodo dobiti dovolj natancen priblizek zuporabo relativno malo clenov.

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

Triclenska rekurzivna formula

Dana je triclenska rekurzivna formula

xk+1 = 2.25xk − 0.5xk−1

in zacetni dve vrednosti x1 = 1/3 in x2 = 1/12. Pri teh pogojih jesplosna resitev xk = 4

3 · 4−k .

Numericno dobimo naslednje tocke (logaritemska skala)

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

Triclenska rekurzivna formula, 2.del

Odgovor se skriva v dejstvu, da je splosna resitev dane diferencneenacbe

xk = α

(1

4

)k

+ β2k .

Zaradi zaokrozitvenih napak je β 6= 0 in prej ali slej drugi clenprevlada. Zaradi zaokrozitvenih napak imamo na zacetku

x1 =1

3(40 + 2−56)

x2 =1

3(4−1 + 2−55)

Splosna (tocna) resitev za zgornja x1, x2 je

xk =1

3(41−k + 2k−57),

do preobrata pride ravno ko je 41−k = 2k−57 oziroma k ≈ 20.

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

Resevanje kvadratne enacbe

Resitvi kvadratne enacbe ax2 + bx + c = 0 sta podani s formulo

x1,2 =−b ±

√b2 − 4ac

2a.

Ce vzamemo npr. a = 1.2345678, b = 76543210.5, c = 0.1122334455, vdvojni natancnosti dobimo

x1 = −6.200000558900046 · 107, x2 = −6.034970778375905 · 10−9,

tocni nicli pa sta

x1 = −6.200000558900046 · 107, x2 = −1.466275647008561 · 10−9.

Tezava se je pojavila pri odstevanje priblizno enako velikih stevil priracunanju x2. Resitev je, da eno resitev izracunamo po formuli (odvisnood predznaka b), drugo pa dobimo iz Vietove formule x1x2 = c/a.Tako iz x2 = c/(ax1) dobimo pravilno x2 = −1.466275647008561 · 10−9.

To ni edina tezava, ki se lahko pojavi pri formulu za kvadratno enacbo.

Ce so koeficienti zelo veliki ali zelo majhni, potem lahko pride do

prekoracitve ali podkoracitve obsega pri racunanju b2 − 4ac . Temu se

lahko izognemo, ce celo enacbo delimo s tistim koeficientom a, b, c , ki

ima najvecjo absolutno vrednost.B. Plestenjak, J.Kozak: Uvod v numericne metode 2011-2012 56 / 56