Numeerinen ratkaisu matemaattisen mallin avulla

Slides:



Advertisements
Samankaltaiset esitykset
Yleistä Läsnäolovelvollisuus Poissaolojen selvitys Käyttäytyminen
Advertisements

Robust LQR Control for PWM Converters: An LMI Approach
5.1. Tason yhtälö a(x – x0) + b(y – y0) + c(z – z0) = 0
JavaScript (c) Irja & Reino Aarinen, 2007
LPC LPCC PLP MFCC LSP/LSF Δ ΔΔ Matemaattinen kikka Levinson-Durbin
1 Heli Lepomäki Yritysten ja muiden organisaatioiden käyttöön sähköinen työpöytä on jo leviämässä, koska niiden toiminta ja asiakaspalvelu.
Kiintolevyn osiointi.
Sensorifuusio Jorma Selkäinaho.
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely •Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
Langattomien laitteiden matematiikka 1
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Numeerisia ja algebralllisia menetelmiä MA 12
S Laskennallinen tiede Tentit ja uusinta Arvostelu Kertausta tenttiin Palaute.
Yhdistetty M-ary ASK ja M-ary PSK Timo Mynttinen1 Yhdistetty M-ary ASK ja M-ary PSK Tähän asti on kerrallaan käytetty yksinomaan joko amplitudia, taajuutta.
KANTATAAJUINEN BINÄÄRINEN SIIRTOJÄRJESTELMÄ AWGN-KANAVASSA
AS Automaation signaalinkäsittelymenetelmät
TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ VARTEN.
Taylor polynomi usean muuttujan funktiolle
Rajoitetut jonot 1. Alhaalta rajoitettu jono
LUKUJÄRJESTELMÄMUUNNOKSET
TMA.003 / L3 ( )1 3. Funktioista 3.1. Kuvaus ja funktio Olkoon A ja B ei-tyhjiä joukkoja. Tulojoukon A  B = {(x,y) | x  A, y  B} osajoukko on.
RSA – Julkisen avaimen salakirjoitusmenetelmä Perusteet, algoritmit, hyökkäykset Matti K. Sinisalo, FL.
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
Mittaustekniikka (3 op)
Tiedon esittäminen.
2. Vuokaaviot.
1.a) f(x) = 2x(x2 – 3) = 0 2x = tai x2 – 3 = 0 x = tai x2 = 3
Digitaalinen kuvankäsittely
Pienin ja suurin arvo suljetulla välillä
Raja-arvon määritelmä
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op ALU.
Murtoluvun supistaminen
Metodit – Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin ”return;”-lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua.
Algoritmi-harjoituksia…
1. Usean muuttujan funktiot
Elliptiset jakaumat Esitys 6 kpl Tuomas Nikoskinen Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla. Muilta.
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 11 - Teemu Mutanen Optimointiopin seminaari - Syksy 2005 / 1 Lisätiedon arvo.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
C 1. Testaus on ”sarja toimintoja” Itse asiassa, testaus on vuorovaikutusta, jota rytmittää ohjelmiston arviointi. Vaikka on hyödyllistä tunnistaa sarja.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Muuttujien riippuvuus
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Aakkosnumeerinen tieto Tarkoittaa kaikkea muuta tietoa paitsi laskentaan tarkoitettuja lukuja Muuttujan tietosisältö on siis tekstitietoa Muuttujan tietotyypiksi.
Kymmenkantainen logaritmi
Diffie-Hellman Antti Junttila. Mitä tarkoittaa? Kaksi osapuolta voivat sopia yhteisestä salaisuudesta turvattoman tietoliikenneyhteyden ylitse. Tämän.
Logiikka.
Tietokoneen rakenne matalalla tasolla KYMENLAAKSON AMMATTIKORKEAKOULU Jarkko Ansamäki, kevät 2002.
Sovellettu matematiikka 3 Jarkko Hurme1 Maplen peruskäyttö 2. Derivaatta ja integraali.
Kontrollirakenteet laajemmin
Liukulukulaskenta. Yleistä liukuluvuista Tarvitaan reaalilukujen esittämiseen tietokoneella  esim. matemaattiset mallit Kaikkia reaalilukuja ei ole mahdollista.
Todennäköisyyslaskentaa
S ysteemianalyysin Laboratorio Aalto-yliopiston teknillinen korkeakoulu Ohjaamaton oppiminen– Heikki Vesterinen Optimointiopin seminaari - Syksy 2010 Ohjaamaton.
5. Fourier’n sarjat T
Luonnollisen logaritmifunktion derivaatta
Koska toispuoliset raja-arvot yhtä suuria, niin lim f(x) = 1
Valintarakenne valintarakenne alkaa aina kysymyksellä eli ehdolla ehto tarkoittaa, että muuttujan sisältöä verrataan toisen muuttujan sisältöön tai vakioon.
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä # - Esitelmöijän nimi Optimointiopin seminaari - Syksy 2000 / 1 Potentiaalien kertaus ja.
Oppimisryhmien kuulumisia. Oppimisryhmät Ryhmä 5 Tehotytöt Team Trinity Rämmät JASS Team 75% Integrointi-pantterit.
Kiikuista jatkoa.
5. Datan käsittely – lyhyt katsaus Havaitsevan tähtitieteen peruskurssi I, luento Thomas Hackman.
UNIVERSITY OF TURKU LOGISTINEN REGRESSIOANALYYSI.
3 Suureyhtälöt Fysiikan tehtävän ratkaisu:
9. Aritmeettiset operaatiot
9. Aritmeettiset operaatiot
16. Ohjelmoinnin tekniikkaa
14. Hyvä ohjelmointitapa.
16. Ohjelmoinnin tekniikkaa
Esityksen transkriptio:

Numeerinen ratkaisu matemaattisen mallin avulla ongelma teoreettinen, matemaattinen malli numeerinen, laskennallinen malli algoritmi ohjelma laskenta virhearviot ja herkkyysanalyysi tulosten tarkastelu

Virhelähteitä matemaattisen mallin virhe, mallissa on esimer-kiksi liian suuria yksinkertaistuksia numeerisen mallin virheet, kuten diskretointivirhe ja katkaisuvirhe datan virheet, systemaattiset ja tilastolliset algoritmiset ongelmat (herkkyys, epästabiilisuus, tehottomuus) laskentatarkkuuden ongelmat (pyöristys-, katkaisu-, ja diskretisointivirheet)

Hyvin asetettu ja huonosti asetettu ongelma Matemaattinen tehtävä on hyvin asetettu (well-posed), jos ratkaisu on olemassa kaikilla lähtöarvoilla, on yksikäsitteinen ja riippuu jatkuvasti tehtävän alkuarvoista. Huonosti asetetulla tehtävällä (ill-posed) ei ole kaikkia näitä ominaisuuksia.

Hyvin asetettu ja huonosti asetettu ongelma Hyvin asetetun tehtävän ratkaisuksi saadaan hyvällä algoritmilla hyvä likiarvo. Jos matemaattinen tehtävä on huonosti asetettu, sitä ei voida ratkaista tarkasti ja luotettavasti. Huonosti asetetuille tehtäville on kuitenkin kehitetty menetelmiä, joilla tehtäville saadaan edes käypiä ratkaisuja.

Kokonaisluvut Kokonaisluvut ovat tietokoneessa tarkkoja. Tietokoneessa kokonaisluvut esitetään kiinteällä määrällä bittejä, joten luvuilla on ylä- ja alaraja. Bittien määrä on nykyään käytännössä aina jaollinen tavun bittien määrällä 8. Kokonaisluvun esittämiseen käytetään yleensä joko 1 tavu (8 bittiä), 2 tavua (16 bittiä), 4 tavua (32 bittiä) tai jopa 8 tavua (64 bittiä). Useimmissä koneissa voidaan käyttää kaikkia näitä eripituisia kokonaislukumuuttujia.

Liukuluvut Reaaliluvut esitetään tietokoneessa liukuluvuilla. Liukuluku koostuu kahdesta kokonaisluvusta, mantissasta m ja eksponentista e, jotka kummatkin sisältävät etumerkin. Kaavana liukuluku on f=m2e, joten on olemassa suurin ja pienin liukuluku fmax ja fmin. Liuku-luvut eivät ole tasaisesti jakautuneet välille (fmin, fmax). Periaatteessa voidaan käyttää muutakin kantalukua kuin kaksi, mutta kakkonen on nykyään yleisin.

Reaaliluvusta liukuluvuksi Reaaliluku muunnetaan liukuluvuksi joko katkaisemalla tai pyöristämällä. Aritmeettisissa operaatioissa lukuja joko pyöristetään tai katkaistaan. Yleensä ohjelmointikielissä on mahdollista valita liukuluvuille useita tarkkuuksia, esimerkiksi 32 tai 64 bittiä. IEEE:n standardi: puolitarkkuuden liukuluvun mantissa on 24 bittiä ja eksponentti 8 bittiä. Suurin liukuluku on noin 1038 ja pienin positiivinen liukuluku noin 10-38.

Ylivuoto ja alivuoto Yli- ja alivuodot johtuvat siitä, että kokonais- ja liukuluvuilla on aina joku ylä- ja alaraja. Ylivuotoja voidaan joskus välttää algoritmisesti kirjoittamalla laskukaava toiseen muotoon. Esimerkki. an /bn = (a/b)n Joskus auttaa muuttujien skaalaus, mutta usein joudutaan käyttämään ehtolauseita ohjelman toiminnan varmistamiseksi.

Pyöristysvirheet Koska liukuluku on vain approksimaatio reaaliluvulle, pyöristysvirheet ovat väistämättömiä. Pyöristysvirheitä syntyy lukuja syötettäessä ja niillä laskettaessa. Keinoja välttämiseen: aritmeettisten operaatioiden määrän minimointi esimerkiksi analyyttisia kaavoja sieventämällä. Samoin kannattaa pyöristää vasta lopputulokset. Laskutarkkuuden on oltava riittävän suuri.

Pyöristysvirheet Pyöristysvirheet voivat kasautua esimerkiksi sarjojen summauksissa ja iteraatioissa. Kahden liukuluvun yhtäsuuruutta ei pidä ohjelmassa verrata suoraan, vaan pitää testata, että luvut ovat sopivissa rajoissa samat. Esimerkki. Kahta liukulukua a ja b ei saa verrata käyttäen lauseketta if a = b, koska tämä muoto on herkkä pyöristysvirheille. Paremmin if abs(a-b) < epsilon, missä epsilon on sopiva pieni liukuluku.

Kumoutumisvirhe Kahden reaaliluvun vähentäminen toisistaan voi johtaa virheelliseen tulokseen, jos luvut ovat hyvin suuria erotukseensa nähden. Silloin lukujen erotus voi olla samaa suuruusluokkaa kuin epätarkemman luvun tarkkuus ja riittävän tarkkaa vastausta ei saada. Tällaista virhettä kutsutaan kumoutumisvirheeksi (catastrophic cancellation).

Esimerkki Merkitään reaalilukuja esittäviä liukulukua x ja y ja niiden virheitä Dx ja Dy. Jos x=0.5554 ja y=0.5553 ja niiden virheet Dx = Dy = 0.00005, niin erotus x-y=0.0001, joka on melkein yhtä suuri kuin sen virhe, 0.00007! (Dahlquist and Björk 1974)

Matlabilla: » x = 0.5554; y= 0.5553; » x-y » ans = 1.0000e-004 » dx = 0.00005; dy = dx; » % virheen kasautumislaki » sqrt(dx^2+dy^2) ans = 7.0711e-005

Esimerkki Laskettaessa yhteen hyvin suuri ja pieni luku voi käydä niin, että pienempi luku on samaa suuruusluokkaa kuin suuremman luvun tarkkuus, jolloin pienemmällä luvulla ei ole mitään vaikutusta lopputulokseen. Ratkaisuna tähänkin ongelmaan on usein algoritmin vaihto eli laskukaavan saattaminen johonkin muuhun matemaattisesti ekvivalenttiin, mutta numeerisesti erilaiseen muotoon.

Esimerkkejä vuorottelevan sarjan summa, esimerkiksi exp(-x) = 1/exp(x) numeerinen derivaatta (f(x+h)-f(x))/h

Ongelman skaalaaminen Peruslaskutoimituksia pitäisi suorittaa mieluiten luvuilla, jotka ovat keskenään samaa suuruus-luokkaa ja järkevän suuruisia verrattuina lukualueeseen ja liukulukujen tarkkuuteen. Ongelma joudutaan usein skaalaamaan, jotta pysyttäisiin liukulukualueen rajoissa.

Skaalaus Muuttujat eivät saisi olla laadullisia suureita. Laaduttomiin suureisiin päästään jakamalla tällaiset muuttujat sopivilla probleemaan liittyvillä 'mittatikuilla', jotka muuntavat muuttujien arvot järkevän suuruisiksi. Käyttäjäystävällinen ohjelma tekee tietenkin skaalaukset sisäisesti. Syöttödata annetaan sille fysikaalisissa yksiköissä ja se palauttaa myös tulokset näissä yksiköissä. Muunnokset tapahtuvat siis juuri ennen tulostusta ja syötön jälkeen.

Diskretisointi ja katkaisu Ongelma joudutaan numeerisissa tehtävissä diskretoimaan, josta aiheutuu myös virhettä. Diskretointi tarkoittaa (jatkuvan) funktion arviointia diskreetillä funktiolla, jossa on äärellinen määrä pisteitä.

Esimerkki: katkaisu Tarkastellaan yksinkertaisuuden vuoksi jatkuvaa yhden muuttujan funktiota f(x). Tietokoneessa funktiota ei voi approksimoida koko reaaliakselilla, vaan ainoastaan äärellisellä välillä (a,b), missä a ja b ovat riittävän suuria. Funktio siis katkaistaan. Laskujen tulokset ovat tietysti virheellisiä, jos funktio on nollasta poikkeava välin (a,b) ulkopuolella.

Lorenzin funktion integrointi >> f = inline(’1./(1+x.^2)’, ’x’); >> quad(f,-10,10) ans = 2.9423 >> quad(f,-100,100) ans = 3.1216 >> quad(f,-1000,1000) ans = 3.1396 >> quad(f,-100000,100000) ans = 3.1416 vrt. vanha versio antaa 65.1343!!!

Esimerkki: Diskretisointi Diskretoinnissa väli (a,b) jaetaan osa-väleihin { a=x1 < x2 < …< xN = b}, ja funktion f diskreetiksi approksimaatioksi tällä välillä otetaan sen arvojen jono {f(a) = f(x1), f(x2),…, f(xN) = f(b)}. Pistetiheyden valinnalla voi olla huomattava vaikutus tuloksen tarkkuuteen.

Lorenzin funktio, integrointi puolisuunnikassäännöllä x = -10:0.1:10; trapz(x,f(x)) ans = 2.9423 x = -1000:0.1:1000; ans = 3.1396 x = -1000:1:1000; ans = 3.1513

Numeerinen derivointi » x = 0:0.1:4*pi; h=0.1; subplot(1,2,1), plot(x+h/2,(cos(x+h)-cos(x))/h,x,-sin(x),'.') » x = 0:0.5:4*pi; h=0.5; subplot(1,2,2), plot(x+h/2,(cos(x+h)-cos(x))/h,x,-sin(x),'.')

Tärkeää Matemaattisesti ekvivalentit algoritmit (antaisivat samat tulokset, jos laskentatarkkuus olisi ääretön ja laskentaan käytettävät resurssit olisivat äärettömät) eivät juuri koskaan anna samoja tuloksia eivätkä ole juuri koskaan yhtä tehokkaita.

Numeerisen tarkkuuden arviointi lähtötietojen virheet mittaustarkkuuden parantaminen diskretisointivirheet pistetiheyden valinta katkaisuvirheet laskentavälin laajennus, analyyttinen jatko pyöristysvirheet algoritmin ja laskenta-tarkkuuden valinta