Hiihtodata GeoGebraan

[edit 18.2. Lisäsin huomion (aika, korkeus, matka) -toimivuudesta ja muokkasin komentojen ulkoasut.]

Hiihtäminen on mukavaa. Varsinkin, jos on hyvä keli ja kunto. Kävin Nurmijärven Alhonniitun/Mutaanmäen ladulla ja tallensin suoritukseni :o) iPhoneni Walkmeter-appiin. Walkmeter tallentaa paljon tietoa, jonka se laskee GPS-datasta. Päätin tutkia, miten tuon datan saa GeoGebraan, ja mitä sillä voisi tehdä.

data iPhonesta LibreOfficeen, Google Sheetsiin tai Exceliin

Lähetin Walkmeter-appista csv-muotoisen tiedoston sähköpostilla itselleni. Päätin kokeilla sen avaamista Excelissä, Google Docsissa LibreOfficen Calcissa. Excel avasi tiedoston automaattisesti OK ja Google Sheets sotki tiedoston avatessaan sen. LibreOffisessa piti Tekstin tuonti -asetusikkunassa oletusasetuksesta poistaa pilkku, niin sarakkeet ja otsikot menivät oikein.

Tietoa oli S sarakkeelle asti.

Kuva, joka sisältää kohteen pöytä

Kuvaus luotu automaattisesti

Poistin turhan datan, palaan joskus paikkatiedon käyttämiseen taulukkolaskennassa.

Kuva, joka sisältää kohteen pöytä

Kuvaus luotu automaattisesti

data GeoGebraan

Kopioin desimaalipilkullisen datan ja sijoitin GeoGebran taulukkolaskentaan. Onneksi luvut muuttuivat automaattisesti desimaalipisteellisiksi. 

Kuva, joka sisältää kohteen pöytä

Kuvaus luotu automaattisesti

Luvuista saisi helposti erilaisia pistelistoja valitsemalla alueita ja käyttämällä Lue pistelista -työkalua. Esitän tässä toisen menetelmän pistelistojen luomiseen. Se soveltuu esimerkiksi sellaisissa tilanteissa, joissa valinnan tekeminen GeoGebran taulukkolaskennasta on hankalaa.

Luodaan taulukkolaskennan sarakkeiden arvoista listoja kirjoittamalla syöttökenttään

aika= A2:A447
korkeus=B2:B447
matkakm=C2:C447

Muutetaan matkan kilometrit metreiksi uuteen listaan.

matka = 1000*matkakm
Kuva, joka sisältää kohteen teksti

Kuvaus luotu automaattisesti

ts-koordinaatisto

Luodaan aika-paikka -pistelista 

ts = (aika, matka)

Kuvaajasta nähdään, miten hiihtoni on sujunut. Välillä olen näköjään pitänyt taukoa ja muutamassa kohdassa vauhti on ollut aika suuri.

xh-koordinaatisto

Luodaan Piirtoalueelle 2 paikka-korkeus -kuvaaja. Sitä varten avataan Näytä-valikosta Piirtoalue 2. Sitten näppäillään Syöttökenttään

sh = (matka, korkeus)

Mikäli kuvaaja syntyykin Piirtoalue 1:lle, niin sh-pistelista asetuksista kohdasta Lisäasetukset saa säädettyä, kummalla piirtoalueella pisteet näkyvät. Samalla kannattaa poistaa pisteet 3D-alueelta.

Kuva, joka sisältää kohteen teksti

Kuvaus luotu automaattisesti

Kuvaajasta näkee, että korkeusdatassa on jonkin verran virhettä. Aloitin ja lopetin hiihdon samasta paikasta, korkeusdatan alku ja loppukorkeuden välillä on kuuden metrin ero.

Kuvaajasta näkyy myös, että latuprofiili on aika rankka. Taisin seisahdella noissa ylämäissä muutaman kerran. Toisaalta pitkissä alamäissä vauhti nousi aika suureksi. Nopeusdata kertoo, että huippunopeus oli yli 25 km/h. Onneksi en kaatunut.

3D

Tehdään vielä datasta 3D-kuvaaja. Poistetaan aluksi 3D-piirtoalueelta ts-kuvaaja, kuten edelliseessä kuvassa. Näin se ei häiritse varsinaista kuvaajaa.

Luodaan 3D pistelista. Minun järkeni sanoisi, että 3D-listan pitäisi syntyä kuten 2D-listankin eli komennolla (aika, matka, korkeus). Tämä ei toiminutkaan. (Tätä pitää tutkia, sillä omasta mielestäni tämä on aiemmin toiminut. [Huomasinpa julkaisun jälkeen, että komento (aika, korkeus, matka) toimiikin. Mystistä.] Käytetään apuna Zip-komentoa.

tsh= Zip((aa, bb, cc), aa, aika, bb, matka, cc, korkeus)

Komennossa aa, bb ja cc ovat apumuuttujia, aa poimitaan aikalistasta, bb matkalistasta ja cc  korkeuslistasta. Zip käy läpi järjestyksessä kaikki listojen alkiot ja muodostaa niistä 3D pisteitä yhdeksi listaksi.

3D-piirtoalueen akseleita saa skaalattua näppärästi, kun vetää akseleita Vaihto-näppäin pohjassa. Vastaavasti xy-taso liikkuu, kun sitä vetää Vaihto-näppäin pohjassa. 

Valmista 3D-kuvaa voi pyöritellä mielensä mukaan. Ehkäpä tästä saisi jonkin mielekkään fysiikan ongelman. Pitääpä pohtia.

Valmis appi löytyy GeoGebra-materiaaleista https://www.geogebra.org/m/ntkjzskn

Palaan tähän aiheeseen tulevaisuudessa. Pitää tutkia tuota nopeusdataa ja myös paikkadataa. Onneksi olen kuunnellut ystäväni Andersin luennon GPS paikkadatan muuntamisesta suorakulmaiseen koordinaatistoon. 

Hyvää hiihtolomaa kaikille.

Nopat GeoGebralla – kolme noppaa

Edellisissä artikkeleissani kerroin miten GeoGebralla saa simuloitua yhden ja kahden nopan heittoa. Kolmen nopan simulointi syntyy samalla tavalla muutamalla komennolla. GeoGebra-komentojen toiminnan olen esittänyt aiemmissa artikkeleissani, niinpä jätän sen vähemmälle tässä artikkelissa.

Kahden nopan heitossa pääteltiin tuloksen todennäköisyys käyttämällä tasoon piirrettyä pisteistöä, kolmen nopan heitossa hypätään 3D-kuutioon.

simulointi

Simuloidaan kolmen nopan heittoa ja tuotetaan jakauma kuvaajaksi.

Kolmen nopan heittojen lukumäärä on n, summat-listaan lasketaan kolmen nopan summia n kappaletta. Pylväsdiagrammi laskee jakauman ja tuottaa jakauman kuvaajan.

n = 20000
summat = Jono(Satunnaisluku(1, 6) + Satunnaisluku(1, 6) + Satunnaisluku(1, 6), nn, 1, n)
pylväs = Pylväskaavio(summat, 1, 1 / n)

Miten tämä voi olla näin yksinkertaista?

todennäköisyysjakauma

Lasketaan kunkin summan todennäköisyyden arvo käyttämällä 3D-mallia. Tätä aiheesta olen kirjoittanut jo aiemmin. Tuossa tarinassa selitän tarkemmin komentojen syntaksia. Mikäli sisäkkäisten Jono-komentojen tai Zip-komennon syntaksi on hakusessa, niin lue tuo. Katso https://mikonfysiikka.wordpress.com/2019/08/27/kolme-noppaa-ja-zip-komento/

Listaan kaikki lasketaan kolmen nopan eri vaihtoehdot, tyyliin x-koordinaatti on ensimmäisen nopan tulos, y-koordinaatti toisen ja z-koordinaatti kolmannen. Listassa kaikkisummat on summien arvot ja tnjakauma on pylväskaavio jakaumasta. Liuku m kertoo suotuisan tapauksen arvon ja suotuisat-listassa on m:ää vastaavat pisteet. Ne väritetään punaiseksi.

kaikki = Tiivistä(Jono(Jono(Jono((aa, bb, cc), aa, 1, 6), bb, 1, 6), cc, 1, 6))

kaikkisummat = Zip(x(a) + y(a) + z(a), a, kaikki)

tnjakauma = Pylväskaavio(kaikkisummat, 1, 1 / 216)

m = 10

suotuisat = PoistaMäärittelemätön(Zip(Jos(x(a) + y(a) + z(a) == m, a), a, kaikki))

Kuva, joka sisältää kohteen kartta

Kuvaus luotu automaattisesti

Nytpä pystymme tekemään saman päättelyn kuin Galilei noin 1620. Tuloksen ”10” todennäköisyys on suurempi kuin tuloksen ”9”. 

Esimerkkitiedosto GeoGebra-materiaaleissa. https://www.geogebra.org/m/ew4weg6u

lähteet

Anders Hald. A History of Probability and Statistics and Their Applications before 1750, Wiley, Luku 4.4 Galileo and the distribution of the sum of points of three dice, c 1620.

Saul Stahl, Paul E. Johnson. Understanding Modern Mathematics. Jones Bartlett. Luku 1.2 Galileo Galile ( A historical interlude)

Galilein artikkeli englanniksi. Käsittääkseni kyseessä on kirje pomolle, Toscanan suurherttualle Cosimo de’ Medicille.
https://www.leidenuniv.nl/fsw/verduin/stathist/galileo.htm


kaksi noppaa, https://mikonfysiikka.wordpress.com/2020/04/24/nopat-geogebralla-kaksi-noppaa/

yksi noppa, https://mikonfysiikka.wordpress.com/2020/04/23/nopat-geogebralla-yksi-noppa/

kolme noppaa ja zip-komento, https://mikonfysiikka.wordpress.com/2019/08/27/kolme-noppaa-ja-zip-komento/

Nopat GeoGebralla – kaksi noppaa

Edellisessä tarinassani (Nopat GeoGebralla – yksi noppa) esitin, miten simuloida GeoGebralla yhden nopan heittoa. Tehdään sama juttu nyt kahdelle nopalle. Tutkitaan noppien summan todennäköisyyksiä.

simulointi

Simuloidaan ensin nopan heittoa ja lasketaan summien suhteelliset osuudet ja piirretään jakauma. Laitan komennot tuohon avuksi, mieti itse mite kukin komento tekee ja miksi.

Luodaan ensin liuku n. Kuvassa n-liu’n asetukset.

n = 50000

Lasketaan summat-listaan kahden nopan summia, reunat listaan luodaan histogrammin pylväiden reunat, arvot-listaan lasketaan summien frekvenssit ja histo piirtää kuvaajan suhteellisista osuuksista.

summat = Jono(Satunnaisluku(1, 6) + Satunnaisluku(1, 6), nn, 1, n)
reunat = Jono(1.5, 12.5, 1)
arvot = Frekvenssi(summat)
histo = Histogrammi(reunat, arvot / n)

Pylväsdiagrammi-komennon avulla olisi säästänyt pari riviä.

summat = Jono(Satunnaisluku(1, 6) + Satunnaisluku(1, 6), nn, 1, n)
pylväs = Pylväskaavio(summat, 1, 1 / n)

teoreettinen arvo summataulukon avulla

Pohditaan sitten teoreettisia arvoja. Mallinnetaan noppien heitto 2d-taulukoksi, jossa vaaka-akselilla on 1. nopan tulos ja pystyakselilla 2. nopan tulos. Meille tulee 6*6 ruudukko, jossa jokaisessa ruudussa on lukujen summa. Tehdään se GeoGebran Piirtoalue2:lle.

Avaa Näytä-valikosta Piirtoalue2.

Nyt tarvitaan sisäkkäisiä silmukoita tuottamaan pisteitä koordinaatistoon. Lue https://mikonfysiikka.wordpress.com/2018/10/26/jono-geogebrassa/ tarinasta luku Sisäkkäiset silmukat. Pisteet-muuttujan määritelmässä Tiivistä poistaa turhat sisäkkäiset listat eli käytännössä poistaa liiat {,}-merkit. Kaksi sisäkkäistä Jono-komentoa tuottaa (xx, yy) pisteet koordinaatistoon.

pisteet = Tiivistä(Jono(Jono((xx, yy), xx, 1, 6), yy, 1, 6))

Mikäli pisteet syntyivät Piirtoalue 1:lle, niin mene asetuksiin ja ruksaa vain Piirtoalue2 Lisäasetukset-välilehdellä.

Lasketaan pisteet-listan pituus

a = Pituus(pisteet)

Luodaan liuku summia varten 

s = 5

Luodaan lista suot, jonne valitaan Zip-komennon avulla ne pisteet, joiden summa on s. Tässä tapauksessa Zip testaa jokaisen listan pisteet alkion, mikäli summa on s kirjoitetaan pisteen arvo listaan suot, muutoin sinne kirjoitetaan määrittelemätön piste eli (?, ?).

suot = Zip(Jos(x(aa) + y(aa) == s, aa), aa, pisteet)

Poistetaan ylimääräiset määrittelemättömät pisteet.

suotuisat = PoistaMäärittelemätön(suot)

Lasketaan summat jokaisessa pisteessä ja tuotetaan teoreettinen jakauma Piirtoalue1:lle

tnsummat = Jono(x(Alkio(pisteet, aa)) + y(Alkio(pisteet, aa)), aa, 1, 36)
tnarvot = Frekvenssi(tnsummat)
tnhisto = Histogrammi(reunat, tnarvot / 36)

Seuraavaksi mennään kolmeen noppaan. Olen tosin jo kirjoittanut siitä artikkelissa https://mikonfysiikka.wordpress.com/2019/08/27/kolme-noppaa-ja-zip-komento/

Esimerkkitiedosto löytyy GeoGebra-materiaaleista.

https://www.geogebra.org/m/kku5be5c