Numeeriset menetelmät TIEA381. Luento 2. Kirsi Valjus. Jyväskylän yliopisto. Luento 2 () Numeeriset menetelmät / 39

Samankaltaiset tiedostot
Numeeriset menetelmät

Numeeriset menetelmät

Kevät Kirsi Valjus. Jyväskylän yliopisto Tietotekniikan laitos

R. Mäkinen NUMEERISET MENETELMÄT

Numeeriset menetelmät

Muutoksen arviointi differentiaalin avulla

Epälineaaristen yhtälöiden ratkaisumenetelmät

Liukulukulaskenta. Pekka Hotokka

MS-A0104 Differentiaali- ja integraalilaskenta 1 (ELEC2) MS-A0106 Differentiaali- ja integraalilaskenta 1 (ENG2)

Numeeriset menetelmät TIEA381. Luento 4. Kirsi Valjus. Jyväskylän yliopisto. Luento 4 () Numeeriset menetelmät / 44

Epälineaaristen yhtälöiden ratkaisumenetelmät

Numeeriset menetelmät TIEA381. Luento 12. Kirsi Valjus. Jyväskylän yliopisto. Luento 12 () Numeeriset menetelmät / 33

Harjoitus 7 -- Ratkaisut

mlnonlinequ, Epälineaariset yhtälöt

Numeeriset menetelmät TIEA381. Luento 6. Kirsi Valjus. Jyväskylän yliopisto. Luento 6 () Numeeriset menetelmät / 33

jakokulmassa x 4 x 8 x 3x

5 Differentiaalilaskentaa

Numeeriset menetelmät

Luku 4. Derivoituvien funktioiden ominaisuuksia.

BM20A1501 Numeeriset menetelmät 1 - AIMO

Numeerinen analyysi Harjoitus 1 / Kevät 2017

Numeeriset menetelmät TIEA381. Luento 5. Kirsi Valjus. Jyväskylän yliopisto. Luento 5 () Numeeriset menetelmät / 28

Numeeriset menetelmät

Numeeriset menetelmät

13. Taylorin polynomi; funktioiden approksimoinnista. Muodosta viidennen asteen Taylorin polynomi kehityskeskuksena origo funktiolle

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 5: Taylor-polynomi ja sarja

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 3: Jatkuvuus

Juuri 12 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty

Numeeriset menetelmät TIEA381. Luento 3. Kirsi Valjus. Jyväskylän yliopisto. Luento 3 () Numeeriset menetelmät / 45

Reaalilukuvälit, leikkaus ja unioni (1/2)

Funktiot. funktioita f : A R. Yleensä funktion määrittelyjoukko M f = A on jokin väli, muttei aina.

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

Matematiikan tukikurssi

2.2.1 Ratkaiseminen arvausta sovittamalla

MS-A0205/MS-A0206 Differentiaali- ja integraalilaskenta 2 Luento 8: Newtonin iteraatio. Taso- ja avaruusintegraalit

Numeeriset menetelmät

4 Epälineaarisen yhtälön ratkaisu

Mapu 1. Laskuharjoitus 3, Tehtävä 1

Yhtälön ratkaiseminen

IV. TASAINEN SUPPENEMINEN. f(x) = lim. jokaista ε > 0 ja x A kohti n ε,x N s.e. n n

Numeeriset menetelmät TIEA381. Luento 7. Kirsi Valjus. Jyväskylän yliopisto. Luento 7 () Numeeriset menetelmät / 43

Harjoituskokeiden ratkaisut Painoon mennyt versio.

(0 desimaalia, 2 merkitsevää numeroa).

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

Schildtin lukio

Matematiikan tukikurssi

Matematiikan tukikurssi

Osa IX. Z muunnos. Johdanto Diskreetit funktiot

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

3. Yhtälön numeeristen ratkaisujen etsimisestä

Funktion raja-arvo ja jatkuvuus Reaali- ja kompleksifunktiot

infoa Viikon aiheet Potenssisarja a n = c n (x x 0 ) n < 1

6. Differentiaaliyhtälösysteemien laadullista teoriaa.

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

8 Potenssisarjoista. 8.1 Määritelmä. Olkoot a 0, a 1, a 2,... reaalisia vakioita ja c R. Määritelmä 8.1. Muotoa

Numeeriset menetelmät

Differentiaali- ja integraalilaskenta 1 Ratkaisut 2. viikolle /

Differentiaaliyhtälöryhmä

n. asteen polynomilla on enintään n nollakohtaa ja enintään n - 1 ääriarvokohtaa.

Differentiaalilaskenta 1.

5. Numeerisesta derivoinnista

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 10: Ensimmäisen kertaluvun differentiaaliyhtälö

811120P Diskreetit rakenteet

Teknillinen tiedekunta, matematiikan jaos Numeeriset menetelmät

Todista raja-arvon määritelmään perustuen seuraava lause: Jos lukujonolle a n pätee lima n = a ja lima n = b, niin a = b.

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 4: Derivaatta

Matematiikan tukikurssi

13. Ratkaisu. Kirjoitetaan tehtävän DY hieman eri muodossa: = 1 + y x + ( y ) 2 (y )

Matematiikan tukikurssi: kurssikerta 12

MS-A0102 Differentiaali- ja integraalilaskenta 1

Juuri 12 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty

Numeeriset menetelmät TIEA381. Luento 11. Kirsi Valjus. Jyväskylän yliopisto. Luento 11 () Numeeriset menetelmät / 37

Funktioiden approksimointi ja interpolointi

Numeerinen integrointi ja derivointi

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

Numeeriset menetelmät

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 1: Parametrisoidut käyrät ja kaarenpituus

Oletetaan, että funktio f on määritelty jollakin välillä ]x 0 δ, x 0 + δ[. Sen derivaatta pisteessä x 0 on

MS-A010{3,4,5} (ELEC*, ENG*) Differentiaali- ja integraalilaskenta 1 Luento 2: Sarjat

Funktiojonot ja funktiotermiset sarjat Funktiojono ja funktioterminen sarja Pisteittäinen ja tasainen suppeneminen

Viikon aiheet. Funktion lineaarinen approksimointi

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö

Kokelaan sukunimi ja kaikki etunimet selväsi kirjoitetuna. Kaava 1 b =2a 2 b =0,5a 3 b =1,5a 4 b = 1a. 4 5 b =4a 6 b = 5a

Numeerinen analyysi 2016

Olkoon funktion f määrittelyjoukkona reaalilukuväli (erityistapauksena R). Jos kaikilla määrittelyjoukon luvuilla x 1 ja x 2 on voimassa ehto:

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )

Kompleksiluvut., 15. kesäkuuta /57

1. Olkoon f :, Ratkaisu. Funktion f kuvaaja välillä [ 1, 3]. (b) Olkoonε>0. Valitaanδ=ε. Kun x 1 <δ, niin. = x+3 2 = x+1, 1< x<1+δ

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 2: Sarjat

b) Määritä/Laske (ei tarvitse tehdä määritelmän kautta). (2p)

Tenttiin valmentavia harjoituksia

MS-C1340 Lineaarialgebra ja

MS-A010{3,4,5} (ELEC*, ENG*) Differentiaali- ja integraalilaskenta 1 Luento 10: Ensimmäisen kertaluvun differentiaaliyhtälö

Johdatus matematiikkaan

MS-A010{2,3,4,5} (SCI, ELEC*, ENG*) Differentiaali- ja integraalilaskenta 1 Luento 2: Sarjat

Häiriöteoriaa ja herkkyysanalyysiä. malleissa on usein pieniä/suuria parametreja. miten yksinkertaistetaan mallia kun parametri menee rajalle

Differentiaali- ja integraalilaskenta 1 Ratkaisut 3. viikolle /

Transkriptio:

Numeeriset menetelmät TIEA381 Luento 2 Kirsi Valjus Jyväskylän yliopisto Luento 2 () Numeeriset menetelmät 14.3.2013 1 / 39

Luennon 2 sisältö Luvusta 1: Numeerinen stabiilisuus Liite A: Liukulukuaritmetiikasta Luku 2: Epälineaarisen yhtälön ratkaiseminen Puolitushaku Kiintopistemenetelmä Newtonin menetelmä Sekanttimenetelmä Ohjelmointitekniikasta Luento 2 () Numeeriset menetelmät 14.3.2013 2 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä 1.3 Numeerinen stabiilisuus Numeerinen stabiilisuus: Esimerkki Tarkastellaan tehtävää x = f + 1 f, f 0 (suuri). Tehtävän häiriöalttius suurilla parametrin f arvoilla on K(x) 1 2. Lasketaan suureen x arvoja joillakin parametrin f arvoilla käyttäen yksinkertaisen tarkkuuden liukulukuaritmetiikkaa: f x tarkka 10 1 0.154347E+00 0.154347E+00 10 2 0.498753E-01 0.498756E-01 10 3 0.158081E-01 0.158074E-01 10 4 0.499725E-02 0.499988E-02 10 5 0.158691E-02 0.158113E-02 Koska neliöjuuren argumenttia ei voida esittää tarkasti liukulukuna on luonnollista, että laskennan tuloksessa esiintyy virhettä. Virhe on paljon suurempi kuin mitä tehtävän häiriöalttius ennustaa. Luento 2 () Numeeriset menetelmät 14.3.2013 3 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä Esimerkki jatkuu 1.3 Numeerinen stabiilisuus Tehtävä on hyvin asetettu: ratkaisu x on olemassa ja se on yksikäsitteinen, ratkaisu x on stabiili, eli riippuu jatkuvasti alkutiedosta f Tehtävän häiriöalttius on pieni K(x) 1 2. Mutta: Liukuluvuilla laskettaessa virhe paljon suurempi kuin mitä häiriöalttius ennustaa Lausekkeen generoima äärellisestä määrästä peruslaskutoimituksia koostuva numeerinen algoritmi x:n laskemiseksi on numeerisesti epästabiili Luento 2 () Numeeriset menetelmät 14.3.2013 4 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä 1.3 Numeerinen stabiilisuus Esimerkki jatkuu Yhtälö x = f + 1 f, f 0 (suuri). voidaan kirjoittaa yhtäpitävässä muodossa x = 1 f + 1 + f. Tätä lauseketta käyttäen yksinkertaisen tarkkuuden liukulukuaritmetiikalla saadaan täysi tarkkuus suureen x arvoille. Vaikka lausekkeet ovat matemaattisesti yhtäpitäviä vain jälkimmäinen muoto on käyttökelpoinen. Luento 2 () Numeeriset menetelmät 14.3.2013 5 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä 1.3 Numeerinen stabiilisuus Numeerinen stabiilisuus: Määritelmä Kun sovelletaan jotakin numeerista algoritmia yleisen tehtävän Φ(x, f ) = 0 (1) ratkaisemiseen, tuotetaan jono alkuperäistä tehtävää approksimoivia tehtäviä Φ n (x n, f ) = 0, (2) joiden ratkaisujen jonolle {x n } pätee x n x kun n. Määritelmä 1.2 Numeerinen algoritmi on stabiili, jos yhtälön (2) ratkaisun x n riippuvuus lähtötiedon häiriöstä ei ole suurempi kuin alkuperäisen tehtävän (1) ratkaisun x. Ts. virheiden x n x n ja x x tulisi siis olla samaa kertaluokkaa kaikilla n. Luento 2 () Numeeriset menetelmät 14.3.2013 6 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä 1.3 Numeerinen stabiilisuus Numeerinen stabiilisuus Numeerinen stabiilisuus on tärkein numeeriselle menetelmälle asetettavista vaatimuksista. Ilman sitä tulosten luotettavuus on kyseenalaista. Epästabiileja operaatioita ovat esim. jakaminen itseisarvoltaan pienellä luvulla kahden suunnilleen samansuuruisen luvun vähentäminen toisistaan Ohje: sievennä tai muokkaa lauseketta! Luento 2 () Numeeriset menetelmät 14.3.2013 7 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä Esimerkki 1.5 1.3 Numeerinen stabiilisuus Eksponenttifunktion arvo voidaan laskea pisteessä x = 15 potenssisarjasta e 15 = ( 15) i i=0 i! = 1 15 + 112 1 2 5621 2 +... 3.1 10 7. Tämä on numeerisesti epästabiili algoritmi, koska sarjan summa on pieni yhteenlaskettaviin verrattuna. Stabiili tapa on laskea käänteisluku potenssisarjan avulla e 15 = 1 e 15 = 1 1 + 15 + 112 1 2 + 562 1 2 +... Luento 2 () Numeeriset menetelmät 14.3.2013 8 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä Liite A: Liukulukuaritmetiikasta Liite A: Liukulukuaritmetiikasta - tietokoneessa luvut tallennetaan kiinteällä määrällä bittejä - luku x ( 0) B-kantaisessa liukulukuesityksessä on x = ( 1) s M B E, missä s {0, 1} on etumerkki M R on mantissa E Z on eksponentti Luento 2 () Numeeriset menetelmät 14.3.2013 9 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä Liukulukuaritmetiikasta Liite A: Liukulukuaritmetiikasta Nykyään käytössä IEEE:n standardin mukainen 2-kantainen liukulukuesitys yksinkertaisen tarkkuuden liukuluvut esitetään käyttäen 32 bittiä }{{} S }{{ E }} M{{} 1 8 23 Näin voidaan esittää suuruusluokkaa 10 38,..., 10 38 olevat luvut noin 7 merkitsevän numeron tarkkuudella kaksinkertaisen tarkkuuden liukuluvut esitetään käyttäen 64 bittiä }{{} S }{{ E }} M{{} 1 11 52 Näin voidaan esittää suuruusluokkaa 10 307,..., 10 307 olevat luvut noin 15 merkitsevän numeron tarkkuudella Luento 2 () Numeeriset menetelmät 14.3.2013 10 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä Liite A: Liukulukuaritmetiikasta Liukulukuaritmetiikan ominaisuuksia liukulukujen joukossa pienin ja suurin luku liukuluvut eivät ole tasaisesti jakautuneet reaaliakselille: esim väleillä (2 128, 2 127 ) ja (2 126, 2 127 ) on yhtä monta liukulukua kun reaalilukua approksimoidaan liukuluvulla, menetetään mantissan bitit, jotka eivät mahdu tallennusmuotoon. Viimeinen bitti määrätään pyöristämällä. Liukulukulaskutoimituksen tulos pyöristetään aina käytetyn liukulukuesityksen mukaisesti (myös välitulokset!) Luento 2 () Numeeriset menetelmät 14.3.2013 11 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä Liite A: Liukulukuaritmetiikasta Liukulukuaritmetiikan ominaisuuksia liukulukujen joukko ei ole suljettu laskutoimitusten +,,, / suhteen; jos tulos menee itseisarvoltaan liian pieneksi, tapahtuu alivuoto liian suureksi, tapahtuu ylivuoto (tulokseksi asetetaan ± Inf). liukulukulaskutoimitusten tulos voi riippua myös laskujärjestyksestä konevakio ε R on pienin liukuluku, joka toteuttaa 1.0 + ε R > 1.0. 32 bitin IEEE aritmetiikassa ε R 10 7 ja 64 bitin IEEE aritmetiikassa ε R 2 10 16. Luento 2 () Numeeriset menetelmät 14.3.2013 12 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä Liite A: Liukulukuaritmetiikasta Esimerkki: suuren ja pienen luvun yhteenlasku Lasketaan yhteen 10-järjestelmän luvut 0.01 ja 7000, käyttäen esitystä, jossa mantissa esitetään neljällä numerolla. Lukujen normalisoidut liukulukuesitykset ovat 0.01 = 0.1000 10 1 ja 7000 = 0.7000 10 4. Suoritettaessa yhteenlasku luovutaan normalisoidusta esityksestä pienemmässä luvussa 0.000001 10 4 +0.700000 10 4 0.700001 10 4 Varsinainen laskutoimitus suoritetaan muistitilaa pidemmässä yksikössä Tulosta talletettaessa suoritetaan mantissan pyöristys neljään numeroon Saadaan tulos 0.7000 10 4, eli pienemmällä yhteenlaskettavalla ei ollut mitään merkitystä. Luento 2 () Numeeriset menetelmät 14.3.2013 13 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä Toinen Esimerkki Liite A: Liukulukuaritmetiikasta Liukulukujen yhtäsuuruuden testaaminen ei ole mielekästä. Seuraava ohjelmanpätkä jää todennäköisesti tahattomaan päättymättömään silmukkaan: s = 0.00 do read(*,*) x s = s + x if (s == 1.0) exit end do Oikea lopetuskriteeri olisi yhtäsuuruuden sijaan s 1 δ, missä δ > 0 on pieni toleranssiparametri (usein δ = ε R ). Luento 2 () Numeeriset menetelmät 14.3.2013 14 / 39

Luku 1: Numeerisen matematiikan peruskäsitteitä Liite A: Liukulukuaritmetiikasta Liukulukuaritmetiikasta Jos alkuperäinen tehtävä on hyvin asetettu ja ratkaisualgoritmi on numeerisesti stabiili, ei liukulukuaritmetiikka aiheuta ongelmia. ts. jos algoritmissa ei vähennetä lähes samansuuruisia lukuja, jaeta hyvin pienellä luvulla jne. Ei ollut tarkoitus säikäyttää liukulukuaritmetiikalla! Luento 2 () Numeeriset menetelmät 14.3.2013 15 / 39

Luku 2: Epälineaarisen yhtälön ratkaiseminen Olkoon f : R R jatkuva funktio. Tarkastellaan yhtälön ratkaisemista. f (x) = 0 (3) Jos f on epälineaarinen, yleensä yhtälön (3) ratkaisun (juuren) x lauseketta ei tunneta suljetussa muodossa. Luento 2 () Numeeriset menetelmät 14.3.2013 16 / 39

Esimerkki Luku 2: Epälineaarisen yhtälön ratkaiseminen Keplerin yhtälö x e sin(x) M = 0 kuvaa (esim. satelliitin) liikettä elliptisellä radalla. - x on eksentrinen anomalia (radan kulma) - e eksentrisyys (ellipsin soikeus) - M keskianomalia (satelliitin sijainti radalla ajanhetkellä t) Luento 2 () Numeeriset menetelmät 14.3.2013 17 / 39

Epälineaarisen yhtälön ratkaiseminen Käytetään numeerisia ratkaisumenetelmiä, joissa etsitään iteratiivisesti uusia, parempia approksimaatioita juurelle x lähtien alkuarvauksesta x 0, kunnes ennaltamäärätty lopetuskriteeri toteutuu. ts. muodostetaan jono {x n } ratkaisuja s.e. x n x, kun n. Huom. Tehtävällä ei välttämättä ole ratkaisua tai niitä voi olla useita (jopa ääretön määrä) jos mahdollista, tehtävä kannattaa aluksi hahmottaa geometrisesti. Luento 2 () Numeeriset menetelmät 14.3.2013 18 / 39

2.1. Puolitushaku 2.1. Puolitushaku Olkoon välillä [a, b] voimassa f (a)f (b) < 0 ts. f vaihtaa merkkiä välillä [a, b]. x ]a, b[ siten, että f (x ) = 0. Olkoon piste c = 1 2 (a + b) välin keskipiste. Jos nyt f (a)f (c) < 0, niin x [a, c]; asetetaan b := c. Jos f (a)f (c) > 0, niin x [c, b]; asetetaan a := c. Jos f (a)f (c) = 0, niin f (c) = 0 ja x = c. Jatketaan, kunnes väli [a, b] on kutistunut riittävän pieneksi (tai tarkka ratkaisu on löytynyt) x = c. Luento 2 () Numeeriset menetelmät 14.3.2013 19 / 39

Algoritmi 2.1 Luku 2: Epälineaarisen yhtälön ratkaiseminen 2.1. 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 Luento 2 () Numeeriset menetelmät 14.3.2013 20 / 39

Esimerkki 2.1. 2.1. Puolitushaku Sovelletaan puolitushakua Keplerin yhtälöön (e=1/2, M=1) x 1 2 sin x 1 = 0. Kun käytetään alkuarvauksena väliä [0, 2], niin saadaan seuraavanlainen jono likiratkaisuja: iter c f (c) 1 1.00000 4.2e-01 2 1.50000 1.3e-03 3 1.25000 2.2e-01... 8 1.49219 6.3e-03... 12 1.49854 1.6e-04 13 1.49878 7.5e-05 Luento 2 () Numeeriset menetelmät 14.3.2013 21 / 39

Lause 2.1 Luku 2: Epälineaarisen yhtälön ratkaiseminen 2.1. Puolitushaku Olkoon [a 0, b 0 ], [a 1, b 1 ],..., [a n, b n ] puolitushaun tuottamat välit. Tällöin lim a n = lim b n = x, n n missä f (x ) = 0. Jos c n = 1 2 (a n + b n ), niin x c n 2 (n+1) (b 0 a 0 ). Luento 2 () Numeeriset menetelmät 14.3.2013 22 / 39

2.2. Iteratiivisten algoritmien konvergenssianalyysistä 2.2. Iteratiivisten algoritmien konvergenssianalyysistä Iteratiivisen menetelmän tulee olla suppeneva ja numeerisesti stabiili ollakseen käyttökelpoinen. Sen tulisi olla myös tehokas (tarvittavien iteraatiokierrosten lukumäärä ja funktion arvojen laskujen lukumäärä per iteraatio). Käytännössä menetelmän tehokkuutta (eli sen konvergenssinopeutta) arvioidaan seuraavasti: Luento 2 () Numeeriset menetelmät 14.3.2013 23 / 39

2.2. Iteratiivisten algoritmien konvergenssianalyysistä Määritelmä 2.1. Olkoon {x n } n=0 R jono, jolle lim n x n = x. Jos on olemassa reaaliluvut p ja C > 0 siten, että x n+1 x lim n x n x p = C, niin p = jonon {x n } konvergenssin kertaluku ja C = asymptoottinen virhevakio. Käytännössä suurille n x n+1 x C x n x p ts. C kertoo, minkä verran 1 iteraatio parantaa ratk. approksimaatiota. Luento 2 () Numeeriset menetelmät 14.3.2013 24 / 39

2.2. Iteratiivisten algoritmien konvergenssianalyysistä Konvergenssinopeus Konvergenssinopeus jne. x n+1 x lim n x n x p = C Jos p = 1 ja C < 1, niin konvergenssi on lineaarista. Jos 1 < p < 2, niin konvergenssi on superlineaarista. Jos p = 2, niin konvergenssi on kvadraattista (neliöllistä). Luento 2 () Numeeriset menetelmät 14.3.2013 25 / 39

Esimerkki 2.2. 2.2. Iteratiivisten algoritmien konvergenssianalyysistä Puolitushaussa kullakin iteraatiolla pahimmassa tapauksessa (c n ratkaisun approksimaatio). Siten x c n = 2 (n+1) (b 0 a 0 ) c n+1 x c n x = 2 (n+2) (b 0 a 0 ) 2 (n+1) (b 0 a 0 ) = 1 2, eli p = 1 ja C = 1 2. Konvergenssi on siis lineaarista. Luento 2 () Numeeriset menetelmät 14.3.2013 26 / 39

2.3. Kiintopistemenetelmä 2.3. Kiintopistemenetelmä Merkkiehtoon f (a)f (b) < 0 perustuvat menetelmät ovat yksinkertaisia toteuttaa ja ne konvergoivat varmasti. Konvergenssi on kuitenkin hidasta, eivätkä menetelmät yleisty useamman yhtälön muodostaman yhtälöryhmän tapaukseen. Luovutaan siis jatkossa merkkiehdosta. Luento 2 () Numeeriset menetelmät 14.3.2013 27 / 39

Kiintopistemenetelmä: idea 2.3. Kiintopistemenetelmä Idea: korvataan alkuperäinen yhtälö f (x) = 0 yhtäpitävällä yhtälöllä x g(x) = 0 ja sovelletaan iteraatiota x n+1 = g(x n ). Riittävä ehto sille, että iteraatio on suppeneva on, että funktio g : [a, b] [a, b] on kutistava: g(x) g(y) γ x y, jollekin vakiolle 0 < γ < 1. Luento 2 () Numeeriset menetelmät 14.3.2013 28 / 39

Kiintopistemenetelmä jatkuu 2.3. Kiintopistemenetelmä Lause Olkoon g : [a, b] [a, b] kutistava funktio. Tällöin sillä on täsmälleen yksi kiintopiste x = g(x ). Lisäksi iteraatio x n+1 = g(x n ) suppenee kiintopisteeseen kaikilla alkuarvauksilla x 0 [a, b]. Esimerkki 2.3. Yhtälö x 1 2 cos x = 0 voidaan ratkaista iteraatiolla x n+1 = 1 2 cos x n. Iteraatio suppenee kaikilla alkuarvauksilla x 0 ja ratkaisuksi saadaan x 0.450184. Tässä tapauksessa konvergenssi on lineaarista ja asymptoottinen virhevakio C 0.22. Luento 2 () Numeeriset menetelmät 14.3.2013 29 / 39

2.4. Newtonin menetelmä 2.4. Newtonin menetelmä Ollaan ratkaisemassa yhtälöä f (x) = 0. Juuren approksimaatiota x n parannetaan korvaamalla käyrä y = f (x) pisteeseen (x n, f (x n )) asetetulla tangentilla. Uusi approksimaatio x n+1 on tangentin ja x-akselin leikkauspiste. Saadaan iteraatiokaava x n+1 = x n f (x n) f (x n ). Luento 2 () Numeeriset menetelmät 14.3.2013 30 / 39

Newtonin menetelmä jatkuu 2.4. Newtonin menetelmä Newtonin menetelmä on lienee tunnetuin numeerinen juurenhakumenetelmä voidaan yleistää suoraviivaisesti myös epälineaarisille yhtälöryhmille. Voidaan tulkita myös kiintopisteiteraationa, jossa iteraatiofunktioksi valitaan g(x) = x f (x) f (x). Luento 2 () Numeeriset menetelmät 14.3.2013 31 / 39

Lause 2.3. Luku 2: Epälineaarisen yhtälön ratkaiseminen 2.4. Newtonin menetelmä Newtonin menetelmä konvergoi, kun alkuarvaus x 0 valitaan riittävän läheltä juurta x. (Olettaen, että juuren x ympäristössä funktio f on 2 kertaa jatkuvasti derivoituva ja f (x) 0) + kvadraattinen konvergenssi tehokas. - x 0 :n valinta voi käytännössä olla hankalaa - termi f (x n )/f (x n ) voi aiheuttaa ongelmia laskennassa, koska nimittäjä voi mennä pieneksi. - funktion f arvojen lisäksi tarvitaan myös derivaatan f arvoja. Luento 2 () Numeeriset menetelmät 14.3.2013 32 / 39

Newtonin menetelmä jatkuu 2.4. Newtonin menetelmä Jos funktiolla f on yksinkertainen analyyttinen lauseke, ei derivointi ole ongelma. Jos funktion f lauseketta ei ole annettu suljetussa muodossa, voidaan käyttää hyväksi tietokoneohjelmien automaattista derivointia Newtonin menetelmä voidaan yhdistää johonkin globaalisti konvergoivaan algoritmiin (esim. puolitushaku). Yksinkertaisella menetelmällä haetaan kohtuullinen likiarvo, jota käytetään Newtonin menetelmän alkuarvauksena. Luento 2 () Numeeriset menetelmät 14.3.2013 33 / 39

Sekanttimenetelmä Sekanttimenetelmä Sekanttimenetelmä saadaan Newtonin menetelmästä korvaamalla siinä esiintyvä derivaatta erotusosamäärällä: x n x n 1 x n+1 = x n f (x n ) f (x n ) f (x n 1 ), n 1. Nyt käyrää y = f (x) approksimoidaan tangentin sijaan sekantilla. Myös sekanttimenetelmä varsin tehokas menetelmä, sillä konvergenssin kertaluvuksi voidaan osoittaa p 1.62. Luento 2 () Numeeriset menetelmät 14.3.2013 34 / 39

Ohjelmointitekniikasta 2.5. Ohjelmointitekniikasta Numeerinen ratkaisumenetelmä on yksinkertaisimmillaan pelkkä iteraatiokaava Ratkaisualgoritmi sisältää iteraatiokaavan lisäksi toistorakenteen ja lopetuskriteerin. Tietokonetoteutus, eli ongelman ratkaiseva (ali)ohjelma sisältää edellisten lisäksi vielä käyttöliittymän (parametrilistan) ja mahdollisten virhetilanteiden hallintalogiikan. Luento 2 () Numeeriset menetelmät 14.3.2013 35 / 39

2.5. Ohjelmointitekniikasta Esimerkki: Newtonin men. implementointi aliohjelmaksi Aliohjelmalle newton välitetään parametrina ratkaistavan yhtälön määräävä funktio f, alkuarvaus x 0, toleranssiparametrit δ ja ε sekä iteraatiokierrosten maksimimäärä itmax. Aliohjelman suorituksen jälkeen tulosparametrit x ja error sisältävät yhtälön likiratkaisun sekä virheindikaattorin. Algoritmi 2.2 newton( f, x 0, δ, ε, itmax, x, error ) Luento 2 () Numeeriset menetelmät 14.3.2013 36 / 39

2.5. Ohjelmointitekniikasta Esimerkki: Newtonin men. implementointi aliohjelmaksi Algoritmi 2.2 newton( f, x 0, δ, ε, itmax, x, error ) v := f (x 0 ) d := f (x 0 ) do iter = 1,..., itmax if d δ then error := 2 return end if x 1 := x 0 v/d v := f (x 1 ) d := f (x 1 ) if x 1 x 0 ε x 1 and v ε then error := 0 x := x 1 return end if x 0 := x 1 end do error := 1 x := x 1 Luento 2 () Numeeriset menetelmät 14.3.2013 37 / 39

2.5. Ohjelmointitekniikasta Iteraation lopetuskriteerin lähempi tarkastelu Lopetuskriteeriä valittaessa tulevat esimerkiksi seuraavat ehdot kyseeseen: f (x n ) ε (funktion f itseisarvo pieni) x n x n 1 ε (likiratkaisun abs. muutos pieni) x n x n 1 ε x n (likiratkaisun suht. muutos pieni) Mikään näistä kriteereistä ei kuitenkaan yksinään sovellu kaikentyyppisille menetelmille ja yhtälöille. Yleiskäyttöisessä aliohjelmassa kannattaa vaatia vähintään kahden lopetuskriteerin voimassaoloa ennen kuin iteraatio lopetetaan. Luento 2 () Numeeriset menetelmät 14.3.2013 38 / 39

2.5. Ohjelmointitekniikasta Algoritmia 2.2 voidaan pitää Newtonin menetelmän minimitoteutuksena. Kaupallisten aliohjelmakirjastojen mukaista käyttäjäystävällisyyttä tavoitellessa Käyttäjällä tulisi olla mahdollisuus jättää toleranssi- parametrit ε ja δ antamatta, jolloin käytetään sopivia oletusarvoja (esim. ε = ε R ). Lisäksi pitäisi varautua näppäily virheisiin (esim. itmax < 0). Luento 2 () Numeeriset menetelmät 14.3.2013 39 / 39