Aruanne algab pealkirjaga, selle järel tuleb ära märkida töö autor ja töö tegemise
kuupäev. Aruanne tuleb esitada HTML või PDF kujul, failinimi
formaadis pr#_eesnimi_perenimi_ver#
(parandustega töö esitamisel
uuendada versiooninumbrit).
Sissejuhatuses tuleb sõnastada füüsikaline probleem ja selle lahendamise idee, näiteks:
Töö eesmärk on eksperimentaalselt määrata keha inertsmoment, kasutades …, ja võrrelda tulemust sellega, mida saab arvutada keha massi, kuju ja mõõtmete kaudu. Katsekehana kasutame …, sest see võimaldab ….
Selles alapunktis tuleks formuleerida kogu füüsika, mis on vajalik katse mõistmiseks ja tulemuste analüüsimiseks. Spetsiifilise teabe korral (näiteks valem, mis antud ilma tuletuskäiguta) tuleks viidata ka allikatele. Viited võib asetada teksti sisse ja veebimaterjalidele võib viidata hüperlingi kujul. Üldtuntud õpikuteadmisi (nt Newtoni seadused, ideaalse gaasi olekuvõrrand, jne) võib kasutada ilma viitamata.
Halba ei tee lihtne joonis/katseskeem, kus saab ära näidata füüsikalised suurused (mõjuvad jõud, pikkusmõõdud jms), mida valemites kasutatakse. Sellised joonised saab teha lihtsate vabavaraliste vahenditega, nagu Google Drawings või LibreOffice Draw. Jupyteri märkmeraamatu jaoks tuleb joonis eksportida SVG või PNG formaadis ja kuvada märkmeraamatu tekstilahtris umbes seda laadi koodiga:
<img src="inertsmoment.png" style="width: 10em; float: right;"/>
Valemite jms matemaatilise sisu kujundamise reeglid:
LaTeX'is (jm valemiredaktorites) sisestatud muutujad ja numbrid tuvastatakse automaatselt ja kujundatakse vastavalt. Ülejäänud reegleid tuleb siiski ise järgida, nt kirjutada $sin(x)$ asemel $\sin(x)$ jne.
Siia tuleks katseseadme sisuline kirjeldus. Keskenduda tuleks infole, mis on oluline katse väljatulemise või mõõtetäpsuse seisukohalt. Ära tuleks mainida konkreetsed mõõtevahendid, nende täpsus jm relevantsed omadused, näiteks:
Temperatuurianduriks oli Vernier Stainless Steel Temperature Probe, lahutusvõime 0,1 °C, täpsus ±0,5 °C, reageerimisaeg 10 s.
Võib tuua ka foto eksperimendiseadmest või selle mõnest olulisest osast.
Sõltuvalt olukorrast võivad tulemused ja analüüs olla eraldi või koos. Esmalt tasuks välja tuua otsesed mõõtmistulemused, sh käsitsi mõõdetud või tabeliandmed koos määramatustega (nt keha mass, aine erisoojus, fundamentaalkonstandid, jne). Viimased võib sisestada kohe (kommenteeritud) arvutuskoodi kujul, kuna neid läheb edasises arvutuses tarvis. Sellele järgneb füüsikaliste mudelite ja hüpoteeside kontrollimine, tulemuste mõtestamine ja järelduste tegemine.
Tulemuste ja analüüsi illustreerimisel on oluline roll graafikutel:
Igasugune arvutamine (Pythonis) toimub selle alapunkti raamides. Et ei kannataks aruande kui terviku loetavus ja ülevaatlikkus, võiks tehnilisema töö (nt graafiku või tabeli genereerimine) delegeerida alamprogrammidele, mis on paigutatud lisasse. Põhitekstis tuleb siiski selgitada arvutuste/andmetöötluse loogikat koos vajalike valemitega. Paar koodinäidet:
pendli_pikkus = 0.8 # meetrit
kõrgused = np.array((5, 11, 19, 28, 39)) * 0.01 # meetrit
nurgad = np.arccos(1 - kõrgused / pendli_pikkus)
kuva_tabel(kõrgused, nurgad)
Kõrgus (cm) Nurk (°) --------------------- 5.0 20.36 11.0 30.40 19.0 40.31 28.0 49.46 39.0 59.17
kiirendus = arvuta_kiirendus('katse_1.txt', (15, 65), (0.1, 1.1))
kiirendus = -1.877 m/s^2
Siin viimane näide illustreerib olukorda, kus on mõõdetud mitu ühesugust laadi andmeseeriat, nii et vastav andmetöötlus tuleks kapseldada sobivalt parametriseeritud funktsiooni ehk alamprogrammi, mida saaks korduvkasutada.
Siia tuleks kokkuvõtvalt kirja panna, mida tehti, mida saadi ja mida järeldati, sh välja tuua olulised arvulised tulemused koos mõõtemääramatustega.
Lisas võib vajadusel näidata täiendavaid andmeid, graafikuid või pilte. Siia võib paigutada ka "ebahuvitava" osa Pythoni koodist ehk arvutuste nii-öelda köögipoole. Alustades vajalike moodulite importimise ja seadistamisega:
import numpy as np
from matplotlib.pyplot import *
style.use({
'figure.dpi': 110
})
ja lõpetades alamprogrammidega, mida kasutatakse andmetöötluses või graafikute ja tabelite kujundamisel:
def kuva_tabel(kõrgused, nurgad):
print('Kõrgus (cm) Nurk (°)')
print('-' * 21)
for k, n in zip(kõrgused * 100, nurgad / deg):
print('%11.1f %8.2f ' % (k, n))
def arvuta_kiirendus(fail, read, ajavahemik):
aeg, kaugus = laadi_katse(fail, read)
algus, lõpp = ajavahemik
valitud = (aeg >= algus) & (aeg <= lõpp)
t = aeg[valitud]
x = kaugus[valitud]
p = np.polyfit(t, x, 2)
kiirendus = 2 * p[0]
print(f'kiirendus = {kiirendus:.3f} m/s^2')
figure( figsize=(5, 3) )
plot(aeg, kaugus, 'r.')
plot(t, np.polyval(p, t), 'b-')
xlabel('Aeg (s)')
ylabel('Kaugus (m)')
axvspan(algus, lõpp, facecolor='r', alpha=0.1)
grid()
tight_layout()
show()
return kiirendus
Juhendi koostas Valter Kiisk
Viimati muudetud 4.03.2024