Sovituskomennot GeoGebrassa

Funktion sovittaminen pisteistöön on tyypillinen ongelma, jonka ratkaisemiseminen onnistuu mukavahkosti tietokoneohjelmien avulla. GeoGebrassa on oma työkalu sovitusongelmien ratkaisuun. Lisäksi ohjelmassa on runsaasti sovitus -komentoja.

Kahden muuttujan regressio -työkalu

Tutkitaan ensin Kahden muuttujan regressio -työkalua. Seuraavissa esimerkeissä käytetään kuvan taulukkolaskennan lukuja.

Kuva1.png

Valitaan taulukkolaskennan alue B1:G2 ja työkalu Kahden muuttujan regressioanalyysi. Avautuvassa ikkunassa valitaan Analysoija GeoGebra avaa Data-analyysi-ikkunan. Regressiomalli-valikosta voi valita erilaisia sovituksia: Lineaarinen, Logaritminen, Polynomi, Potenssi, Eksponentiaalinen, Kasvu, Sin ja Logistinen.

Kuva2

Ikkunan vasemman yläreunan käsi -ikonin avulla voi muuttaa valittua lukualuetta taulukkolaskennassa, seuraava ∑x -painike näyttää tilastollisia tunnuslukuja liittyen sovitukseen, seuraava painike näyttää mittausdatan, seuraava jäännöskuvion ja viimeinen vaihtaa datan x– ja y-koordinaatit keskenään. Data-ikkunassa voi poistaa yksittäisiä pisteitä ja Jäännöskuvio kertoo pisteiden y-koordinaattien poikkeaman pystysuunnassa valitusta sovituskäyrästä. Oikean yläkulman pienen kolmion takaa löytyy ikkuna, jossa voi lisätä viivadiagrammin, ruudukon ja muuttaa kuvaajan mittasuhteita. Kolmion oikealla puolella olevan pikkuneliön avulla saa kuvaa kopioitua suoraan piirtoalueelle. Siellä on helpompi muokata akseleita ja lisätä akseleille nimet ja yksiköt. Samalla kun kuvaaja siirtyy piirtoalueelle, niin myös Algebra-ikkunaan ilmestyy sovitettu funktio.

Kuva3

Sovituskomennot

Tarkastellaan sitten syöttökentässä ja CASissa käytettäviä sovituskomentoja. Kahden muuttujan regressio -työkalun regressiomallifunktiot käyttäytyvät samalla tavoin kuin sovituskomennot. Komennot tarvitsevat syötteekseen pistelistan. Ennen kuin pistelista luodaan, niin kannattaa käydä valitsemassa Asetukset -> Nimeäminen -> Nimeäminen pois.  Näin pisteiden nimet eivät ilmesty piirtoalueelle. Valitaan taulukkolaskennan alue B1:G2 ja työkalu Luo pistelista.

Kuva4

Avautuvassa ikkunassa voi muuttaa pistelistan nimen, oletuksena se on l1. Annetaan pistelistalle nimi ”pisteet”. Komento SovitaSuora(pisteet) (FitLine) sovittaa pienimmän neliösumman avulla suoran pisteisiin ja antaa sille nimen f. Komento SovitaSuoraX(pisteet) (FitLineX) tekee saman sovituksen, mutta suorat vaihtaa x– ja y-koordinaatit sovitusalgoritmissa. Normaalitilanteessa pienimmän neliösumman sovituksessa ajatellaan, että x-koordinaatit ovat riippumattomia (selittäviä) ja y- koordinaatit riippuvia (selitettäviä) muuttujia. SovitaSuoraX muuttaa y-koordinaatit riippumattomiksi sovitusalgoritmiin.

Kuva5

Sovitetun suoran kulmakertoimen arvon (kuvassa muuttuja a) saa komennolla Kulmakerroin(f)ja vakiotermin arvon (kuvassa muuttuja b) hieman hankalammin Alkio(Kertoimet(f(x),2)).Kertoimetluo listan polynomin f(x)kertoimista ja Alkio(lista, 2)poimii listan toisen jäsenen eli tässä tapauksessa vakiotermin. SovitaSuora-komento poikkeaa muista sovita-komennoista, sillä se tuottaa suoran yhtälön, muut sovita-komennot tuottavat funktion.

Polynomisovitukset tuotetaan komennolla SovitaPolynomi( <Pistelista>, <Polynomin asteluku> ) (FitPoly). Komento SovitaPolynomi(pisteet, 2)luo toisen asteen funktion. Pistelistan tilalla voi olla myös vapaalla kädellä piirretty funktio. Sellaisen saa luotua Piirtoalueen Vapaakäsi-työkalulla. Kuvassa f(x) on toisen asteen sovitus ja p(x) viidennen asteen sovitus pisteet listaan. Funktio h(x) on paraabelisovitus vapaalla kädellä piirrettyyn funktioon g(x).

Algebraikkunassa olevia funktioita voi derivoida, integroida Syöttökentässä tai CAS:issa ja myös niiden ominaisuuksia voi tutkia Funktion-analysointi työkalulla. Se löytyy Piirtoalueen työkaluista Kulma-työkalun ”takaa”.

Kuva6

Eksponentiaalista kasvua varten on sovitukset SovitaEksp(FitExp) ja SovitaKasvu (FitGrowth). SovitaEksp(pisteet)tuottaa muotoa f(x) = a·eb·xolevan funktion ja SovitaKasvutyyliin g(x) = a·bx. GeoGebran kannalta kyseessä on sama funktio, vain esitystapa on erilainen. Mikäli tarvitset laskuissasi luonnollisen logaritmin kantalukua e, niin sen saa GeoGebrassa näppäinkomennolla Alt-e tai Syöttökentän oikean reunan symbolivalikosta. GeoGebra 6:ssa ja π löytyvät myös virtuaalinäppäimistöltä. Näiden komentojen syötelistan y-koordinaattien tulee olla samanmerkkisiä.

Kuva7

SovitaPotenssi(pisteet)(FitPow) sovittaa funktion, joka on muotoa f(x) = a·xb.Pistelistan x– ja y– koordinaattien tulee olla positiivisia.

SovitaLogist(pisteet)(FitLogistic) sovittaa muotoa f(x) = a/(1 + b e^(- k x)) olevan logistisen funktion. Pistelistan y-koordinaattien tulee olla positiivisia. Pisteiden pitää olla myös riittävästi S:n muotoisella käyrällä.

SovitaLog(pisteet)(FitLog) sovittaa muotoa p(x) = a+ bln(x) olevan funktion. Pisteiden x-koordinaattien tulee olla positiivisia.

Sin-sovitusta varten toin taulukkolaskentaan heiluriin liittyvää mittausdataa. Loin datasta pistelistan nimeltä heiluri. SovitaSini(heiluri)(FitSin)tuottaa muotoa h(x) = a+ bsin(c x+ d) olevan funktion. Kokemus osoittaa, että jos pisteitä on runsaasti, suuruusluokkaa satoja, niin komento ei toimi aina täydellisesti.

Kuva8

Usein kun sovitetaan mittausdataa, tulee tarve määrittää itse sovitusfunktio. Jos haluaa pakottaa sovitussuoran tai paraabelin kulkemaan origon kautta, niin komennolla Sovita( <Pistelista>, <Funktiolista> )(Fit) se onnistuu. GeoGebra määrittää funktiolistan kertoimet sovituskäyrälle. Niinpä Sovita(pisteet, {x})sovittaa origon kautta kulkevan suoran ja Sovita(pisteet, {x, x^2})origon kautta kulkevan toisen asteen polynomin.

Ehkä mielekkäämpi tapa käyttää Sovita-komentoa on kirjoittaa sovitettava lauseke komennon syötteeksi tyyliin Sovita( <Pistelista>, <Funktio> ). Origon kautta kulkeva suora olisi sovitettu komennolla Sovita(pisteet, k x).

Syksyn 18 fysiikan ylioppilaskokeessa oli tehtävä, jossa oli mittaustuloksia kahvin lämpötilasta ajan funktiona. Luodaan mittaustuloksista pistelista kahvi. Mittaustulokset näyttävät noudattavan Newtonin jäähtymislakia. Komento Sovita(kahvi, a b^x + c)tuottaa funktion, joka kulkee melkoisen hyvin pisteiden kautta. Tosin pisteiden alku- ja loppupäät poikkeavat selvästäsi mallin tuottamasta käyrästä. Komentoa käytettäessä GeoGebra luo vakioita vastaavat liu’ut. Lisäksi pitää tarkistaa Algebra-ikkunasta, että vakioina käytettävät muuttujat eivät ole aiemmin määriteltyjä.

Splini( <Pistelista> )-komento (Spline) luo pistelistan pisteiden kautta kulkevan splinikäyrän. Splini on paloitellusti määritelty parametrinen käyrä. Palat koostuvat kolmannen asteen käyristä siten, että liitoskohdissa käyrä on jatkuva ja derivoituva. Toki käyrän derivoiminen ei onnistu kovin helposti, koska kyseessä on parametrinen käyrä. Käyrälle voi piirtää tangentin jokaiseen pisteeseen. Korkeamman asteen splinejä saa syntaksilla Splini( <Pistelista>, <Asteluku ≥ 3> ). Splinejä ei kannata käyttää, jos mittaustuloksissa on paljon ”virhettä” koska käyrä kulkee kaikkien pisteiden kautta ilman pehmennystä.

Kuvassa f(x)=SovitaKasvu(kahvi),g(x)=Sovita(kahvi, a+b*c^(x))ja d: Splini(kahvi).

Kuva9

Implisiittinen sovitus

Implisiittinen sovittaminen pyrkii tuottamaan n:n asteen xy-tasokäyriä. Pisteiden lukumäärän tulee olla vähintään  pistettä. Yritetään piirtää vapaalla kädellä tietokoneen hiirellä yksikköympyrä mahdollisimman hyvin. Luodaan ensin piste A = (0,1). Jotta pisteen koordinaatit saadaan tallentumaan taulukkolaskentaan, sen ikkunan tulee olla näkyvissä.

Kuva91

Valitaan hiiren oikealla painikkeella piste A ja avautuvasta valikosta Tallenna taulukkoon. Kun avautuneen ikkunan sulkee, voi alkaa liikuttaa pistettä A ja pisteen koordinaatit tallentuvat taulukkolaskentaan. Kun taulukkolaskennassa valitaan A:n liikkuessa luodut pisteet jaLuo pistelista, niin pisteet ilmaantuvat piirtoalueelle ja oletuksena syntyy lista l1. Komennolla SovitaImplisiittisesti(l1, 2) (FitImplicit) ohjelma tuottaa toisen asteen käyrän. Algebraikkunassa GeoGebra ilmoittaa, että se on Implisiittinen käyrä.  Katsomalla sitä tunnistan tai paremminkin arvaan, että kyseessä on ellipsi. Kokeile itse korkeamman potenssin sovituksia ja jos olet rohkea, niin pohdi miten algoritmit ovat niihin päätyneet.

Jostain kumman syystä GeoGebra ei tunnista, että implisiittinen käyrä aon oikeasti kartioleikkaus. Niinpä Syöttökentän komennolla ymp = aohjelma luo kartioleikkauksen siten, että se toimii GeoGebran kartioleikkauskomentojen kanssa.  Kartioleikkausten symmetriakeskus saadaan komennolla Keskus(ymp),polttopisteetPolttopiste(ymp)ja ellipsin eksentrisyys komennolla Eksentrisyys(ymp).

Kuva92

 

Mikäli haluat tutusta monipuolisiin esimerkkeihin GeoGebra sovituskomennoista, niin kannattaa hankkia ruotsalaisten ystävieni Jonaksen ja Thomaksen ”Mathematical Modeling, Applications with GeoGebra” -kirja. Kirjassa on useita kymmeniä pisteistön sovittamiseen liittyviä esimerkkejä liittyen muun muassa kemiaan, fysiikkaan, lääketieteeseen ja taloustieteeseen. Tätäkin kirjoittaessa olen selannut kirjaa aika paljon.

Lue lisää

Korhonen, Luoma-aho, Rahikka. Geogebra -opas. MFKA-Kustannus 2012.

https://mikonfysiikka.wordpress.com/2018/05/15/listat-geogebrassa/

Hall, Lingejärd. Mathematical Modeling, Applications with GeoGebra. Wiley 2017.

Kirjan materiaalisivu. http://bcs.wiley.com/he-bcs/Books?action=index&itemId=1119102723&bcsId=10240

GeoGebran käyttöohjeen Fit-komennon wiki-sivu https://wiki.geogebra.org/en/Fit_Command

Spline Wikipediassa. https://en.wikipedia.org/wiki/Spline_(mathematics)

Tulostettava versio

tarina pdf-muodossa

Annuiteettilasku GeoGebralla

64000€:n laina maksetaan tasaerinä viidessä vuodessa kuukausittain korkokannalla 3.6 %/a.

  1. Laske tasaerä eli annuiteetti.
  2. Laske korko ja lyhennys ensimmäisellä maksukerralla.
  3. Kuinka paljon on lainapääoma ennen kolmannen vuoden ensimmäistä maksukertaa?
  4. Laske korko ja lyhennys kolmannen vuoden ensimmäisellä maksukerralla?
  5. Laske korko ja lyhennys viimeisellä maksukerralla?
  6. Kuinka paljon korkoa maksetaan yhteensä?

Seuraavissa ratkaisussa näytän miten GeoGebran CAS:in avulla saa tehtävän ratkaistua Lyhyen matikan Talousmatikan MB6 kurssilla. Kyseessä ei ole malliratkaisu, vaan tarkoituksena näyttää eri tapoja miten GeoGebran komentoja voi käyttää.

1 Laske tasaerä eli annuiteetti.

Maksuerä( <Korko>, <Korkokausien lukumäärä>, <Nykyarvo>, <Tuleva arvo (valinnainen)>, <Laji (valinnainen)> )

<Korko> on korkokanta jaettuna vuosittaisten maksuerien määrällä.
<Korkokausien lukumäärä> on korkokausien lukumäärä.
<Nykyarvo> on lainapääoma laina-ajan alussa.
<Tuleva arvo (valinnainen)> on lainapääoma lopussa, useimmiten se on nolla.
<Laji (valinnainen)>, sen voi jättää tyhjäksi, mutta jos sinne laittaa nollan niin korko maksetaan kuukauden lopussa kuten tässä. Arvolla 1 korko maksettaisiin korko kuun alussa.

Tasaerä eli annuiteetti on 1167,14€.

2 Laske korko ja lyhennys ensimmäisellä maksukerralla.

Ensimmäisellä kerralla korko on 192€ ja ensimmäinen lyhennys 975.14€.

3 Kuinka paljon on lainapääoma ennen kolmannen vuoden ensimmäistä maksukertaa?

TulevaArvo( <Korko>, <Korkokausien lukumäärä>, <Maksuerä>, <Nykyarvo (valinnainen)>, <Laji (valinnainen)> )

<Korko> on korkokanta jaettuna vuosittaisten maksuerien määrällä.
<Korkokausien lukumäärä> on kuinka monennen maksuerän kohdalla lainapääoman arvo lasketaan.
<Maksuerä> on annuiteetin arvo miinusmerkkisenä, ole tämän kanssa huolellinen.
<Nykyarvo (valinnainen)> on lainapääoma alussa.
<Laji (valinnainen)>,sen voi jättää tyhjäksi, mutta jos sinne laittaa nollan niin korko maksetaan kuukauden lopussa kuten tässä. Arvolla 1 korko maksettaisiin kuun alussa.

Lainapääoma ennen kolmannen vuoden ekaa maksukertaa on 26967,70€.

4 Laske korko ja lyhennys kolmannen vuoden ensimmäisellä maksukerralla?

Kolmannen vuoden ensimmäisellä maksukerralla korko on 80,96€ ja lyhennys 1086,18€?

5 Laske korko ja lyhennys viimeisellä maksukerralla?

Viimeinen lyhennys on lainapääoma ennen viimeistä maksukertaa eli 1163,65€ ja korko 3,49€. Näiden summan pitäisi olla yhtä suuri kuin annuiteetti, testaa onko.

6 Kuinka paljon korkoa maksetaan yhteensä?

Korkoa maksetaan yhteensä 6028,40€.

 

GeoGebra Classic 5:n lataaminen

Windows -tietokoneille

Mene osoitteeseen http://www.geogebra.org ja sieltä vasemman palkin Appsien lataukset https://www.geogebra.org/download

GeoGebra_Classic_5_n_lataaminen_Windows_-laitteille_-_Google_Docs.png

Asentaja alkaa latautua koneellesi. Noudata asentajan ohjeita. Näin saat uusimman version koneeseesi.

Mac -tietokoneille

Mene osoitteeseen http://www.geogebra.org ja sieltä vasemman palkin Appsien lataukset https://www.geogebra.org/download

Valitse käyttöjärjestelmäsi mukainen versio.

Lataukset kansioon ilmestyy ”GeoGebra-MacOS-Installer-withJava-5-0-486-0.zip” niminen tiedosto (neljä viimeistä numeroa muuttuvat version mukaan). Kaksoisklikkaa tiedostoon, GeoGebra-niminen ohjelma ilmestyy Lataukset-kansioon. Siirrä GeoGebra ohjelmat-kansioon. Klikkaa Ohjelmat-kansiossa hiiren oikealla painikkeella GeoGebra-ohjelmaan (ensimmäisellä kerralla) ja valitse Avaa. Vastaa ”Avaa” käyttöjärjestelmän kysymykseen halustasi avata internetistä ladattu tiedosto.

Applen AppleStoresta asennetut versiot eivät päivity enää automaattisesti.

Tätä kirjoittaessa viimeisin versio oli GeoGebra Classic 5.0.486.0

Lue Macversiosta lisää täältä.

GeoGebra Classic 5:n Mac -versio

GeoGebran pääohjelmoija Michael Borcherds ilmoitti, että GeoGebra 5:n Classic-versiota ei päivitetä enää Applen App Storeen. Mac-versiota päivitetään samaa tahtia kuin muitakin Classic 5 versioita. Tätä kirjoitettaessa uusin versio on 5.0.472, 31 May 2018

Uusimman GeoGebra 5 Classicin löytää GeoGebran Apps sivulta https://wiki.geogebra.org/en/Reference:GeoGebra_Installation

Valitse kohdasta GeoGebra Classic for Desktop ja sieltä

Tietoja___Lisenssi

Galilein kaunis kaltevan tason lause

Tämä artikkeli on aiemmin julkaistu omassa blogissani https://mikonfysiikka.wordpress.com/

Johdantoa

Luin Heilbronin Galilei -elämänkerran (Heilbron J.L., Oxford, 2010). Se on hieno kirja, tosin minulla kului reilut puoli vuotta sen lukemiseen muiden kirjojen ohessa. Kirjaa lukiessa palasi mieleeni kaltevaan tasoon liittyvä lause Galilein kirjassa ”Keskusteluja kahdesta tieteestä” (ital. Dialogo dei due massimi sistemi del mondo, Leiden, 1638). Galilei itse olisi halunnut antaa kirjan nimeksi ”Keskusteluja liikkeestä”, mutta kustantaja Leidenissa kirja päätti toisin. Olen tutkiskellut kirjan englanninkielistä käännöstä (Stillman Drake) aikojeni kuluksi viime vuosituhannelta lähtien. Kirjasta löytyy paljon kauniita ajatuksia.

Kirjan luvussa Kolmas päivä on Lause VI, Väite VI: ”Jos pystytasossa olevan ympyrän ylimmästa tai alimmasta pisteestä luodaan kalteva taso siten, että toinen pää on ympyrän kehällä, niin kaltevaa tasoa kulkevilla kappaleilla matkaan kuluva aika on sama”. Englanninkielisessä versiossa ”If from the highest or lowest point in a vertical circle there be drawn any inclined planes meeting the circumference the times of descent along these chords are each equal to the other.

Dialogues_Concerning_Two_New_Sciences_-_Online_Library_of_Liberty

Jätän lauseen todistamisen fysiikan opettajille ja opiskelijoille harjoitustehtäväksi. Galilei teki sen käyttämällä geometriaa ja aiemmin osoittamiaan fysiikan totuuksia.

Tietokoneeni syövereistä löytyi tällainen video liittyen noin 2000 DFCL-opintoihin https://youtu.be/jeF45T7Bw1o

Luvussa kolme Galilei oli osoittanut, että kaltevalla tasolla kulkevalla kappaleella on vakiokiihtyvyys. Todistus oli sekä kokeellinen, että geometrinen. Lisäksi hän osoitti tv-kuvaajan pinta-alan avulla (ennen integraalilaskentaa), että kuljettu matka on suoraan verrannollinen ajan neliöön, nykymerkinnöin s = ½ a t^2. Ymmärtääkseni Galilei ei erotellut vierimistä ja liukumista, mutta kirjassa pohditaan myös liikettä vastustavien voimien olemusta liittyen putoamisliikeeseen ja vierimiseen. Galilei ei tietenkään voinut käyttää päätelmissään voima-käsitettä, sillä sen keksi Newton, joka syntyi Galilein kuolinvuonna.

0416_Bk_pdf3.png

 

GeoGebraa

Tutkitaan miten Lausetta voi havainnollistaa GeoGebralla.

Newtonin mekaniikan avulla helpohkoa osoittaa, että kaltevalla tasolla kitkatta liukuvan kappaleen kiihtyvyys a = g sin a , missä a on kaltevuuskulma. Myös vierivällä kappaleella kiihtyvyys on myös suoraan verrannollinen kaltevuuskulman siniin. Unohdan tässä tapauksessa varrannollisuuskertoimen, sillä ei ole tämän tarinan kannalta merkitystä. Päteehän tämä lause kaikilla planeetoilla ja myös Jupiterin kuissa.

Kun tein ensimmäisen version tästä lauseesta, niin käytin perinteistä suorakulmaista koordinaatistoa. Jos lähdetään origosta ja kaltevuuskulma on 30° alaspäin, niin fysiikkaa ja matematiikkaa opiskellut henkilö voi osoittaa, että paikan koordinaatit ajan t funktiona ovat (sin(30°) cos(30°) t²,  sin(30°)² t²). Tämänkin avulla ongelman ratkaisu onnistui, mutta sitten oivalsin, että nyt kannattaa hypätä napakoordinaatistoon.

GeoGebrassa voi käyttää napakoordinaatteja, kun laittaa koordinaattien erottimeksi puolipisteen ”;”.

Jos haluat pisteeseen, jonka kulma on 30° ja etäisyys origosta 2, niin kirjoita GeoGebran syöttökenttään

A=(2; 30°)

GeoGebra_Classic_5__23_

Avaa uusi GeoGebra-sivu. Tämä ohje toiminee kaikilla GeoGebran versioilla 5 ja 6.

Luodaan aikaa kuvaava muuttuja t, eli liuku. Kirjoita syöttökenttään

t = 5

Algebraikkunaan ilmestyy t=5. Klikkaa sen vasemmalla puolella olevaan palloon ja piirtoalueelle syntyy liuku t. Klikkaa hiiren oikealla painikkeella ja valitse Ominaisuudet ja sieltä Liukusäädin. Muuta arvot, Min: 0, Max: 5, Animaatioaskel: 0.1 sekä Toista: => Kasvava.

Asetukset_-_gal2_ggb.3png

Harjoituksen vuoksi luodaan piste A. Kirjoita syöttökenttään ja pohdi samalla miksi vain toisessa on etumerkki.

A=(t² sin(30°); -30°)

Kun liikutat liukua, näet miten piste A liikkuu, kun aika kuluu. Zoomaa tarpeen mukaan. Vaihda kulmaa niin näet mitä tapahtuu.

Monistetaan pisteen A kulku eri kulmilla. Se onnistuu helpoimmin käyttämällä Jono-komentoa. Tässä käytän syntaksia Jono( <Lauseke>, <Muuttuja>, <Alkuarvo>, <Loppuarvo>, <Askeleen pituus> ). Kirjoita syöttökenttään

Jono((t² sin(n°); (-n)°), n, 0, 180, 10)

Komento tuottaa pisteitä napakoordinaatteihin (t² sin(n°); (-n)°). Ne kaikki näyttävät olevan samaan aikaan samalla ympyrän kaarella.

Jos halutaan piirtää myös kyseinen ympyrä, niin silloin ainakin minulle karteesiolainen koordinaatisto on taas helpompi. Alin piste putoaa kiihtyvyydellä t2, joten ympyrän säde on t2/2 ja sen säde myös t2/2.

Kirjoita syöttökenttään

Ympyrä((0, (-t²) / 2), t² / 2)

Aikamakeeta.

Esimerkki löytyy sivulta https://ggbm.at/kRSEZQ9r

Lopuksi

Jätän taas laiskuuksissani tuon alemman version mallin tuottamisen minua fiksuimmille ihmisille.

0416_Bk_pdf2

Joskus kun noita ratkoin, niin jotenkin tuo alempi oli minulle helpompi ja ylempi oli vaikeampi, ihmisen mieli on omalaatuinen.

Kun katselin viime kesän Firenzen kuvia, niin sieltä löytyi tällainenkin Galileomuseosta. Nytpä tajuan, mihin tuo kuva liittyy.

fys - 1

Jatko-osa löytyy blogistani

https://mikonfysiikka.wordpress.com/2018/06/13/galilein-kalteva-taso-jatko-osa/

 

Lista

Tämä artikkeli on aluperin julkaistu sivulla https://mikonfysiikka.wordpress.com/2018/05/15/listat-geogebrassa/

Listat ovat GeoGebran tapa muodostaa kokoelmia erilaista objekteista. Esimerkiksi yhtälön ratkaisujoukko on GeoGebrassa lista. Mikäli haluaa oppia tekemään monimutkaisempia sovelluksia, niin kannattaa opiskella mitä listoilla voi tehdä. Tämän pitkähkön artikkelin jatko-osana tullee ilmestymään artikkelit Sovitus-, Jono- ja Zip -komennoista.

Lista

Lista on kokoelma GeoGebran objekteja. Listan jäsenet eli alkiot erotellaan pilkuilla ja ympärille laitetaan aaltosulkeet {}. Matematiikassa listaa vastaa lähinnä jono, ohjelmointia harrastaneille listan syntaksi on perinteinen. Listassa voi olla sama objekti jäsenenä useamman kerran ja listan jäsenten järjestyksellä on väliä.

{1, 2} == {2, 1}
 → false

Yllä olevassa esimerkissä kaksi peräkkäistä =-merkkiä tuottaa GeoGebrassa totuusarvon. Pyrin kirjoittamaan siten, että GeoGebran komennot (eli funktiot) kirjoitetaan GeoGebra 5-version CAS:iin. GeoGebran CAS solun tulosteessa näkyy nuoli →. Kun tekstissä viittaan GeoGebran komentoon, niin laitan komennon nimen lihavoituna ja englanninkielisen version lihavoituna kursiivilla. Komennot voi toki kirjoittaa myös syöttökenttään ja GeoGebran 6-versiosta lähtien näkyy Algebraikkunassa tuloste selkeästi. On muutamia listakomentoja, jotka eivät toimi CAS-ikkunassa.

Määritellään CAS:issa lista nimeltä L. GeoGebrassa muuttujan tai funktion määrittely tehdään merkkiparin ≔ avulla.

L := {-5, -2, 1, 4}
 → L:={-5, -2, 1, 4}

Tässä yhteydessä on hyvä oppia kolme eri merkitystä matematiikan yhtäsuuruusmerkille. GeoGebran CAS:issa ”=” tarkoittaa yhtälön yhtäsuuruutta y = 2 x + 1; yhtälöiden kuvaajat näkyvät piirtoalueella ja yhtälöistä voi CAS:issa ratkaista kirjainmuuttujia, ”≔” on muuttujan tai funktion määrittelyssä oleva merkki tyyliin;  a≔5 tai f(x)≔ 2x – 5 ja ==- tutkii totuutta 2==3. Seuraavissa esimerkeissä käytetään muuttujan L arvona kyseistä listaa. Listassa L on neljä alkiota eli sen Pituus (Lenght) on neljä.

Pituus(L)
 → 4

Listoille voi tehdä erilaisia matemaattisia operaatioita. Kannattaa kokeilla miten eri laskutoimitukset vaikuttavat listaan. Ja tietysti komennot Summa(Sum) ja Tulo(Product) toimivat.

2*L
 → {(-10), (-4), 2, 8}

L+L
 → {(-10), (-4), 2, 8}

L^2
 → {25, 4, 1, 16}

sin(L°)
 → {(-0.08715574274766), (-0.03489949670252), 0.01745240643728, 0.06975647374412}

Summa(L)
 → -2

Tulo(L)
 → 40

Listan n:s alkio saadaan Alkio-komennolla (Element). Alkio-komennossa on kaksi muuttujaa, lista ja järjestysluku.

Alkio(L, 3)
 → 1

Edellistä voi käyttää esimerkiksi seuraavasti. GeoGebran Ratkaise(Solve) komento ratkaisee yhtälön ja tuottaa ratkaisun listana, jossa ratkaisut ovat yhtälöinä. Tämä vastaa samaa, jos käytetään CAS:in Ratkaise-työkalua. Ratkaisut(Solutions)-komento tuottaa yhtälön ratkaisun tarkat arvot listana. Tutkitaan toisen asteen yhtälöä ja sen ratkaisuja. Laiskuuksissani määritän ensin funktion f ja käytän sitä komennoissa. Bonuksena GeoGebra piirtää kuvaajan Piirtoalueelle. Ratkaisut-komennon ratkaisulle käytän muuttujaa, jonka nimeän R:ksi.

f(x):=2x² - 4x – 5
 → f(x):=2x² - 4x – 5

Ra ≔ Ratkaise(f(x)=0)
{x = (-sqrt(14) + 2) / 2, x = (sqrt(14) + 2) / 2}

R:=Ratkaisut(f(x)=0)
{(-sqrt(14) + 2) / 2, (sqrt(14) + 2) / 2}

Lasketaan tarkistuksen vuoksi funktion arvo nollakohdissa ja yhtälön ratkaisujen tulo.

f(R)
 → {0, 0}

Alkio(R, 1)*Alkio(R,2)
 → -5/2

Toki edellisen olisi saanut laskettua tulon avulla.

Tulo(R)
 → -5/2

Tai käyttämällä yhtälöitä kertomalla yhtälöt puolittain.

Tulo(Ra)
 x^(2)= -5/2

Jono-komennon (Sequence) avulla voi helposti tuottaa erilaisia jonoja. Palaan Jono-komennon syvällisempään käyttöön ja sen syntaksiin tulevassa artikkelissa. Jono vastaa for-next -silmukkaa perinteisessä ohjelmoinnissa. Seuraavan esimerkin Jono-komennon ensimmäinen muuttuja on lauseke, tässä tapauksessa koordinaatiston piste (n, n^2), seuraavassa kerrotaan muuttuja nimi n, kolmas muuttuja on alkuarvo 0 ja viimeinen loppuarvo 5. Luodaan pisteitä koordinaatistoon.

 Pisteet: = Jono(n,n^2), n, 0, 5)
 → {(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)}

Koska lista Pisteet koostuu koordinaatiston pisteistä, niin sitä kutsutaan pistelistaksi. Taulukkolaskennassa on helppoa tuottaa pistelistoja. Valitaan kaksi saraketta ja hiiren oikean painikkeen valikosta Luo -> Pistelista. Kun tehdään toisen asteen polynomisovitus listan pisteille, saadaan tietysti alkuperäistä lauseketta vastaava polynomi. Fysiikan ja kemian opettajille GeoGebran Sovita-alkuiset komennot ovat aika mukavia, kun tutkitaan mittaustuloksia, palaan tähän aiheeseen myöhemmin.

SovitaPolynomi(Pisteet, 2)
 → x^2

Kuva1

Poimiminen ja lisääminen

Ensimmäinen(First)-komento tuottaa listan ensimmäisen alkion listana. Muistin virkistyksenä Alkio palauttaa alkion jäsenen, ei listaa. Useimmiten itse käytän Alkio-komentoa kun tarvitsen listan ensimmäistä arvoa.

Ensimmäinen(L)
 → {-5}

Alkio(L, 1)
 →-5

Viimeinen(Last) toimii kuten Ensimmäinen. Jostain kummasta syystä tätä kirjoitettaessa Alkio(L, Pituus(L)) tuottaa virheilmoituksen. Pitää selvittää asiaa.

Viimeinen(L)
 →{4}

Alkio(L, 4)
 →4

 Liitos (Append) lisää objektin listan loppuun, jostain kumman syystä se ei toimi etupuolelle, vaikka GeoGebran ohje niin kertookin.

Liitos(L,0)
 → {-5, -2, 1, 4, 0}

Liitä (Join) liittää yhden tai useamman lista yhdeksi.

 Liitä({1, 2, 3},{9, 8, 7})
 → {1, 2, 3, 9, 8, 7}

LisääListaan-komennon (Insert) avulla saa lisättyä alkioita haluamaansa paikkaan. Mikäli paikan järjestysluku on negatiivinen, niin paikka lasketaan lopusta alkaen Pythonin tyyliin.

LisääListaan( 13, {2,  4, 6, 8, 10}, 3)
 → {2, 4, 13, 6, 8, 10}

LisääListaan( {13, 42}, {2,  4, 6, 8, 10}, -3)
 → {2, 4, 6, 13, 42, 8, 10}

Poimi (Take) valitsee listasta alkioita. Ensimmäisessä esimerkissä poimitaan listan alkiot neljännestä alkiosta loppuun ja toisessa alkiot alemmassa toisesta neljänteen.

Poimi( {2, 4, 6, 8, 10}, 4)
 → {8, 10}

Poimi({2, 4, 6, 8, 10}, 2,4)
 → {4, 6, 8}

Poista(Remove)-komennon avulla voi poistaa alkioita jotka ovat toisessa listassa. Vain ensimmäinen alkio poistetaan.

Poista({1, 2, 2, 2, 3, 4, 5, 6, 7}, {2, 4, 6} )
 → {1, 2, 2, 3, 5, 7}

Edellisessä esimerkissä Poista-komento poisti toisen listan alkiot vain yhden kerran. Jos haluaa, että lista käyttäytyy kuin joukko-opillinen joukko, niin pitää käyttää apuna Yksinkertainen(Unique)-komentoa.

Yksinkertainen({1, 2, 2, 3, 4, 5, 6, 6})
 → {1, 2, 3, 4, 5, 6}

Joskus Jos-ehtoa käytettäessä Jono-komennon kanssa syntyy listoja, joissa on määrittelemättömiä alkioita. Ne saa pois PoistaMäärittelemätön(RemoveUndefined) -komennon avulla. Alla on etsitty kolmella jaollisia lukuja.

Lista:=Jono(Jos(mod(n, 3)==0,n), n, 10, 20)
 → {?, ?, 12, ?, ?, 15, ?, ?, 18, ?, ?}

PoistaMäärittelemätön(Lista)
 → {12, 15, 18}

Sekoittaminen ja arpominen

 Sekoita(Shuffle)-komento sekoittaa listan alkiot ja tuottaa uuden listan niistä.

Sekoita({"pataA", "herttaA", "ristiA", "ruutuA" })
 → {"herttaA", "ristiA", "pataA", "ruutuA"}

SatunnainenAlkio(RandomElement)-komento poimii satunnaisen alkion.

SatunnainenAlkio({"pataA", "herttaA", "ristiA", "ruutuA"})
 → pataA

Arpominen luvuista 1, 2, …, 666 olisi onnistunut myös komennolla

Satunnaisluku(1, 666)
 → 42

Lajittele (Sort) lajittelee, sen muuttujana olevan listan pienemmyysjärjestykseen. Jos listan alkiot ovat tekstiä, niin ne aakkostetaan.

Lajittele({3, 2, 1})
 → {1, 2, 3}

Järjestysarvo(OrdinalRank)-komento liittyy lukuarvojen suuruusjärjestykseen. Minulle ei tule mieleen tilannetta, jossa tätä tarvitsee käyttää, mutta ehkäpä jonain päivänä tätäkin tarvitaan. Järjestysarvo kertoo sen järjestysluvun, mikä alkioilla olisi ollut kun ne järjestetään pienemmyysjärjestykseen. Tasapelejä ei sallita. Oletetaan, että meillä on arvosanoja listassa ja käytetään Järjestysarvo-komentoa.

arvosanat:={4, 8, 5, 7, 7, 10, 7, 9}
 → arvosanat:={4, 8, 5, 7, 7, 10, 7, 9}

Järjestysarvo(arvosanat)
 → {1, 6, 2, 3, 4, 8, 5, 7}

Nyt tiedän, että arvosana 4 on pienin eli ensimmäinen, arvosana 8 on kuudes, arvosana 5 on toinen kyseisessä listassa.

Käytetään samaa listaa JaettuSijoitus(TiedRank)-komennolla. Nyt tasapelit on sallittu.

JaettuSijoitus(arvosanat)
 → {1, 6, 2, 4, 4, 8, 4, 7}

JaettuSijoitus-komennon luvut 4 kertovat, että arvosanat 7 ovat tasapelillä sijalla 4 ja arvosana 8 (joka oli toisena ensimmäisessä listassa) on sijalla 6.

Summa ja tulo

Summa(Sum) laskee jonon alkioiden summan. Summassa voi käyttää myös Jono-komennon  kaltaista syntaksia Summa( <Lauseke>, <Muuttuja>, <Alkuarvo>, <Loppuarvo> ).

L
 → {(-5), (-2), 1, 4}

Summa(L)
 → -2

Summa(Jono(1, 42))
 → 903

Summa(i, i, 1, 42)
 → 903

Tulo(Product) on kertolaskua, se toimii kuten Summa-komento.

Tulo(L)
 40

Tulo(i, i, 1, 42)
 → 1405006117752879898543142606244511569936384000000000

 

Yhdiste ja leikkaus

Tiivistä(Flatten)-komento tekee yhden lista useamman listan alkiosta. Käytännössä Tiivistä poistaa kaikki sisemmät aaltosulkeet listojen listasta.

Tiivistä({L, {L,{L}}, {1,2,3, {3, 2,1}}})
 → {(-5), (-2), 1, 4, (-5), (-2), 1, 4, (-5), (-2), 1, 4, 1, 2, 3, 3, 2, 1}

Yhdiste(Union) vastaa joukko-opin yhdistettä. Se yhdistää listat ja samalla poistaa ylimääräiset samat alkiot.

Yhdiste({1,2,2,3,3,3},{2, 3, 4, 5, 5})
 → {1, 2, 3, 4, 5}

YhteisetAlkiot(Intersection) vastaa joukko-opin leikkausta. Se tuottaa listan niistä alkioista, jotka ovat molemmissa listoissa.

YhteisetAlkiot({1,2,2,3,3,3},{2, 3, 4, 5, 5})
 → {2, 3}

Frekvenssi ja histogrammi

Frekvenssi(Frequency)-komento palauttaa listan, jossa on syötelistan alkioiden lukumäärät. Tällä komennolla on runsaasti erilaisia syötemahdollisuuksia.

Frekvenssi({(-5), (-2), 1, 4, (-5), (-2), 1, 4, (-5), (-2), 1, 4, 1, 2, 3, 3, 2, 1})
 →{3, 3, 5, 2, 2, 3}

Nyt tiedän, että lukuja -5 on 3 kappaletta, lukuja -2 on 3 kappaletta, ykkösiä on 5 ja niin edelleen. Luodaan luokkarajalista Jono-komennolla ja käytetään sitä frekvenssi-komennon ensimmäisenä syötteenä.

rajat:=Jono(n-.5,n, -5, 5)
 →rajat:={-5.5, -4.5, -3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5, 4.5}

arvot≔Frekvenssi(rajat, {(-5), (-2), 1, 4, (-5), (-2), 1, 4, (-5), (-2), 1, 4, 1, 2, 3, 3, 2, 1} )
 →arvot≔{3, 0, 0, 3, 0, 0, 5, 2, 2, 3}

Näin saatuja listoja voi käyttää Histogrammi(Histogram)-komennon kanssa tuottamaan jakauman histogrammin piirtoalueelle.

Histogrammi(rajat,arvot)
 →18

Histogrammin saa näkymään CASissa kun klikkaa solun vasemmassa reunassa olevaa pallukkaa. Luku 18 on histogrammin muodostaman monikulmion pinta-ala.

Tässä vaiheessa on muistutettava, että GeoGebran taulukkolaskenta ja Yhden muuttujan analyysi -työkalu helpottaa huomattavasti tilastollisen aineiston käsittelyä.

Kuva2

Datafunktio

Datafunktio(Datafunction) tuli GeoGebraan sensorit-hankkeen myötä. Fysiikan ja kemian opettajien kannattaa tutustua tähän funktioon, vaikka sen toiminnallisuus ei hivele täydellisyyttä. Ajatuksena on ollut käyttää mobiililaitteista saatavaa anturidataa GeoGebran kanssa. Unkarilainen hanke on ollut käsittääkseni jäissä EU-rahoituksen puutteen myötä muutaman vuoden. Komento piirtää x-koordinaatti- ja y-koordinaatti -listasta kuvaajan ja muodostaa murtoviivan pisteiden välille. Peräkkäisten mittauspisteiden muodostavien janojen avulla saadaan integroituva, mutta ei derivoituva funktio. Tämä on yleinen tapa runsasta mittausdataa käyttävien ohjelmien kanssa. Datafunktion luomaa funktiota voi tutkia myös Funktion analysointi -työkalulla.

Luodaan paikka-niminen lista taulukkolaskentaan tuodusta mittausdatasta. Tätä funktiota tutkiessani havaitsin, että se ei toimi CAS:issa määriteltynä siten kuin haluan. Tämänkin ymmärtää, että runsaan datamäärän kanssa työskennellessä tarkat arvot eivät ole enää mielenkiintoisia. Niinpä pitää käyttää syöttökenttää. Alla oleva mittausdata on tuotu taulukkolaskentaan (hiiren oikea painike ja Tuo datatiedosto…). Sieltä valittu alue on määritelty paikka-nimiseksi pistelistaksi Luo pistelista-työkalun avulla.

paikka
 → { (0, 0.029), (0.05, 0.029), (0.1, 0.036), (0.15, 0.044), (0.2, 0.062), (0.25, 0.082), (0.3, 0.104), (0.35, 0.114), (0.4, 0.135), (0.45, 0.138), (0.5, 0.14)}

Datafunktio vaatii syötteekseen x-koordinaattilistan ja y-koordinaattilistan.

Datafunktio(x(paikka), y(paikka))
→ f(x) := Datafunktio[x]

Piirtoalueelle ilmestyy pisteet näkyy kuvaaja ja Algebraikkunassa näkyy uusi funktio.

Tälle funktiolle voi laske arvoja ja määrittää integraaleja. Jostain kumman syystä reunat eivät voi olla päätepisteiden x-arvojen suuruisia. Tämän funktion tutkiminen käynee helpoimmin Funktion analysointi-työkalun avulla. Syöttökenttä tuottaa

f(0.2)
→  0.062

Integraali(f, 0.1, 0.49)
≈ 0.037

Kuva3

Pudotusvalikko

Listan saa toimimaan pudotusvalikkona. Määritellään ensin lista, jossa on eri funktioita

arvot≔ {x, 2x, x², 2x²}
 → arvot≔ {x, 2x, x², 2x²}

Listasta saa pudotusvalikon, kun avaa Algebraikkunassa hiiren oikean painikkeen avulla lista ominaisuudet ja ruksaa kohdan Lista pudotusvalikkona. Piirtoalueelle ilmestyy pudotusvalikko. Komentojen ValittuAlkio(SelctedElement), ja ValittuIndeksi(SelectedIndex) avulla saadaan pudotusvalikosta valittu alkio tai sen indeksi muuttujan arvoksi. Jos arvot -pudotusvalikosta on valittuna x2 , niin

f(x):=ValittuAlkio(arvot)
 → f(x)≔ x²

indeksi:=ValittuIndeksi(arvot)
 → indeksi:=3

Samalla piirtoalueelle ilmestyy funktion f(x) = x² kuvaaja.

Kuva4png


 

geogebra.org – Etusivu Uusiksi

GeoGebran verkkosivut uudistuivat. Tavoitteena on ollut yksinkertaisuus ja toimivuus erilaisilla laitteilla. Suomenkielinen käännös on 100% valmis, mutta haluamme palautetta mikäli koet, että jokin on huonosti käännetty. Varsinkin eri alasivuilla voi olla vihreitä. Antakaa palautetta vaikkapa Facebookissa tähän viestiin liitytyvällä sivulla. Tai sähköpostilla osoitteeseen geogebra@hyl.fi.

Merkittävin uutuus on ”Uutissyöte”. Kun löydät ”Materiaaleista” kiinnostavaa materiaalia, niin voit lisätä tekijän omaan syötteesi kun klikkaat tekijän nimeen ja ”Seuraa”. Voit myös lisätä henkilöitä Etusivun ”Ihmiset”-kohdasta. (Vai mikä tuo sana Ihmiset pitäisi olla). Kun lähetät viestin tapaan ”Uutissyötteeseen” niiin seuraajasi näkevät sen Facebookin tapaan.

GeoGebra___Ilmainen_matematiikkaohjelmisto_-_käyttäjinä_yli_100_miljoonaa_opiskelijaa_ja_opettajaa_maailmanlaajuisesti