Numeeriset menetelmät Luento 2 To 8.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 1/33 p. 1/33
Lukujen tallennus Kiintoluvut (integer) tarkka esitys aritmeettiset operaatiot tarkkoja, jos pysytään lukualueen sisällä ja jakolasku = kokonaislukujakolasku Liukuluvut (floating point) liukuluvut reaaliluvut aritmeettiset operaatiot liukuluvuilla aritmeettiset operaatiot reaaliluvuilla Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 2/33 p. 2/33
Liukulukuesitys Luvun x 0 esitys B-kantaisena liukulukuna x = ( 1) s M B E missä s {0, 1} M R E Z määrää etumerkin mantissa eksponentti Mantissa normalisoitu joko: B 1 M < 1 tai: 1 M < B Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 3/33 p. 3/33
Liukulukuesitys 10-kantainen normalisoitu liukuluku x = ( 1) s (0.x 1 x 2 x 3... ) 10 10 E x i {0,..., 9}, 0.1 M < 1 2-kantainen normalisoitu liukuluku x = ( 1) s (1.b 1 b 2 b 3... ) 2 2 E b i {0, 1}, 1 M < 2 Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 4/33 p. 4/33
Liukulukuesitys Tietokoneessa aina äärellinen esitys M = 1.b 1 b 2... b m, E min E E max vain äärellinen määrä rationaalilukuja on olemassa pienin ja suurin liukuluku liukuluvut eivät ole tasaisesti jakautuneet (lähempänä nollaa tiheämmässä) reaaliluvusta liukuluvuksi: bitti b m määrätään pyöristämällä, bitit b m+1, b m+2,... menetetään Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 5/33 p. 5/33
IEEE:n standardin liukuluvut Yksinkertaisen tarkkuuden liukuluvut s E M 1 8 23 bittiä suuruusluokka: 10 38... 10 38 tarkkuus: noin 7 merkitsevää numeroa Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 6/33 p. 6/33
IEEE:n standardin liukuluvut Kaksinkertaisen tarkkuuden liukuluvut s E M 1 11 52 bittiä suuruusluokka: 10 307... 10 307 tarkkuus: noin 15 merkitsevää numeroa Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 7/33 p. 7/33
Liukulukuaritmetiikka Laskutoimitusten tulokset esitetään aina käytetyn liukulukuesityksen mukaisesti Myös välitulokset! Tulos voi riippua laskujärjestyksestä Tulos, jossa E > E max ylivuoto Tulos, jossa E < E min alivuoto IEEE:n standardissa myös: Inf, +Inf ja NaN Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 8/33 p. 8/33
Esimerkki Tehtävä: c = a 2 + b 2, kun a = 10 30 ja b = 1 Yksinkertainen tarkkuus a 2 = 10 60 aiheuttaa ylivuodon Järjestetään laskutoimitukset uudelleen: (a c = σ σ) 2 + ( b σ ) 2, missä σ = max{ a, b } Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 9/33 p. 9/33
Esimerkki 10-kantaiset normalisoidut liukuluvut, neljän numeron mantissa Tehtävä: 0.01 + 7000 Liukulukuina: 0.1000 10 1 + 0.7000 10 4 Laskutoimitus suoritetaan isommassa tilassa (esimerkiksi kahdeksan numeron mantissalla) Yhteenlaskussa itseisarvoltaan pienemmän luvun normalisoinnista luovutaan Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 10/33 p. 10/33
Esimerkki jatkuu 0.1000 10 1 0.00000100 10 4 0.7000 10 4 0.70000000 10 4 0.70000100 10 4 0.7000 10 4 Tulos tallennetaan neljän numeron mantissalla pienemmällä luvulla ei merkitystä Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 11/33 p. 11/33
Esimerkki Laskutoimitusten tulokset eivät tarkkoja Liukulukujen yhtäsuuruuden testaaminen ei mielekästä Ei näin: Vaan näin: if (s == 1.0) then... if (abs(s - 1.0) <= d) then... missä d on pieni positiivinen toleranssiparametri Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 12/33 p. 12/33
Epälineaariset yhtälöt Olkoon f : R R jatkuva Yhtälö f(x) = 0 Yhtälön ratkaisu eli juuri x Funktio f epälineaarinen yleensä ratkaisun analyyttistä lauseketta ei tunneta Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 13/33 p. 13/33
Esimerkki Keplerin yhtälö x e sin x M = 0 missä 0 < e < 1 ja M ovat vakioita Kuvaa esimerkiksi satelliitin liikettä elliptisellä radalla Ratkaisun lauseketta ei tunneta käytetään numeerista menetelmää Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 14/33 p. 14/33
Iteratiivinen ratkaiseminen Alkuarvaus x 0 parempi approksimaatio x 1 parempi approksimaatio x 2... approksimaatio x n joka toteuttaa lopetuskriteerin Huom: Ratkaisua ei välttämättä ole olemassa Ratkaisuja voi olla useita Piirrä kuva Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 15/33 p. 15/33
Esimerkki Keplerin yhtälö vakioilla e = 1/2 ja M = 1 x 1 2 sin x 1 = 0 1 2 sin x = x 1 Piirrä lausekkeiden 1 2 sin x ja x 1 kuvaajat Kuvaajat leikkaavat kohdassa x 1.5 Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 16/33 p. 16/33
p. 17/33 Puolitushaku Olkoon [a, b] siten, että f(a)f(b) < 0 On olemassa x ]a, b[ siten, että f(x ) = 0 Puolitushaku: Olkoon c = 1 2 (a + b) Jos f(a)f(c) < 0 niin asetetaan [a, b] := [a, c] Jos f(a)f(c) > 0 niin asetetaan [a, b] := [c, b] Toistetaan kunnes [a, b] riittävän pieni tai f(c) riittävän lähellä nollaa c x Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 17/33
Puolitushaku bisect(a,b,toler,itmax,c) u := f(a) v := f(b) h := b a if sign(u) = sign(v) then stop do iter = 1,...,itmax h := h/2 c := a + h w := f(c) if h toler or w toler then return if sign(w) sign(u) then b := c v := w else a := c u := w end if end do Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 18/33 p. 18/33
Puolitushaun konvergenssi Olkoot [a 0, b 0 ], [a 1, b 1 ],..., [a n, b n ],... puolitushaun tuottamat välit lim a n = lim b n = x n n Olkoon c n = 1 2 (a n + b n ) c n x 1 2 (n+1)(b 0 a 0 ) Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 19/33 p. 19/33
Algoritmien konvergenssi Käyttökelpoinen iteratiivinen menetelmä on numeerisesti stabiili suppeneva eli menetelmä konvergoi tehokas Tehokkuuden mittareita ovat esimerkiksi tarvittavien iteraatioiden lukumäärä funktion arvojen laskujen lukumäärä yhdellä iteraatiokierroksella Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 20/33 p. 20/33
Konvergenssin kertaluku Olkoon lim n x n = x Jos on olemassa p ja C > 0 siten, että lim n x n+1 x x n x p = C niin p on konvergenssin kertaluku C on asymptoottinen virhevakio Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 21/33 p. 21/33
Konvergenssin kertaluku lim n x n+1 x x n x p = C Konvergenssi on: p = 1 ja C < 1 lineaarista 1 < p < 2 p = 2 superlineaarista neliöllistä eli kvadraattista Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 22/33 p. 22/33
Esimerkki Puolitushaussa pahimmassa tapauksessa c n x = 1 2 (n+1)(b 0 a 0 ) c n+1 x c n x = 1 2 (n+2) (b 0 a 0 ) 1 2 (n+1) (b 0 a 0 ) = 1 2 p = 1 ja C = 1/2 konvergenssi lineaarista Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 23/33 p. 23/33
Kiintopistemenetelmä Etsitään g siten, että f(x) = 0 x = g(x) Lähtien alkuarvauksesta x 0 iteroidaan x n+1 = g(x n ) kunnes jokin lopetuskriteeri toteutuu Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 24/33 p. 24/33
Kutistavat funktiot Funktio g : [a, b] [a, b] on kutistava, jos on olemassa vakio 0 < γ < 1 siten, että g(x) g(y) γ x y kaikilla x, y [a, b] Huom: Kutistavalle funktiolle on x [a, b] g(x) [a, b] (väli voi olla myös ääretön) Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 25/33 p. 25/33
Kiintopistemen. konvergenssi Olkoon g : [a, b] [a, b] kutistava On olemassa täsmälleen yksi kiintopiste x = g(x ) Kiintopisteiteraatio x n+1 = g(x n ) suppenee kiintopisteeseen x kaikilla alkuarvauksilla x 0 [a, b] Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 26/33 p. 26/33
Newtonin menetelmä Olkoon f : R R differentioituva Korvataan käyrä y = f(x) pisteeseen (x n, f(x n )) asetetulla tangentilla Uusi approksimaatio x n+1 on tangentin nollakohta x n+1 = x n f(x n) f (x n ) Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 27/33 p. 27/33
Newtonin menetelmä Menetelmä voidaan tulkita myös kiintopisteiteraationa, missä g(x) = x f(x) f (x) yleistää epälineaarisille yhtälöryhmille (f(x) on vektori, derivaattaa f (x) vastaa Jacobin matriisi eli jacobiaani) Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 28/33 p. 28/33
Newtonin men. konvergenssi Olkoon jossain juuren x ympäristössä f kaksi kertaa jatkuvasti differentioituva ja f (x) 0 Jos alkuarvaus x 0 on riittävän lähellä juurta x lim n x n = x ja lim n x n+1 x x n x 2 = f (x ) 2 f (x ) p = 2 = C Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 29/33 p. 29/33
Newtonin men. ominaisuuksia Plussaa: neliöllinen (kvadraattinen) konvergenssi tehokas Miinusta: alkuarvauksen valinta hankalaa iteraatiokaavassa nimittäjä voi mennä itseisarvoltaan pieneksi tarvitaan myös derivaatan lauseke Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 30/33 p. 30/33
Newtonin men. ominaisuuksia Derivaatan laskeminen: käsin symbolisen laskennan ohjelmistolla automaattisella derivoinnilla Voidaan yhdistää muiden menetelmien kanssa: aloitetaan yksinkertaisella globaalisti konvergoivalla menetelmällä jatketaan Newtonin menetelmällä Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 31/33 p. 31/33
Sekanttimenetelmä Joko: Approksimoidaan tangenttia pisteisiin (x n 1, f(x n 1 )) ja (x n, f(x n )) asetetulla sekantilla Tai: Approksimoidaan derivaattaa erotusosamäärällä f (x n ) f(x n) f(x n 1 ) x n x n 1 Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 32/33 p. 32/33
Sekanttimenetelmä jatkuu x n x n 1 x n+1 = x n f(x n ) f(x n ) f(x n 1 ) Konvergenssin kertaluku p 1.62 Huom: Tarvitaan kaksi alkuarvausta x 0 ja x 1 Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 33/33 p. 33/33