tieteellinen laskenta i @let@token (scientific computing i)
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)