Numeeriset menetelmät TIEA381 Kevät 2013 Kirsi Valjus Jyväskylän yliopisto Tietotekniikan laitos Luento 1 () Numeeriset menetelmät 13.3.2013 1 / 34
Luennon 1 sisältö Käytännön asioita Numeerisen matematiikan peruskäsitteitä Liukulukuaritmetiikasta Luento 1 () Numeeriset menetelmät 13.3.2013 2 / 34
Käytännön asioita Luennot ja demot Numeeriset menetelmät TIEA381 Luennot: (28 t) Kirsi Valjus, kirsi.valjus@jyu.fi, Ag C419.4 viikoilla 11-19, ke 14:15 ja to 14:15, Ag Delta (poikk. to 21.3. Aud 3) Demot: (7 kertaa) Mirko Myllykoski, mirko.myllykoski@jyu.fi viikoilla 12-20, ti 14:15 ja ke 12:15 Ag C231.1 Tentit: 24.5.2013, 14.6.2013, 16.8.2013 Luentomonisteet: Mäkinen: Numeeriset menetelmät (2011) Männikkö: Nopeat Fourier-muunnokset Luento 1 () Numeeriset menetelmät 13.3.2013 3 / 34
Käytännön asioita Esitiedot ja harjoitukset Käytännön asioita Esitiedot: Matematiikan perusopinnot (tai vastaavat tiedot) ohjelmointitaito (yksinkertaiset ohjelmat esim. C:llä, Fortranilla tai Matlabilla) Harjoitukset: Taulutehtävistä saa hyvityspisteitä lopputenttiin (ensimmäiseen, johon osallistuu) seuraavasti: 20% = 1p, 40% = 2p, 60%= 3p, 80% = 4p, yli 80% = 5p Luento 1 () Numeeriset menetelmät 13.3.2013 4 / 34
Käytännön asioita Ohjelmointitehtävät Ohjelmointitehtävät Osa demotehtävistä on pakollisia ohjelmointitehtäviä. Kukin ohjelmointitehtävä arvostellaan, 0-1 pistettä per tehtävä. Kurssin suoritukseen vaaditaan tentin lisäksi yhteensä 3 ohjelmointipistettä. Ohjelmointitehtävät voi tehdä yksin tai parityönä. Ohjelmointikielenä mielellään Fortran95/2003-, Matlab, Java tai C/C++. Ohjelmointitehtävien palautuksesta annetaan tarkemmat ohjeet myöhemmin. Luento 1 () Numeeriset menetelmät 13.3.2013 5 / 34
Motivointia Motivointia Simulointi Numeerisia menetelmiä tarvitaan simuloinnissa ja optimoinnissa. Simulointi tarkoittaa reaalimaailman ilmiöiden jäljittelemistä. Simulointimallien pohjalta voidaan tehdä tietokoneohjelmia, joiden avulla voidaan esim. ennustaa säätilaa tehdä virtuaalisia asuntoesittelyjä kouluttaa astronautteja ja kirurgeja suunnitella autoja ja lentokoneita ohjata teollisuusprosesseja tutkia maanjäristysaaltojen etenemistä luoda tietokonepelejä luoda elokuvatehosteita etsiä hyvä sijainti kaatopaikalle ennakoida talouden kehitystä kehittää äänentoistolaitteita kehittää meluvalleja Luento 1 () Numeeriset menetelmät 13.3.2013 6 / 34
Motivointi jatkuu Motivointia Optimointi Mitä optimointi on? Optimoimalla pyritään parhaaseen mahdolliseen lopputulokseen. Esimerkiksi: paperikoneen toiminnan optimointi parempilaatuinen paperi vähäisempi veden ja energian kulutus Metsäkoneen kuormaimen rakenteen optimointi kevyempi, maaperälle ystävällisempi kone materiaalin tehokkaampi käyttö rakenteen parempi kestävyys Luento 1 () Numeeriset menetelmät 13.3.2013 7 / 34
Ilmiostä tuloksiin Motivointia Tieteellisen laskennan prosessi Reaalimaailman ilmiö Matemaattinen malli Laskennallinen malli Tulosten analysointi ja tulkinta Luento 1 () Numeeriset menetelmät 13.3.2013 8 / 34
Motivointia Termejä Termejä Tieteellinen laskenta = ilmiöiden matemaattista mallittamista ja mallien numeerista ratkaisemista Numeerinen analyysi = tieteellisen laskennan matematiikkaa Numeeriset menetelmät = välineet matemaattisten mallien käsittelyyn ja ratkaisuun tietokoneella Luento 1 () Numeeriset menetelmät 13.3.2013 9 / 34
Motivointia Tieteellinen laskenta Viimeisen 20 vuoden aikana tieteellinen laskenta on noussut tasavertaiseksi tutkimusmenetelmäksi teoreettisen ja kokeellisen tutkimuksen rinnalle luonnontieteissä ja tekniikassa. esim. tuotekehitys: - ennen vanhaan rakennettiin laitteesta pienoismalli tai koekappale ja testattiin sen toimintaa käytännössä - nykyään muodostetaan matemaattinen malli tutkittavalle ilmiölle ja simuloidaan ilmiötä tietokoneella (esim. virtaukset paperikoneessa, lentokoneen siiven muodon optimointi) Luento 1 () Numeeriset menetelmät 13.3.2013 10 / 34
Motivointia Menetelmän valinta Tietokoneella tapahtuva laskenta on aina inhimillisen toiminnan tulosta Numeerisia menetelmiä käytettäessä käyttäjällä tulee olla tieto siitä, millaisia tehtäviä menetelmällä voi ratkaista ja millaisia ei tieto siitä, millä tarkkuudella tulokset on mahdollista saada kyky arvioida saatujen tulosten järkevyys alkuperäisen (fysikaalisen) tehtävän kannalta Luento 1 () Numeeriset menetelmät 13.3.2013 11 / 34
Kurssin sisältö Motivointia Kurssin sisältö 1. Numeerisen matematiikan peruskäsitteitä (2h) 2. Epälineaarisen yhtälön ratkaiseminen (2h) 3. Lineaarisen ja epälineaarisen yhtälöryhmän ratkaiseminen (4h) 4. Ominaisarvotehtävän ratkaiseminen (2h) 5. Interpolaatio ja approksimointi (6h) 6. Numeerinen integrointi ja derivointi (6h) 7. Differentiaaliyhtälöiden numeriikasta (2h) 8. Nopeat fourier-muunnokset (4h) Luento 1 () Numeeriset menetelmät 13.3.2013 12 / 34
Motivointia Kurssin tavoitteet Kurssin tavoitteet Numeriikan peruskäsitteiden hallinta Numeeristen perusmenetelmien toimintaperiaatteet Antaa valmiudet tehdä itsenäisesti luotettavia ja kohtuullisen tehokkaita tietokoneohjelmia numeriikan perustehtävien ratkaisemiseksi. Luento 1 () Numeeriset menetelmät 13.3.2013 13 / 34
Motivointia Esimerkki Esimerkki Olet tilannut 500m 2 parkettia. Rakennat parketista neliön muotoisen tanssilattian. Mikä on tanssilattian sivun pituus? Tehtävää kuvaava yleinen matemaattinen malli on x 2 A = 0, (1) missä tässä tapauksessa A = 500. Tehtävän analyyttinen ratkaisu sivun pituudelle x on luonnollisesti x = ± A. Luku 500 on selvästi jotakin 20 ja 30 välillä, mutta mitä se on tarkemmin? Luento 1 () Numeeriset menetelmät 13.3.2013 14 / 34
Motivointia Esimerkki jatkuu Muistat, että neliöjuuren likiarvo voidaan laskea iteratiivisesti kaavasta x n+1 = (x n + A/x n )/2. (2) Aloitat luvusta x 0 = 20 ja lasket uusia likiarvoja käyttäen kaavaa (2). Kynä-paperi-laskujen yksinkertaistamiseksi pyöristät kaikki luvut yhden desimaalin tarkkuuteen. Päädyt seuraavaan tulokseen: x 0 = 20.0 x 1 = 22.5 x 2 = 22.4 x 3 = 22.4, josta päättelet, että 500 22.4 Luento 1 () Numeeriset menetelmät 13.3.2013 15 / 34
Motivointia Esimerkki jatkuu Mieleesi nousee seuraavat kysymykset: Iteraatio (2) näytti konvergoivan varsin nopeasti. Onko päätelmä x 3 x oikein? Parkettia menee erinäisistä syistä pieni määrä hukkaan. Vaikuttaako tämä dramaattisesti tarkkaan sivun pituuteen x? Entä likiarvoon x 3? Mikä vaikutus välitulosten pyöristämisellä oli lukujen x 1, x 2, x 3 arvoihin? Luento 1 () Numeeriset menetelmät 13.3.2013 16 / 34
Motivointia Esimerkki jatkuu Esimerkki tuo esille numeerisen analyysin keskeiset kysymykset. Tässä tapauksessa suoritettujen laskujen tuloksiin voidaan luottaa. Iteraatio (2) on ns. Newtonin menetelmä, joka suppenee valitulla alkuarvauksella nopeasti, eli se on tehokas. Matemaattinen tehtävä (1) on hyvin asetettu, joten pieni pinta-alan A muutos aiheuttaa vain pienen muutoksen sivun pituuteen x. Newton-iteraatio (2) on numeerisesti stabiili, eli pienellä pinta-alan A häiriöllä tai välitulosten pyöristämisellä on vain pieni vaikutus lopputuloksena saatuun likimääräiseen sivun pituuteen x 3. Luento 1 () Numeeriset menetelmät 13.3.2013 17 / 34
Luku 1: Numeerisen matematiikan peruskäsitteitä 1. Numeerisen matematiikan peruskäsitteitä Analyyttinen vs. numeerinen Jatkuva vs. diskreetti Ääretön vs. äärellinen Tarkka vs. likimääräinen Suora vs. iteratiivinen Suora: Tulos saadaan äärellisellä määrällä peruslaskutoimituksia Iteratiivinen: Toistetaan laskukaavaa kunnes lopetuskriteeri toteutuu Luento 1 () Numeeriset menetelmät 13.3.2013 18 / 34
Luku 1: Numeerisen matematiikan peruskäsitteitä 1.1. Likiarvoista 1.1 Likiarvoista Esimerkki Karkea likiarvo Tarkempi arvo (taulukkokirjasta) π 3.14 3.14159265 c 3 10 8 ms 1 2.9979258 10 8 ms 1 c = valon nopeus Luento 1 () Numeeriset menetelmät 13.3.2013 19 / 34
Luku 1: Numeerisen matematiikan peruskäsitteitä Likiarvoista 1.1 Likiarvoista Mitataan likiarvon hyvyyttä (tarkka x, likiarvo ˆx) Absoluuttinen virhe x ˆx π 3.14 0.00159265358979299 c 3 10 8 207420 > 207 kms 1 Suhteellinen virhe x ˆx x π 3.14 π 0.00051, c 3 10 8 c 0.00069 Likiarvojen suhteelliset virheet samaa kertaluokkaa. Prosentuaalinen virhe = suhteellinen virhe 100 3.14 on π:n likiarvo 0.05% tarkkuudella. Luento 1 () Numeeriset menetelmät 13.3.2013 20 / 34
Luku 1: Numeerisen matematiikan peruskäsitteitä Likiarvoista 1.1 Likiarvoista Jos x ˆx < 0.5 10 d, niin likiarvo ˆx:n approksimoi x:ää d:llä desimaalilla Jos x ˆx < 0.5 10 s x, niin likiarvo ˆx approksimoi x:ää s:llä merkitsevällä numerolla Esimerkki x = 78.123, ˆx = 78.157 x ˆx = 0.034 = 0.34 10 1 < 0.5 10 1 appr. 1 desimaalilla x ˆx x = 0.00044 = 0.44 10 3 < 0.5 10 3 appr. 3:lla merkitsevällä numerolla Luento 1 () Numeeriset menetelmät 13.3.2013 21 / 34
Luku 1: Numeerisen matematiikan peruskäsitteitä 1.2 Matemaattisen probleeman stabiilisuus 1.2 Matemaattisen probleeman stabiilisuus Tarkastellaan tehtävää Φ(x, f ) = 0, (3) missä x on tehtävän ratkaisu ja f on ns. alkutieto (tehtävän parametrit, data ). Tehtävä (3) on hyvin asetettu, jos ratkaisu x on olemassa ja se on yksikäsitteinen, ratkaisu x on stabiili, eli riippuu jatkuvasti alkutiedosta f. Ts. jos x on häirityn tehtävän ratkaisu, niin f f x x. Φ( x, f ) = 0 Luento 1 () Numeeriset menetelmät 13.3.2013 22 / 34
Luku 1: Numeerisen matematiikan peruskäsitteitä Esimerkki 1.1 1.2 Matemaattisen probleeman stabiilisuus Tarkastellaan toisen asteen yhtälön (kompleksisten) juurten ratkaisutehtävää Φ(x, f ) = ax 2 + bx + c = 0, a 0. Nyt alkutietona on yhtälön kertoimet f = (a, b, c) ja ratkaisuna on x = b ± b 2 4ac. 2a Yhtälöllä on täsmälleen kaksi kompleksista juurta, joten ratkaisu on olemassa ja yksikäsitteinen Juuret riippuvat jatkuvasti lähtötiedosta f Tehtävä on hyvin asetettu Luento 1 () Numeeriset menetelmät 13.3.2013 23 / 34
Luku 1: Numeerisen matematiikan peruskäsitteitä 1.2 Matemaattisen probleeman stabiilisuus Esimerkki 1.2 Tavallisen differentiaaliyhtälöryhmän yksikäsitteinen ratkaisu on x 1 (t) x 1(t) = x 2 (t), x 1 (0) = f 1 x 2(t) = x 1 (t), x 2 (0) = f 2 = 1 2 (f 1 + f 2 )e t + 1 2 (f 1 f 2 )e t x 2 (t) = 1 2 (f 1 + f 2 )e t 1 2 (f 1 f 2 )e t. Alkuehtoa f = (1, 1) vastaava ratkaisu on x 1 (t) = e t x 1, x 2 0, kun t. x 2 (t) = e t Systeemi, jota malli kuvaa, pyrkii asettumaan siis tasapainotilaan. Luento 1 () Numeeriset menetelmät 13.3.2013 24 / 34
Luku 1: Numeerisen matematiikan peruskäsitteitä 1.2 Matemaattisen probleeman stabiilisuus Esimerkki 1.2 jatkuu E.o. differentiaaliyhtälöryhmän yksikäsitteinen ratkaisu oli siis muotoa x 1 (t) = 1 2 (f 1 + f 2 )e t + 1 2 (f 1 f 2 )e t x 2 (t) = 1 2 (f 1 + f 2 )e t 1 2 (f 1 f 2 )e t. Jos e.o. alkuehdon sijaan käytetään häirittyä alkuehtoa f = (1 + ε, 1), ε > 0, niin ratkaisuksi saadaan x 1 (t) = ε 2 et + (1 + ε 2 )e t x 2 (t) = ε 2 et (1 + ε 2 )e t. x 1, x 2, kun t. Mallin kuvaama systeemi räjähtää, oli ε miten pieni hyvänsä! Tehtävä on epästabiili alkuehdon häiriöiden suhteen. Luento 1 () Numeeriset menetelmät 13.3.2013 25 / 34
Luku 1: Numeerisen matematiikan peruskäsitteitä 1.2 Matemaattisen probleeman stabiilisuus Huonosti asetettu tehtävä Huonosti asetettua tehtävää ei voi ratkaista. Kun tehtävä on huonosti asetettu, ongelmia tulee, jos f on peräisin esimerkiksi mittauksista (mittausvirheet) f :n arvo esitetään äärellisenä liukulukuna. Tehtävälle täytyy tällöin yrittää etsiä jokin vaihtoehtoinen, hyvin asetettu muotoilu. Luento 1 () Numeeriset menetelmät 13.3.2013 26 / 34
Luku 1: Numeerisen matematiikan peruskäsitteitä 1.2 Matemaattisen probleeman stabiilisuus Häiriöalttius Alkutiedon f vaikutusta ratkaisuun x mitataan ns. häiriöalttiudella (condition number): Määritelmä 1.1 Olkoon f = f + δf häiritty alkutieto ja olkoon x häirityn yhtälön Φ( x, f ) = 0 ratkaisu. Häiriöalttius on suure K(x) = sup δf x x x f f f missä on sallittujen häiriöiden joukko (ts. tehtävä on vielä mielekäs parametrin f + δf arvolla)., Luento 1 () Numeeriset menetelmät 13.3.2013 27 / 34
Luku 1: Numeerisen matematiikan peruskäsitteitä Häiriöalttius 1.2 Matemaattisen probleeman stabiilisuus Pienille häiriöille on siis voimassa arvio: K(x) x x x δf f x x x K(x) }{{} 100 δf f }{{} 0.1% Esimerkissä pahimmassa tapauksessa tehtävän ratkaisulta voidaan odottaa vain 10%:n tarkkuus. K = pieni, tehtävä on hyvin käyttäytyvä K =, tehtävä on huonosti asetettu K = suuri, tehtävä on häiriöaltis (pieni muutos f :ssä suuri muutos x:ssä) Häiriöalttiille tehtävälle kannattaa etsiä vaihtoehtoisia muotoiluja Luento 1 () Numeeriset menetelmät 13.3.2013 28 / 34.
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 1 () Numeeriset menetelmät 13.3.2013 29 / 34
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 1 () Numeeriset menetelmät 13.3.2013 30 / 34
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 1 () Numeeriset menetelmät 13.3.2013 31 / 34
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 (4) ratkaisemiseen, tuotetaan jono alkuperäistä tehtävää approksimoivia tehtäviä Φ n (x n, f ) = 0, (5) joiden ratkaisujen jonolle {x n } pätee x n x kun n. Määritelmä 1.2 Numeerinen algoritmi on stabiili, jos yhtälön (5) ratkaisun x n riippuvuus lähtötiedon häiriöstä ei ole suurempi kuin alkuperäisen tehtävän (4) ratkaisun x. Ts. virheiden x n x n ja x x tulisi siis olla samaa kertaluokkaa kaikilla n. Luento 1 () Numeeriset menetelmät 13.3.2013 32 / 34
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 1 () Numeeriset menetelmät 13.3.2013 33 / 34
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 1 () Numeeriset menetelmät 13.3.2013 34 / 34