sunnuntai 12. maaliskuuta 2017

Colosseumin eksentrisyys ja GeoGebra


Jonkin ohjelmiston käyttökelpoisuutta on usein hyvä yrittää testata ongelmalla, jossa todennäköisesti joudutaan ohjelmiston mahdollisuuksien rajoille. Ratkaisu ehkä voidaan löytää, mutta matkalla törmätään ohjelmiston ongelmakohtiin ja rajoituksiin.

Googlelta löytyy hyvä ilmakuva Rooman Colosseumista. Ääriviiva näyttää ellipsiltä. Miten tarkoin se on? Jos se on, niin mikä olisi eksentrisyys?

Kuvan saa vaivatta luetuksi GeoGebraan. Ellipsi tulee määrätyksi, jos tunnetaan viisi pistettä sen kehältä. GeoGebrasta löytyy valmis työkalu, ja naputtelemalla viisi pistettä Colosseumin reunalta saadaan piirretyksi ellipsi, joka hämmästyttävän hyvin yhtyy reunaan. Mitenkähän Colosseumin arkkitehti on rakennelman suunnitellut?

Seuraavassa käsittelen vain kuvassa olevaa ulompaa ellipsiä. Tämän yhtälö $c$ löytyy GeoGebran algebraikkunasta. Yhtälön avulla voidaan hakea ellipsin keskipiste, akselit ja eksentrisyys. Käytössä ovat grafiikka-, algebra- ja CAS-ikkunat. Laskenta voi ehkä olla yksinkertaisempaakin, joten otan mielelläni vastaan kommentteja.

Pohjana on analyyttinen geometria sellaisena kuin sitä aikoinaan yliopistoissa opetettiin. Nykyään ei enää. Referenssinä voi käyttää vanhoja yliopistotason oppikirjoja, joiden uusimmassa päässä on oma kirjani Algebra ja geometria.  En esitä seuraavassa teoriaa enkä perustele yhtälöiden muodostamista.

Geogebratiedosto sekä algebra- ja CAS-ikkunoiden pdf-kuvat löytyvät linkeistä http://www.elisanet.fi/simo.kivela/blg/colosseum.ggb
http://www.elisanet.fi/simo.kivela/blg/colosseumAlg.pdf
http://www.elisanet.fi/simo.kivela/blg/colosseumCAS.pdf

CAS-laskennan riveillä 1--4 on määritetty ellipsin keskipiste. Riveillä 5--6 on muodostettu ellipsin yhtälön toisen asteen osan, neliömuodon matriisi $a$. Riveillä 7--8 määritellyt vektorit ovat probleeman tuntemattomat, jotka tarkoittavat pääakselisuuntia. Näille muodostetaan neljä yhtälöä (rivit 9--12): Ensimmäinen vaatii, että kyseessä ovat liittosäteet. Toisen mukaan näiden tulee olla kohtisuoria, jolloin ne ovat akselisuuntia. Kolmas ja neljäs vaativat, että vektoreiden päätepisteet ovat ellipsin kehällä, kun alkupiste on ellipsin keskipisteessä.

Neljän tuntemattoman ja neljän epälineaarisen yhtälön ryhmän ratkaiseminen onnistuu rivillä 13 ja saadaan kahdeksan ratkaisua. Nämä ovat oleellisesti samoja ja eroavat ainoastaan vektoreiden järjestyksen ja vastakkaisuuden suhteen. Kun akselit tunnetaan, niiden pituudet ja eksentrisyys voidaan laskea (rivit 14--18). Colosseumin ulkokehän eksentrisyys on 0.60.

Ratkaiseminen siis onnistui. Millaisia olivat kokemukset?

Yrityksiä ja erehdyksiä tarvittiin paljon. GeoGebran dokumentaatiosta ei ollut aivan helppoa löytää tarjolla olevia funktioita tai komentoja ja niiden käyttöä tai merkitystä. Muutaman kerran GeoGebra kaatui ja hukkasi kaiken siihen mennessä lasketun. Aloinkin tallettaa tiedoston parin kolmen operaation välein.

Eksentrisyyden laskemisessa tuli yllätys. Laskua varten täytyy tietää, kumpi akseli on iso ja kumpi pieni. Useamman kerran laskettaessa tuli vaihdellen oikea tulos ja kompleksinen arvo. Syynä on, että GeoGebra ilmeisesti laskee ajoittain yhtälöryhmän ratkaisun uudelleen ja tulokset tulevat eri järjestyksessä.  Tämä johtaa ison ja pikku akselin roolien vaihtumiseen. Koodissa siis pitäisi testata, kumpi vektorinpituus on suurempi ennen eksentrisyyden laskemista.  Toisinaan yhtälöryhmälle tuli myös virheellinen ratkaisu.

Kyse on periaatteessa siitä, onko laskentadokumentti dynaaminen ja mikä muutos aiheuttaa sen uudelleen laskemisen. Luontevinta ehkä olisi, että se lasketaan uudelleen vain käyttäjän nimenomaisesta käskystä.

Laskenta on tehty paikallisesti asennetulla GeoGebralla. Verkkoversiossa en saanut yhtälöryhmän ratkaisua onnistumaan.

Luonteva ajatus olisi pakata laskennan vaiheet makroksi, jolla olisi yksi argumentti, nimittäin ellipsi, jota lähdetään tarkastelemaan. Tällöin saataisiin vähällä vaivalla esimerkiksi Colosseumin sisemmän ellipsin eksentrisyys.  GeoGebrassa voidaan tehdä komentoja sisältäviä skriptejä, jotka käynnistetään esimerkiksi painikkeesta. En kuitenkaan löytänyt tapaa antaa näille argumenttia (parametria). Joko se ei ole mahdollista tai dokumentaatio oli minulle liian vaikeaa.

GeoGebra on monessa suhteessa näppärä työkalu, mutta CAS-osio ei ole täysin onnistunut. Yksinkertaiset tehtävät kyllä sujuvat, mutta mahdollisuutta kasvaa sen mukana vaativampiin tehtäviin ei oikein ole. Sääli.

perjantai 3. maaliskuuta 2017

Matematiikan kai pitäisi olla matematiikkaa



Ymmärtämätön CAS-ohjelmistojen käyttö lukiomatematiikassa saattaa uhata matematiikan oppimista. Oheinen GeoGebra-kuvio voisi olla vastaus tehtävään, jossa annetaan yksi taso yhtälön avulla ja toinen kolmen pisteen avulla. Tehtävänä on määrittää toisenkin tason yhtälö ja tasojen välinen kulma.

GeoGebrassa niin kuin monessa muussakin CAS-ohjelmassa on tarjolla valmiita funktioita: Plane (suomeksi Taso) antaa tason yhtälön, kun argumentteina on kolme tason pistettä. Angle (Kulma) antaa tasojen välisen kulman radiaaneissa, kun argumentteina ovat yhtälöiden kertoimista saadut lukukolmikot. Tehtävän ratkaisemiseen riittää tietää, millaisia GeoGebra-funktioita on käytettävissä, niiden sisällä olevasta matematiikasta ei tarvitse tietää mitään. Radiaanit muunnetaan asteiksi maagisen näköisellä tempulla: kirjoitetaan kulman perään $/^\circ$.

Eihän tämä ole matematiikkaa. Kyseessä on erään ohjelman syntaksin ja makrojen opettelu.  Eikä ohjelmaa tarvitse enää missään, kun on valkolakin saanut. No, poikkeuksena matematiikan opettajat.

Yleensä ensimmäinen ajatus tilanteen korjaamiseksi on laatia ylioppilaskoetta varten säännöt, miten ohjelmaa saa tai ei saa käyttää ja millaisia lausumia tai perusteluja koesuoritukseen tulee sisällyttää. Matematiikan tunteja voidaan tietenkin käyttää näiden sääntöjen opetteluun, mutta ei sekään ole matematiikkaa.

Perusongelmana on, että matematiikan osaamista on perinteisesti testattu antamalla laskettavaksi joukko tehtäviä. Jos nämä on saatu edes likimain oikein, on katsottu, että matematiikan osaaminen on tullut näytetyksi. Laskentavälineiden aikakaudella näin ei kuitenkaan ole. Hyvillä ohjelmistoilla on mahdollista saada oikeita tuloksia mitään ymmärtämättä. Tosin myös täysiä päättömyyksiä.

Luontevaa olisi luopua ajatuksesta, että oikein laskettu lasku osoittaa ymmärtämistä.  Kysyttäköön sitä, mitä halutaan testata. Esimerkiksi on selostettava, millaisella algebrallisella menettelyllä saadaan tason yhtälö, kun kolme tason pistettä tunnetaan.  Mukaan itse laadittu esimerkki menettelyn soveltamisesta. Arvostelusta voi tulla vaikeampaa, mutta annetaanhan monissa reaaliaineissakin esseevastauksia.

Ohjelmakoodien kirjoittaminenkin soveltuisi tähän yhteyteen. Koodihan on tapa kuvata laskentamenettely.

Koulumaailmassa eniten käytettyjen CAS-ohjelmien (ei yksin GeoGebran) kehitys on ikävä kyllä edennyt väärään suuntaan. Valmiiden funktioiden, komentojen ja toimintojen määrä on suuri ja kasvaa jatkuvasti, mikä lisää kiusausta keskittyä matematiikan opinnoissa näiden opetteluun sen sijaan, että paneuduttaisiin peruskäsitteisiin ja -toimintoihin. Parempi olisi tyytyä melko harvoihin perustoimintoihin, joiden avulla tulisi itse ohjelmoida pidemmälle meneviä funktioita ja toimintoja. Tällöin opittaisiin asioita, joilla on käyttöä myöhemmässä elämässä.

Ohjelmakoodin kirjoittamisella on lisäksi kasvatuksellinen merkitys. Jos koodi ei toimi, se ei ole oikein. Virhe voi olla pieni, mutta se on korjattava eikä selitettävä tuotosta melkein oikeaksi.