Tällä kurssilla käsitellään yleisimpiä ja yleensä suhteellisen yksinkertaisia menetelmiä, joiden avulla voi numeerisesti ratkaista yhtälöitä, integroida, ratkaista differentiaaliyhtälöitä jne. Sen ohessa tutustutaan Fortran 90/95 -ohjelmointikieleen, jota käytetään ohjelmaesimerkeissä.
Tämä ei ole varsinainen ohjelmointikurssi, joten kielen rakenteet ja ominaisuudet esitetään varsin tiiviisti. Siksi kurssille osallistuminen edellyttää ainakin jonkinlaista aikaisempaa kokemusta ohjelmoinnista jollakin kielellä.
Kurssista ei järjestetä tenttejä. Sen sijaan siihen liittyy harjoitustehtäviä ja lopputyö, jotka toteutetaan F90/95-kielellä.
Demo-ohjelmia
Tästä löytyy joitakin ohjelmia, joita ei välttämättä ole käsitelty luennolla, mutta jotka voivat olla tarpeen harjoitustöissä. Ohjelmien käyttö on sallittu vapaasti, mutta omalla vastuulla. En takaa, että toimivat kaikissa tilanteissa tai että ehtisin ylläpitää niitä. Ilmoita kuitenkin, jos niistä löytyy vikoja.
Muuta oheisroinaa
Grafiikkakirjasto pgplot
Seuraava sisältää Mikko Hanskin vuosia sitten laatiman ohjeen
pgplotin käytöstä (ei välttämättä vastaa nykytilannetta).
Ohjeesta on linkki luennolla käsiteltyyn dokumenttiin, jonka
PostScript-tiedoston voi ladata ja tulostaa. Sieltä löytyy
myös linkki kirjaston tuottajan sivuille, joista paketin
voi ladata omalle koneelleen.
- Pgplotin manuaali (paljon tekstiä englanniksi)
Luennoilla käsiteltävät asiat sisältyvät seuraaviin pdf-tiedostoihin. Tiedostot ja luennot eivät kuitenkaan vastaa bijektiivisesti toisiaan. Asia on jaettu tiedostoiksi asiakokonaisuuksien mukaan (jotta tätä voi käyttää myös jonkinlaisena primitiivisenä käsikirjana ja itseopiskeluoppaana). Luennoilla numeriikan välissä käsitellään ohjelmointia aina tarpeen mukaan. Sumea luentojen ja tiedostojen välinen kuvaus on esitetty täällä lähinnä niitä varten, jotka haluavat käydä valikoidusti vain muutamilla luennoilla.
Numeriikkaa
Peruskäsitteitä
- Lukujen esitystavoista
- Laskutoimituksissa syntyvistä virheistä
- Äärellinen laskentatarkkuus
Yhtälön ratkaiseminen
- Suora iterointi
- Välinpuolitusmenetelmä
- Regula falsi
- Sekanttimenetelmä
- Newtonin menetelmä
- Polynomiyhtälön juuret
- Yhtälöryhmät
- Ratkaisun tarkkuus
Lineaariset yhtälöryhmät
- Gaussin eliminointi
- LU-hajotelma
- Determinantti
- Käänteismatriisi
- Iteratiiviset menetelmät
Ominaisarvot
- Peruskäsitteitä
- QR-hajotelma
- Householderin muunnos
- Givensin rotaatiot
- QR-algoritmi
Aineiston esittäminen funktiolla 1
- Taylorin sarjat
- Pad\'e-approksimaatio
- Interpolointipolynomit
- Spline-funktiot
- Bezier-käyrät
Aineiston esittäminen funktiolla 2
- Pienimmän neliösumman menetelmä
Numeerinen integrointi
- Riemannin summa
- Puolisuunnikassääntö
- Simpsoninen menetelmä
- Rombergin menetelmä
- Newtonin-Cotesin menetelmät
- Gaussin kvadratuuri
- Monte Carlo -integrointi
Satunnaisluvut
- Tasaisesti jakautuneet luvut
- Muut jakaumat
Tavalliset differentiaaliyhtälöt, alkuarvotehtävät
- Määritelmiä
- Ratkaisu Taylorin sarjan avulla
- Yksiaskelmenetelmät
- Eulerin menetelmä
- Eksplisiittiset ja implisiittiset menetelmät
- Runge-Kutta-menetemä
- Moniaskelmenetelmät
- Adamsin menetelmä
- Ennustaja-korjaaja-menetelmät
Tavalliset differentiaaliyhtälöt, reuna-arvotehtävät
- Tähtäysmenetelmä
Osittaisdifferentiaaliyhtälöt
- Määritelmiä
- Differenssimenetelmät / elliptiset yhtälöt
- Differenssimenetelmät / hyperboliset yhtälöt
- Differenssimenetelmät / paraboliset yhtälöt
- Elementtimenetelmät (FEM)
Fourier'n muunnos
- Määritelmiä
- Diskreetti muunnos
- Konvoluutio ja dekonvoluutio
- Näytteenottolause ja Nyquistin taajuus
- FFT
- Äärellinen ja ei-tasavälinen aineisto
Optimointi
- Peruskäsitteitä
- Lokaali optimointi
- Viivahaku
- Liittogradienttimenetelmä
- Globaali optimointi
- Nelderin--Meaden menetelmä
F90
Taustaa
- Yleistä ohjelmointikielistä
- Historiaa
Perusrakenteet
- Yksinkertaiset muuttujat
- Peruskontrollirakenteet
- Syöttö ja tulostus
Proseduurit
- Proseduurit eli funktiot ja aliohjelmat
- Proseduurien paikalliset ja globaalit muuttujat
- Proseduurien parametrit
- Rekursiiviset proseduurit
- Avainsanaparametrit ja valinnaiset parametrit
Taulukot
- Taulukoiden määrittely
- Taulukko-operaatiot
Sekalaisia täydennyksiä
- Merkkijonot
- Syöttö ja tulostus, täydennystä
- Namelist
- Omat muuttujatyypit
- Osoittimet
- Taulukoiden dynaaminen varaus
Interface-lohko
- Funktion välittäminen parametrina
Moduulit
- Moduulit
- Geneeriset proseduurit
- Operaattorien ylilataus
- Operaatiot omille muuttujatyypeille
Rinnakkaislaskentaa
- Peruskäsitteitä
- Muuttujien suojaaminen
- Synkronointi
- Riippuvuudet
- HPF
- MPI
Hyvä ohjelmointityyli
- Top-down-ohjelmoinnista
- Ohjelmointityylistä
- Hieman ohjeita harjoitustöiden varalle
Harjoitustehtävät vaihtuvat vuosittain. Täällä ovat meneillään olevan kurssin tehtävät ja aikanaan myös niiden ratkaisut sekä taulukko opiskelijoiden saamista pisteistä.
joissakin tehtävissä tarvitaan datatiedostoja, joita on täällä.