Näytetään tekstit, joissa on tunniste laskentaohjelma. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste laskentaohjelma. Näytä kaikki tekstit

lauantai 30. maaliskuuta 2024

Vaihtoehtoisia ratkaisutapoja: algebra, geometria, tietokone

Tammikuun blogissani (11.1.2024) esittelin American Mathematical Societyn seinäkalenteria ja muun ohella joulukuun 30. päivän geometrista tehtävää. Tässä oli annettuna neliö alaltaan 60 yksikköä ja annetulla geometrisella konstruktiolla muodostettiin neliö, jonka ala piti määrittää. Tehtävän teki tavallisuudesta hieman poikkeavaksi 60 yksikön neliön asento, jota ei kiinnitetty, vaan sitä voitiin kiertää vapaasti nurkkapisteensä ympäri.


Kalenterin tehtävien vastauksena on (useimmiten) kyseisen päivän numero, tässä siis 30. Ongelmana varsinaisesti on, miten tulos voidaan laskea tai päätellä, ja mitä erilaisia vaihtoehtoja tähän on. En tuolloin ryhtynyt itse miettimään asiaa. Myöhemmin kokeilin, miten GeoGebra taipuu ongelman käsittelyyn, ja hyvinhän se onnistui: lähtökohtana olevaa neliötä saattoi kiertää, ja kysytty ala oli aina 30 yksikköä. Neliön kokoa saattoi myös suurentaa, ja pinta-alojen suhde oli aina 2.

Tehtävän saattoi siis ratkaista GeoGebralla. Voidaan tietenkin keskustella siitä, onko tämä hyväksyttävä tapa, koska ratkaisu on tehty tietokoneella, joka vieläpä on laskenut asiat numeerisesti. Tietokoneen voi kuitenkin panna laskemaan laskut symbolisesti ja ns. tarkoilla arvoilla, jolloin päättelystä tulee periaatteessa pätevä. Kyse onkin siitä, mihin kaikkeen tietokonetta saa matematiikassa käyttää. Opetuksellisista tai muista syistä eri yhteyksissä voi olla erilaisia vaatimuksia. 

Käsin laskettaessa tarvittava algebra on aika yksinkertaista. Jos piste $O$ on origo, pisteen $B'$ koordinaatit ovat $(z,z)$, vihreän lähtökohtaneliön sivun pituus on $s$ ja kiertokulma $t$, niin pisteen $A'$ koordinaatit ovat \[(z + s\cos(t), z + s\sin(t)).\] Punaisen neliön keskipisteen $K$ koordinaatit ovat puolet näistä. Nämä ovat myös vektorin $\vec{OK}$ komponentit ja vektorin $\vec{KA}$ komponentit saadaan vaihtamalla järjestys ja jälkimmäisen merkki. Pisteen $A$ koordinaatit saadaan vektorisummasta $\vec{OK} + \vec{KA}$: \[(z + s(\cos(t)+\sin(t))/2,-s(\cos(t)-\sin(t))/2).\] Jäljellä on saadun pisteen $A$ ja pisteen $B = (z,0)$ etäisyyden laskeminen. Sievennyksen jälkeen tulokseksi tulee $s/\sqrt{2}$.

Tehtävä on kuitenkin tyypiltään sellainen, että sen luontevin ratkaisu ainakin vielä puoli vuosisataa sitten olisi ollut puhtaan geometrinen. Jukka Liukkonen kommentoi minulle sähköpostissa ratkaisua tästä näkökulmasta. Edellä oleva kuvio (johon olen lisännyt pisteen $K$) on hänen käsialaansa. Oleellista tällaisissa geometrisissa ratkaisuissa usein on sopivan apupiirroksen löytäminen. Tässä tapauksessa apupiirroksen muodostavat mustalla viivalla piirretyt kolmiot $OA'B'$ ja $OAB$. Näissä kulmat $A'OB'$ ja $AOB$ ovat yhtä suuret, koska niiden vasempien kylkien välinen kulma on $45^\circ$ neliön sivun ja lävistäjän välisenä kulmana, ja sama koskee oikeiden kylkien välistä kulmaa. Sivujen $OA'$ ja $OA$ välinen suhde on $\sqrt{2}$ neliön lävistäjän ja sivun suhteena. Sama koskee sivuja $OB'$ ja $OB$. Tällöin kolmiot ovat yhdenmuotoiset ja kolmansien sivujen $A'B'$ ja $AB$ suhde on myös $\sqrt{2}$.

Tehtävän ratkaisemiseen on siis tarjolla kolme eri tapaa: ohjelmiston käyttö, algebra (lausekkeiden manipulointi) ja geometria (Eukleideen tapaan). Mikä näistä on paras?

Olen joskus esittänyt, että koulumatematiikan tavoitteet pitäisi pohtia uudelleen. Sen jälkeen harkita sisällöt ja luoda esitystavalle johdonmukainen punainen lanka. Matematiikka on kumulatiivista eikä detaljikokoelma. Edellä esitetyt ratkaisuvaihtoehdot nostavat esiin erilaiset vaihtoehdot tavoitteiden asettelussa. Oleellista ei ole miettiä parasta vaan sitä, millaisesta näkökulmasta matematiikka halutaan esittää.

Ohjelmiston käyttö painottaa ennen kaikkea tietotekniikan käyttöä. Yleinen kyky tulla toimeen erilaisten ohjelmistojen kanssa onkin epäilemättä hyödyksi riippumatta siitä, onko kyseessä edes matematiikka. On opittava jotakin yleisempää kuin tietyn ohjelmiston tietyt yksityiskohdat. Matematiikkaohjelmistot antavat myös mahdollisuuden tarkastella matemaattisia ongelmia eri näkökulmista ja luoda erilaisia havainnollistuksia. Oleellista on tutkivan asenteen syntyminen. Ohjelmiston pintapuolinen käyttö — kuten esimerkissä — ei kuitenkaan paljoa opeta. Kyseessä ei oikeastaan ole matematiikka lainkaan, eikä yleisempää näkemystäkään synny.

Algebrallinen näkökulma painottaa matematiikan työkaluluonnetta. Tavoitteena on oppia algoritmeja ja menettelyjä ongelmien ratkaisemiseen. Huonoimmillaan tämä tarkoittaa standarditehtäviin keskittymistä ja niiden ulkoa opettelua, parhaimmillaan työkalupakin muodostamista ja kykyä poimia sieltä eri yhteyksiin ehkä sopivia työkaluja. Näihin kuuluu myös laskentaohjelmien käyttö ja ohjelmointi. Edellytyksenä on tieto lukuisista asioista, ymmärrys erilaisista lausekkeista ja kyky niiden käsittelyyn. Todelliset reaalimaailman tehtävät ovat yleensä laajoja ja vaikeita. Tyytyminen yksinkertaistettuihin versioihin kuitenkin johtaa herkästi kieroutuneeseen näkökulmaan: triviaalit tehtävät, mutta monipuoliset työkalut, joiden luonnetta ei opita ymmärtämään.

Euklidisen geometrian perusidea on johtaa päättelyllä geometrisia tuloksia lähtemällä yksinkertaisista perusoletuksista. Matemaattisen päättelyn idea painottuu. Ongelmat ovat avoimia: on mietittävä, mitä kaikkea on tarjolla ja mitä siitä voisi seurata. Tarvitaan jonkinlaista luovaa ajattelua enemmän kuin algebrallisessa työkalupakissa. Avoimuus tekee myös lähestymistavasta vaikean: Deduktiivisen päättelyn idea ei välttämättä aukea. Ei aina ole myöskään helppoa keksiä rakennetta tai kuviota, joka laukaisee ongelman. Toisaalta tietty määrä geometristen kuvioiden alkeisominaisuuksia kuulunee yleissivistykseen. Asioita voi havainnollistaa sopivalla piirtelyohjelmalla.

Edellä esitetty tehtävä tarjoaa yhden esimerkin näkökulman pohdiskeluun. Itse asiassa kaikkia näkökulmia tarvitaan, mutta minkä ajatuksen varaan matematiikan opetus kannattaisi rakentaa? Vielä puoli vuosisataa sitten geometrialla oli merkittävä osuus. Miten nyt?

 

torstai 22. helmikuuta 2024

Koulumatematiikka ja alkeellinen ohjelmointi

Lukion opetussuunnitelman mukaan opiskelijan tulisi paljon muun ohella kehittyä hyödyntämään tietokoneohjelmistoja. Tarkemmin ei täsmennetä, mitä tämä oikeastaan tarkoittaa. Todetaan vain tavoitteeksi, että opiskelija osaa käyttä ohjelmistoja kunkin kurssin matemaattisissa tehtävissä. Huippuna on oppia ohjelmoimaan yksinkertaisia algoritmeja. Käytännössä tämä lienee johtanut melko triviaalien asioiden katsomiseen laskimista tai ohjelmistoista ja tutustumiseen muutamiin ohjelmistoihin, joita tuskin myöhemmissä opinnoissa tai elämässä yleensäkään tullaan käyttämään.

Kuitenkin matematiikka voisi tarjota ympäristön, jossa olisi luontevaa oppia ymmärtämään ohjelmoinnin idea. Tällä puolestaan on merkitystä tietotekniikkaa vahvasti hyödyntävässä yhteiskunnassa myös ihmiselle, joka ei koskaan tulisi ohjelmoimaan yhtään mitään. Jonkinlaisena ohjelmoinnin synonyymina usein käytetään koodausta, mutta tämä johtaa minusta harhaan. Kyse ei ole siitä, että pitäisi oppia kirjoittamaan tietyn syntaksin mukaista koodia, vaan periaatteen ymmärtämisestä. Toki mikä tahansa ohjelmointi edellyttää oikeaa syntaksia, mutta tätä ei ole syytä painottaa välttämättömyyttä enempää. 

Mitä tällainen ohjelmointi sitten voisi olla? Viime syksyn pitkän matematiikan ylioppilaskokeen neljäs tehtävä muodostaa hyvän lähtökohdan pohdiskeluille:

Vektorit $\vec{u} = 3\vec{i}+\vec{j}-2\vec{k}$ ja $\vec{v} = \vec{i}+2\vec{j}-2\vec{k}$ virittävät origon kautta kulkevan tason $T$, eli ne ovat tason suuntavektoreita. Määritä pisteen $(6,7,1)$ etäisyys tasosta $T$.

Tämä on kokeen A-osan tehtävä ja sellaisena tarkoitettu ratkaistavaksi varsin perinteiseen tapaan. Se on kuitenkin tehtävä, jonka ratkaiseminen symbolista laskentaa (CAS) hyödyntäen olisi matematiikan oppimisen kannalta perusteltua. Tällöin numeeriset laskut jäävät toissijaisiksi (toisin sanoen ohjelman tehtäviksi), mutta laskija joutuu miettimään algoritminsa rakenteen. Oleellista on, että tehtävän oliot (vektorit, pisteet jne.) esitetään symboleilla, joilla niihin algoritmissa viitataan. Ratkaisu GeoGebralla voisi näyttää seuraavalta (kuvan saa suurennetuksi klikkaamalla):


Tällaisena ratkaisu on oikeastaan ohjelmakoodi. Vaihtamalla tason virittäjävektorit ja tarkasteltava piste saadaan samantien tehtävä ratkaistuksi toisenlaisilla lähtötiedoilla. Näiden komponentit voivat jopa olla symboleja, jolloin tulos on jo aika pahannäköinen algebrallinen lauseke. Ohjelman syöttötietoina ovat siten vektorit $\vec{u}$ ja $\vec{v}$ sekä piste $P$, tuloksena saadaan pisteen etäisyys tasosta.


Luontevaa olisi tällöin kirjoittaa ohjelma erilliseksi tiedostoksi tai muodostaa siitä muusta laskennasta riippumaton itsenäinen funktio. Funktion määrittely näyttäisi periaatteessa seuraavalta:

etaisyys(u,v,p) = function{
q := r*u+s*v;
yhtalo := {dot(p-q,u)=0, dot(p-q,v)=0};
ratkaisu := solve(yhtalo,{r,s});
q1 := substitute(q,ratkaisu);
sqrt(dot(p-q1,p-q1))
}

(Olen siirtynyt englanninkielisiin termeihin, kuten ohjelmakoodissa on luontevaa.)

Käsittääkseni GeoGebra ei tue tämänkaltaista funktioiden määrittelyä eikä edellä oleva koodi ole minkään todellisen ohjelmointikielen mukaista. Riippuen ohjelmointikielen tavasta esittää vektorit funktion kutsu voisi olla edellä mainitun esimerkin tapauksessa

etaisyys((3,1,-2),(1,2,-2),(6,7,1))
tai vain
etaisyys(vec1,vec2,pst)
mikäli lähtötiedot on talletettu näihin symboleihin. Tuloksena saadaan kysytty etäisyys.

Valmiiksi ohjelmoitu funktio avaa tien monimutkaisempien tehtävien yksinkertaiseen ratkaisemiseen. Jos esimerkiksi pitäisi etsiä pisteen $(1,2,3)$ kautta kulkevalta vektorin $3\vec{i}-2\vec{j}+6\vec{k}$ suuntaiselta suoralta $s$ pisteet, jotka ovat etäisyydellä $2$ vektoreiden $\vec{u}$ ja $\vec{v}$ määräämästä tasosta, nämä saadaan muodostamalla ensin suoralla olevat pisteet parametrin $t$ funktiona ja ratkaisemalla sitten kyseeseen tulevat parametriarvot etäisyysfunktion avulla muodostetusta yhtälöstä:

suora := (1,2,3)+t*(3,-2,6)
solve(etaisyys(vec1,vec2,suora)=2, t)

Tämä antaa ratkaisuksi kaksi arvoa parametrille $t$ ja näiden avulla voidaan laskea kyseiset suoran pisteet.

Tällainen funktion määrittely voisi olla ensimmäinen askel ohjelmoinnin opetteluun. Kyseessä olisi luonnollinen osa matematiikan opiskelua. Tarpeen mukaan ohjelmointirakenteita voitaisiin ottaa käyttöön lisää painottamatta asiaa varsinaiseksi ohjelmointikielen syntaksin opetteluksi. Ohjelmoinnin kannalta tavoitteena olisi periaatteen ymmärtäminen, ei koodariksi opiskelu.

Matematiikan kannalta painottuisi kokonaisnäkemys tehtävän ratkaisemisen strategiasta laskun yksityiskohtiin keskittymisen sijasta. Tällaiseen työskentelyyn olisi yleensäkin hyvä oppia, ei yksinomaan matematiikassa. Se ehkä vastaisi myös paremmin opetussuunnitelman tavoitetta "kehittää laskemisen, luovan ajattelun sekä ilmiöiden mallintamisen, ennustamisen ja ongelmien ratkaisemisen taitoja".

Oleellinen edellytys on, että käytössä on laskentaohjelma, joka tukee edellä kuvattua menettelyä. En tarkoin tiedä, mikä tilanne on tavallisimmissa CAS-ohjelmissa. Jos GeoGebra ei tue, niin voisiko sitä kehittää?

Isot symbolilaskennan ohjelmistot kyllä tukevat menettelyä, mutta niiden koulukäyttö ei monestakaan syystä ole järkevää. Lopuksi esimerkki edellä olevista laskuista Mathematicalla suoritettuina.



keskiviikko 15. marraskuuta 2023

Gauss ja 17-kulmio

Kaikkien aikojen merkittävimpänä matemaatikkonakin tunnettu Carl Friedrich Gauss (1777 – 1855) osoitti teoksessaan Disquisitiones Arithmeticae (julkaistu 1801) paljon muun ohella, että säännöllinen 17-kulmio on mahdollista konstruoida geometrisesti, ts. ainoastaan harppia ja viivoitinta käyttäen. Konstruktiota Gauss ei kuitenkaan esittänyt.

Säännöllisten monikulmioiden geometrinen konstruointi on kiinnostanut geometrikkoja antiikin ajoista lähtien. Esimerkiksi viisikulmion konstruktion esittää Eukleides Stoikheia- (Elementa-) teoksensa neljännessä kirjassa propositioina 10 ja 11. (Katso esimerkiksi englanninkielistä tai kreikankielistä esitystä.) Seitsemäntoistakulmion ongelmaa ei kuitenkaan kukaan ole ennen Gaussia ratkaissut.

Miten asiaa voisi nykyisillä työvälineillä tutkia?


Seitsemäntoistakulmio

Seitsemäntoistakulmion piirtäminen grafiikkaohjelmalla on helppoa: Koska piste $(\cos(t),\sin(t))$ sijaitsee origokeskisellä yksikköympyrällä kulman $t$ (radiaaneissa) suunnassa, saadaan 17 tasavälistä ympyrän pistettä lausekkeista \[(\cos(2\pi k/17),\sin(2\pi k/17)),\] missä $k$ saa arvot $0,\ 1,\ 2,\ \dots\,\ 16$. Antamalla $k$:lle lisäksi arvo $17$ saadaan ensimmäinen piste uudelleen. Piirtämällä murtoviiva näiden pisteiden kautta saadaan yksikköympyrän sisällä oleva säännöllinen 17-kulmio.

Toinen vaihtoehto on laskea vaikkapa valmiilla laskentaohjelman komennolla numeerinen ratkaisu polynomiyhtälölle $x^{17} - 1 = 0$. Tällä on 17 ratkaisua, joista yksi on reaalinen, $x = 1$, ja muut kompleksisia. Näiden reaali- ja imaginaariosat antavat samat 17-kulmion kärkipisteiden koordinaatit kuin edellä.

Gauss tutki 18-vuotiaana vuonna 1796 polynomiyhtälöiden ratkaisemista ratkaisukaavoilla, ts. neljän peruslaskutoimituksen ja juurenoton avulla. Toisen asteen yhtälön ratkaisukaavat olivat tunnettuja jo vanhalla ajalla, kolmannen ja neljännen asteen yhtälön ratkaisukaavat olivat löytyneet 1500-luvulla. Viidennen asteen yhtälölle oli yleistä ratkaisukaavaa yritetty menestyksettä löytää parin sadan vuoden ajan, ja alkoi vaikuttaa ilmeiseltä, että sellaista ei ehkä voitaisikaan löytää. Vuonna 1824 Nils Henrik Abel lopulta todisti, että viidennen ja korkeamman asteen yhtälöille ei yleistä ratkaisukaavaa ole.


Gaussin esitys Disquisitiones Arithmeticae -teoksessa. Juurilausekkeessa
on painovirhe: neljännen termin edessä tulee olla plusmerkki.

Ratkaisu peruslaskutoimitusten ja juurten ottojen avulla voi kuitenkin olla erikoistapauksissa mahdollista. Gauss tutki muun muassa muotoa $x^n - 1 = 0$ olevia yhtälöitä ja totesi, että eräissä tapauksissa niiden ratkaisut voidaan lausua juurilausekkeita käyttäen. Arvo $n = 17$ on tällainen. Siten esimerkiksi pisteen $P_1$ x-koordinaatille $\cos(2\pi/17)$ saadaan lauseke \[-\frac{1}{16}+\frac{\sqrt{17}}{16}+\frac{1}{16} \sqrt{34-2\sqrt{17}}+\frac{1}{8} \sqrt{17+3 \sqrt{17}-\sqrt{34-2\sqrt{17}}-2 \sqrt{34+2 \sqrt{17}}}.\] Tämän löytäminen ei ole aivan helppoa enkä paneudu siihen, en myöskään lukua $n$ koskeviin ehtoihin.

Symbolisen laskentaohjelman käyttäjä voi yrittää löytää edellä mainitun juurilausekkeen muokkaamalla kosinifunktion arvoa $\cos(2\pi/17)$. Laskentaohjelma Mathematican komento ToRadicals tuottaa lausekkeen \[\frac{1}{4 \sqrt{\frac{2}{15+\sqrt{17}-\sqrt{2\left(17-\sqrt{17}\right)}+\sqrt{2 \left(34+6\sqrt{17}+\sqrt{2 \left(17-\sqrt{17}\right)}-\sqrt{34\left(17-\sqrt{17}\right)}+8 \sqrt{2\left(17+\sqrt{17}\right)}\right)}}}}.\] En saanut Mathematicaa sieventämään tätä. Sen ja edellä saadun juurilausekkeen erotuksen ohjelma kuitenkin sieventää nollaksi, joten ne esittävät samaa lukua.

Mistä Gauss sitten päätteli, että 17-kulmio voidaan piirtää geometrisesti? Mainittu kosinin arvo riippuu vain yhteen-, vähennys-, kerto- ja jakolaskusta sekä neliöjuuren otosta, ja jokainen operaatio voidaan erikseen toteuttaa harpilla ja viivoittimella. Janojen $a$ ja $b$ yhteen- tai vähennyslasku tarkoittavat janojen asettamista samalle suoralle, kerto- ja jakolasku niiden sekä yksikköjanan asettamista kahdelle toisensa leikkaavalle suoralle ja nelijuuren otto suorakulmaisen kolmion piirtämistä puoliympyrän sisään; kuviot alla. Täten juurilausekkeen edustama pituus saadaan vaiheittain konstruoiduksi. Kun yhden 17-kulmion kärjen paikka on täten konstruoitu, loput saadaan harpilla helposti. Tällä tavoin tehty konstruktio ei ole kovin sujuva, mutta se osoittaa  geometrisen konstruktion mahdolliseksi. Gaussille riitti tämä. Myöhemmin on toki esitetty sujuvampiakin konstruktioita.

Juurilausekkeen konstruoinnissa tarvittavat geometriset alkeiskonstruktiot.

Tarkempia tietoja ja yksityiskohtia löytyy ainakin Wikipedia-artikkeleista Konstruoituva monikulmio ja Seitsentoistakulmio sekä niiden englannin- (tai muun-) kielisistä vastineista. (Näissä on eroja. Esimerkiksi saksankieliset näyttävät sisältävän materiaalia, jota muissa ei ole.) Artikkelit sisältävät myös animaatioita 17-kulmion geometrisesta konstruointiprosessista. Juurilausekkeen laskeminen löytyy tietenkin Disquisitiones Arithmeticae -teoksesta ja ainakin Jörg Bewersdorffin kirjasta Galois Theory for Beginners, varmaan muualtakin. Saksankielisessä Wikipedia-artikkelissa näyttää periaate myös olevan kuvattuna.


tiistai 27. syyskuuta 2022

Geometrian probleema ja sen moderni versio


Vanha geometrian tehtävä saattaa antaa aihetta monenlaisiin pohdiskeluihin, kun avuksi otetaan laskentaohjelmat.

Annettuna on yllä olevan kuvion mukainen tilanne, jossa $\alpha = 60^\circ$ ja $\beta = 45^\circ$. Kysytään kulman $\gamma$ suuruutta. Tämä on tyypillinen tehtävä omalta kouluajaltani. Vaikeutena on liikkeelle lähtö, sopivan idean — ja apupiirroksen — löytäminen. Jos idea löytyy, tehtävä on melko helppo, ellei, ei synny juuri mitään.

Piirretään pisteestä $A$ normaali janalle $BD$ ja yhdistetään sen kantapiste pisteeseen $C$. Tällöin syntyy ns. muistikolmioita ja tasakylkisiä kolmiota. Kulmia päästään laskemaan vaiheittain eikä tarvita muuta tietoa kuin kolmion kulmien summa. Tuloksena on $\gamma = 75^\circ$. Kuva alla.

Mutta miksi tyytyä vain kulmien arvoihin $\alpha = 60^\circ$, $\beta = 45^\circ$? Voihan $\alpha$ olla mitä tahansa väliltä $]0^\circ,180^\circ[$ ja $\beta$ jotakin $\alpha$:aa pienempää.

Sijoitetaan tilanne koordinaatistoon, piste $A$ origoon ja pisteet $B$ ja $C$ x-akselille. Otetaan tuntemattomiksi kulman $\gamma$ ohella pisteen $D$ koordinaatit $(x,y)$. Jos $\vec{i}$ on tavanomainen yksikkövektori, skalaaritulon avulla saadaan ehdot \[ \cos(\alpha) = \frac{-\vec{i}\cdot\vec{BD}}{|\vec{BD}|}, \quad \cos(\beta) = \frac{-\vec{i}\cdot\vec{CD}}{|\vec{CD}|}, \] jotka määrittävät tilanteen. Nämä tuottavat yhtälöt \[ \cos(\alpha) = \frac{2-x}{\sqrt{(2-x)^2 + y^2}}, \quad \cos(\beta) = \frac{3-x}{\sqrt{(3-x)^2 + y^2}}, \] joista voidaan ratkaista $x$ ja $y$. Ratkaiseminen käsin voi olla työlästä, mutta (ainakin hyvä) symbolisen laskennan ohjelma suoriutuu. Kokeilin Mathematicalla ja GeoGebralla. Kumpikin antaa neljä ratkaisua, GeoGebra tavattoman paljon hankalammat lausekkeet. Tuloksiin on syytä suhtautua rauhallisesti. Ei laskentaohjelma tee sitä, mitä käyttäjä haluaisi, vaan mitä se on ohjelmoitu tekemään, ja tulokset voivat olla mutkikkaita eivätkä aina edes oikeita. Ohjelma pyrkii ottamaan huomioon kaikki tapaukset, mutta ei välttämättä onnistu.

Sijoittamalla Mathematicassa tulokset takaisin yhtälöihin nähdään, että vain kaksi ratkaisuista toteuttaa yhtälöt. Kaksi muuta on ilmeisesti syntynyt neliöjuurien käsittelyn myötä. Vastaavasta sijoittamisesta ei ainakaan käyttämäni GeoGebran versio suoriutunut, mutta numeerisen tarkastelun perusteella tässäkin on kaksi oikeaa ja kaksi väärää ratkaisua. Oikeissa ratkaisuissa x-koordinaatit ovat samat, y-koordinaatit vastalukuja, joten toinen tarkoittaa vain kuvion peilaamista x-akselin alapuolelle.

Mathematican tapauksessa tulos on \[ x = \tfrac{1}{2}(5 - \csc(\alpha - \beta)\sin(\alpha + \beta)), \quad y = \csc(\alpha - \beta)\sin(\alpha)\sin(\beta). \] Suomalaiselle nämä saattavat näyttää hieman oudoilta $\csc$-funktion takia. Tämä on kosekantti, yksinkertaisesti sinin käänteisarvo. Vastaavasti $\sec$, sekantti on kosinin käänteisarvo. Monissa maissa ja sen seurauksena laskentaohjelmissa usein käytetään näitä.

Kun pisteen $D$ koordinaattien lausekkeet ovat käytettävissä, voidaan laskea kaikenlaista. Kulma $\gamma$ saadaan kaksiargumenttisella $\arctan(x,y)$-funktiolla, joka antaa pisteen $(x,y)$ napakulman ja joka on useimmissa ohjelmissa käytettävissä.

Sijoittamalla ratkaisuun esimerkiksi $\beta = \alpha - 15^\circ$ voidaan etsiä ne pisteet $D$, jotka vastaavat kulmien $\alpha$ ja $\beta$ 15 asteen erotusta. Pisteitä voi piirtää ohjelmasilmukalla tai parametrikäyränä, jota useimmat ohjelmistot tukevat. Alkeisgeometriansa hallitsevaa henkilöä ei yllätä, että kyseessä on ympyränkaari. Laskentaohjelma saattaa parametriesityksen perusteella kyetä löytämään myös ympyrälle yhtälön: $x^2 + y^2 - 5x - (2 + \sqrt{3})y + 6 = 0$. Kuva alla, pisteen $D$ mahdollinen sijainti punaisella.

Pienillä muutoksilla voidaan tutkia erilaisia tehtävän variaatioita, mikä usein johtaa algoritmiseen ajatteluun ja kirjoittamaan muutaman rivin ohjelmakoodeja. Edellytyksenä on, että laskentaohjelma tukee ainakin pienimuotoista ohjelmointia. Mathematicassa sujuu hyvin, GeoGebrassa on hankalaa. Mikä esimerkiksi olisi kulman $\gamma$ maksimiarvo, kun kulmien $\alpha$ ja $\beta$ erotus on vakio? Miten maksimiarvo riippuu erotuksen suuruudesta? Sopivatko nämä geometriseen havaintoon?



Ylhäällä: Pisteen $D$ sijainti tapauksessa $\beta = \alpha/3$. Alhaalla vasemmalla: Kulma $\gamma$ kulman $\alpha$ funktiona, kun $\beta = \alpha - 15^\circ$. Alhaalla oikealla: Kulma $\gamma$ kulmien $\alpha$ ja $\beta$ funktiona sekä edellä mainittu käyrä, joka sijaitsee pinnalla.

Erilaisen lähestymistavan tehtävään tarjoavat dynaamisen geometrian ohjelmat, joista GeoGebra lienee tunnetuin. Näissä tarkasteltava kuvio konstruoidaan ohjelman tarjoamien geometristen operaatioiden avulla piirtämällä, jolloin ohjelma laskee pisteiden koodinaatit ja suorien yhtälöt, usein myös perustyyppisten käyrien yhtälöt. Jälkikäteen kuviota voidaan muunnella pisteitä siirtämällä. Urakäyriä (locus) saadaan myös piirretyksi. Symbolisiin lausekkeisiin tai ns. tarkkoihin arvoihin (joita ehkä olisi parempi kutsua symbolisiksi arvoiksi, onhan kymmendesimaalinen likiarvokin jo kohtalaisen tarkka) ei yleensä päästä käsiksi ilman symbolista laskentaa.

maanantai 15. elokuuta 2022

Netti, Pythagoras ja CAS

(CAS = Computer Algebra System, symbolinen laskentaohjelma)

Olen aina silloin tällöin pannut selaimen kirjanmerkeiksi matemaattisesti kiinnostavia verkkosivuja. Usein nämä ovat enemmän tai vähemmän irrallisia yhteen asiaan keskittyviä tekstejä tai havainnollistuksia. Toki löytyy myös isompia kokonaisuuksia käsitteleviä dokumentteja ja sähköisessä muodossa olevia oppikirjojakin.

Lyhyet tekstit ja havainnollistukset yleensä edellyttävät jonkinlaisia perustietoja asiasta, mutta saattavat tämän jälkeen avata uusia näköaloja. Ovat hyödyllisiä ja hauskoja vaikkapa opettajalle tai oppikirjantekijälle.

Alexander Bogomolnyn luoma sivusto Interactive Mathematics Miscellany and Puzzles, tuttavallisemmin Cut the Knot, tarjoaa paljon muun ohella katsauksen Pythagoraan lauseeseen: 122 erilaista todistusta (https://www.cut-the-knot.org/pythagoras/). Joukossa tietenkin tavanomaiset oppikirjoissa esiintyvät, mutta myös paljon muuta. Ehkä kiintoisimmasta päästä on epäsuora todistus:

Lähtökohtana on tavanomainen suorakulmaisen kolmion jako kahteen yhdenmuotoiseen suorakulmaiseen kolmioon alla olevan kuvan mukaisesti.


Pythagoraan väittämän vastaoletus on $a^2 + b^2 \neq c^2$, esimerkiksi siis $a^2 + b^2 < c^2$.

Ison kolmion ja vasemmanpuolisen osakolmion yhdenmuotoisuuden perusteella on $a = sx$, $b = sh$ ja $c = sa$, missä $s$ on verrannollisuuskerroin. Vastaoletuksesta seuraa tällöin $s^2 x^2 + s^2 h^2 < s^2 a^2$ ja siis $x^2 + h^2 < a^2$. Oikeanpuoliselle osakolmiolle pätee vastaavasti $h^2 + y^2 < b^2$. Yhdenmuotoisuuden perusteella on myös $y/h = h/x$ eli $h^2 = xy$. Nyt voidaan arvioida seuraavasti: \[ a^2 + b^2 > (x^2 + h^2) + (h^2 + y^2) = x^2 + y^2 + 2h^2 = x^2 + y^2 + 2xy = (x + y)^2 = c^2. \] Siis $a^2 + b^2 > c^2$, mikä on ristiriidassa lähtökohtana olevan vastaoletuksen kanssa.

Jos olisi  $a^2 + b^2 > c^2$, päädyttäisiin samalla tavoin ristiriitaan $a^2 + b^2 < c^2$. Ainoaksi mahdollisuudeksi siis jää $a^2 + b^2 = c^2$.

Uudet näkökulmat herättävät usein pohtimaan asiaa enemmänkin. Edellä oleva epäsuora todistus viittaa minusta mahdollisuuteen todistaa Pythagoraan lause myös algebrallisesti yhdenmuotoisuuksiin perustuen. Kolmioiden yhdenmuotoisuuksista saadaan ehdot \[a = sx, b = sh, c = sa, a = th, b = ty, c = tb,\] missä $s$ ja $t$ ovat verrannollisuuskertoimia. Kun mukaan liitetään hypotenuusan paloitteluehto $x + y = c$, suorakulmainen kolmio on algebrallisesti karakterisoitu. Seuraako tästä sitten ehto $a^2 + b^2 = c^2$? Voidaanko yhtälöryhmästä eliminoida $x$, $y$, $h$, $s$ ja $t$, jolloin ehkä jäisi jäljelle jotakin symboleja $a$, $b$ ja $c$ koskevaa?

Eliminointi onnistuu käsinlaskulla helposti (voisi sopia ylioppilastehtäväksi), mutta usein CAS-ohjelmistoista löytyy myös valmis eliminointityökalu. Kuvassa on Mathematican suoritus:


Ehdoista siis seuraa Pythagoraan väittämä.

Pythagoraan lause pätee myös käänteisesti: Jos kolmion sivuille pätee $a^2 + b^2 = c^2$, niin kolmio on suorakulmainen. Voitaisiinko tämäkin todistaa jotenkin algebrallisesti?


Olkoon oheisen kuvion mukaisesti $D$ jokin piste sivulla $AB$, jonka pituus on $c$. Onko mahdollista valita $D$ siten, että kolmiot $BDC$, $CDA$ ja $BCA$ ovat yhdenmuotoiset, jos ehto $a^2 + b^2 = c^2$ on voimassa? Toisin sanoen: Onko yhtälöryhmällä \[a = sx, b = sh, c = sa, a = th, b = ty, c = tb, x + y = c\] ehdon voimassa ollessa ratkaisua, kun tuntemattomia ovat verrannollisuuskertoimet $s$ ja $t$ sekä $x$, $y$ ja $h$? Käsinlaskukin sujuu, mutta CAS-ohjelmistosta saattaa löytyä valmis työkalu:


Ratkaisu todellakin löytyy. (Kuvassa Mathematica ei anna heti sievintä muotoa, vaan tarvitaan erillinen sievennyskomento, jossa uudelleen ilmoitetaan oletuksena oleva ehto.) Jos piste $D$ valitaan tämän mukaisesti, ovat kolmiot $BDC$, $CDA$ ja $BCA$ yhdenmuotoiset. Vastinkulmina $BDC$, $CDA$ ja $BCA$ ovat yhtä suuret ja niiden on silloin oltava suoria kulmia. Kolmio $ABC$ on siis suorakulmainen.

Lukija saattaa kysyä, eikö edellä mainitulla yhtälöryhmällä sitten ole ratkaisua, jos Pythagoraan ehto ei ole voimassa. Geometrinen intuitio ehkä sanoisi, että ei ole. Näin onkin (nollaratkaisua lukuunottamatta) ja myös polynomialgebralla asia voidaan osoittaa. CAS-ohjelmista saattaa löytyä sopiva työkalukin, Mathematicalla komento Reduce.

keskiviikko 17. marraskuuta 2021

Yhtälön $2^{\sin(x)^2} + 2^{\cos(x)^2} = 3$ ratkaisemisesta

Koulutason matematiikan opinnoissa yhtälöiden ratkaisemisen merkitys on ollut lähinnä sujuvan lausekkeiden käsittelyn synnyttämisessä. Nykyään kuitenkin ratkaiseminen usein onnistuu jopa yhdellä laskentaohjelman komennolla. Mihin opetuksessa silloin tulisi keskittyä? Edelleen lausekkeiden manipulointiin vai ohjelmistojen komentoihin tai johonkin muuhun?

Otsikon yhtälö on peräisin venäläisestä A. N. Kolmogorovin tekemäksi nimetystä oppikirjasta Алгебра и начало Математического анализа 10-11 класс (algebra ja matemaattisen analyysin alkeet, sivu 299).  Maineikas matemaatikko A. N. Kolmogorov kuoli vuonna 1987, joten hänellä ei ilmeisestikään ole osuutta kirjan nykyisen painoksen laatimiseen, mutta alkuperäinen teksti lienee häneltä.




Kirja sisältää melkoisen määrän käsin laskettaviksi tarkoitettuja harjoitustehtäviä, ja onkin ilmeistä, että tavoitteena on sujuvuuden saavuttaminen mekaanisessa laskemisessa ja lausekkeiden käsittelyssä.  Kokonaisuutena harjoitustehtävät antavat jopa hieman tylsän vaikutelman. Tietotekniikan rooli ei näy eikä se kirjan iästä johtuen voisikaan. Pohtimisen aihetta tehtävien tarkastelu kuitenkin antaa.

Esillä olevan yhtälön käsin ratkaiseminen on suhteellisen helposti tehtävissä, jos on kykyä muokata lausekkeita ja tämän seurauksena taito nähdä erilaisia mahdollisuuksia. Ottamalla uudeksi tuntemattomaksi $t = 2^{\sin(x)^2}$ yhtälö pelkistyy toisen asteen yhtälöksi $t^2 - 3t +2 = 0$, jonka juuret ovat $t_1 = 1$ ja $t_2 = 2$. Tällöin tulee olla $\sin(x)^2 = 0$ tai $\sin(x)^2 = 1$ ja ratkaisuksi saadaan $x = n\pi/2$, missä $n$ on kokonaisluku.

Miten laskentaohjelmat sitten suoriutuvat? GeoGebra löytää tuloksen vaivatta. Mathematica ei suoriudu yhtä vaivatta, mutta antaa toisaalta enemmän ajattelemisen aihetta ja lisää ratkaisuja. Tästä seuraavassa tarkemmin. Jos lukija kokeilee muita ohjelmia, kuulen asiasta mielelläni.

Ensimmäinen yritys Mathematicalla epäonnistuu. Grafiikka kuitenkin osoittaa, että yhtälöllä on juuri sellaiset ratkaisut kuin käsin laskussa todettiin:




Lisäämällä komentoon vaatimus ratkaisujen reaalisuudesta päästään haluttuun tulokseen:


Tämä antaa kuitenkin aiheen epäillä, että yhtälössä on jotakin kompleksisuuteen liittyvää, joka on Mathematicalle vaikeata. Helpotetaan tilannetta muokkaamalla yhtälö uuteen muotoon, ts. lausutaan trigonometriset funktiot eksponenttifunktion avulla, ja tällöin saadaankin ratkaisu:



Tulos on kuitenkin yllättävän monimutkainen. Näyttää siltä, että yhtälöllä on kompleksisia ratkaisuja ja näiden löytämiseen eivät Mathematican rutiinit riitä ilman lisäohjausta. Tämä ei ole kovin yllättävää: lausekkeiden muokkaus ei aina ole yksinkertaista ja täydellistä algoritmia tuskin on. Käyttäjän näkemys ja ohjaus saattaa olla tarpeen. Reaalinen ratkaisu tästä löytyy sijoittamalla vakiolle $C_2$ arvo nolla, mutta myös kompleksisia ratkaisuja on, alla joitakin likiarvoina:



Näiden sijoittaminen yhtälöön näyttää todellakin toteuttavan sen:



Grafiikka antaa mahdollisuuden pidemmälle meneviin tutkimuksiin. Jos yhtälöön sijoitetaan $x$:n paikalle $x + iy$ ja tuloksesta erotellaan reaali- ja imaginaariosa, saadaan kaksi varsin monimutkaista lauseketta:

Nämä ovat $= 0$ eräillä käyrillä kompleksitasossa (xy-tasossa) ja käyrien leikkauspisteet ovat yhtälön kompleksisia juuria. Kuvan piirtäminen auttaa hahmottamaan tilannetta.

Reaaliosa sininen, imaginaariosa vihreä, kompleksiset juuret (osa) punaiset


Kiinnostuneelle lukijalle on tarjolla Mathematican syöttötiedoksi kelpaava dokumentti ja tämän pdf-muoto.

Mitä tästä sitten pitäisi opetuksen suhteen päätellä?

Kompleksisilla potensseilla ei kannata hurjastella, mutta kompleksilukujen alkeet ehkä pitäisi tuntea, aikoinaan ne on opetettukin. Laskentaohjelmien tulostukset eivät tällöin aiheuttaisi ihmettelyä.  Laskentaohjelmat ovat hyviä työkaluja, ja niiden käyttöön on hyvä harjaantua. Tämä ei kuitenkaan tarkoita ainakaan ensisijaisesti komentojen opettelua vaan asenteen omaksumista: kokeillaan ja tutkitaan. Ei pidä jahdata ns. oikeata ratkaisua, vaan pyrkiä lisäämään asian ymmärtämistä.  Komentoja ei tarvitse muistaa, mutta tulisi kehittää kyky löytää ohjelman dokumentaatiosta se, mitä kulloinkin tarvitaan, ja myös se, mitä koskaan ennen ei ole käytetty. Grafiikkakin on erinomainen työkalu, jota ei pidä väheksyä.

sunnuntai 12. syyskuuta 2021

Paina nappia, ei tarvitse ymmärtää

Facebook-keskustelussa kerrottiin, että Microsoftin Edge-selaimessa on Maths Solver -niminen matematiikkaohjelma. Oletuksena se ei tosin ole näkyvissä, mutta asetuksista (Settings/Appearance) saa käynnistyspainikkeen yläpalkkiin. Jos selaimessa on auki jokin matematiikkaa sisältävä dokumentti, siinä olevan kaavan tai yhtälön saa kopioiduksi Solveriin ja käynnistettyä ratkaisemisen (mitä se sitten onkin). Erinomainen työkalu etäopiskelijalle: opettaja antaa tehtävät nettidokumentissa, yhtälö tai kaava kopioidaan Solveriin, painetaan nappia ja tulos on valmis! Ei rasittavaa ajattelua.

Kokeilin tietenkin kaikenlaista. Alla olevassa kuvassa on erään juuriyhtälön ratkaisu. Kysyin Facebook-keskustelussa, millaisia ajatuksia tämä herättää. Vastauksia ei juurikaan tullut, joten ilmeisesti pohdintaa ei ihmeemmin herännyt. Minusta olisi pitänyt. Tuloshan on koulukurssin pohjalta hämmentävä, kun on opittu, että negatiivisesta luvusta ei voi ottaa neliöjuurta. Siitä huolimatta tulos on oikea. Vastauksen merkintä complex solution vihjaakin, että on kyse kompleksiluvuista. Vihjeellä on kuitenkin merkitystä vain henkilölle, joka tietää edes jotakin kompleksiluvuista.



Erilaisten laskentavälineiden ja -ohjelmien yleistyessä tällaisiin — ja vastaaviin — tilanteisiin törmätään toistuvasti. GeoGebrakin ratkaisee edellä mainitun juuriyhtälön samalla tavoin. Sen matemaattisen sivistyksen, jota ainakin pitkän matematiikan lukijalle tarjotaan, tulisikin sisältää sellainen periaatteellinen tieto monista asioista, että laskentavälineiden ymmärtäminen on mahdollista ja syntyy kyky tarvittaessa hankkia lisätietoja. Tällaisiahan netti kyllä tarjoaa, mutta jonkinlainen pohja dokumenttien lukemisessa on tarpeen.

Alla on toinen esimerkki, jossa Maths Solveriin on syötetty lauseke $\tan(x+y)$. Ajattelin alunperin, että tästä ehkä tulisi tangentin yhteenlaskukaava, mutta Solver derivoikin lausekkeen $x$:n suhteen ja sai aika monimutkaiselta näyttävän tuloksen. Pieni tarkastelu osoittaa kuitenkin, että osoittaja sievenee ykköseksi ja tulos on mitä pitääkin. Elementaari sievennystaito on edelleen tarpeen. Jos Mathematicalta pyydetään vastaavaa derivaattaa, saadaan $\sec(x+y)^2$, mikä sekin saattaa olla hämäävä, ellei ole koskaan kuullut, että trigonometrisia funktioita on enemmänkin kuin Suomessa tavallisesti opetetaan. Sekantti on yksinkertaisesti kosinin käänteisarvo ja käytössä sangen yleisesti ainakin anglosaksisissa maissa. Tästäkin mahdollisuudesta olisi hyvä tietää.



Ei tietenkään voida ajatella, että lukion matematiikkaan pitäisi lastata kaiken aiemman lisäksi kompleksilukuja ja enemmän trigonometrisista funktioista ja ties mistä kaikesta. Rajansa raskaudellakin. Näkökulma sen sijaan pitäisi miettiä uudelleen: millaiseen osaamiseen oikein pyritään. Nykyäänhän lähinnä opitaan laskemaan tiettyjä peruslaskuja ja ajatellaan, että niiden osaaminen indikoi riittävää matematiikan ymmärtämistä. Maths Solverin kaltaiset helppokäyttöiset laskentavälineet pudottavat pohjan tältä ajattelulta. Peruslaskujen laskeminen ei enää edes ole yhtä tärkeää kuin aiemmin, koska välineet ovat tarjolla. Sen sijaan tarvitaan kyky käyttää välineitä oikein ja ymmärtää, mitä ne tekevät. Kukin aika käyttää niitä välineitä, joita sille on tarjolla.

Panin Maths Solverin sieventämään hieman monimutkaisemman lausekkeen: \[\left(1 + \frac{a}{b}\right)^2 \left[1 + \left(\frac{b}{a+b} - 1\right)\left(\frac{b}{a-b} + 1\right)\right].\] Oikea tulos \[-\frac{a+b}{a-b}\] tulee ongelmitta ja lisäksi on mahdollisuus pyytää laskun välimuodot. Askelia on aika paljon, mutta lista on selkeä ja johdonmukainen. Tosin hieman lyhyemminkin voisi päästä. Mallilaskua voi tietenkin pitää opiskelijan kannalta hyödyllisenä. Jos ei keksi mitä tehdä, voi katsoa valmista ratkaisua ja opetella siitä. Tällä on kuitenkin myös varjopuolensa. Valmiin katsominen ruokkii näkemystä, että tehtävä pitää ratkaista näin. Aletaan herkästi opetella ratkaisurutiinia ajattelun sijasta. Tämänhän ei oikeastaan pitäisi olla tavoite vaan oppia luovasti käyttämään niitä mahdollisuuksia, mitä matematiikka tarjoaa. Toisaalta tietysti ulkoa opittu ratkaisurutiini on parempi kuin ei ratkaisua ollenkaan. Ulkoa oppiminen voi myös olla ensimmäinen askel ymmärtämisen suuntaan.

Helposti saatavilla olevia laskentavälineitä on monia ja lisää varmaankin tulee. Tablettiin ja kännykkäänkin saa Maple Calculatorin, johon yhtälön tai lausekkeen voi syöttää kameralla kuvaamalla. Tunnistaa aika hyvin myös käsinkirjoitettua tekstiä. Alla olevassa kuvassa on tulostus aiemmin käsitellystä juuriyhtälöstä. Tämäkin tulostus on hieman hämäävä: Mitä tekemistä puolittain derivoidulla ja puolittain integroidulla yhtälöllä on alkuperäisen yhtälön kanssa?



Mitä uusista mahdollisuuksista sitten kaikkiaan pitäisi ajatella? Lähtökohtana mielestäni on, että jokaisella aikakaudella on työkalunsa, joita on opittava käyttämään. Opetuksen sisältö on valittava siten, että se tukee aikakauden työkalujen käyttöä yleisesti eikä vain tiettyjen vain koulussa käytettävien ohjelmistojen käyttöä. Toisaalta on annettava eväät ja kiinnostus laskujen matemaattisen taustan ja yleisemmin abstraktin matematiikan ymmärtämiseen. On myös kyettävä katsomaan ylioppilaskokeen yli. Koe voi olla aakkos- tai pituusjärjestystä parempi valintamenettely jatko-opintoihin, mutta opetuksella tulee olla muitakin (ehkä ihanteellisiakin) tavoitteita.

Periaatteista on vielä pitkä matka siihen, mitä ja miten pitäisi opettaa ja miten muutokset toteutetaan. Pohtimista ja harkintaa tarvitaan, jotta ei olla vain nopeasti kehittyvän tekniikan perässä juoksijoita. Nopea syöksy uuteen ei ehkä sekään ole hyväksi. 60-luvun joukko-oppi-innostuksen virheitä ei ole syytä toistaa.


lauantai 25. heinäkuuta 2020

Geodeettinen käyrä 2

Pinnan $z=\sin(x)\sin(y)$ geodeettinen käyrä

Piirtelin geodeettisia käyriä aiemmassa postauksessani ja lupasin vielä palata asiaan.

Pinnan geodeettisen käyrän voi luonnehtia kahta pinnan pistettä yhdistävänä lyhimpänä pintaa pitkin kulkevana tienä. Toinen vaihtoehto on ajatella käyrää mahdollisimman suorana pintaa pitkin kulkevana tienä. Valitaanpa kumpi tahansa, niin käyrälle voidaan johtaa differentiaaliyhtälö, jonka ratkaisuna käyrä saadaan, kuten aiemmin hahmottelin. Differentiaaliyhtälö voidaan kuitenkin ratkaista alkeisfunktioiden avulla yleensä vain poikkeustapauksissa, ja yleensä on turvauduttava numeeriseen ratkaisemiseen ja siten käyrän approksimaatioon. Riittävään tarkkuuteen pääseminen esimerkiksi piirtämistä varten ei kuitenkaan ole ongelma laskentaohjelmia käytettäessä.

Voisiko käyrän approksimaation sitten löytää jollakin muulla tavalla käyttämättä differentiaaliyhtälöä?  Käyrää voitaisiin approksimoida murtoviivalla, jossa viivan solmupisteet sijaitsevat pinnalla, ja minimoida murtoviivan pituus pitäen muuttujina solmupisteiden koordinaatteja. Tämä johtaa moniulotteiseen minimointiprobleemaan, mutta yleensä laskentaohjelmissa on valmiiksi ohjelmoituina algoritmit tällaisten probleemojen ratkaisemiseen.

Jos pinnan parametriesitys on
\[
s(u,v) = (x(u,v),y(u,v),z(u,v)),
\]
voidaan $n$-osaisen murtoviivan solmupisteitä merkitä
\[
s(u_k,v_k) = (x(u_k,v_k),y(u_k,v_k),z(u_k,v_k)), \quad k=0,\dots,n.
\]
Indeksin arvoilla $k=0$ ja $k=n$ saadaan murtoviivan kiinteät päätepisteet $s(u_0,v_0)$ ja $s(u_n,v_n)$, mutta muut parametriarvot $(u_k,v_k)$, $k=1,\dots,n-1$, ovat minimointiprobleeman muuttujia.  Kyseessä on siten $2(n-1)$-ulotteinen minimointiprobleema. Minimoitava funktio — probleeman kohdefunktio — on murtoviivan pituus:
\[
L(u_1,\dots,u_{n-1},v_1,\dots,v_{n-1}) = \sum_{k=1}^n \lVert s(u_k,v_k) - s(u_{k-1},v_{k-1}) \rVert.
\]
Tässä $\lVert s(u_k,v_k) - s(u_{k-1},v_{k-1}) \rVert$ tarkoittaa murtoviivan $k$:nnen osan pituutta.

Yleisesti käytetty minimointialgoritmi ei kuitenkaan suoriudu pelkästään tällä tavalla annetusta minimointitehtävästä, vaan sille on lisäksi annettava muuttujien alkuarvot. Näistä lähtien algoritmi laskee, mihin suuntaan arvoja on muutettava, jotta kohdefunktion arvo pienenee. Muutetut arvot otetaan uusiksi lähtöarvoiksi ja kierros toistetaan. Näin jatketaan, kunnes kohdefunktion arvo ei enää pienene.

Tilanne on periaatteessa samanlainen kuin yhden muuttujan funktion minimikohdan etsiminen lähtemällä jostakin pisteestä ja katsomalla derivaatan avulla, kumpaan suuntaan on siirryttävä, jotta funktion arvo pienenee. Toistamalla askelta ajaudutaan johonkin minimikohtaan, mutta tämä ei välttämättä ole globaali minimi. Lähtöarvon valinnasta siten riippuu, löydetäänkö globaali minimi vai jokin muu.

Funktion $f(x)=\frac{1}{2}x^4+\frac{1}{3}x^3-3x^2$ minimin etsiminen aloittamalla pisteestä $x=0.5$

Moniulotteisessa minimointiprobleemassa tilanne on samanlainen. Alkuarvojen valinnasta riippuu, mikä minimi löydetään. Toisaalta alkuarvojen valinta ei ole yksinkertaista, jos etsittävästä käyrästä ei enempää tiedetä. Usein alkuarvot valitaankin satunnaisesti ja katsotaan, millaisia tuloksia eri tapauksissa saadaan.

Esitetty minimointiprobeeman määrittely on yksinkertainen ja luonnollinen, mutta se sisältää sudenkuopan. Murtoviivan minimipituus nimittäin saadaan kasaamalla kaikki solmupisteet käyrän alku- (tai loppu-) pisteeseen, jolloin murtoviivaan jää vain yksi osa, jonka pituus ei ole $=0$. Tämä on päätepisteitä yhdistävä jänne, joka ei (yleensä) sijaitse pinnalla. Tarvitaan siis jokin lisäehto, joka takaa, että murtoviivan osat eivät lyhene liiaksi. Tällaiseksi kelpaa esimerkiksi vaatimus, että murtoviivan kaikkien osien pituudet $\lVert s(u_k,v_k) - s(u_{k-1},v_{k-1}) \rVert$, $k=1,\dots,n$, ovat keskenään yhtä suuria. Lisäehdot ovat tavanomaisia minimointiprobleemoissa ja valmiiksi ohjelmoiduissa algoritmeissa tällaisia onkin mahdollista antaa.

Lieriön geodeettiset käyrät ovat ruuviviivoja. Alla olevissa kuvissa on kolme vaihtoehtoa samojen päätepisteiden välisistä käyristä. Nämä on saatu valitsemalla toistuvasti satunnaiset minimoinnin alkuarvot 30-osaiselle murtoviivalle.


sunnuntai 21. kesäkuuta 2020

Laskentaohjelman rönsyt

Olen käyttänyt laskentaohjelma Mathematicaa sen syntymästä saakka, vuodesta 1988. Pääversioita on tähän mennessä kertynyt 12 ja laajentuminen on ollut melkoista. Kyseessä on edelleen pääasiassa matemaattinen laskentaohjelma, mutta rönsyilyä on tapahtunut moneen suuntaan: dynaamisia animaatioita, dokumenttimuoto nimeltään computable document format, ohjelmointikieli, verkkoresursseja, kuvankäsittelyä, kartografiaa jne. Ehkä erikoisimpana Wolfram Researchin tietokanta, josta Mathematican komennoilla voidaan hakea monenlaista silpputietoa. Osittain nämä rönsyt ovat varmaan kokeellisia: katsotaan, mikä voisi olla järkevää ja miten se pitäisi toteuttaa.

En pyri minkäänlaiseen kattavaan esittelyyn, vaan jätän markkinoinnin Wolfram Researchille (https://www.wolfram.com/). Tyydyn kertomaan kartografiaan ja tietokantoihin liittyvistä kokeiluistani kesähelteiden ratoksi.

Wolfram Knowledgebase sisältää mm. luettelon Europpan maista. Jokaisesta maasta löytyy kartografista tietoa ja melkoinen määrä tilasto- ym. dataa. 

Euroopan maat Wolfram Knowledgebasen mukaan

Suomeen liittyvien ominaisuuksien listan alkuosa Wolfram Knowledgebasessa

Tietoja voidaan yhdistellä ja kohdistaa niihin laskutoimituksia computable document format -hengessä. Siten on esimerkiksi mahdollista koostaa kuva Euroopan valtioiden ääriviivoista ja värittää maa harmaasävyllä, joka on sitä tummempi, mitä suurempi on maan pääkaupungin väkiluvun suhde koko maan väkilukuun.

Euroopan maat ääriviivoina

Lukija voi yrittää tunnistaa maat oheisesta kuvasta. Kunkin maan kohdalla mittakaava on mitä on, pohjoinen on kuitenkin kaikissa ylöspäin.

Data on peräisin Wolframin tietokannoista, mutta mistä se on sinne tullut, ei käsittääkseni ilmene.  Lähdekritiikkiä ei siis pääse helposti harjoittamaan. Tietokannassa on Suomen väkiluku vuosittain aika pitkältä ajalta. Otin tiedot sadan vuoden ajalta 1910–2010, piirsin grafiikan ja vertasin Tilastokeskuksen sivuilta saatavaan dataan. Olivat samanlaiset.

Otin vastaavalla tavalla Helsingin väkilukutiedot ja laskin suhteen Suomen väkilukuun vuosittain. Grafiikka tuotti yllätyksen:

Helsingin väkiluvun suhde Suomen väkilukuun vuosittain Wolfram Knowledgebasen mukaan

Tarkempi selvittely osoitti, että tietokannassa ei olekaan Helsingin väkilukua kuin kymmenen vuoden välein ja välivuosina toistetaan samaa lukua. Dataa pyydettäessä tämä ei kuitenkaan ilmene. Suomen väkiluku sen sijaan on vuosittain.

Lähdekritiikki siis on tarpeen. Millä perusteella monet valinnat on tehty, jää myös avoimeksi. Edellä olevassa Euroopan valtioiden luettelossakin on monia, joita ei oikeastaan odottaisi. Vielä selkeämmin tämä tulee esiin pyydettäessä Helsingin osalta luetteloa 'notable people who died in city', joka sisältää 77 henkilöä ja alkaa seuraavasti:

Alvar Aalto, Tom of Finland, Tove Jansson, Paavo Johannes Nurmi, Urho Kekkonen, Mika Waltari, Juho Kusti Paasikivi, Frans Eemil Sillanpää, Artturi Virtanen, Hannes Kolehmainen, Kaarlo Juho Ståhlberg, Carl Ludvig Engel, Harri Holkeri, Rolf Herman Nevanlinna, Timo Sarpaneva, Tapio Rautavaara, Ville Ritola, Paavo Berglund, Leena Peltonen-Palotie, Ernst Leonard Lindelöf, Lauri Kristian Relander, Karl Frithiof Sundman, Edward Vesala, Clas Thunberg, Matti Järvinen, Hjalmar Mellin, Albin Stenroos, Lars Sonck, Tommy Tabermann, Heino Kaski, Richard Stites, J. S. Sirén, ...

Ehkäpä, mutta miksi juuri nämä? Ja onko kuolinpaikka merkityksellinen näkökulma?

Vertailun vuoksi otin Botswanan pääkaupungin Gaboronen 'notable people born in city'. Tuloksena yksi henkilö, Mpule Kwelagobe, jonka 'occupation' on 'beauty queen' ja josta 'notable facts' ei anna mitään. En Botswanan merkkihenkilöistä paljoakaan tiedä, mutta Wikipedia-artikkeli antaa Mpule Kwelagobesta paljon monipuolisemman kuvan.

Edellä sanottu antaa Wolframin tietokannoista ehkä hieman turhan huonon kuvan. Kyllä siellä on hyödyllistä ja hyvin järjestettyäkin tietoa, mutta vaikeata on välttyä silppukokoelman vaikutelmalta. Lähdekritiikkiä ei voi harjoittaa, ajantasaisuus jää avoimeksi. Maailmassa ja verkossa on luotettavampiakin lähteitä. Ihmettelen Mathematican laajentamista tähän suuntaan. On lähdetty puremaan liian suurta palaa. Kaikenkattavuus ei ole järkevä tavoite. Ja lisääkö vai vähentääkö tämä ohjelman arvostusta?

sunnuntai 17. toukokuuta 2020

Geodeettinen käyrä

Pallon geodeettinen käyrä
(iso ympyrä)
Lieriön geodeettinen käyrä
(ruuviviiva)

Minua on aina jollakin tavoin viehättänyt differentiaali- ja integraalilaskennan käyttö geometriassa, ns.  differentiaaligeometria. Käyrät ja pinnat esitetään parametriesityksen avulla, lasketaan kaarenpituuksia, normaalisuuntia, kaarevuuksia, pinta-aloja jne. Vähänkään kummallisemman käyrän tai pinnan tapauksessa johdutaan herkästi mutkikkaisiin lausekkeisiin tai integraaleihin, joiden laskeminen alkeisfunktioiden avulla ei onnistu. Opiskeluaikanani kuvien piirtämisestä tuli työlästä tai lähes mahdotonta. Oppikirjojen tai luentojen esimerkit olivat niitä muutamia lähes itsestään selviä tapauksia, joissa laskeminen ja piirtäminen oli mahdollista.

Helposti käytettävien laskentaohjelmien tulo on muuttanut tilanteen. Hankalista lausekkeista huolimatta kuva syntyy vaivatta (joskus tosin vaivoin); jos symbolinen integrointi ei onnistu, käytetään numeerista.  Jäin miettimään, miltä geodeettiset käyrät mahtaisivat näyttää jollakin hieman kummallisemmalla pinnalla. Pallo ja lieriö ovat helppoja tapauksia, mutta miten olisi vaikkapa ellipsoidi?

Ensin on kuitenkin päätettävä, mitä geodeettisen käyrän luonnehdintaa halutaan käyttää. Tavallisinta lienee ajatella geodeettista käyrää lyhimpänä pintaa pitkin kulkevana käyränä, joka yhdistää kaksi annettua pistettä. Tämä ei kuitenkaan kata koko ongelmaa. Esimerkiksi pallon pinnalla lyhin kahta pistettä yhdistävä käyrä on ison ympyrän kaari, kahdesta pisteitä yhdistävästä kaaresta lyhyempi.  Pallon toiselta puolelta kiertävää pitempää kaarta on kuitenkin järkevää myös ajatella geodeettisena käyränä. Onhan se jonkinlainen 'suora viiva' pallon pinnalla. Toinen luonnehdinta onkin ajatella geodeettista käyrää pinnalla kulkevana käyränä, joka ei tarpeettomasti mutkittele. Tämä luonnollisesti vaatii täsmällisemmän määrittelyn.

Edellinen luonnehdinta johtaa variaatiolaskentaan. Parametripinnalla \[ s(u,v) = \Bigl(x(u,v),y(u,v),z(u,v)\Bigr) \] olevalle käyrälle \[ c(t) = \Bigl(x\bigl(u(t),v(t)\bigr),y\bigl(u(t),v(t)\bigr),z\bigl(u(t),v(t)\bigr)\Bigr) \] on etsittävä sellainen parametrisointi $\bigl(u(t),v(t)\bigr)$, joka antaa minimiarvon (tai ääriarvon) käyrän kaarenpituudelle $\int_0^1 \lVert c'(t)\rVert\,dt$. Variaatiolaskennan tavanomainen menettely antaa tällöin toisen kertaluvun differentiaaliyhtälön funktioille $u(t)$ ja $v(t)$ (variaatiolaskennan Eulerin yhtälö). Lisäksi tarvitaan ehto säätämään parametrin $t$ kasvunopeutta, esimerkiksi $\lVert(u'(t),v'(t))\rVert =$ vakio eli $u'(t)u''(t) + v'(t)v''(t) = 0$. Kyseessä on kahden tuntemattoman funktion ja kahden yhtälön toisen kertaluvun differentiaaliyhtälöryhmä. Koska käyrän päätepisteet ovat kiinnitetyt, tiedetään $u(0)$, $v(0)$, $u(1)$ ja $v(1)$, jolloin kyseessä on reuna-arvoprobleema.

Pinnan parametriesityksestä riippuu, onnistuuko reuna-arvoprobleeman ratkaisu alkeisfunktioiden avulla; useimmiten ei. Hyvät laskentaohjelmat — minulla Mathematica — onnistuvat kuitenkin usein ratkaisemaan tällaiset ongelmat numeerisesti. Tällöin $u(t)$ ja $v(t)$ saadaan interpoloivina funktioina, joita voidaan käyttää esimerkiksi kuvan piirtämiseen. Aina ratkaisu ei onnistu eikä reuna-arvoprobleeman ratkaisu ole välttämättä edes yksikäsitteinen.

Toinen luonnehdinta, geodeettinen käyrä 'suorana viivana' pinnalla, voidaan täsmällistää vaatimalla, että käyrän tangenttivektorin $c'(t)$ muutos — sen derivaatta $c''(t)$ — on kohtisuorassa pintaa vastaan jokaisessa käyrän pisteessä. Tämä sisältää sekä sen, että käyrä ei tarpeettomasti mutkittele, että parametrin tasaisen kasvamisen (suhteessa kaarenpituuteen). Kohtisuoruus pintaa vastaan tarkoittaa kohtisuoruutta pinnan tangenttivektoreita $\mathrm{D}_u s\bigl(u(t),v(t)\bigr)$ ja $\mathrm{D}_v s\bigl(u(t),v(t)\bigr)$ vastaan, ts. että skalaaritulot ovat $= 0$. Tuloksena on tässäkin kahden tuntemattoman funktion ja kahden yhtälön toisen kertaluvun differentiaaliyhtälöryhmä funktioille $u(t)$ ja $v(t)$. Tälle on luonnollista antaa alkuehdot: alkupiste ja alkusuunta, ts. arvot $u(0)$, $v(0)$, $u'(0)$ ja $v'(0)$. Tällöin ratkaisukin on yksikäsitteinen differentiaaliyhtälöiden yleisen yksikäsitteisyyslauseen mukaisesti.

Millaisia kuvia sitten syntyy?

Pallon tapauksessa saadaan ison ympyrän kaaria kuten odotettavissa onkin. Lieriön geodeettiset käyrät ovat ruuviviivoja (tai lieriön emäsuoria). Kumpikin voidaan laskea alkeisfunktioiden avulla eikä numeerisia ratkaisuja tarvita.

Ellipsoidin geodeettiset käyrät ovat hieman erikoisempia: ne eivät välttämättä sulkeudu. Alla oleva kuvio on laskettu alkuarvoprobleemana antamalla käyrän alkupiste ja alkusuunta (ja parametrin maksimiarvo).
Ellipsoidin geodeettinen käyrä

Pinta $z = 5/(1+x^2+y^2)$ kuvaa jonkinlaista vuorenhuippua. Jos lasketaan reuna-arvoprobleemana kahta vastakkaista pistettä yhdistävä käyrä, saadaan vuorenhuipun yli kulkeva käyrä, siis mahdollisimman pitkä reitti. Samoja pisteitä yhdistää kuitenkin myös lyhin reitti, mutta Mathematican reuna-arvoprobleeman ratkaisualgoritmi ei löydä tätä. Alkuarvoprobleemana se löytyy, mutta oikea lähtösuunta on haettava kokeilemalla. Muuttamalla alkuarvoprobleeman lähtösuuntaa löydetään hieman erikoisempiakin geodeettisia käyriä (alin kuvio).




Laskentaohjelma tarjoaa myös kokonaan toisenlaisen tavan etsiä kahden pisteen lyhin etäisyys pintaa pitkin kulkemalla. Yritän palata tähän jossakin tulevassa postauksessa.

perjantai 24. huhtikuuta 2020

Differentiaaliyhtälöiden vaikeus

Differentiaaliyhtälöiden alkeiskurssilla keskitytään usein ratkaisemaan yhtälöiden yksinkertaisia perustyyppejä ja näkemään teoria näiden kautta. Opiskelijalle jää helposti käsitys, että lähes kaikki differentiaaliyhtälöt voidaan ratkaista jollakin algebrallisluonteisella tempulla. Ratkaiseminen tarkoittaa tällöin ns. yleisen ratkaisun löytämistä tavallisten alkeisfunktioiden avulla esitettynä. Tavallisiksi alkeisfunktioiksi kutsutaan potensseja, eksponentti-, logaritmi- ja trigonometrisia funktioita sekä näiden käänteisfunktioita ja niistä peruslaskutoimituksilla tai funktioiden yhdistämisellä saatuja funktioita.

Differentiaaliyhtälön ratkaisun olemassaolo on eri asia. Esimerkiksi varsin yksinkertaiselle differentiaaliyhtälölle $y' = x^2 - y^2$ voidaan piirtää suuntakenttä, koska suoraan yhtälöstä voidaan laskea ratkaisukäyrän derivaatta, ts. sen suunta missä tahansa pisteessä $(x,y)$. Suuntakenttäkuva antaa aiheen uskoa, että jokaisen tason pisteen kautta todellakin kulkee jonkin ratkaisufunktion kuvaaja. Voidaanko funktio lausua alkeisfunktioiden avulla, on täysin eri ongelma. Tietyn pisteen kautta kulkevan (eli tietyn alkuehdon täyttävän) ratkaisufunktion olemassaolon varsinainen todistaminen on hankalampi asia enkä tässä siihen paneudu.


Differentiaaliyhtälön $y' = x^2-y^2$ suuntakenttä
(https://homepages.bluffton.edu/~nesterd/apps/slopefields.html)

Differentiaaliyhtälön $y' = x^2 - y^2$ yleisen ratkaisun lausekkeen löytäminen ei peruskurssitiedoilla onnistu. Hyvät laskentaohjelmat suoriutuvat kuitenkin monista differentiaaliyhtälöistä peruskurssitaitoja paremmin. Esimerkiksi laskentaohjelma Mathematica antaa em. yhtälölle yleisen ratkaisun
\[
y(x)=-\frac{i x^2 \left(-C J_{-\frac{5}{4}}\left(\frac{i x^2}{2}\right)+C
   J_{\frac{3}{4}}\left(\frac{i x^2}{2}\right)-2 J_{-\frac{3}{4}}\left(\frac{i
   x^2}{2}\right)\right)-C J_{-\frac{1}{4}}\left(\frac{i x^2}{2}\right)}{2 x \left(C
   J_{-\frac{1}{4}}\left(\frac{i x^2}{2}\right)+J_{\frac{1}{4}}\left(\frac{i
   x^2}{2}\right)\right)}.
\]
Tässä $C$ on yleisessä ratkaisussa esiintyvä vakio, jonka eri arvoilla saadaan eri pisteiden kautta kulkevat ratkaisukäyrät (ei tosin aivan ongelmitta). Ratkaisussa esiintyy imaginaariyksikkö $i$, vaikka funktion arvot ovatkin reaalisia, kun $x$ on reaalinen. Funktio $J$ eri alaindekseillä on Besselin funktio. Tämä on yksi ns. erikoisfunktioista ja $J_n$ on määritelty eräänä Besselin differentiaaliyhtälön $x^2y'' + xy' + (x^2-n^2)y =0$ ratkaisuna. Tämäkin on sellainen yhtälö, jonka ratkaisua ei voida lausua alkeisfunktioiden avulla. Besselin differentiaaliyhtälö esiintyy monissa fysiikan ilmiöiden mallinnuksissa ja sen seurauksena sen ominaisuudet tunnetaan ja arvot voidaan laskea varsin tarkasti. Laskentaohjelmien kannalta se ei ole sen ihmeellisempi funktio kuin $\sin(x)$ tai $\cos(x)$ (jotka myös voidaan määritellä erään differentiaaliyhtälön ratkaisuina, nimittäin $y'' + y = 0$).

Yleinen ratkaisu kovin monimutkaisen lausekkeen avulla esitettynä ei välttämättä ole käyttökelpoinen.  Sellaistakaan ei läheskään aina voida löytää edes erikoisfunktioiden avulla. Usein onkin luontevampaa etsiä ratkaisua numeerisesti, jolloin tavoitteena on löytää yleisen ratkaisun sijaan vain yksi, sopivan lisäehdon täyttävä ratkaisu.

Tälle hetkelle tyypillinen esimerkki on epidemian kehitystä koskeva SIR-malli. Tämä on kolmen differentiaaliyhtälön ryhmä, jossa on kolme tuntematonta funktiota $S(t)$, $I(t)$ ja $R(t)$, muuttujana aika $t$:
\[
\left\{
\begin{aligned}
S'(t) &=-\beta I(t) S(t), \\ I'(t) &= \beta I(t) S(t) - \gamma I(t), \\ R'(t) &= \gamma I(t).
\end{aligned}
\right.
\]
En puutu tässä yhteydessä siihen, miten malli on muodostettu ja mikä on funktioiden $S$, $I$ ja $R$ merkitys. $\beta$ ja $\gamma$ ovat epidemialle ominaisia vakioita. (Tiivis esitys mallista on esimerkiksi Mikko Rahikan blogissa.  Muutoinkin verkosta löytyy aiheeseen liittyvää materiaalia runsain mitoin.)

Odotin, että Mathematica ei löytäisi mallille yleistä ratkaisua, mutta yllätyksekseni tällainen löytyi. Se on kuitenkin siinä määrin monimutkainen, että käytännöllistä merkitystä ei varmastikaan ole. Jonkinlaisella kritiikilläkin siihen lienee syytä suhtautua.

Numeerisen ratkaisun etsiminen on tarkoituksenmukaisempaa. Tällöin tarvitaan lisäehtoja, esimerkiksi ns. alkuehdot, ts. funktioiden arvot aloitushetkellä. Jos näiksi valitaan $S(0) = 10000$, $I(0) = 1$, $R(0) = 0$ ja vakioille käytetään arvoja $\beta = 0.0007$, $\gamma = 1.5$, saadaan epidemialle tyypilliset ratkaisufunktioiden kuvaajat:

SIR-mallin tyypilliset ratkaisukäyrät

Mathematica antaa ratkaisufunktiot interpoloivina funktioina (InterpolatingFunction). Nämä ovat sopivalla algoritmilla laskettuja approksimaatioita, mutta niitä voidaan Mathematicassa käsitellä funktioina samalla tavoin kuin mitä tahansa muuta funktiota, mm. niitä voidaan derivoida. Jos ratkaisut sijoitetaan alkuperäiseen yhtälöryhmään, tämä ei tarkalleen toteudu, mutta saadaan jonkinlainen kuva approksimaation tarkkuudesta. Alla oleva kuva esittää keskimmäisen yhtälön toteutumisessa olevaa virhettä. Ratkaisujen tarkkuus on käytännössä riittävä, mutta tietty varauksellisuus on paikallaan. Vaikka Mathematican interpoloivia funktioita voidaankin esimerkiksi derivoida, ei derivaattojen tarkkuus ole enää yhtä hyvä.

SIR-mallin keskimmäisen yhtälön toteutumisessa oleva virhe

Mitä tästä pitäisi oppia? Laskentaohjelma on hyvä työkalu, mutta ei pidä odottaa, että se ratkaisee kaikki matemaattiset ongelmat vaivatta. Käyttäjän tulee ymmärtää, mitä on tekemässä.


torstai 26. maaliskuuta 2020

Mietteitä pitkän matematiikan ylioppilaskokeesta

Entisenä ylioppilastutkintolautakunnan matemaatikkojäsenenä seuraan edelleen ainakin jonkinlaisella kiinnostuksella ylioppilaskokeita. Muutoksiahan on minun aikani jälkeen tapahtunut paljon. Tutkinto on digitalisoitu useallakin tavalla: tehtävissä on aiempaa monipuolisempia materiaaleja, käytetään erilaisia tietokoneohjelmistoja, kokeiden organisaatio perustuu aika laajaan tietotekniikan hyödyntämiseen.

Aktiivisesta työstä poisjääminen antaa usein mahdollisuuden katsella asioita hieman etäämmältä, kun akuutit ongelmat eivät enää kaadu päälle. Pohdin seuraavassa eräitä näkökulmia, vaikka osuutta tutkinnon kehittämiseen minulla ei olekaan.

Tavalliseen tapaan pitkän matematiikan koetta on pidetty vaikeana. Taktisista syistä koulukollektiivin kannattaa tietenkin olla tätä mieltä, toiveena saada seuraavalla kierroksella helpompi koe, ts. sama arvosana vähemmällä työllä. Jos kuitenkin yritän objektiivisesti arvioida koetta, en voi pitää sitä kovin vaikeana. Joukossa toki on vaikeita tehtäviä, mutta myös sellaisia, joista aika helposti voi kerätä pisteitä, vaikka tehtävän täydellinen ratkaisu ei onnistuisikaan. Näin minusta pitääkin olla.

Tehtävä 6 ratkaistuna GeoGebralla

Perinteisen laskemisen ja ohjelmistojen käytön välinen rajanveto tuntuu ongelmalliselta.  Tämä tulee esiin erityisesti tehtävässä 6, jossa annetaan paraabeli ja sen ulkopuolinen piste. On määrättävä ne paraabelin pisteet, joihin asetettu tangentti kulkee annetun pisteen kautta, ja annettua pistettä lähinnä oleva paraabelin piste sekä etäisyys tähän. Vastaukseksi kelpaavat myös likiarvot. Hyvin klassinen tehtävä ja hyvän vastauksen piirteissäkin on klassinen ratkaisu. Mutta tehtävä ratkeaa näppärästi myös GeoGebran funktioilla Tangentti, Etäisyys ja LähinPiste (Tangent, Distance, ClosestPoint), kuten yllä oleva kuva osoittaa. Muita kokeessa sallittuja ohjelmistoja minulla ei ole, joten en osaa sanoa, löytyykö niistäkin vastaavat työkalut.

Vaikka GeoGebraa käytettäessä ei tarvitsekaan laskea yhtään mitään, tehtävän hahmottaminen kyllä edellyttää jonkinlaisia matemaattisia perustietoja GeoGebran hallitsemisen lisäksi. Eri ratkaisutavat pohjautuvat kuitenkin hyvin erilaisiin matemaattisiin taitoihin. Tällöin joudutaan pohtimaan, mitä tehtävä oikeastaan mittaa. Halutaanko painottaa ohjelmistoihin perehtymisen tärkeyttä? Pitäisikö kokelaan perehtyä useisiin kokeessa tarjolla oleviin ohjelmistoihin, koska niissä saattaa olla tiettyyn tehtävään eritasoisia työkaluja? Näin, vaikka juuri näitä ohjelmistoja myöhemmissä opinnoissa tai elämässä yleensäkään ei enää käytettäisi? Taustalla on aika olennainen kysymys: Mitä varten matematiikkaa koulussa oikeastaan opetetaan? Mitä sen opetuksen pitäisi kattaa?

Olen aikoinani pitänyt tarpeellisena laskentavälineiden ja ohjelmistojen tuomista koulun matematiikan opetukseen. Samalla olen sanonut, että se edellyttää muutoksia monissa asioissa eikä muutos ole tämän takia helppo. Periaatteessa olen samaa mieltä edelleen, mutta muutos olisi pitänyt toteuttaa toisin, eikä missään tapauksessa yrittää digitalisoida ylioppilastutkintoa kaikissa suhteissa samaan aikaan. Ohjelmistot ovat ohjanneet opetusta liiaksi, eikä niiden kehitys aina ole edennyt hyvään suuntaan. GeoGebrakin oli lähtökohdiltaan hyvä, mutta minusta se on mennyt pilalle ominaisuuksien lisääntyessä. Eroonkaan siitä ei helposti enää päästä. (Onneksi olen eläkkeellä eikä minun tarvitse kirjoittaa muistiota asiasta.)

Ohjelmistojen käytön kannalta ongelmallisia ovat myös pitkän matematiikan kokeen tehtävät 8 (polynomien jakoalgoritmi), 11 (lukujono) ja 12 (geometrisen keskiarvon todennäköisyyksiä).  Polynomien jakolaskuun on GeoGebrassa valmis komento, jota kyllä tässä ei sanamuodon perusteella ilmeisestikään voi käyttää, mutta yleisemmin voi pohtia, miten tehtävien tulisi suhtautua tarjolla oleviin laskentatyökaluihin. Millaisia laskentatyökaluja tulisi oppia käyttämään? Lukujonotehtävässä raja-arvo on löydettävissä numeerisella rekursiivisella laskulla. Tällöin lasketaan likiarvoilla, mutta tulos tulee täysin selväksi. Riittäisikö tämä, kun kerran luotamme laskimeen monissa muissakin numeerisissa laskuissa?

Tehtävän 12 ratkaiseminen kaikki tapaukset taulukoimalla tai simuloinnilla on mielenkiintoinen avaus.  Millaisia ja miten näppäriä tapoja eri ohjelmistot tarjoavat tähän? Hyvän vastauksen piirteissä on annettu kaksi taulukkolaskentatiedostoa, joiden mielekkyyttä en oikein ymmärrä. Alla on vertailun vuoksi tiivis ratkaisu Mathematicalla, joka tosin ei ole kokeessa käytettäviä ohjelmistoja.

Tehtävän 12 jälkiosa ratkaistuna Mathematicalla

Ohjelmistojen käytöstä huolimatta kokeen on syytä mitata nimenomaan matematiikan osaamista, ei ohjelmistojen ehkä hieman eksoottistenkin piirteiden hallitsemista. En oikein usko, että tähän on muuta tietä kuin muotoilla tehtävänannot osoittamaan näkökulma, josta asiaa tulee tarkastella.  Joskus oli aika, jolloin saattoi luottaa siihen, että tehtävän ratkaiseminen osoitti myös tietyn matematiikan osaamista. Ohjelmistojen aikana tämä ei enää päde.