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



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

Numeerinen mallinnus (766315A), kevät 2017

4. Lausekielinen ohjelmointi 4.1

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

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

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


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

Harjoitus 1 -- Ratkaisut

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

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

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

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

Ohjelmointi 1. Kumppanit

Johdatus Ohjelmointiin

Sangen lyhyt L A T E X-johdatus

Johdatus ohjelmointiin

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

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

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

LUENTO 7 TAULUKKOLASKENTA I

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

Kirkkopalvelut Office365, Opiskelijan ohje 1 / 17 IT Juha Nalli

zotero

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

Sangen lyhyt L A T E X-johdatus

KÄYTTÖOHJE. Servia. S solutions

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

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

TEKSTINKÄSITTELYTEHTÄVIÄ, OSA 1

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

Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Luento 4: Liikkeen kuvausta, differentiaaliyhtälöt

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

740150P Valmiustaitoja biokemisteille (2 op)

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

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

UpdateIT 2010: Uutisten päivitys

Väitöskirja -mallipohja

KYMENLAAKSON AMMATTIKORKEAKOULU. Ubuntu. Yukun Zhou

Tuplaturvan tilaus ja asennusohje

Symbolinen laskin perinteisissa pitka n matematiikan ylioppilaskirjoituksissa

Ubuntu tunkkausta En US / Helsinki asennuksen jälkeen jotta loki5ac toimisi oikein Winen päällä.

A-Tiilikate objektikirjasto

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

TEEMA 2 TAULUKKODATAN KÄSITTELY JA TIEDON VISUALISOINTI LUENTO 3

Ohjeet asiakirjan lisäämiseen arkistoon

Hallintotieteiden opinto-opas lkv , Yleisopinnot ok Yleisopinnot

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

Kuukauden kuvat kerhon galleriaan lähtien kuukaudenkuvaajan kuvagalleria on siirretty uudelle palvelimelle osoitteeseen:

Harjoitus 10: Mathematica

OP-eTraderin käyttöopas

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

5. HelloWorld-ohjelma 5.1

YH1b: Office365 II, verkko-opiskelu

KUINKA KIRJOITAT E-KIRJAN päivässä

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

UpdateIT 2010: Editorin käyttöohje

Jypelin käyttöohjeet» Ruutukentän luominen

KAAVAT. Sisällysluettelo

Japanin kirjoittaminen Japanese IME:n avulla Windows 7 -käyttöjärjestelmässä

Differentiaali- ja integraalilaskenta 1. Tietokoneharjoitus: ratkaisut

Zeon PDF Driver Trial

LABORAATIOSELOSTUSTEN OHJE H. Honkanen

Ohjeita kirjan tekemiseen

L models. Käyttöohje. Ryhmä Rajoitteiset

C++ Ohjelmoijan käsikirja. Johdanto

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

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

4. Lausekielinen ohjelmointi 4.1

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

SKANNAUSVINKKEJÄ. Skannausasetukset:

MATEMATIIKAN LATOMINEN LA T EXILLA, OSA 1


Harjoitus 1 -- Ratkaisut

Vedä ja pudota Maamittauslaitoksen JPEG2000-ortoilmakuva GeoTIFF-muotoon

Tieteellinen laskenta I (Scientific Computing I)

Digitaaliset fysiikan ja kemian kokeet. Tiina Tähkä Kemian jaoksen jäsen

Kuva 1. Jokaisen tavallisen kuvan tasotyökalussa näkyy vain yksi taso, tässä nimellä tausta.

Ksenos Prime Käyttäjän opas

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

,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU

1.1 Vektorit. MS-A0007 Matriisilaskenta. 1.1 Vektorit. 1.1 Vektorit. Reaalinen n-ulotteinen avaruus on joukko. x 1. R n. 1. Vektorit ja kompleksiluvut

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

Smart Board lukion lyhyen matematiikan opetuksessa

OHJEET WORDPRESS-BLOGIN LUOMISEEN JA TAVALLISIMPIIN BLOGITOIMINTOIHIN

ASCII-taidetta. Intro: Python


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

linux linux: käyttäjän oikeudet + lisää ja - poistaa oikeuksia

ATK tähtitieteessä. 26. syyskuuta Osa 6 - LATEX

Tekstinkäsittelystä. Yleisiä tekstinkäsittelyn periaatteita OpenOffice.org Writer vs. MS Word. H4: Tekstinkäsittelyn perusharjoitus

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

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

MixW ja Dx-vihjeet (ohje) oh3htu

T harjoitustehtävät, syksy 2011

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

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

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

Transkriptio:

ATK II - Numeerinen mallintaminen (766315A), kevät 2016 H. Vanhamäki 7. tammikuuta 2016 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:??? Kurssin kotisivut: https://noppa.oulu.fi/noppa/kurssi/766315a/etusivu Luennot/harjoitukset: 3 h/viikko, MA 11-14 tai TO 9-12, luokka YL124 (ei harjoituksia 24.3. tai 28.3.) Toinen harjoitusryhmistä voidaan lopettaa kesken kurssin, mikäli osallistujamäärä jää pieneksi! Byrokratiaa Kurssilla on viikoittaisia luentoja/harjoituksia 14 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 luento monisteesta 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 tiistaina 3.5.2016 kello 16-20 salissa???. 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 TEXkomennoilla 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 4 harjoitustyötä, jotka palautetaan sähköpostilla harjoitusassistentille. Harjoitustöiden aikataulu on vielä hieman auki, mutta niiden palauttamiselle asetetaan ohjeelliset päivämäärät. Jokaisesta annettuun päivään mennessä hyväksytysti palautetuista harjoitustyöstä saa yhden bonuspisteen, joilla voi korottaa tentin arvosanaa. Efektiivisesti siis maksimipistemäärä on 34/30. Kaikki harjoitustyöt tulee kuitenkin palauttaa hyväksyttävässä kunnossa ennen tenttiin osallistumista. Annetun tavoiteajan jälkeen palautetuista töistä ei saa bonuspisteitä. Mikäli harjoitustyöt eivät ole kunnossa, tenttiä ei arvostella ja kurssin joutuu suorittamaan myöhemmin uusintatentissä 2. Mikäli siis jättää harjoitustöiden palauttamisen tenttiä edeltävään iltaan, kannattaa olla todella varma siitä että kaikki on kunnossa. Mikäli assistentti ei jotain työtä hyväksy, jätetään tentti arvostelematta. Harjoitustyöt voi tehdä yksin tai kahden hengen ryhmissä. Jälkimmäisessä tapauksessa ryhmä palauttaa yhden yhteisen työselustuksen, jossa on molempien tekijöiden nimet. Silloin kun mikroluokka YL124 ei ole varattuna opetuskäyttöön 3, 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 asennettuna. Luultavasti samat ohjelmat löytyvät myös Telluksen ja mikrohallin työasemista. 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 1 ks. http://www.oulu.fi/yliopisto/opiskelu/arvostelu 2 Myöskään uusintaan ei saa osallistua ilman harjoitustöiden suorittamista. 3 ks. https://pooki.oulu.fi/, selaile kirjautumatta, valitse tilaryhmä TH mikroluokat 2

tuskallista. Väittäisin että yli 90% fysiikan ja matematiikan alojen tieteellisistä artikkeleista tehdäänkin L A TEX:lla tai jollain vastaavalla variantilla (ks. kappale 1.2). Tällä kurssilla ei L A TEX:in käyttöön perehdytä kovin järjestelmällisesti, mutta ainakin yhdessä 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 selostuksia, muita kirjallisia raportteja sekä jossain vaiheessa kandin tutkielman ja gradun. 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 3

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 laajennusta (encoding) tekstieditori käyttää tiedostoa tallentaessa. 1.2 Variantteja Jotta asiat eivät olisi liian yksinkertaisia, L A TEX ei suinkaan ole ainoa alkuperäisen TEX:in laajennus. Saatatte törmätä suureen määrään erilaisia tex-loppuisia ohjelmistoja ja editoreita, jotka tekevät suunnilleen samoja asioita enemmän tai vähemmän yhteensopivilla tavoilla. Tässä on tärkeää erotella käytetty kieli (esimerkiksi tex, latex, xetex), editori jolla tex-dokumentti kirjoitetaan (tavallinen tekstieditori tai kustomoitu editori kuten esimerkiksi Lyx), sekä vihdoin kääntäjä jolla tietyllä kielellä tehty dokumentti käännetään (esimerkiksi pdflatex). Jotkin ohjelmistot (esimerkiksi Texmaker tai MiKTeX) yhdistävät kaikki kolme osaa samaan ohjelmaan, usein vieläpä niin että käyttäjä saa valita haluamansa kielen ja kääntäjän useasta eri vaihtoehdosta. Kannattaa kokeilla eri vaihtoehtoja ja löytää itselle sopiva kieli/editori/kääntäjä. Erot eri kielien (tai murteiden) välillä eivät ole hirvittävän suuria, mutta valitettavasti ne eivät aina ole täysin yhteensopivia. Ajan myötä tämä nostaa kynnystä vaihtaa kieltä esimerkiksi latexista xetexiin, sillä vanhojen dokumenttien hyödyntäminen uusissa kirjoituksissa tulee hankalaksi 4. Alussa siis kannattaa tutustua eri vaihtoehtoihin. Tässä dokumentissa keskitytään L A TEX:iin ja tarkemmin sanoen sen pdflatexkääntäjään. Pdflatexin ero vanhempiin kääntäjiin verrattuna on siinä, että se tekee tulostiedoston suoraan pdf-muotoon, kun ennen tähän tarvittiin ylimääräisiä välivaiheita. Lisäksi pdflatexin kanssa dokumenttiin lisättävät kuvat voivat olla useammassa eri formaatissa kuin ennen. Alla on jotain ohjeita L A TEX:in käytöstä 4 Tämä pätee ihan samalla tavalla numeerisen laskennan ohjelmistoihin, ks. kappale 3 4

eri ympäristöissä. 1.3 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 tai vastaavan, 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. Tämä on hieman vanhanaikaista ja kömpelöä, sillä usein dokumentin joutuu kääntämään 2-3 kertaa peräkkäin jotta kaikki ristiviittaukset menevät oikein. Saatavilla on myös 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.4 Latex Windowsissa Eräs 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 tai vastaavalla, sillä tavalliset tekstieditorit eivät usein auttaa kirjoittamista korostamalla L A TEX-komentoja. Lisäksi ne saattavat tallentaa ääkkösiä sisäl- 5

tävän tiedoston käyttäen jotain muuta kuin UTF-8 standardia 5. Katso http://www.miktex.org/. Mikroluokan koneille on asennettu useampikin L A TEX-ohjelmisto, mukaan lukien MiKTeX. 1.5 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.6 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. 5 Esimerkiksi suomenkielisen Windows 7:n notepad tallentaa sen (luullakseni) latin1 koodauksella 6

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 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 ). 1.0 0.5-10 - 5 5 10-0.5-1.0 Kuva 1: Mathematicalla tehty kuva sini- ja kosiniaalloista. 7

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. 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. Lisää kohdan 1) tai 2) minimaaliseen dokumenttiisi kaava a 2 +b 2 = c 2, sekä erikseen numeroituna että tekstin sekaan. 6. kokeile tehdä tiedostoon Aluksi.tex erilaisia virheitä (väärin kirjoitettuja komentoja, sama nimi kahdelle eri yhtälölle, väärä kuvatiedoston nimi, puuttuva kaarisulku },... ) ja katso miten valitsemasi kääntäjä niihin reagoi. 7. Kopio esimerkkejä sisältävä pätkä osiosta 1.6 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. 8

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 6. 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 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 7. 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 6 http://www.wolfram.com/cdf-player/ 7 Tämä muistuttaa vieraan kielen oppimista: Komennot=sanasto, syntaksi=kielioppi, ja sisäinen logiikka kertoo miten monimutkaisetkin asiat on helpointa ilmaista sujuvasti ja luontevasti. 9

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ä 8. 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ä. 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 tutustua varsinkin kohtaan How to enter input ja katsoa tulos myös muodossa Input form, sillä näitä komentoja voi käyttää suoraan varsinaisessa Mathematicassa. 8 katso http://www.oulu.fi/tietohallinto/unix/mathematica.html 10

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 sivuston 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. 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. 11

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 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. 12

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. 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 ainakin 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. 13

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. Fortran + Samat edut kuin C/C++:ssa. Merkittävä osa fysiikan mallinnusohjelmista on kirjoitettu eri Fortranin versioilla (jo vuodesta 1957). - Samat ongelmat 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. 14