tieteellinen laskenta i @let@token (scientific computing i)

17
Yhteenveto Yhteenveto Tavoite (kuva:@itsfoss.com) I Oppia perusteet linux emacs L A T E X python octave ISI, arXIv, ADS, ... I 10 laskuharjoitusta I Metodit muilla kursseilla I Kurssin metodit Pienimmän neliösumman sovitus Rayleigh testi Tehospektri Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto Tieteellinen laskenta I (Scientific Computing I)

Upload: others

Post on 19-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Yhteenveto

Yhteenveto

Tavoite (kuva:@itsfoss.com)

I Oppia perusteet

linuxemacsLATEXpythonoctaveISI, arXIv, ADS, ...

I 10 laskuharjoitustaI Metodit muilla kursseillaI Kurssin metodit

Pienimmän neliösumman sovitusRayleigh testiTehospektri

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

Lähtökohta ja suorittaminen

Lähtökohta ja suorittaminen (kuva:@skoolbo.com)

I “Tekemällä oppii.” “Määrä ei korvaa laatua.”I “Kiire ei merkitse tuloksellisuutta”I “Parempi vähän, mutta perusteellisesti”I “Spiraali”: yhdistellen monen tason kauttaI H1-H5 (suhteellisen helppoja),

H6-H8 (työläämpiä), H9-H10 (vaativia)

0 = Ei mitään tolkkua

1 = Jotain tolkkua

2 = Oikein tai lähes oikein⇒ Max: 10x2x2=40

Lisäksi +2 = “Pakollinen” palaute

Arvosana Sovelletut rajat21.0–25.2 ≡ 50–60% ≡ 1/5 21 - 2425.2–29.4 ≡ 60–70% ≡ 2/5 25 - 2829.4–33.6 ≡ 70–80% ≡ 3/5 29 - 3333.6–37.8 ≡ 80–90% ≡ 4/5 34 - 3737.8–42.0 ≡ 90–100% ≡ 5/5 38 - 42

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

Suoritusten arvostelu

Pakolliset laskuharjoitukset(kuva:@www.cartoonstock.com)

I Ei koetta⇒ Pakolliset laskuharjoitukset

I PalautettaOpitteko?Ohjattiinko?Selkenikö?Ihan pihalla?Yksin vai ryhmässä?

I Prosessi: 2. kerta⇒“Lasten taudit” & “linux sirkus”

I Asenne:En tiedä miten?⇒Otan itse selvää!

I Asenne:En muista miten?⇒Kerran ratkaistu OK! grep

I Kurssi “ajokortin suorittamista”

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

Mikä on mitäkin?

Mikä on? (kuva:@www.cartoonstock.com)

I Mikä on linux? | www |

linux “kotisivu” | www |

I Mikä on emacs? | www |

emacs “kotisivu” | www |

I Mikä on LATEX? | www |

LATEX “kotisivu” | www |

I Mitkä ovat ISI | www |,ADS | www |, arXIv | www |

I Mikä on python? | www |

python “kotisivu “ | www |⇒Numpy | www |, Scipy | www |, ...

I Mikä on octave? | www |

octave “kotisivu” | www |

Lähes “yksi yhteen”maksullinen MATLAB | www |

ssh -X login.physics.helsinki.fi

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

(kuva:@www.rafaelespejo.com)

linuxI Komentotulkki: Selaus nuolinäppäimillä↑ ja ↓ , täydennys −→| ,

I pwd Return , Pwd Return

I Hakemistot cd, mkdir, ls, ......, PolutI Näytön puhdistus: clear

emacsI emacs nimi haitatI emacs nimi & edutI Peruskomennot: Ctrl + x Crtl + s ...I wget http://www.hel...

I emacs *.tex & ja latex *.tex

I emacs *.py & ja python *.py

I emacs *.m & ja octave *.m

I emacs: “kursori pomppii”, virheilmoitukset

LATEXlatex *

dvips * -o

evince *.ps

I tai

pdflatex *

evince *.pdf

I Erikoismerkit % \ # $ & _ˆ ˜ { } |

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

(kuva:@www.zazzle.com)

I Haku SIMBAD tietokannasta | www |:I Bibtex entry for this abstractI Kopioitiin tiedostoon *.bib⇒ LATEX referenssit automaattisesti

I Editori ohjelmille: emacsI Ohjelmointikielet:

Eräs python opas | www |

Eräs octave opas | www |

I Ohjelmat: Muuttujat, Funktiot,Ohjauskomennot

I Kolme tapaa ajaa python taioctave ohjelma

I python ja octave: help

I python ja octave: “Case sensisive” A 6= a

I Ensimmäinen ohjelma Hello world

linuxI rm, cp, mv, ls rmdir, touch

emacsI Ctrl + s ja muita kikkojaI Tallennus pieleen⇒ *˜

LATEXI % KommentitI verb |... OhittaaI $⇒ Matemaattiset kaavat

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

LATEXI Sivutyylit, rivin vaihto, sivun vaihto, tavutus,

fontit, kirjasintyyppi ja koko, kappalejako,sisällysluettelo, otsikointi, tekijät, ...

I verbatim⇒ LATEX ohittaaI bibtex⇒ LATEX hoitaa referenssit

viidellä komennolla

1 latex *

2 bibtex *

3 latex *

4 latex *

5 dvips * -o

I Lopputuloksen tarkistus evince *.ps

I Hyviä \bibliographykomennon käytön esimerkkejä täältä | www |

I \newcommand⇒ Omia komentoja

python & octaveI Muuttuja: nimi, arvo, tyyppi, luominenI python: type, octave: class

I Mielipide: “Monta komentoa samallarivillä on huonoa koodausta”

I Vastaus: “Luennoilla pitkäkin ohjelmasaadaan näin esitettyä yhdellä sivulla”

I python: listat <class ’list’>

I python: vektorit import numpy ;x=numpy.arange(2)+1

I octave: vektorit x=[1,2] ; y=x+1

I python & octave: vektori–indeksit erilaisetI python: len, print(), x.size, ...I octave: disp, size, length(x), ...I Ei tarvitse muistaa ulkoa ... on manuaalit ...

on omat aiemmat onnistuneet mallit ...

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

(kuva:@linuxcampeche)

linuxI Komentojet optiot

Esim: ls -s *.dat

I Optioiden tiedot ja vaihtoehdot

Esim: whatis ls, man ls, info ls

I history, grep, ...I Tulostus tiedostoon; Esim: ls > aaa

I “Putket”; Esim: ls |grep aa

I Aliakset; Esim: alias cp=’cp -i’I Laaditaan .Myalias

alias c=’clear’alias cp=’cp -i’alias rm=’rm -i’

I source .Myalias

I Voidaan laittaa myös tiedostoon .bashrcSe ajetaan aina sisään logatessa tai uudenkomentotulkin ikkunan avauksessa

I Lähes mikä tahansa symboli täältä | www |

linuxI Kaavat, symbolitI Ei tarvitse opetella ulkoa. Löytyvät

esimerkiksi täältä | www |

I Kokeile hiirellä kirjoittaen täältä | www |

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

I Matemaattiset funktiot: import numpy | www |

I Tieteellinen laskenta: import scipy | www |

I Tulosten visualisointi: import pylab | www |

I Interaktiivinen python ipython | www |

I python & octave: Muuttujatyypit, laskutoimitukset,vertailuoperaattorit, funktiot, .... Esim:

python octavecos(x) cos(x) cos xsin(x) sin(x) sin xtan(x) tan(x) tan x

power(x,y) realpow(x,y) xy

sqrt(x) sqrt(x)√

xexp(x) exp(x) ex

log(x) log(x) lnxI Laskutehtävien ohjelmat hiukan

monimutkaisemmiksi

linuxalias nimi=’pitkä komento’

1. Edioidaan aliakset.bashrc sisään

2. Edioidaan .Myaliassitten source .Myaliaslaitetaan .bashrc sisään

LATEXI Numeroidut kaavat

eqnarray, equation, ...I Kaavoihin viittaminen

\label{...} ja \ref{...}

I Pmalli2.py ja Omalli2.m:blaa, blaa, ...

I python: a=b ja muutetaan jotaina:ssa⇒ b muuttuu!

I octave: a=b ja muutetaan jotaina:ssa⇒ b ei muutu

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

(kuva:@www.zoitz.com)

linuxI env tulostaa ympäristömuuttujat

Esim: Mikä kotihakemisto?echo HOME

Esim: Muuta kursoriexport PS1=’<My own prompt>’

I Selauskomennotgrep, less, head, tail, wc, ...

LATEXI Ympäristö “ aaa” käyttöön:

\begin{aaa} ... \end{aaa}“ aaa” voi olla itemize, enumerate,center, figure, tabular, table, ...

I Taulukot: tabular{clr}, table,merkit & ja \\, \caption, \label, ...

python & octaveI IndeksitI python: Esim: x=[1,2,3]⇒

print(x[0:1]) tulostaa [1]

I octave: Esim: x=[1,2,3]disp(x(1:1)) tulostaa 1

I python: list rajataan [...]tuple rajataan (...)

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

⇒ (kuva:@home.tamk.fi)

python & octaveI OhjauskomennotI python: : merkki ja sisennysI octave: ei sisennystä ja end...

I Menemättä yksityiskohtiin:

if elif else endif for whiletry catch

linuxI Levytila df

I Esim: Käytännöllinen aliasalias Tila=’df -h /home/username/’

I OikeudetI Käyttäjä: u, Ryhmä: g, Muut: oI (r)ead, (w)rite, e(x)ecute

I Esim: chmod g+rwx nimi

LATEXI Kuvat LATEX dokumentin sisään:I Esim: otetaan käyttöön

\usepackage[dvips]{graphicx}Kuva dokumentiin\includegraphics[]{tiedosto}tai\includegraphics[width=5.0cm,height=1.5cm]{jokukuva.pdf}

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

linuxI Prosessit: tunniste PID, prioriteetti PRI

komento &⇒ prosessi taustalleI Prosessi komentoja; Esim: ps, top,

kill PID, jobs, nice, renice

python & octaveI Stringien manipulointi

A.find(’c’) ≈ strfind(A,’c’)

A.split(’,’) ≈ strsplit(A,’,’)

I Manuaalista lisää & LaskuharjoitusI Muunnokset ja formatointi

a=9.89; b=str(a) ≈ a=9.89; b=num2str(a)

a=4.567 ; b=’%7.5f’ %a≈

a=4.567 ; b=sprintf("%7.5f",a);

I Manuaalista lisää & Laskuharjoitus

⇒python & octave

I Data read: Ei yksityiskohtia tässäI Kotisivu: monta malliohjelmaaI Data write: Ei yksityiskohtia tässäI Kotisivu: monta malliohjelmaa,

sekä LaskuharjoitusI Visualisointi: Ensimmäiset plotit

plot(x,y,’r’)≈pylab.plot(x,y,’r’)

I Aliohjelmat: Ensimmäiset esimerkitPsub1.py ≈ Osub1.m jaPsub2.py ≈ Osub2.m

linuxI Arkistointi: tar

Vaihtoehdot täältä | www |

I Koneelta koneelle: scpVaihtoehdot täältä | www |

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

I Ajan hetket ti (i = 1, 2, 3, ..., n)

I φi = FRAC[(ti−t0)/P] eli poistetaan“kokonaiset kierrokset”(valittut0:n arvo ei vaikuta tulokseen)

I Θi = 2πφi on vaihekulmaI Yksikkövektorien ri = [cos Θi, sin Θi]

summa on R =∑i=n

i=1 ri

I Summavektorin pituuden neliö on|R|2 = (

∑i=ni=1 cos Θi)2 + (

∑i=ni=1 sin Θi)2

I Rayleigh:n testiparametri on

z =|R|2

n=

(∑i=n

i=1 cos Θi)2 + (∑i=n

i=1 sin Θi)2

n

I ri osoittavat saamaan suuntaan⇒ |R|suuri⇒ z suuri⇒ Periodisuutta

I ri osoittavat satunnaisiin suuntiin⇒|R| pieni⇒ z pieni⇒ Ei periodisuutta

I Rayleigh testi laskuharjoitus: “Oletetaan, ettäaika on pitkä suora viiva. Tapahtumia edustavatpisteet, jotka ovat viivalla tasavälisilläetäisyyksillä 2π. Kelaataan aika pyörälle, jonkaläpimitta on d = 1. Tapahtumia edustavat pisteetpäätyvät samaan paikkaan pyörän päälle.Kelataan aika takaisin suoraksi viivaksi japoistetaan osa näistä tapahtumia edustavistapisteistä, jolloin tapahtumien väliin syntyyaukkoja. Jos aika kelataan taas takaisin pyörälle,pisteet päätyvät edelleen samaan paikkaanpyörän päälle. Mutta jos pyörän läpimitta ond 6= 1, pisteet eivät päädy samaan paikkaan,vaan ne leviävät satunnaisesti ympäri pyöränpintaa. Tämä on analogia Rayleigh:n testistä.Testissä projisoidaan aikapisteetyksikköympyrälle käyttäen testattavan periodinarvoa P. Aikapisteet päätyvät samaan suuntaanyksikköympyrälle, jos niiden jakauma onsäännöllinen testattavalla periodilla P.”

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

I Tehospektri (Power spectrum)I Aikasarja: n = Havaintoa

ti = t1, t2, ..., tn = Havaintoajat

yi = y(ti) = y1, y2, ..., yn = Havainnot

y′i = yi − my, missä my = [∑

yi]/nI Onko aikasarjassa yi periodisuutta?I Tehospektrin arvo frekvensillä f on

z(f ) ={∑n

i=1 y′i cos [2πf (ti − τ)]}2

2∑n

i=1{cos [2πf (ti − τ)]}2

+{∑n

i=1 y′i sin [2πf (ti − τ)]}2

2∑n

i=1{sin [2πf (ti − τ)]}2,

missä τ toteuttaa

tan (4πf τ) =

[∑ni=1 sin (4πfti)

][∑ni=1 cos (4πfti)

]

I Paras periodi Pbest = 1/fbest on siellä, mistälöytyy zmax = z(fbest) = periodogramminkorkein piikki

I Luennoilla käytiin läpi kahdesti toimivienlaskuharjoitus ohjelmien rakenne (kuva;@www.oocities.org)

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

I PNS (Pienimmän Neliösumman Sovitus)

n = Havaintojen määrä

xi = Havaintojen ajat/paikat/... (i = 1, ..., n)

yi = y(xi) = Havaintojen arvot (i = 1, ..., n)

σi = Havaintojen tarkkuus (i = 1, ..., n)

Malli havainnoille y± σ on

g(β) = g(x, β)

β = [β1, β2, ..., βQ] = Mallin vapaatparametrit, joita on Q kappaletta

εi = yi − g(xi, β)= Residuaalit = Havainnot miinus malli

PNS etsii arvot β1, ...βQ, jotka minimoivat

χ2(β) =n∑

i=1

wiε2i =

n∑i=1

[εi

σi

]2

=n∑

i=1

[yi − g(ti, β)

σi

]2

I Lineaarinen malli g:Kaikki osoittaisderivaatat ∂g/∂βiovat riippumattomia kaikistavapaista parametreista βj. Jos ei⇒ Epälineaarinen malli

I Esimerkki: lineaarinen mallig(β, x) = M + A sin x + B cos x,β = [M,A,B],∂g/∂M = 1, ∂g/∂A = sin x, ∂g/∂B = cos x

I Esimerkki: epälineearinen mallig = AeBx,β = [A,B],∂g/∂A = eBx, ∂g/∂B = ABeBx

I Lineaarisilla malleilla PNS antaa β:lleyksikäsitteisen ratkaisun.

I Epälineaarisilla malleilla β:n ratkaisu β1riippuu siitä, mikä annetaan (etsitääntavalla tai toisella) ratkaisun alkuarvoksi β0.

I Malliohjelmat: Ppns1.py ja Opns1.m,Ppns2.py ja Opns2.m

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

hjoo

LATEXI Komentoja syöteellä #I Oma LATEX ympäristöI Ohjelmien listaus: \lstinputlisting

python & octaveI Ohjelma kysyy Input arvon

Pmalli5.py ≈ Omalli5.m

I Input suoraan linux komentotulkistaPkomentotulkki.py ≈ Okomentotulkki.m

I python: oma moduli samassa hakemistossoPmodulinkaytto.py ≈ Rayleighmoduli.py

I Moduli toisessa hakemistossa:Ohje 1 | www | tai Ohje 2 | www |

YleistäI Peer review, Impact Factor, ...I kuva: @www.cartoonstock.com

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)

Yhteenveto

Yhteenvedon yhteenvetoTavoitteiden toteutuminen(kuva:@www.cartoonstock.com)

I On tultu pitkä matkaI “Pakollinen palaute” | www |

I Kotisivu: n. 40 malliohjelmaaI Itse laadittu: n. 20 ohjelmaa

tai dokumenttiaI Yleinen periaate: Kerran

tehty⇒ Oma malli?I Oma periaatteeni: “Kaikkea

ei tarvitse muistaa. Riittääettä löytää tarvittaessa.”

I Yleinen periaate: En tiedä⇒Toisten malli?

I Oma periaatteeni: “En uskomihinkään. En edes siihenkun sanon näin.”

I Onnea opiskeluun jatulevalle uralle

Lauri Jetsu, Fysiikan laitos, Helsingin yliopisto

Tieteellinen laskenta I (Scientific Computing I)