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€.

 

Mainokset

GeoGebra Classic 5:n lataaminen

Windows -laitteille

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

1.png

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

Reference_GeoGebra_Installation_-_GeoGebra_Käyttöohje.pngLataukset 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ä.

 

Kirjat 2018

Juha Hurme, Niemi. Tietokirja Suomen ja Euroopan kulttuurihistoriasta 1800-luvulle saakka. Opettavainen, välillä hauska. Keskittyy paljon kansanrunouteen ja -musiikkiin.

Pentti O. A. Haikonen, Tietoisuus, tekoäly ja robotit. Tietokirja tekoälytutkimuksen historiasta ja eri malleista. Filosofista pohdiskelua tietoisuudesta. Lopun ennuste tulevaisuudesta on aika synkkä. Mainostaa omaa HCR-malliaan, ei kuitenkaan selitä sitä kovin tarkasti. Mielenkiintoinen.

David Lagercrantz, Tyttö joka etsi varjoaan. Milleniun trilogian viides osa. On vauhtia ja vähän juttua geenien vaikutuksesta ihmiseloon. Taustalla piilottelee Lisbethin sisko, tarvitaan siis jatko-osa. Aika samantyyppinen kuin edelliset (tietysti). Loppu oli tyylikäs.

Paul Auster, 4 3 2 1. Romaani tai oikeastaan neljä tarinaa saman nuoren kasvusta 50-60-luvun New Yorkissa. Raivostuttava, mutta oli silti pakko lukea loppuun. Mielenkiintoista historiaa esim. Columbian yliopiston opiskelijamellakoista ja kansalaisuusliikkeestä yliopistoissa 60-luvulla. Saa olla viimeinen kirja (jonka luen), jossa kertoja kertoo kirjailijan kehityskertomusta.

Michael Connelly, Julmat jäähyväiset. Dekkari. Eläkkeellä oleva poliisi Bosch etsii miljardöörin perillistä ja samaan aikaan selvittää kuka on sarjaraiskaaja. Ihan luettava kirja. Taidan joskus lukea tämän tekijän muitakin kirjoja.

Dan Brown, Alku. Trilleri. Tällä kertaa Langdon seikkailee Barcelonassa. Pohdiskelua luonnontieteellisen maailmankuvan ja uskonnon ristiriidasta. Himpun verran vähemmän pakoonjuoksemista ja väkivaltaa kuin aiemmissa Brownin kirjoissa. Hyvä tarina, tykkäsin.

Cixin Liu, The Three Body Problem. Science fiction. Mahtava kiinalainen tieteiskirja. Tarinaa kulttuurivallankumouksen ajoista mahdolliseen tulevaisuuteen, jossa otetaan yhteyttä lähitähdellä asuvaan sivilisaation. Tässäkin kirjassa on teemana uskomukset/uskonnot ja perustutkimuksen tärkeys ihmiskunnan tulevaisuudelle.  Pakko lukea jatko-osat kohtapuoliin. Mennee Top 10 osastolle scifeistä.

J.L. Heilbron, Galilei. Elämänkerta. Tämän lukemiseen meni melkein vuosi. Yksityiskohtainen elämänkerta, joka perustuu valtavaan määrään lähteitä. Aika monta juttua on kerrottu eri tavalla aiemmissa lukemissani keveämmissä elämänkerroissa. Sain tästä idean blogiartikkeliin. Nyt on taas hyviä syitä lähteä Firenzeen.

Reijo Mäki, Kakolan kalpea. Dekkari. Paras Vareskirja pitkään aikaan. Kaivosteollisuuden ahneutta ja Luumäkeläisiä epäsovinnaisia vitsejä käsittelevä tarina toimi. Jaksaa odottaa seuraavaa kirjaa pokkarina. Kirja jää mökin kirjastoon.

Cixin Liu, The Dark Forest. Science fiction. Three body problem-trilogian toinen osa. Nyt ollaan tulevaisuudessa 200-400 vuotta nykypäivästa ja ihmiskunnan tuho on lähes varma. Tarina olisi voinut päättyä tähän. Tämä tarina on huikea. Menee Asimovin, Cardin ja Stephensonin tasolle. Tässä osassa taistellaan Aurinkokunnassa, avaruusoopperaa.

Bruce Dickinson, Omaelämäkerta. Elämänkerta. Loistava tarina laulajasta, säveltäjästä, miekkailijasta, kirjailijasta, elokuvakäsikirjoittajasta, lentäjästä, opettajasta, luennoitsijasta, oluen panijasta, radiojuontajasta ja syövästä parantuvasta taiteilijasta. Bruce on todellinen renesanssi-ihminen. Hän pitää uusien asioiden oppimisesta.


Päivittelen tätä sivua sitä mukaa kun kirjoja tulee luettua. Joskus mainostan näitä kirjoja oppilailleni.

2017 kirjat

 

Galilei’s beautiful inclined plane theorem

[This a short version of the earlier Finnish blog post, read the original if you want to understand more, of course learn Finnish first.]

I just finished the Galilei biography (Heilbron J.L. Oxford, 2010). A really nice book, it took about half year to read it. Reading it reminded me about the theorems on inclined planes. I have been studying a long time Galilei’s Dialogues books in English. Still most of the geometric proofs are very hard to understand because my intelligence on Euclidian geometry is not very good. In his Discorsi e Dimostrazioni Matematiche, intorno a due nuoue scienze he states in Third Day Theorem VI, Proposition VIIf 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

If you are familiar with Newtonian mechanics, it is not very hard to prove this :o)

Earlier in the same Third Day in his book he had already shown that the space travelled on constant acceleration is proportional to acceleration and time squared s = ½ a t2. And the acceleration on inclined planes without friction in constant.

We actually have two theorems.

  1. Start from the the top of the circle with particles sliding without friction with different angles. At the same time they should be on the same circle.
  2. Start from the circumference of the circle so that the planes meet at the lowest point, they should meet at the same time.
    But wait a minute, what happens after that. That was the thing that I was wondering when I started this study.

Lets study this with GeoGebra.

1st case

Everybody who loves physics can see that the acceleration on inclined plane without friction is a = g sin alpha , where g is the gravitational acceleration and  alpha the horizontal angle. I will forget g and ½ in acceleration because Galilei’s theorem works on the moons of Jupiter also.
[Just noticed that my alpha was changed to a in WordPress, so after this a in the angle.]

In this 1st case it easier to use polar co-ordinates. In GeoGebra you can create a point in polar co-ordinates, if you use ; as a separator. If you want to create a point from origin with length 2 and angle 20°, the write to Input

XXX = (2; 20°)

You should see the point in Graphics window. This was just a test, so delete XXX or just ignore it.

For us the co-ordinates will be (sin(a°) t²; (-a)°). Think why the other has the negative sign.

Let’s create slider for time t. Write to the Input

 t=5

Toggle button t and click it with mouse right button and choose object properties Min:0, Max: 5, Increment: 0.1

Write to the Input:

Sequence((sin(a°) t²; (-a)°), a, 0, 180, 10)

If you move the slider t, you will see that the points seem to move on the same circle.

napakoordinaateilla_ggb

Beautiful. Prove it.

See it on GeoGebra Materials.

Wait for the next story, it even more beautiful.

I am going fishing.

Galilein kalteva taso, jatko-osa

Edellisessä artikkelissa kerroin miten tuottaa GeoGebralla työkirja, joka havainnollistaa Galilein ”Keskusteluja kahdesta tieteestä” lauseen: ”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.

Artikkelissa tutkittiin tapausta, joka alkaa ylhäältä. Tuohan tarkoittaa sitä, että jos ylhäältä päästetään samanaikaisesti kappaleita liukumaan eri kaltevia tasoja, niin kappaleet liikkuvat samalla ympyrän kehällä. Galilein kuvassa ajat janoilla janoilla AB ja AC ovat yhtäsuuret.

Dialogues_Concerning_Two_New_Sciences_-_Online_Library_of_Liberty

Mitä tapahtuu, jos laitetaan kappaleita ympyrän kehälle ja päästetään ne liukumaan samanaikaisesti sellaisia kaltevia tasoja, jotka kulkevat ympyrän alimman pisteen kautta ja annettaan niiden jatkaa matkaansa, eli kappaleet eivät törmää toisiinsa alimmassa pisteessä.

0416_Bk_pdf2

Ovatko kappaleet samoilla ympyränkehillä ennen alinta pistettä ja mitä tapahtuu alimman pisteen jälkeen?

Tutkitaan asiaa GeoGebralla. Edellisessä artikkelissa käytin napakoordinaatteja. Käytetään nyt suorakulmaista koordinaatistoa. Jotenkin se on minulle helpompaa vaikka lausekkeet ovat rumemman näköisiä.

Luodaan ensin lähtöpaikat. Harjoituksen, testailun ja myös ymmärryksen vuoksi luodaan piste A, se on 1 säteisen ympyrän kehällä, siten että suuntakulma origosta on α°.  Luodaan aluksi liuku α, ja annetaan sen arvojen muuttua välillä 0°≤ α ≤ 180°. Kirjoita syöttökenttään

α = 180

Klikkaa Algebra-ikkunassa α:n vasemmalla puolella olevaa pompulaa. Klikkaa hiiren oikealla painikkeella liukua ja muuta sen ominaisuudet Min: 0, Max: 180 Animaatioaskel: 1. Kirjoita syöttökenttään

A = (2 sin(α°) cos(α°), 2 sin²(α°))

Matematiikkaa opiskelleet ymmärtävät, miksi A-piste on ympyrän kaarella, jonka keskipiste on pisteessä (0, 1). Kun liu’utat α-liukua, niin havaitset että A todella on ympyrän kaarella.

galilei2_ggb

Fysiikkaa hallitsevat henkilöt ymmärtävät, että liukuvan kappaleen kiihtyvyys tässä tapauksessa suorakulmaisissa koordinaateissa on (g sin(α°) cos(α°) , – g sin²(α°)), missä g on putoamiskiihtyvyys. Koska vakiokiihtyvyydellä levosta lähtevän kappaleen paikka on suoraan verrannollinen kiihtyvyyteen ja ajan neliöön, niin jätän turhat vakiokertoimet pois. Näin ollen paikan koordinaatit ajan funktiona ovat muotoa (2 sin(α°) cos(α°) – sin(α°) cos(α°) t², 2 sin²(α°) – sin²(α°) t²). Luodaan aikaa kuvaava liuku. Kirjoita syöttökenttään

t = 5

Klikkaa Algebra-ikkunassa t:n vasemmalla puolella olevaa pompulaa. Klikkaa hiiren oikealla painikkeella liukua ja muuta sen ominaisuudet Min: 0, Max: 5 Animaatioaskel: 0.1.

Muokataan A pistettä. Kaksoisklikkaa A-pistettä Algebra-ikkunassa ja Määrittele uudelleen -ikkunassa pisteen A arvoksi

(2sin(α°) cos(α°) - sin(α°) cos(α°) t², 2sin(α°)² - sin(α°)² t²)

Kun liu’uta t-liukua, niin havaitset että kappale (piste) lähtee ympyrän kaarelta ja kulkee origon kautta. Jos klikkaat pistettä A Algebraikkunassa ja laitat jäljen käyttöön, havaitset että kyseessä on kiihtyvä liike.

galilei21_ggb

Luodaan useita pisteitä käyttämällä Jono-komentoa. Kirjoita syöttökenttään

Jono((2sin(α°) cos(α°) - sin(α°) cos(α°) t², 2sin(α°)² - sin(α°)² t²), α, 0, 180, 10)

Komento luo listan L1, jossa on pisteitä suorakulmaisissa koordinaateissa (2sin(α°) cos(α°) – sin(α°) cos(α°) t², 2sin(α°)² – sin(α°)² t²) siten, että kulma muuttuu 10 asteen välein. Huomaa että tässä kulma α on jono-komennon sisäinen muuttuja ja se ei riipu algebraikkunan α-muuttujasta.

Piilota piste A Algebra-ikkunan pompulasta. Hävitä vanhat jäljet liikuttamalla Piirtoalueen koordinaatistoa tai Näytä-valikon Päivitä näkymät-komennolla. Tee animaatio klikkaamalla hiiren oikealla painikkeella Algebraikkunan t-muuttujaa ja laita jälki käyttöön, jos siltä tuntuu.

galilei22_ggb

Myös alkuperäisen ympyrän alimman pisteen jälkeen kappaleet liikkuvat samalla ympyrän kaarella. Aikamakeeta. Todista, se on sinun tehtäväsi, minä lähden kalaan.

Katso työkirjani GeoGebra-materiaaleissa.

Galilein kaunis kaltevan tason lause

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

[edit. 7.6.18 Korjasin kulman 10° -> 30° suorakulmaiseen koordinaatistoon, sekä toiseen kohtaan, jossa oli virhe.]

 

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 ja ne laatikoituna. 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


[17.5. korjasin kirjoitusvirheitä ja muokkasin Datafunktio-lukua]