FYSP120 FYSIIKAN NUMEERISET MENETELMÄT Juha Merikoski Jyväskylän yliopiston Fysiikan laitos Kevät 2009 1 Kurssin sisältö JOHDANTOA, KÄSITTEITÄ, VÄLINEITÄ [1A] Laskennallista fysiikkaa [1B] Matlabin alkeita NUMEERISIA MENETELMIÄ [2A] Lineaaristen yhtälöryhmien ratkaiseminen [2B] Approksimointi ja interpolointi [3A] Numeerinen integrointi [3B] Epälineaaristen yhtälöiden ratkaiseminen [4A] Differentiaaliyhtälöiden ratkaiseminen [4B] Ominaisarvotehtävien ratkaiseminen [5A] Numeerinen optimointi [5B] Esimerkkejä ja laajennuksia 2
[1A] LASKENNALLISTA FYSIIKKAA 1. Motivaatio Fysiikka (ja fyysikko) nykyään: KOKEELLINEN TEOREETTINEN LASKENNALLINEN Käytännössä, periaatteessa ja fyysikon työssä? Numeriikan rooli luonnontieteellisen alan akateemisessa pätevyydessä kasvaa: Kolmasosa fyysikoiden graduista, väitöksistä ja työpaikoista! Ja toisessa kolmasosassa numeeriikka merkittävässä osassa. Tämän kurssin jälkeen sujunee (ainakin) matlabin peruskäyttö muidenkin kurssien laskuharjoituksissa ja laboratoriotöissä sekä työharjoittelussa ja tutkielmanteossa. 3 2. Kurssin suorittaminen Luennot: 10 x 2 tuntia Ohjausta: matlabiin ja ongelmanratkaisuun tietokoneluokassa - ohjausajoista sovitaan luennolla ja ilmoitetaan erikseen Harjoitukset: 5 tehtäväsettiä, kannattaa tehdä pareittain - palautus noin 2 viikon kuluessa - kieli: matlab (teknistieteellisen alan käytetyin) - 1. viikolla syytä tutustua matlab-ohjelman käyttöön - jos osaat fortran- tai c-kieltä, osan voit tehdä niillä 4
Ajateltu työmäärä: 20 h (luennot) + 50 tuntia (muu työ) - oletuksena ettei aiempaa ohjelmointikokemusta Arviointi: - asteikko: hyväksytty tai ei (vielä) hyväksytty Tehtäviin sisältyy kompaktin projektipäiväkirjan pitäminen: a) omat esitiedot ja muut valmuidet b) kuinka aikaa on käytetty c) kunkin viikon harjoitusratkaisujen kommentointi d) mitä opit ja mitä vielä pitäisi oppia tai tarvitsisit 5 3. Yleistä Työvälineistä - puhdas numeriikka: matlab ja samankielinen octave - symbolinen laskenta: mathematica (lyhyesti) - raskas numeronmurskaus: fortran ja c (lyhyesti) - kun osaat yhden, niin (melkein) osaat muitakin Onko tulos fysiikkaa? - fysiikasta numeriikkaan ja takaisin - garbage in garbage out...garbage (un)published - laskentatarkkuus ja konvergenssi (esimerkkejä) - mitä muuta voi mennä pieleen? 6
Data-analyysi - datan tuottaminen ja kerääminen - datan graafinen esittäminen (esimerkkejä) - approksimointi ja fittaaminen (esimerkkejä) - datan tilastollinen analyysi (esimerkkejä) Aloitamme peruskäsitteistä ja-työvälineistä - näkökulma: laskennallinen fysiikka (vrt. numeriikka) - kurssin yhteinen kieli ja työväline on matlab - eka viikon jälkeen opitaan valittuja teknisempiä jippoja - matlabille löytyy netistä suuri määrä valmiita skriptejä Kirjallisuus ja muu materiaali: katso kurssin www-sivu - viikkojen 2-5 runko: Numeeriset menetelmät käytännössä - painopiste: numeriikan soveltaminen (ei teoria) 7 4. Numeeriset ratkaisut ja simulaatiot Kokeellinen-teoreettinen-laskennallinen yhdessä Mallinnus - yhtälöitä voi ratkaista numeerisesti (esim. välinpuolitus) - yhtälöitä/prosesseja voi simuloida numeerisesti - teorianteossa myös: CAG = computer-aided guessing LUONTO MALLI SIMULAATIO Tietokone-eksperimentti - parametrien säädettävyys ja toistettavuus alkuehdoilla - yksityiskohtainen tieto mallin mikro- ja makrotiloista - jotkin tietokonepelit fysiikan(kin) simulaatioita 8
5. Joitakin numeriikan käsitteitä Tietotyyppejä: numeerinen, teksti Tietorakenteita: taulukot, listat, pinot, puut esim: vektorit ja binääripuu Operaatioita: laskutoimitukset, funktionkutsut Ohjausrakenteita: silmukat, vertailut ja ehtolauseet Diskretointi: tarkkuus ja konvergenssi Algoritmi: tehokkuus esim: yhtälönratkaisu, integrointi, lajittelu ja haku Valmisohjelmistot ja -kirjastot: matlab, NAG, LAPACK,... vrt: kaikkia mittauslaitteitakaan ei itse tehdä 9 6. Työvälineistä Algoritmien kuvailu ympäristöriippumattomalla metakielellä - dokumentoi ratkaisusi/algoritmisi -tällä kurssilla puhumme kuitenkin matlabia Matriisikielet, symbolinen matematiikka, ohjelmointikielet - matlab & octave & origin, mathematica & maple, - komentojonot eli skriptit (ja tulkit) eri asia kuin: -käännettävät ohjelmat (ja kääntäjät+linkittäjät) Suurteholaskentaympäristöt: katso www.csc.fi 10
7. Matlab Johdatusta matlabin käyttöön: pikaopas jaetaan printtinä. Matlabin sisäinen help ja oppaat www:ssa - kts. kurssin kotisivu ja oppaat osoitteessa www.csc.fi - suositus: kopioi oppaat pdf:nä omalle koneelle Matlab käytettävissä JYFL:n ja JY:n koneissa (XP ja Linux)! - linuxissa suoraan terminaali-ikkunastakin (matlab -nojvm) JY:n matlab-lisenssin saa käyttöön omaankin tietokoneeseen noin kympillä atk-keskuksesta, mutta se ei ole kurssin suorittamisen kannalta mitenkään välttämätöntä (eikä paranna lisenssien riittävyyttään); kts. linkki kurssin www-sivulla. Vrt. myös octave. 11 Fyysikolle hyödyllisiä kurssin aiheisiin liittyviä opintojaksoja Tietoteknikka (perusopintojen sisällössä valinnanvaraa): Ohjelmointi 1, Algoritmit 1, Numeeriset menetelmät, Simulointi, Fortran ja rinnakkaislaskenta, DY-mallit Matematiikka: Symbolinen laskenta Tilastotieteen kurssit (liittyen datankäsittelyyn) Fysiikka: Simulointikurssi, LaTeX-kurssi Kysyä saa. Ja pitää. [1B] MATLAB-KIELI JA -OHJELMISTO Kts. eri formaatissa oleva johdatus matlabiin: fnm1b.pdf 12