Tein lyhyen matikan geometrian oppilailleni tehtävän suorakulmaisesta särmiöstä. Scififani kun olen, niin liitin siihen hieman taidetta mukaan. Aloitan tällä tehtävällä avaruusgeometrian opiskelun oppilaiden kanssa.
1 Piirrä monoliitista 3D-malli. Nimeä pisteet siten, että pohjasuorakulmio ABCD ja niiden yläpuolella olevan suorakulmio EFGH. Janat AE, BF, CG ja DH ovat särmiä.
2 Laske monoliitin pinta-ala.
3 Laske monoliitin tilavuus.
4 Laske janojen AC ja AG välinen kulma. Mittaa sama kulma GeoGebran kulma-työkalulla.
5 Missä pisteessä janat AG ja CE leikkaavat toisensa.
6 Piirrä pallo, joka kulkee monoliitin jokaisen kärjen kautta.
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.
Poistin turhan datan, palaan joskus paikkatiedon käyttämiseen taulukkolaskennassa.
data GeoGebraan
Kopioin desimaalipilkullisen datan ja sijoitin GeoGebran taulukkolaskentaan. Onneksi luvut muuttuivat automaattisesti desimaalipisteellisiksi.
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.
Muutetaan matkan kilometrit metreiksi uuteen listaan.
matka = 1000*matkakm
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.
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.
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.
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.
Edellisessä tarinassani https://mikonfysiikka.wordpress.com/2019/12/17/lewis-carrollin-taikatemppu/ kerroin Lewis Carrollin taikatempusta. Tempussa valitaan jokin salainen luonnollinen luku a. Sen jälkeen luvulle suoritetaan erilaisia laskutoimituksia, näiden lopputulokset ovat b, c, …, h ja i. Taikurille kerrotaan alkuperäisen luvun a ja kolmannen c luvun parillisuudesta ja saatu viimeinen luku i. Taikuri pystyy parin laskutoimituksen avulla päättelemään alkuperäisen luvun a.
Ongelman määrittely
Minua kiinnostaa onko ongelma yksikäsitteinen siinä mielessä, että tuottaako taikatempun algoritmi yksikäsitteiset lopputulokset. Tietysti minua kiinnostaa myös millaisen kuvan saan aikaiseksi kolmiulotteiseen avaruuteen. Jos olet jaksanut lukea edes tähän saakka, niin ymmärrät, että tämä menetelmä ei ole matemaattinen todistus, tässä tutkitaan ”kokeellisesti” matemaattista ilmiötä.
Merkitään alkuperäisen luvun n jakojäännöstä kahdella jaettaessa aa:lla ja luvun c (eli kolmas luku taikatempussa, kun ensimmäinen luku on n) jakojäännöstä kahdella jaettaessa cc:llä. Olkoon N luonnollisten lukujen joukko ja joukko CC algoritmin tuottamien pisteiden (aan, ccn, in) joukko, missä n on luonnollinen luku..
Haluan siis tietää vastaako jokaista luonnollista lukua n, joukon CC:n piste (in, aan, ccn) ja päinvastoin eli onko kuvaus N -> CC bijektio.
Satunnaisuus
Taikatempussa on vaiheita, jossa voidaan valita eri lukuja tyyliin
Jos b on
pariton, niin lisää joko 5 tai 9. Jaa luku kahdella ja lisää 1. Annetaan luvun nimeksi c.
parillinen, niin vähennä siitä 2 tai 6, jaa luku kahdella ja sitten lisää 29 tai 33 tai 37. Annetaan luvulle nimeksi c.
Yksinkertaistan ongelmaa siten, että jätän eri vaihtoehtojen tutkimisen tulevaan artikkeliin, niinpä valitsen taikatempun vaihtoehdoista aina pienimmän luvun tässä tarinassa. Eli edellinen kohta on tässä jutussa:
Jos b on
pariton, niin lisää 5. Jaa luku kahdella ja lisää 1. Annetaan luvun nimeksi c.
parillinen, niin vähennä siitä 2, jaa luku kahdella ja sitten lisää 29. Annetaan luvulle nimeksi c.
Suunnitelma
Ajatuksena on tuottaa GeoGebra 6:lla (onnistuu myös GeoGebra 5:llä ja GeoGebra 3D:llä) sovellus, jossa luodaan funktio c7(x), joka laskee taikatempun algoritmin tuottaman lopullisen luvin i. Koska GeoGebrassa ei voi rajoittaa lähtöjoukkoa vain luonnollisiksi luvuiksi, pitää ottaa huomioon kaikki reaaliluvut x ≥ 0. Tuotetun funktion ja lukujen a ja c parillisuuden avulla tuotetaan taulukkolaskennan avulla 3D pisteet. Nämä yhdistetään janoilla alkuperäisiin a arvoihin. Näin saadaan kuva kuvauksesta.
Kirjoitan komennot GeoGebra 6:n syöttökenttään.
Parillisuusfunktio
GeoGebralla voidaan luvun n parillisuus selvittää käyttämällä jakojäännöstä komennolla mod(n, 2). Esimerkiksi mod(13, 2) antaa tulokseksi 1.
Valitettavasti komento mod(x, 2) ei tuota funktiota. Niinpä tarvitsen funktion, joka antaa arvoksi 0, jos annetun luvun kokonaisosa on parillinen ja 1 jos se on pariton. Funktion luonti onnistuu käyttämällä floor-komentoa, joka tuottaa arvoksi luvun kokonaisosan. Esimerkiksi floor(13.6) tuottaa arvoksi 13. Muutaman kokeilun jälkeen havaitsin, että seuraava toimii. Määritellään syöttökentässä funktio
paril(x) = floor(2 (x / 2 - floor(x / 2)))
Carroll-funktio
Muutetaan taikatempun laskutoimitukset funktioiksi. Ohjeen resepti b tuottaa funktion c1(x) ja c vastaavasti c2(x) ja niin edelleen. Viimeinen kohta ohjeessa eli i on funktio c7(x). Kirjoitetaan syöttökenttään komennot:
GeoGebra sieventää sisäkkäisten funktioiden lausekkeet, näin ollen funktion c7 lauseke on aika monimutkaisen näköinen.
Tietysti kuvaajakin on aika eksoottinen.
3D-pisteet taulukkolaskennalla
Lasketaan muutamia funktion c7 arvoja luonnollisilla luvuilla. Samalla lasketaan ensimmäisen luvun a ja kolmannen luvun c eli funktion c2 arvojen parillisuus. Teen tämän taulukkolaskennalla, jotta näen luvut rinnakkain, näin minun on helpompi pohdiskella lukujen yhteyksiä toisiinsa.
Kirjoitetaan taulukkolaskennan soluihin A1, …, A4 otsikot: ”x”, aparil, c2paril ja ”c7”. Kirjoitetaan soluun A2 luku 0 ja soluun A3 luku 1. Valitaan alue A2:A3 ja luodaan sarake luonnollisia lukuja 0, …, 50 kahvasta vetämällä. Soluihin B2, …, B4 kirjoitetaan kaavat:
=paril(A2)
=paril(c2(A2))
=c7(A2)
Valitaan alue B2:B4 ja monistetaan kaavat alaspäin kahvalla vetämällä.
Tuota taulukkoa tutkiskelemalla voi pohdiskella millainen säännönmukaisuus lukujonoilla on. Palaan tähän asiaan luultavasti tulevassa artikkelissa.
3D-kuvaajaa varten luodaan kaksi pistelistaa. Aluksi kannattaa valita Piirtoalueen asetuksista Nimeäminen: Nimeäminen pois. Näin pisteiden nimet eivät tule näkyviin 3D piirtoalueelle. Valitaan alue B2:D32 ja Luo lista -työkalua painamalla valitaan työkalu Luo pistelista. Annetaan listalle nimeksi l1.
Kun testasin komentoja GeoGebra3D:llä, jossa ei ole taulukkolaskentaa käytössä, niin loin l1-listan Jono-komennolla:
l1=Jono((paril(nn),paril(c2(nn)),c7(nn)),nn,0,30)
Luvut 0, …, 30 saadaan pisteiksi 3D-avaruuteen kirjoittamalla syöttökenttään
l2 = Jono((n, 0, 0), n, 0, 30)
Luodaan janat muuttujan arvojen pisteiden ja niiden arvoja vastaavien pisteiden välille. Eli periaatteessa hahmotetaan kuvausta n -> (aan, ccn, in).
Tämän tyyppinen asia kannattaa tehdä Zip-komennolla, toki jono-komennollakin janojen piirto onnistuu.
l3 = Zip(Jana(n, m), n, l1, m, l2)
3D-piirtoalueelle ilmestyvät janat pistelistojen alkioiden välille. Akseleiden skaalausta saa muutettua painamalla Vaihto-näppäimen pohjaan ja vetämällä koordinaattiakseleista. Kuviota saa liikutettua tasossa Vaihto-näppäintä pohjassa siirtelemällä.
Vaikuttaa siltä, että jokaista luonnollista lukua n vastaa yksikäsitteinen piste taikatempun funktioiden tuottama piste (aan, ccn, in). Ja myös päinvastoin, eli jokaista (aan, ccn, in) pistettä vastaa yksikäsitteinen luonnollinen luku n.
Jätän asian täsmällisen matemaattisen todistamisen lukijalle.