ATK II - Numeerinen mallintaminen (763315A), kevät 2015



Samankaltaiset tiedostot
ATK II - Numeerinen mallintaminen (766315A), kevät 2016

Numeerinen mallinnus (766315A), kevät 2017


4. Lausekielinen ohjelmointi 4.1

Tähtitieteen käytännön menetelmiä Kevät 2009

Johdatus L A TEXiin. Dept. of Mathematical Sciences. Tunti 1: Alkeet. Markus Harju, markus.harju at oulu.fi, M207

Est.kand Kandidaatintyö ja seminaari: L A T E Xin käyttöönotto

Octave-opas. Mikä on Octave ja miksi? Asennus

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 9: L A T E X

Ohjelmointi 1. Kumppanit

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Sangen lyhyt L A T E X-johdatus

Juha Merikoski. Jyväskylän yliopiston Fysiikan laitos Kevät 2009

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut

LUENTO 7 TAULUKKOLASKENTA I

Sangen lyhyt L A T E X-johdatus

Harjoitus 1 -- Ratkaisut

YH1b: Office365 II, verkko-opiskelu

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Johdantoa. Jokaisen matemaatikon olisi syytä osata edes alkeet jostakin perusohjelmistosta, Java MAPLE. Pascal MathCad

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

TEKSTINKÄSITTELYTEHTÄVIÄ, OSA 1

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

VALO-ohjelmat ja LTSP kouluissa. Elias Aarnio Innopark, AVO-hanke

Zeon PDF Driver Trial

Purot.net Wiki. Tutkielma. Paavo Räisänen. Centria Ammattikorkeakoulu

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

4. Lausekielinen ohjelmointi 4.1

Tekstinkäsittelystä. H4: Tekstinkäsittelyn perusharjoitus. Toimisto ohjelmista

Luento 4: Liikkeen kuvausta, differentiaaliyhtälöt

TEEMA 3 TEKSTIDATAN KÄSITTELY JA JULKAISEMINEN LUENTO 5 TEKSTINKÄSITTELY

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia. Tehdään sähköisesti mikroluokkien Windows-koneilla.

Harjoitus 10: Mathematica

UCOT-Sovellusprojekti. Asennusohje

Johdatus Ohjelmointiin

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat


Oppimistavoitematriisi

ASCII-taidetta. Intro: Python

740150P Valmiustaitoja biokemisteille (2 op) Tuomo Glumoff Helmut Pospiech Jari Heikkinen Anne Mäkelä

T harjoitustehtävät, syksy 2011

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

Smart Board lukion lyhyen matematiikan opetuksessa

Enigmail-opas. Asennus. Avainten hallinta. Avainparin luominen

Differentiaali- ja integraalilaskenta 1. Tietokoneharjoitus: ratkaisut

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Harjoitus 3 -- Ratkaisut

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja.

5. HelloWorld-ohjelma 5.1

Johdatus ohjelmointiin

Ohjelmoinnin perusteet Y Python

ATK tähtitieteessä. Osa 1 - Linux. 11. syyskuuta 2014

Laske Laudatur ClassPadilla

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen


Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

VERKKOVELHO-YLLÄPITOTYÖKALUN KÄYTTÖOHJE

KAAVAT. Sisällysluettelo

TEEMA 2 TAULUKKODATAN KÄSITTELY JA TIEDON VISUALISOINTI LUENTO 3

Office ohjelmiston asennusohje

Symbolinen laskenta (MAT180,1ov)

MICROSOFT EXCEL 2010

ATK yrittäjän työvälineenä

Laske Laudatur ClassPadilla

Talousmatematiikan perusteet: Johdanto. Kurssin tavoitteet Käytännön järjestelyt Suosituksia suorittamiseen

Laske Laudatur ClassPadilla

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

Ohjelmointi 1 / syksy /20: IDE

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

Insinöörimatematiikan tentin toteuttaminen EXAM-järjestelmällä

SAS-ohjelmiston perusteet 2010

Laske Laudatur ClassPadilla

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Tekstinkäsittelyn jatko KSAO Liiketalous 1

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

Ohjelmoinnin perusteet Y Python

YH2: Office365 II, verkko-opiskelu

Joomla pikaopas. Yksinkertainen opas, jossa neuvotaan esimerkkisivuston teko Joomla julkaisujärjestelmällä vaihe vaiheelta.

Harjoitustehtäväkierros 1

Järjestelmän asetukset. Asetustiedostojen muokkaaminen. Pääkäyttäjä eli root. Järjestelmänhallinnan työkalut

Excel syventävät harjoitukset

Laske Laudatur ClassPadilla

T harjoitustyö, kevät 2012

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Moodle-oppimisympäristö

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

Simulaattorin asennus- ja käyttöohje

LUENTO 2 TEKSTINKÄSITTELY

ohjeita kirjautumiseen ja käyttöön

- Kuvan osoittamalla tavalla klikkaa kohtaa Tallenna Tiedosto. - Esimerkissämme Firefox selaimessa latauspalkki näyttää tältä

Tehtävä. Asetukset. Moodlen versiossa 2.3. käyttöön tuli uusi tehtävätyyppi, jonka on tarkoitus tulevaisuudessa korvata aiemmat tehtävätyypit.

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Transkriptio:

ATK II - Numeerinen mallintaminen (763315A), kevät 2015 H. Vanhamäki 31. joulukuuta 2014 Tiivistelmä Ensimmäisellä luennolla esitellään kurssin suuntaviivat ja tutustutaan LATEX-dokumenttien tekemiseen sekä joihinkin Mathematican sovellutuksiin. Luennoitsija: Heikki Vanhamäki (huone FY335, heikki.vanhamaki@oulu.fi) Harjoitustyöt korjaa: Juho Montonen (juho.montonen@gmail.com) Kurssin kotisivut: https://noppa.oulu.fi/noppa/kurssi/763315a/etusivu Luennot/harjoitukset: 3 h/viikko, MA 13-16 tai TO 9-12, luokka YL124 (ei harjoituksia 16.3., 19.3. eikä 2.4.) Toinen harjoitusryhmistä voidaan lopettaa kesken kurssin, mikäli osallistujamäärä jää pieneksi! Byrokratiaa Kurssilla on viikoittaisia luentoja/harjoituksia 13 viikon ajan. Varsinaisia viikoittain palautettavia kotitehtäviä ei ole, vaan harjoituksia tehdään luentojen yhteydessä mikroluokassa. Omatoiminen lisäharjoittelu on suotavaa, ja jopa välttämätöntä mikäli kaikkia esimerkkejä ei ehditä käydä yhdessä läpi. Wanhoja versioita luentomonisteesta sekä harjoitustehtävistä (joskus myös ratkaisuineen!) ja esimerkkejä tenttikysymyksistä löytyy osoitteesta http://www.oulu.fi/tf/atkii/ 1

Kurssilla ei ole välikokeita. Loppukoe järjestetään näillä näkymin tiistaina 5.5.2015 kello 14-18 salissa IT116. Tentti tehdään kynällä ja paperilla, materiaalia ei saa olla mukana. Varsinaista ohjelmointia ei siis ole, mutta joissain tehtävissä saatetaan pyytää kirjoittamaan lyhyt pätkä Mathematica-koodia paperille tai kysytään millä L A TEX-komennoilla tietyt asiat saa tehtyä. Oletusarvoisesti tentissä on 5 tehtävää, joista jokaisesta saa 6 pistettä. Kurssi arvostellaan 1 asteikolla 0-5. Kurssin aikana tehdään 3-4 harjoitustyötä, jotka palautetaan sähköpostilla harjoitusassistentille. Harjoitustöiden määrä ja aikataulu tulevat tarkentumaan kurssin kuluessa, mutta näillä näkymin töiden palauttamiselle asetetaan sopivat takarajat kurssin aikana. Jokaisesta takarajaan mennessä hyväksytysti palautetusta harjoitustyöstä saa bonuspisteitä, jotka lisätään tentistä saatuun pistemäärään. Jokaisesta ajallaan palautetusta harjoitustyöstä saa yhden (1) bonuspisteen, joilla voi korottaa tentin arvosanaa. Efektiivisesti siis tentin maksimipistemäärä on 33-34/30. Harjoitustehtävät tulee palauttaa kuitenkin viimeistään ennen tenttiin ilmoittautumista. Annetun takarajan jälkeen palautetuista töistä ei saa bonuspisteitä. Silloin kun mikroluokka YL124 ei ole varattuna opetuskäyttöön 2, se on opiskelijoiden vapaasti käytettävissä. Luokan koneissa on käytössä sekä Windows että Linux, ja molemmissa ympäristöissä on Mathematica sekä L A TEX käytettävissä. 1 Latex (tai L A TEX) Matemaattista tekstiä sisältävän dokumentin kirjoittaminen tavallisella tekstinkäsittelyohjelmalla (esim. LibreOffice Writer tai Microsoft Word) voi olla varsin tuskallista. Väittäisin että yli 90% fysiikan ja matematiikan alojen tieteellisistä artikkeleista tehdäänkin L A TEX:lla. Tällä kurssilla ei L A TEX:in käyttöön perehdytä kovin järjestelmällisesti, mutta muutamassa harjoitustyössä pitää vastaukseen sisällyttää L A TEX:illa tehty lyhyt dokumentti. Tarkoituksena on tutustuttaa opiskelijat tähän työkaluun, niin että he voivat sen avulla helpommin kirjoittaa laboratoriotöiden selustuksia, muita kirjallisisa raportteja sekä jossain vaiheessa kandin tutkielman ja gradun. 1 ks. http://www.oulu.fi/yliopisto/opiskelu/arvostelu 2 ks. https://pooki.oulu.fi/, selaile kirjautumatta, valitse tilaryhmä TH mikroluokat 2

L A TEX:in osalta kurssin tärkeimmän oppimateriaalin muodostaa tämän dokumentin lähdekoodi, jonka löydät kurssin kotisivulta tiedostossa Aluksi.tex. Lisäksi harjoitustehtäviä tehdessä kannattaa tutustua seuraaviin oppaisiin The not so Short Introduction to LaTeX, http://www.ctan.org/tex-archive/info/lshort/english Y.o. oppaan suomenkielinen käännös on hieman vanhentunut, mutta pääosin täyttä asiaa, http://www.ctan.org/tex-archive/info/lshort/finnish Latex wikibook, http://en.wikibooks.org/wiki/latex Yksittäisissä ongelmatilanteissa apua löytyy parhaiten Googlella, sillä L A TEX:illa on laaja ja aktiivinen käyttäjäkunta. 1.1 L A TEX:in filosofia L A TEX ei oikeastaan ole tekstinkäsittelyohjelma, vaan ladontajärjestelmä TEX:in päälle rakennettu makrokirjasto, joka sisältää suuren joukon työkaluja matemaattisten kaavojen kirjoittamiseen. Dokumentin kirjoittaminen L A TEX:illa muistuttaa hieman ohjelmointia, sillä kaikki tekstin ulkoasuun vaikuttavat säädöt tehdään kirjoittamalla L A TEX:in ohjauskomentoja raakatekstin sekaan (esimerkiksi komento \LaTeX tuottaa tekstin L A TEX). Samoin kaavat, kuvat ja muut erikoistehosteet lisätään käyttämällä komentoja. Lopullinen julkaisukelpoinen dokumentti tehdään kääntämällä tämä lähdekoodi L A TEX-kääntäjällä pdf-tiedostoksi. Kaavojen lisäksi L A TEX soveltuu hyvin myös tavallisen tekstin tuottamiseen, sillä se huolehtii automaattisesti esimerkiksi rivin- ja sivunjaosta, kuvien ja taulukoiden asettelusta, dokumentin sisäisistä viittauksista ja sisällysluettelosta. Dokumenttiin on myös helppo lisätä lähdeluettelo ja kirjallisuusviitteitä. Kirjoittaja saa siis keskittyä itse sisältöön ja dokumentin loogiseen rakenteeseen, L A TEX:in huolehtiessa ulkoasusta (lähes) automaattisesti. L A TEX-tiedoston voi kirjoittaa millä tahansa tekstinkäsittelyohjelmalla, mutta se tulee tallentaa ASCII-muotoon ( Plain text tai vastaava tiedostomuoto), esimerkiksi Microsoftin.doc-formaatti tai LibreOfficen.odt-tiedostot eivät kelpaa. Lisäksi L A TEX-tiedoston pääte pitää olla.tex. Tiedoston kirjoittamista auttaa jos tekstieditori tunnistaa L A TEX-komennot ja erottaa ne tavallisesta tekstistä esimerkiksi värikoodeilla, mutta tämä ei vaikuta lopputulokseen. Jos teksti sisältää muita kuin 127 alkuperäistä ASCII-merkkiä, tulee olla tarkkana mitä ASCII-merkistön 3

laajennusta (encoding) tekstieditori käyttää tiedostoa tallentaessa. 1.2 Latex Linuxissa Jonkinlainen L A TEX-paketti on valmiiksi asennettuna useimmissa Linux-jakeluissa, ainakin Ubuntussa. Perusversioon saattaa joutua lisäämään muita paketteja, mikäli haluaa käyttää joitain erikoistoimintoja (esimerkiksi suomalainen tavutus babellisäosalla). Näiden asennus on helpointa normaalin paketinhallinnan kautta, mikä vaatii ylläpitäjän oikeudet. Jos L A TEX:ia käyttää enemmän, pääsee (ainakin Ubuntussa) helpoimmalla asentamalla paketin texlive-full, joka sisältää kaikki saatavilla olevat komponentit. Luokan YL124 koneissa on toimiva kokonaisuus asennettuna. L A TEX-dokumentin voi Linuxissa kirjoittaa oikeastaan millä peruseditorilla tahansa, esimerkiksi gedit (Gnome-ympäristön oletuseditori) ja kate (KDE-ympäristön oletus) tunnistavat L A TEX-komennot ja erottavat ne muusta tekstistä värikoodeilla. Nykyään UTF-8 on Linuxissa standardi tapa tallentaa ääkköset ja muut erikoismerkit, joten sen ei pitäisi tuottaa ongelmia. Jos L A TEX-dokumentin kirjoittaa esimerkiksi edellä mainituilla editoreilla, pitää se erikseen kääntää pdf-tiedostoksi antamalla komentoriviltä komento pdflatex Tiedosto.tex. Näiden yleiseditorien lisäksi on myös saatavilla L A TEX-dokumenttien tekoon räätälöityjä ohjelmia, kuten texmaker, jotka osaavat kääntää dokumentin nappia painamalla. Lisäksi ne sisältävät dokumentin kirjoittamista helpottavia ominaisuuksia, kuten valikoita joista yleisimmät L A TEX-komennot löytyvät valmiina, jolloin niitä ei tarvitse kirjoittaa ulkomuistista. 1.3 Latex Windowsissa Suositeltava L A TEX-kokonaisuus Windows-käyttäjille on MiKTeX, joka sisältää myös TeXworks editorin.tex dokumenttien kirjoittamiseen. MiKTeX osaa automaattisesti ladata netistä puuttuvat lisäosat, joten käyttäjän ei tarvitse huolehtia niiden asentamisesta. Windowsissa.tex tiedostot on helpoin kirjoittaa TeXworks editorilla, sillä muut ohjelmat eivät usein osaa auttaa kirjoittamista korostamalla L A TEX-komentoja ja ne saattavat tallentaa ääkkösiä sisältävän tiedoston käyttäen jotain muuta kuin UTF-8 standardia 3. Katso http://www.miktex.org/. 3 Esimerkiksi suomenkielisen Windows 7:n notepad tallentaa sen (luullakseni) latin1 koodauksella 4

1.4 Latex Macissä Suositeltava L A TEX-kokonaisuus Mac-käyttäjille on MacTex.pkg, joka sisältää kaikki tarvittavat työkalut, mukaan lukien.tex dokumenttien tekemiseen räätälöidyn editorin nimeltä TexShop. Katso http://www.tug.org/mactex/. 1.5 Esimerkkejä Minimaalinen englannin kielinen L A TEX-tiedosto on seuraava \documentclass[a4paper,12pt]{article} \begin{document} English text. \end{document} Minimaalinen suomenkielinen tiedosto on hieman pidempi, sillä TEX suunniteltiin 70-luvulla yhdysvalloissa, eikä silloin mietitty ääkkösten tai vieraiden kielien kaltaisia toissijaisia seikkoja. Tämä ei toki ole pelkästään L A TEX:in ongelma, vaan lähes kaikkiin ohjelmistoihin ja käyttöjärjestelmiin periytynyt ominaisuus tietokoneiden alkuajoilta. \documentclass[a4paper,12pt]{article} \usepackage[utf8]{inputenc} \usepackage{times} \usepackage[t1]{fontenc} \usepackage[finnish]{babel} \begin{document} Suomalaista tekstiä. \end{document} Tämän dokumentin.tex-versiosta löytyy selitys y.o. komennoille. Kaavoilla (1-2), kuvalla 1, taulukolla 1 ja viittauksella artikkeliin Amm (1997) ei ole mitään muuta merkitystä, kuin toimia esimerkkeinä. Jatketaan näyttämällä pari irrallista kaavaa x n + 1 x n+1, cos 2 θ + sin 2 θ = 1, ( a b ) 1 2 = a b. (1) Laitetaan myös tekstin sekaan kaava e x. Sitten testataan L A TEX-koodin alussa määriteltyjä omia komentoja näyttämällä matriisin ja vektorin tulo M x = y, ja listaamalla karteesisen koordinaatiston yksikkövektorit ê x, ê y, ê z. Yksi Maxwellin 5

1.0 0.5-10 - 5 5 10-0.5-1.0 Kuva 1: Mathematicalla tehty kuva sini- ja kosiniaalloista. Team P W D L F A Pts Manchester United 6 4 0 2 10 5 12 Celtic 6 3 0 3 8 9 9 Benfica 6 2 1 3 7 8 7 FC Copenhagen 6 2 1 3 5 8 7 Taulukko 1: Tämä varsin yksinkertainen esimerkki on kopioitu sivulta http://en.wikibooks.org/wiki/latex/tables, missä on paljon muitakin hyödyllisiä taulukkokikkoja. yhtälöistä on E = B t. Lopuksi esitetään yksinkertainen integraali, 0 α απ dx = β + x2 2 β. (2) Näiden kaavojen kirjoittamisessa tarvittavat komennot (ja paljon muita) on esitetty oppaan Not so short introduction to latex luvussa 3. Harjoitustehtäviä 1. Tee yllä kuvattu minimaalinen englanninkielinen.tex tiedosto ja käännä se pdf-dokumentiksi. 2. Tee sama minimaalisen suomenkielisen.tex tiedoston kanssa. Varmista että ääkköset näkyvät oikein. 3. Toista kohdat 1) ja 2) sekä Windowsissa (käytä MikTex:in TeXworks-editoria) että Linuxissa (käytä komentoriviltä komentoa pdflatex tiedosto.tex ). 6

4. Hae kurssin kotisivulta tämän dokumentin latex-koodi (tiedosto Aluksi.tex) ja tutustu sen sisältöön. Kokeile kääntää se pdf-dokumentiksi (kuvan lisäämiseksi tarvitset tiedoston Aluksi_kuva1.pdf kurssin kotisivulta). 5. Kopio esimerkkejä sisältävä pätkä osiosta 1.5 omaan tiedostoosi ja kokeile muokata kaavoja sekä taulukkoa. Huomaa että komennot \omavec yms. eivät kuulu L A TEX:in vakiovarustukseen, vaan ne pitää erikseen määritellä komennolla \newcommand tiedoston alussa. Bonus Selvitä itsellesi mikä on ASCII-merkistö ja UTF-8. Selvitä myös miten rivinvaihto (siis enterin painallus) kirjoitetaan ASCII-muotoiseen tekstitiedostoon Windowsissa, Linuxissa ja Macissä. 2 Mathematica Kurssilla keskitytään Mathematican käyttöön. Mathematica on symbolisen laskennan ohjelmisto, joka osaa käsitellä yhtälöitä analyyttisesti. Käytännössä kaikki integraalit ja differentiaaliyhtälöt, jotka keskiverto fyysikko osaa ratkaista kynällä ja paperilla, voi laskea Mathematicalla muutamassa sekunnissa. Tämän lisäksi Mathematicalla voi ratkoa vaikeampia yhtälöitä numeerisesti, piirtää näyttäviä kuvia ja kirjoittaa laskentaa sisältäviä raportteja tai interaktiivisia dokumentteja. Tämän kurssin luentomoniste on Mathematicalla tehty notebook-tiedosto, jonka voi ladata kurssin kotisivulta. Siihen voi tulla pieniä päivityksiä kurssin kuluessa. Mathematica notebook on yhdistelmä tekstidokumenttia ja tietokoneohjelmaa. Se voi sisältää tavallista tekstiä, Mathematicalla tehtäviä laskuja sekä ohjelman piirtämiä kuvia, jotka kaikki ovat käyttäjän muokattavissa. Luentomonisteen muokkaamiseen ja esimerkkilaskujen suorittamiseen tarvitset Mathematican, mutta pelkkä lukeminen sujuu ohjelmiston kehittäneen yhtiön Wolfram Researhin sivuilta ladattavalla ilmaisohjelmalla 4. 2.1 Kurssin tarkoitus Kurssilla esitettävissä esimerkkilaskuissa ei ole oikeastaan tärkeää niiden sisältö, vaan tapa jolla ongelmat ratkaistaan. Osa esimerkeistä voi tuntua keinotekoisilta, ja sitä ne ovatkin. Tarkoitus on tutustuttaa opiskelijat työkaluun, jota he voivat 4 http://www.wolfram.com/cdf-player/ 7

myöhemmin käyttää omien tehtäviensä ratkaisemisessa. Käytännössä ainoa tapa päästä alkuun Mathematican (tai minkä tahansa laskentaohjelmiston) käytössä on tehdä tarpeeksi paljon erilaisia harjoituksia, jolloin toivottavasti sisäistää ohjelmiston sisäisen logiikan, tutustuu kielen syntaksiin (eli rakenteeseen ja tapaan jolla komennot kirjoitetaan) ja oppii tuntemaan riittävän määrän peruskomentoja päästäkseen omin avuin eteenpäin 5. Vaikka kurssilla keskitytään pelkästään Mathematican käyttöön, on tarkoituksena opettaa yleisemmin sovellettavissa olevia menetelmiä fysiikan ongelmien ratkomiseksi tietokoneella. Mathematicalla on tässä mielessä etunsa ja haittansa: Symbolinen laskenta mahdollistaa varsin monimutkaisten ongelmien suoraviivaisen käsittelyn, mutta samojen menettelytapojen soveltaminen ei välttämättä onnistu muissa ohjelmistoissa (ks. osio 3). Myös Mathematican notebookkien rakenne tekstiä, kuvia ja laskutoimituksina yhdistävinä dokumentteina ei ole kovin tavanomainen. Kuitenkin monet perusasiat (kuten vektoreiden ja matriisien käsittely, kuvien tekeminen, interpolointi, datan lukeminen tiedostosta) ovat eri ohjelmistoissa luonteeltaan samankaltaisia, vaikkakin yksittäiset käskyt voivat olla hyvin erilaisia. Samoin monet ohjelmoinnin perusteet (kuten for-loopit ja if-lauseet) toistuvat pienin variaatioin samanlaisina eri ohjelmissa. 2.2 Mathematica Oulun yliopistossa Mathematica on varsin kallis ohjelmisto, ja Oulun yliopistolla on ainoastaan 16 lisenssiä opiskelijoiden ja tutkijoiden yhteiskäytössä 6. Opiskelijat voivat käyttää Mathematicaa muun muassa luokassa YL124 (linux ja windows), mikrohallissa PR106 (windows), sekä etäyhteydellä linux-palvelimessa haapa.oulu.fi. Windowsin puolella Mathematican pitäisi löytyä aloitusvalikosta ja se käynnistyy myös napauttamalla notebook-tiedostoa (pääte.nb). Linuxin puolella ohjelmaa ei välttämättä löydy valikosta, mutta sen voi käynnistää komentoriviltä komennoilla mathematica (normaali graafinen käyttöliittymä) tai math (rajoittunut tekstitila, lopeta komennolla Exit ). Jälkimmäisestä on hyötyä lähinnä hitaan etäyhteyden yli käytettäessä. 5 Tämä muistuttaa vieraan kielen oppimista: Komennot=sanasto, syntaksi=kielioppi, ja sisäinen logiikka kertoo miten monimutkaisetkin asiat on helpointa ilmaista sujuvasti ja luontevasti. 6 katso http://www.oulu.fi/tietohallinto/unix/mathematica.html 8

Graafisessa tilassa alkuun pääsee avaamalla uuden (tai olemassa olevan) notebookin. Notebook koostuu soluista, joihin voi sijoittaa tekstiä, kuvia tai laskuja. Oletusarvoisesti jokaisen uuden solun tyyli on input, eli se sisältää laskuja tai muita komentoja Mathematican suoritettavaksi. Solun tyyliä voi vaihtaa hiiren oikealla näppäimellä avautuvasta valikosta, format toolbaarista, tai näppäinoikotiellä (esim Alt + 7 on teksti, Alt + 9 on input). Huomaa että input-solussa vasta Shift + Enter suorittaa laskun tai komennon, pelkkä Enter on rivinvaihto. Laskun tulos ilmestyy uuteen soluun, jonka tyyli on output. 2.3 Mathematica netissä Mathematican joihinkin ominaisuuksiin voi tutustua ilmaiseksi kotikoneellaan kahden Wolfram Researhin ylläpitämän sivuston kautta: Integrator (http://integrals.wolfram.com/) laskee nimensä mukaan integraaleja. Se osaa integroida analyyttisesti kaikki samat integraalifunktiot kuin Mathematicakin, mutta se ei laske määrättyjä integraaleja ja on rajoittunut vain yhden muuttujan (weppipalvelussa aina x) funktioihin. Kannattaa tututstua varsinkin kohtaan How to enter input ja katsoa tulos myös muodossa Input form, sillä näitä komentoja voi käyttää suoraan varsinaisessa Mathematicassa. Wolfram alpha (http://www.wolframalpha.com/) ei ole hakukone vaan computational knowledge engine. Sille voi antaa syötteeksi Mathematican komentoja, mutta myös vapaamuotoisia kysymyksiä tyyliin integrate x*sin( square root of x) from 0 to pi tai when is the next lunar eclipse visible in Oulu. Kannattaa tutustua erityisesti siviston matemaattisiin esimerkkeihin. Ilmaisessa nettiversioissa on joitain rajoituksia, mutta täydelliseen versioon pääsee käsiksi yliopiston Mathematicasta laittamalla rivin alkuun ==. Näistä kahdesta ilmaisesta työkalusta voi olla satunnaista hyötyä fysiikan opinnoissa, ainakin silloin kun varsinaiseen Mathematicaan ei pääse käsiksi. Niistä voi myös olla hyötyä Mathematican käytön opettelussa, vaikkakin Wolfram alpha käyttää hieman erilaista syntaksia kuin muut Mathematican funktiot, joten suora hyödyntäminen ei aina ole mahdollista. 9

Harjoitustehtäviä 1. Laske nettisivulla http://integrals.wolfram.com/ seuraavat integraalit (sivun linkistä How to enter input on varmasti apua, samoin muutaman satunnaisen esimerkin katsomisesta) x sin x dx, (2ax x 2 ) 3/2 dx, sin x 1 + cos2 x dx, 2. Ratkaise nettisivulla http://www.wolframalpha.com/ seuraavat tehtävät (linkin Examples kohdan Mathematics alta löytyvistä esimerkeistä on varmasti apua) (a) Ratkaise kolmannen asteen yhtälö x 3 + 2x 2 + a = 0. Kokeile myös arvolla a = 1. (b) Ratkaise differentiaaliyhtälö y + y + x = 0. (c) Laske integraali π 0 sin2 x dx. (d) Onko 2 101 + 1 alkuluku? (e) Kuinka monta lammasta Suomessa on? bonus Tutki kohdan 1) laskuissa esiintyvää Mathematica syntaksia. Saat sen esille kohdasta Input form, joka tosin näyttää myös tuloksen sisältämät komennot. Koeta toistaa laskut näitä komentoja käyttämällä mikroluokan koneessa olevalla Mathematicalla (huomaa että Mathematican graafisessa käyttöliittymässä Shift + Enter suorittaa käskyn). log(x)e x dx. 3 Yleisesti matemaattisen mallinnuksen ohjelmista Käytännössä kaikessa fysiikan tutkimuksessa tarvitaan matemaattista mallinnusta aina kokeellisten laitteden suunnittelusta teoreettisen fysiikan yhtälöiden ratkaisuun ja approksimointiin. Hyvin usein fysiikassa käytettävien mallien yhtälöt eivät ole kynällä ja paperilla ratkeavia tai ratkaiseminen on erittäin työlästä. Tällöin apukeinona käytetään tietokoneen laskentavoimaa. Numeeriseen ja analyyttiseen työhön onkin vuosien saatossa kehitetty useita erilaisia ohjelmistoja ja rutiinikirjastoja. Seuraavassa muutamia yleisimmin käytettyjä ohjelmia ja (subjektiivisia) kommentteja niiden hyvistä ja huonoista puolista. Ohjelmointikielet voidaan jakaa käännettäviin ja tulkattaviin, vaikka raja ei ole aivan terävä. Käännettäessä koko ohjelma tarvittavine kirjastoineen muutetaan 10

kerralla konekieleksi. Näin saatu ohjelma voidaan suorittaa itsenäisenä ohjelmana ilman kääntäjää. Tulkattaessa ohjelmakoodia käännetään pieni osa kerrallaan (eikä yleensä edes konekielelle asti), suoritetaan se ja käännetään seuraava osa ja niin edelleen. Ohjelman suoritus vaatii siis joka kerta tulkin. Alla luetelluista kielistä C/C++ ja Fortran ovat käännettäviä, muut enemmän tai vähemmän tulkattavia. Yleisesti ottaen käännettävät ohjelmat ovat nopeampia ja ne voidaan siirtää toisille käyttäjille itsenäisinä kokonaisuuksina. Tulkattavat kielet taas ovat yleensä nopeampia ohjelmoida ja helpompia muutella, mutta ohjelmien suorittaminen vaatii aina käyttäjältä kyseisen ohjelmiston (joka voi olla kallis). Todetaan vielä että se mitä työkalua kussakin tutkimusryhmässä tai tieteenalalla käytetään, tuntuu olevan hyvin satunnaisesti määräytynyt asia. Esimerkiksi tähtitieteilijät pitävät IDL:stä, monet fyysikot Matlabista ja tilastollista dataanalyysiä tekevät suosivat R:ää. Jotkut ryhmät kirjoittavat ohjelmansa Fortranilla ja toiset C:llä. Usein tutkimusryhmässä käytetään sitä ohjelmistoa tai ohjelmointikieltä mitä ennenkin on käytetty, sillä silloin vanhoja ohjelmia voi hyödyntää uusien ongelmien ratkaisemisessa. Mathematica + Analyyttinen yhtälöiden ratkaisu, derivointi/integrointi ja sievennys. Valtava määrä erilaisia sisäisiä funktioita. Tyylikäs ja laaja funktioiden piirtäminen. Mahdollisuus mielivaltaiseen numeeriseen tarkkuuteen. - Laajojen taulukoiden käsittely hyvin hidasta. Ei sovi laajojen ohjelmakokonaisuuksien rakentamiseen. Epäkäytännöllinen kokeellisen datan käsittelyssä. Kaupallinen ja suhteellisen kallis hankkia. Matlab + Erittäin laaja kokoelman valmiita funktioita ja ohjelmia datan käsittelyyn ja visualisointiin. Lähempänä oikeaa ohjelmointia, jonka ansiosta soveltuu myös laajojen kokonaisuuksien hallintaan. Käytetään laajalti, myös yksityisellä puolella. Soveltuu kokeellisen datan käsittelyyn. Voidaan linkittää C/C++ ja Fortran koodiin raskasta laskentaa varten. - Analyyttiseen yhtälöiden käsittelyyn on lisämoduuli, mutta Mathematicaa rajoittuneempi. Kaupallinen, nykyään suhteellisen edullinen yliopistoille ja opiskelijoille, mutta kallis yksityisille. 11

Octave + Matlabin open source -versio, saatavilla ilmaiseksi. Usein yksinkertaiset Matlabohjelmat toimivat suoraan Octavessa. - Ei niin laajaa numeerista kirjastoa kuin Matlabissa. Hankalampi käyttää kuin Matlab (erityisesti kuvien tekeminen). Läheskään kaikki Matlab-ohjelmat eivät toimi suoraan Octavessa. IDL + Suosittu tähtitieteessä ja osassa avaruusfysiikkaa. Verrattavissa Matlabiin. - Ei yhtä suosittu muilla aloilla. Kaupallinen ja kohtuullisen kallis. R + Kehitetty tilastollista analyysiä varten, laaja kokoelma valmiita funktiota tähän tarkoitukseen. Open source, vapaasti saatavilla. Verrattavissa Matlabiin. - R on vielä kehittymässä, puutteita dokumentaatiossa ja yhteensopivuudessa vanhoihin versioihin. Python + Nopeasti yleistyvä ohjelmointikieli numeerisessa mallinnuksessa, myös valmiit ohjelmakirjastot jo varsin kattavia. Open source, saatavilla ilmaiseksi. Monien mielestä hyvä balanssi Matlab-tyyppisen high level ja C/C++ -tyyppisen low level ohjelmoinnin välillä. Ei välttämättä paras vaihtoehto moniin tehtäviin, mutta lähes kaikissa kohtuullinen. - Ei vielä täysin kattavaa käyttäjäkuntaa/ohjelmakirjastoa/dokumentaatiota. Vaikka kohtuullinen työkalu moniin tehtäviin, ei välttämättä paras vaihtoehto mihinkään tiettyyn ongelmaan. C/C++ + True Klingon warriors program in C. Erittäin nopea raskaassa numeerisessa laskennassa. Ohjelmien hyvä siirrettävyys. Saatavissa laajoja numeerisia kirjastoja. - True Klingon warriors program in C. Hidas pienten tehtävien tekemiseen. Koodatessa bugit vaivaavat ja niiden löytäminen on työlästä. Vaatii usein syvällistä tietoa numeerisesta laskennasta nippelitasolla. 12

Fortran + Samat edut kuin C/C++:ssa. Merkittävä osa fysiikan mallinnusohjelmista on kirjoitettu eri Fortranin versioilla (jo vuodesta 1957). - Samat kuin C/C++:ssa (jo vuodesta 1957). Viitteet Amm O., Ionospheric elementary current systems in spherical coordinates and their application, J. Geomag. Geoelec., 49, 947 955, 1997. 13