Numeerinen mallinnus (766315A), kevät 2017

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

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

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

Sangen lyhyt L A T E X-johdatus

4. Lausekielinen ohjelmointi 4.1


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

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

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

Sangen lyhyt L A T E X-johdatus

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

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

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

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

YH1b: Office365 II, verkko-opiskelu

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

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

Ohjelmointi 1. Kumppanit

TEKSTINKÄSITTELYTEHTÄVIÄ, OSA 1

UCOT-Sovellusprojekti. Asennusohje

ELM GROUP 04. Teemu Laakso Henrik Talarmo

5. HelloWorld-ohjelma 5.1

Luento 4: Liikkeen kuvausta, differentiaaliyhtälöt

YH2: Office365 II, verkko-opiskelu

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

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

UBUNTU 8.04 LTS ASENNUS

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

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

4. Lausekielinen ohjelmointi 4.1


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

T harjoitustehtävät, syksy 2011


Harjoitustehtäväkierros 1

YH1b: Office365 II, verkko-opiskelu

Harjoitus 3 -- Ratkaisut

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

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

LUENTO 7 TAULUKKOLASKENTA I

Ohjelmointi 1 / syksy /20: IDE

Ohjelmoinnin perusteet Y Python

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

Johdatus ohjelmointiin

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

Enigmail-opas. Asennus. Avainten hallinta. Avainparin luominen

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

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Harjoitus 1 -- Ratkaisut

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

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

Harjoitus 1 -- Ratkaisut

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

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

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Oppimistavoitematriisi

T harjoitustyö, kevät 2012

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

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

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

TEEMA 2 TAULUKKODATAN KÄSITTELY JA TIEDON VISUALISOINTI LUENTO 3

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

Opiskelijan pikaopas STACK-tehtäviin. Lassi Korhonen, Oulun yliopisto

SAS-ohjelmiston perusteet 2010

Vedä ja pudota Maamittauslaitoksen JPEG2000-ortoilmakuva GeoTIFF-muotoon

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

Differentiaali- ja integraalilaskenta 1. Tietokoneharjoitus: ratkaisut

Harjoitus 10: Mathematica

Zeon PDF Driver Trial

Johdatus Ohjelmointiin

KYMENLAAKSON AMMATTIKORKEAKOULU. Ubuntu. Yukun Zhou

Smart Board lukion lyhyen matematiikan opetuksessa

LINUX-HARJOITUS, MYSQL

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

Laske Laudatur ClassPadilla

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

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

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

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen

Ohjelmoinnin perusteet Y Python

OHJEET WORDPRESS-BLOGIN LUOMISEEN JA TAVALLISIMPIIN BLOGITOIMINTOIHIN

Simulaattorin asennus- ja käyttöohje

erasmartcardkortinlukijaohjelmiston

Office ohjelmiston asennusohje

QR-koodit INNOSTAVAA HAUSKAA PALJON KÄYTTÖTAPJA HELPPOA ILMAISTA MOTIVOIVAA

Laske Laudatur ClassPadilla

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

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

LABORAATIOSELOSTUSTEN OHJE H. Honkanen

Jypelin käyttöohjeet» Ruutukentän luominen

3. Vasemman reunan resurssiselaimen Omiin resursseihin luodaan uusi Handmade -niminen kansio.

KÄYTTÖOHJE. Servia. S solutions

Kopiodaksesi, leikataksesi ja liittääksesi helpointa on käyttää näppäimistön pikavalintoja:

Google-dokumentit. Opetusteknologiakeskus Mediamylly

Mendeley-viitteidenhallinta

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

CMS Made Simple Perusteet

UpdateIT 2010: Editorin käyttöohje

ohjeita kirjautumiseen ja käyttöön

Transkriptio:

Numeerinen mallinnus (766315A), kevät 2017 H. Vanhamäki 9. tammikuuta 2017 Tiivistelmä Ensimmäisellä luennolla esitellään kurssin suuntaviivat ja tutustutaan LATEX-dokumenttien tekemiseen sekä joihinkin Mathematican sovellutuksiin. Luennoitsija: Heikki Vanhamäki (huone MA309, 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 20.3. tai 23.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/ Kurssilla ei ole välikokeita. Loppukoe järjestetään maanantaina 8.5.2016. 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 1

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 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öselostuksen, 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 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). 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

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 siis keskittyä itse sisältöön ja dokumentin loogiseen rakenteeseen, L A TEX:in huolehtiessa ulkoasusta (lähes) automaattisesti. 3

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 TeXworks), 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ä eri ympäristöissä. 4 Tämä pätee ihan samalla tavalla numeerisen laskennan ohjelmistoihin, ks. kappale 3 4

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. L A TEX-dokumentin voi Linuxissa kirjoittaa oikeastaan millä peruseditorilla tahansa, esimerkiksi gedit (Gnome-ympäristön oletuseditori) ja Kwrite (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 yleensä tuota ongelmia 5. 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. Käännösten aikana L A TEX tekee.log ja.aux päätteisiä aputiedostoja, joihin se tallentaa tietoja operaation kulusta. Kun lopullinen pdf on valmiina, voi aputiedostot poistaa. Luokan YL124 koneissa on asennettuna Fedora-Linux, jossa.tex-tiedostojen oletuseditori on TeXmaker. Se on varsin toimiva kokonaisuus, joka sisältää graafisen käyttöliittymän sekä latex-kääntäjän. TeXmakerin valikoita yleisimmät L A TEXkomennot löytyvät valmiina, jolloin niitä ei tarvitse kirjoittaa ulkomuistista. TeXmakerissä tiedoston voi kääntää Quick Build toiminnolla, mikä pitää toistaa 2-3 kertaa ristiviittausten saamiseksi kuntoon (tämän näkee ruutuun ilmestyvän lokin viimeisiltä riveiltä). 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. TeXworksin käyttöliittymä on yksinkertainen (ks. kuva 1 ja oletusasetukset toimivat mainiosti. Mikroluokan koneille on asennettu useampikin L A TEX-ohjelmisto, joista oletuksena taitaa olla TeXmaker. Se toimii samalla tavalla kuin yllä kuvattu Linux- 5 Poikkeuksiakin on, kuten KDE-ympäristön Kile-editori 5

Kuva 1: TeXworks editorin näkymä. versio. Suosittelen kuitenkin MiKTeX:in ja sen mukana tulevan TeXworks editorin käyttöä (Start-valikko > All programs > MiKTeX 2.9 > TeXworks). Sen käyttöliittymä on selkeän yksinkertainen kuten kuvasta 1 näkyy ja oletusasetukset (pdflatex+makeindex+bibtex ja UTF8) toimivat hyvin. Lisäksi vihreästä napista käynnistyvä kääntäjä tekee dokumentin kerralla valmiiksi asti, eikä 2-3 erillistä käännöstä tarvita. Oikeastaan ainoa tarvittava muutos on syntaksivärityksen käyttöönotto (Format > Syntax coloring > LaTeX). 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 6

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. \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), niiden välissä olevalla kuvalla, taulukolla 1 ja viittauksella artikkeliin Amm (1997) ei ole mitään muuta merkitystä, kuin toimia esimerkkeinä. Aikaisemmin mainittu kuva 1 puolestaan on esimerkki tekstistä erillään olevasta numeroidusta kuvasta. 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) 7

Kirjoitetaan kaava e x tekstin sekaan. Laitetaan tähän väliin kuva 1.0 0.5-10 - 5 5 10-0.5-1.0 ja jatketaan testaamalla L A TEX-koodin alussa määriteltyjä omia komentoja. Oletusarvoisesti L A TEX kirjoittaa vektorin muodossa v, mutta minusta v on tyylikkäämpi. Matriisin ja vektorin tulo on M x = y, kun taas karteesisen koordinaatiston yksikkövektorit ovat ê x, ê y, ê z. Yksi Maxwellin yhtälöistä (ilman automaattista numerointia) 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. Hae kurssin kotisivulta tämän dokumentin latex-koodi (tiedosto Aluksi.tex) ja tutustu sen sisältöön. Kokeile kääntää se pdf-dokumentiksi (tarvitset myös kuvatiedostot Aluksi_kuva1.png ja Aluksi_kuva2.pdf, nimien tulee olla täsmälleen tässä muodossa). 4. Lisää kohdan 1) tai 2) minimaaliseen dokumenttiisi kaava a 2 +b 2 = c 2, sekä erikseen numeroituna että tekstin sekaan. 5. Lisää omaan dokumenttiisi otsikoita ja satunnaista tekstiä sekä jokin netistä löytämäsi kuva. 8

6. Kopioi sivulta http://en.wikibooks.org/wiki/latex/tables jokin taulukko omaan dokumenttiisi ja kokeile muokata sitä. 7. kokeile tehdä tiedostoon Aluksi.tex erilaisia virheitä (väärin kirjoitettuja komentoja, sama nimi kahdelle eri yhtälölle, väärä kuvatiedoston nimi, puuttuva kaarisulku } tai dollari $,... ) ja katso miten valitsemasi kääntäjä niihin reagoi. 8. Kopio esimerkkejä sisältävä pätkä osiosta 1.6 omaan dokumenttiisi 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 Toista kohdat 1) ja 2) sekä Windowsissa että Linuxissa. 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 tulee 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. 6 http://www.wolfram.com/cdf-player/ 9

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 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 oh- 7 Tämä muistuttaa vieraan kielen oppimista: Komennot=sanasto, syntaksi=kielioppi, ja sisäinen logiikka kertoo miten monimutkaisetkin asiat voi ilmaista sujuvasti ja luontevasti. 8 katso https://wiki.oulu.fi/display/itwiki/mathematica 10

jelmaa 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 Wolfram Researhin ylläpitämien sivustojen kautta: Integrator (http://integrals.wolfram.com/home.jsp) laskee nimensä mukaan integraaleja 9. 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. 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 ==. takia Wolfram Programming Lab (https://www.wolfram.com/programming-lab/) sisältää käytännössä koko Mathematican toiminnot, vaikkakin ilmainen ver- 9 Nykyään Wolfram suosittelee Alphan käyttöä tässäkin, mutta vanha sivu on mukana syntaksin 11

sio on hieman rajoittunut ja käyttö verkon yli voi olla joskus hidasta. Ilmaisellakin versiolla pystyy kuitenkin tekemään kaikki kurssin harjoitustyöt. Tätä kannattaa käyttää myös luennoilla, jos yliopiston lisenssit loppuvat kesken. Harjoitustehtäviä 1. Laske nettisivulla http://integrals.wolfram.com/home.jsp 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? 3. Tutustu Wolfram programming labiin ja valmiina oleviin esimerkkeihin. 4. 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ä joko mikroluokan koneessa olevalla Mathematicalla tai verkossa Wolfram programming labissa. 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 12

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

- 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. C/C++ + True Klingon warriors program in C. Erittäin nopea raskaassa numeerisessa laskennassa. Ohjelmien hyvä siirrettävyys. Saatavissa laajoja numeerisia kirjastoja. 14

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