lauantai 2. lokakuuta 2021

Akrobaattivierintä ja 3D-tulostus

Copyright: Giovannino (Hans Genten, Aachen, Germany),
Attribution, via Wikimedia Commons

Pöydälle vaakasuoraan asetettu ympyrälieriö vierii pöytää pitkin. Jos lieriö on isokokoinen, niin sen sisään asettuva ihminen voi hallita lieriön vierimistä asentoaan hieman muuttamalla, jolloin systeemin massakeskipiste siirtyy lieriön akselilta sivuun. Voisiko jokin muukin pinta vieriä vastaavalla, mutta ehkä monimutkaisemmalla tavalla?

Vastaus on myönteinen. Akrobaatit käyttävätkin tällaisia rakenteita, kuten linkitetystä videosta käy ilmi. Matemaattinen analyysi puolestaan löytyy American Mathematical Societyn Notices-lehden artikkelista Rolling Acrobatic Apparatus. Tässä on muun ohella kuvattuna neljän kartiopinnan rajaama kappale, joka vierii hieman mutkitellen. Kiinnostuin ja ajattelin, että olisi kiva kokeilla ihan oikealla kappaleella.


Ryhdyin piirtämään kappaletta laskentaohjelma Mathematicalla. Lähtökohtana on neljä puolikartiopintaa, joissa muodostajasuoran ja akselin välinen kulma on 45 astetta. Tällaisen parametriesitys voidaan kirjoittaa periaatteessa muotoon \[ u(0,0,1) + (1-u) (\cos(v),\sin(v),0), \quad 0 \le u \le 1,\ 0 \le v \le \pi. \] Tässä $(0,0,1)$ on kartion huippu ja  puoliympyrän muotoinen pohja on xy-tasossa. Saadut neljä (eri asennoissa olevaa) kartiopinnan palaa voidaan Mathematicassa liittää yhteen, jolloin saadaan koko kappaleen kuva. Pinnoille voidaan määritellä myös paksuus, ja saadusta kappaleesta voidaan muodostaa stl-koodi, joka kelpaa lähtökohdaksi 3D-tulostimelle. Se on kuitenkin vielä viipaloitava esikäsittelyohjelmalla (käytössä Ultimaker Cura), ts. määriteltävä jako vaakasuoriin kerroksiin ja luotava tarvittavat lisätuet. Saatu tiedosto ohjaa tulostinta. Aikaa tulostamiseen meni hieman yli neljä tuntia. (Sen verran meni opetteluksi, että vasta kolmas tulostusajo onnistui.)

Alla on kuva viipaloinnista vaaleansinisine tukineen yksi kerros avattuna ja lopputulos. Vierimisestä on myös hidastettu video. Tämä ei tosin anna aivan oikeata kuvaa, koska kappaleen tiheys ei ole vakio 3D-tulostuksen rakenteen takia eikä se siten vieri aivan tasaisesti.


 

Miten pinnasta sitten päästään kehikkoon, jonka sisään ihminenkin voisi asettua? Kartiopinnoille voidaan piirtää käyrät $u = \frac{1}{3}$, $u = \frac{2}{3}$, jolloin kappaleen pinnalle syntyy kaksi samantyyppistä käyrää kuin tennispalloissa on. Nämä sijaitsevat samalla pallopinnalla (ei piirretty alla oleviin kuviin), jonka keskipiste on kappaleen keskipisteessä. Kun käyrät korvataan putkirakenteella, poistetaan kartiopinnat ja lisätään jonkinlaiset tukisauvat, saadaan kehikko, jossa putkirakenne muodostaa ikään kuin raiteen, jonka varassa vieriminen tapahtuu.

Kiintoisaa olisi tehdä tämäkin 3D-tulostuksella. Epäilen vain onnistumista, koska tulostuksen aikaisia lisätukia tarvitaan paljon. Ehkä kuitenkin pitäisi kokeilla.


 

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.


sunnuntai 29. elokuuta 2021

Newtonia yleistämään 2

Edellisessä blogikirjoituksessani yleistin Newtonin menetelmän usean yhtälön muodostaman yhtälöryhmän ratkaisemiseen. Yleistämisen tie taitaa kuitenkin olla loputon. Katsotaanpa onnistuisiko neliömatriisin käänteismatriisin hakeminen Newtonin menetelmällä. Tarvittaessa näkökulmaa hieman vaihtaen.

Joitakin pohjatietoja tarvitaan. Tiettyä kokoa olevien neliömatriisien — esimerkiksi \[ A = \begin{pmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{pmatrix} \] — yhteenlasku ja matriisikertolasku (sellaisena kuin se matriisialgebrassa määritellään, ks. esim. https://en.wikipedia.org/wiki/Matrix_multiplication) noudattavat melkein samoja laskusääntöjä kuin reaaliluvut. Poikkeuksena on kertolaskun vaihdannaisuus: matriiseille tulot $AB$ ja $BA$ eivät yleensä ole samoja.

Matriisi $B$ on matriisin $A$ käänteismatriisi, jos $AB = BA = I$, missä $I$ on yksikkömatriisi. Tämän vasemmasta ylänurkasta alkavalla ja oikeaan alanurkkaan päättyvällä laskevalla lävistäjällä on ykkösiä, muualla nollia, esimerkiksi \[ I = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}.  \] Tällöin merkitään $B = A^{-1}$. Kaikilla matriiseilla ei ole käänteismatriisia.

Matriisien jakolaskua on aina ajateltava käänteismatriisilla kertomisena, kuten reaalilukujen jakolaskukin voidaan ajatella: $c/d = cd^{-1} = d^{-1}c$. Matriiseilla oikealta puolelta ja vasemmalta puolelta jakaminen antavat kuitenkin yleensä eri suuren tuloksen: $CD^{-1} \neq D^{-1}C$, joten jakolaskuja on kaksi erilaista.

Olkoon seuraavassa $A$ neliömatriisi, jolle etsitään käänteismatriisia. Kaikille samankokoisille neliömatriiseille $X$, joilla on käänteismatriisi, voidaan määritellä funktio $F(X) = X^{-1} - A$. Tämän nollakohta, ts. yhtälön $F(X) = O$ ratkaisu on $X = A^{-1}$, ts. $A$:n käänteismatriisi. (Tässä $O$ tarkoittaa pelkistä nollista muodostuvaa neliömatriisia.)

Jotta Newtonin menetelmää voitaisiin soveltaa, on löydettävä funktion $F$ differentiaali, kuten edellisestä blogiartikkelista ilmenee. Tällä kertaa ei kuitenkaan derivointi auta, vaan on vaihdettava näkökulmaa ja pyrittävä esittämään funktion muutos summana lineaarisesta termistä ja korjaustermistä edellisen artikkelin yhtälön \[ f(x) = f(x_0) + f'(x_0)(x - x_0) + \varepsilon(x,x_0)(x - x_0) \] tapaan. Tällöin saadaan seuraavaa: \begin{align*} F(X) &= X^{-1} - A \\ &= (X_0^{-1} - A) - (X_0^{-1}X X_0^{-1} - X_0^{-1}) + (X_0^{-1}X X_0^{-1} - 2X_0^{-1} + X^{-1}) \\ &= (X_0^{-1} - A) - X_0^{-1}(X - X_0)X_0^{-1} + (X_0^{-1} - X^{-1})(X - X_0)X_0^{-1}.  \end{align*} (Algebran taidot ovat tässä tarpeen. Kyseessähän ei ole lausekkeen sievennys vaan sen monimutkaistaminen haluttuun muotoon pääsemiseksi. Lausekkeeseen on lisätty joitakin termejä ja tasapainon säilyttämiseksi vähennetty nämä pois. Täten monimutkaistettua lauseketta on muokattu matriisialgebran säännöillä. Tuloksen tarkistaminen on ehkä helpointa sieventämällä lopputulosta ja päätymällä lähtökohtaan.)

Kolmesta termistä ensimmäinen on funktion arvo pisteessä $X_0$, toinen on lineaarinen termi, ts. $X - X_0$ kerrottuna vakiomatriisilla $X_0^{-1}$ sekä oikealta että vasemmalta. Kolmannessa kaksi ensimmäistä tekijää lähestyvät nollaa, kun $X \to X_0$, ts. se kelpaa korjaustermiksi.

Tällöin kahta ensimmäistä termiä voidaan käyttää funktion $F$ approksimaationa ja yhtälöä $F(X) = O$ likimäärin vastaa yhtälö \[ (X_0^{-1} - A) - X_0^{-1}(X - X_0)X_0^{-1} = O.  \] Kun tämä kerrotaan oikealta ja vasemmalta matriisilla $X_0$, saadaan yhtälö: \[ X_0 - X_0AX_0 = X - X_0.  \] Tästä voidaan ratkaista $X$, jolloin Newtonin menetelmän iteraatiokaavaksi saadaan \[ X_{n+1} = 2X_n - X_nAX_n.  \]

Kovin käyttökelpoinen menettely käänteismatriisin määräämiseen tämä ei kuitenkaan ole, sillä riittävän lähellä olevan aloitusmatriisin löytäminen ei useinkaan ole helppoa. Jos tämä ei ole riittävän lähellä, ei syntyvä iteraatio suppene. Jos matriisi $A$ kuitenkin on lävistäjävaltainen, ts. päälävistäjän alkiot ovat itseisarvoltaan muita riittävästi suurempia, voidaan aloittaa matriisista, jossa lävistäjällä on matriisin $A$ lävistäjäalkioiden käänteisarvot ja muut alkiot ovat nollia. Esimerkiksi matriisin \[ A = \begin{pmatrix} 2 & 1 & 1 \\ 1 & 3 & 1 \\ 1 & 1 & 4 \end{pmatrix} \] tapauksessa alkuarvoksi voidaan ottaa \[ X_0 = \begin{pmatrix} 0.5 & 0 & 0 \\ 0 & 0.33 & 0 \\ 0 & 0 & 0.25 \end{pmatrix}, \] jolloin perättäisiksi käänteismatriisin approksimaatioiksi saadaan \begin{align*} &\left( \begin{array}{ccc} 0.5 & 0 & 0 \\ 0 & 0.33 & 0 \\ 0 & 0 & 0.25 \\ \end{array} \right) \\[3pt] &\left( \begin{array}{ccc} 0.5 & -0.165 & -0.125 \\ -0.165 & 0.3333 & -0.0825 \\ -0.125 & -0.0825 & 0.25 \\ \end{array} \right) \\[3pt] &\left( \begin{array}{ccc} 0.604575 & -0.186467 & -0.1299 \\ -0.186467 & 0.389417 & -0.072402 \\ -0.1299 & -0.072402 & 0.281456 \\ \end{array} \right) \\[3pt] &\left( \begin{array}{ccc} 0.640413 & -0.180814 & -0.121396 \\ -0.180814 & 0.408004 & -0.0618364 \\ -0.121396 & -0.0618364 & 0.291636 \\ \end{array} \right) \\[3pt] &\left( \begin{array}{ccc} 0.646718 & -0.17673 & -0.117862 \\ -0.17673 & 0.411567 & -0.0589877 \\ -0.117862 & -0.0589877 & 0.293982 \\ \end{array} \right) \\[3pt] &\left( \begin{array}{ccc} 0.647058 & -0.176471 & -0.117648 \\ -0.176471 & 0.411764 & -0.058824 \\ -0.117648 & -0.058824 & 0.294117 \\ \end{array} \right) \\[3pt] &\left( \begin{array}{ccc} 0.647059 & -0.176471 & -0.117647 \\ -0.176471 & 0.411765 & -0.0588235 \\ -0.117647 & -0.0588235 & 0.294118 \\ \end{array} \right) \\[3pt] &\left( \begin{array}{ccc} 0.647059 & -0.176471 & -0.117647 \\ -0.176471 & 0.411765 & -0.0588235 \\ -0.117647 & -0.0588235 & 0.294118 \\ \end{array} \right) \end{align*}

Viimeisen approksimaation ja matriisin $A$ tulot antavat todellakin yksikkömatriisin laskentatarkkuudella.

lauantai 21. elokuuta 2021

Newtonia yleistämään

Matematiikka tutkii struktuureja. Jos kahdesta asiasta löytyy samanlainen struktuuri, niin toista koskevat tuloksetkin ehkä voidaan siirtää toiseen, mahdollisesti yleistää suppeammasta asiasta laajempaan. Struktuurin tunnistaminen voi kuitenkin edellyttää näkökulman vaihtoa. Katsellaanpa Newtonin iteraatiota:

Yhtälöä $f(x) = 0$ voidaan yrittää ratkaista numeerisesti arvaamalla juurelle $x^*$ jokin likiarvo $x_0$ ja asettamalla funktion $f$ kuvaajalle pisteeseen $(x_0,f(x_0))$ tangentti. Jos $x_0$ on riittävän lähellä juurta $x^*$, tangentin ja x-akselin leikkauspisteestä saadaan tarkempi likiarvo $x_1$. Tangentin yhtälö on $y - f(x_0) = f'(x_0)(x - x_0)$.  Asettamalla tässä $y = 0$ ja ratkaisemalla $x$ saadaan leikkauspisteeksi x-akselin kanssa \[ x_1 = x_0 - \frac{f(x_0)}{f'(x_0)}.  \]

Newtonin menetelmän johto tangentin avulla

Toistamalla menettely arvosta $x_1$ lähtien saadaan uusi likiarvo $x_2$. Kun näin jatketaan, saadaan jono $x_0,\ x_1,\ x_2,\ \dots$, joka varsin yleisillä edellytyksillä suppenee kohden juurta $x^*$. Jono muodostetaan siten iteraatiokaavalla \[ x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}, \quad n = 0,\ 1,\ 2,\ \dots.  \] Menettelyä kutsutaan Newtonin iteraatioksi ja se lienee ensimmäinen numeerinen menetelmä, jonka matematiikan opiskelija oppii.

Ei ole kuitenkaan aivan helppoa nähdä, miten menettely pitäisi yleistää, jos kyseessä onkin yhtälöryhmä. Kahden yhtälön tapauksessa tangenttitasojen kuvittelu voi jotenkin onnistua, mutta isommat yhtälöryhmät ovat jo aika ylivoimaisia mielikuvitukselle.  Näkökulman vaihto kuitenkin auttaa.

 Derivaatta on erotusosamäärän raja-arvo, jolloin lauseke \[ \varepsilon(x,x_0) = \frac{f(x) - f(x_0)}{x - x_0} - f'(x_0) \] lähestyy nollaa, kun $x$ lähestyy arvoa $x_0$. Tämä voidaan saattaa muotoon \[ f(x) = f(x_0) + f'(x_0)(x - x_0) + \varepsilon(x,x_0)(x - x_0).  \] Termiä $f'(x_0)(x - x_0)$ kutsutaan differentiaaliksi, termi $\varepsilon(x,x_0)(x - x_0)$ saa usein nimekseen korjaustermi. Differentiaali on muuttujan $x$ suhteen ensimmäistä astetta, se on ns. lineaarinen termi, joka rajaprosessissa $x \to x_0$ lähestyy nollaa tekijän $x - x_0$ takia. Korjaustermi lähestyy vahvemmin nollaa, sillä sen kumpikin tekijä lähestyy rajaprosessissa nollaa.

Lauseketta $f(x_0) + f'(x_0)(x - x_0)$ voidaan pitää sitä parempana funktion $f(x)$ approksimaationa mitä lähempänä kohtaa $x_0$ ollaan. Voidaankin ajatella, että etsitään tämän nollakohta funktion $f(x)$ nollakohdan sijasta. Aivan sama tämä ei tietenkään ole, mutta ehkä kuitenkin lähempänä. Tällä tavoin päädytään Newtonin menetelmän iteraatiokaavaan. Suppenemisesta ei tämäkään näkökulma vielä kerro, vaan se tarvitsee oman analyysinsa.

Newtonin menetelmän yleistämiseen näkökulma kelpaa. Oleellista on löytää lineaarinen differentiaalitermi ja käyttää sitä funktion approksimoimisessa. Kahden yhtälön tapauksessa ratkaistava yhtälöryhmä on \[ \left\{ \begin{aligned} &f(x,y) = 0, \\ &g(x,y) = 0.  \end{aligned} \right.  \] Kahden muuttujan differentiaalilaskennan mukaan differentiaalitermi on summa funktion osittaisderivaatoista kerrottuna vastaavalla muuttujaerotuksella, funktiolle $f$ siis \[ f_x(x_0,y_0)(x - x_0) + f_y(x_0,y_0)(y - y_0), \] missä $f_x$ ja $f_y$ ovat osittaisderivaatat (ts. funktion derivaatta $x$:n suhteen pitäen $y$:tä vakiona ja derivaatta $y$:n suhteen pitäen $x$:ää vakiona). Vastaavasti funktiolle $g$.

Yhtälöryhmää voidaan nyt approksimoida vastaavasti kuin yhden muuttujan tapauksessa: \[ \left\{ \begin{aligned} &f(x_0,y_0) + f_x(x_0,y_0)(x - x_0) + f_y(x_0,y_0)(y - y_0) = 0, \\ &g(x_0,y_0) + g_x(x_0,y_0)(x - x_0) + g_y(x_0,y_0)(y - y_0) = 0.  \end{aligned} \right.  \] Tämä on lineaarinen yhtälöryhmä tuntemattomina $x$ ja $y$ ja ratkaisu antaa parannetut approksimaatiot $x_1$ ja $y_1$. Toistamalla askelta saadaan generoiduksi jono $(x_0,y_0),\ (x_1,y_1),\ (x_2,y_2),\ \dots$, joka eräin edellytyksin lähestyy yhtälöryhmän ratkaisua $(x^*,y^*)$.

Matriisialgebraan perehtynyt henkilö kirjoittaa lineaarisen yhtälöryhmän muotoon \[ F(X_0) + D_F(X_0)(X - X_0) = O, \] missä \begin{align*} &F(X_0) = \begin{pmatrix} f(x_0,y_0) \\ g(x_0,y_0) \end{pmatrix}, \quad D_F(X_0) = \begin{pmatrix} f_x(x_0,y_0) & f_y(x_0,y_0) \\ g_x(x_0,y_0) & g_y(x_0,y_0) \end{pmatrix}, \\ &X_0 = \begin{pmatrix} x_0 \\ y_0 \end{pmatrix}, \quad X = \begin{pmatrix} x \\ y \end{pmatrix}, \quad O = \begin{pmatrix} 0 \\ 0 \end{pmatrix}.  \end{align*} Ratkaisemalla $X$ saadaan \[ X = X_0 - D_F^{-1}(X_0) F(X_0).  \] Tässä $D_F$ on osittaisderivaattojen muodostama matriisi, joka on Jacobi'n matriisiksi kutsuttu yhden muuttujan funktion derivaatan yleistys. $D_F^{-1}$ on sen käänteismatriisi. Täten on päädytty iteraatiokaavaan \[ X_{n+1} = X_n - D_F^{-1}(X_n) F(X_n), \] jonka analogia yhden muuttujan tapaukseen on ilmeinen. Yleistys useamman yhtälön ryhmiin on suoraviivainen: sama iteraatiokaava pätee, matriisien koko vain on suurempi.

sunnuntai 30. toukokuuta 2021

Mitä ovatkaan logaritmitaulut?

Edellisessä blogijutussani mainitsin ohimennen logaritmitaulut. Vielä 60-luvulla jokainen lukiolainen oppi suorittamaan numeerisia laskuja logaritmitauluja käyttäen, mutta 70-luvulle tultaessa elektroniset laskimet muuttivat numeerisen laskennan täysin ja logaritmitaulut jäivät historiaan. Miten siis ennen laskimia laskettiin?

Ongelmana oli useasta numerosta muodostuvien lukujen kertolasku ja jakolasku. Käsin laskemalla nämä olivat työläitä ja virhealttiita. Neliöjuuren laskeminen tai yleisemmin murtopotenssiin korottaminen olivat toki mahdollisia, mutta vielä työläämpiä. Yhteen- ja vähennyslasku eivät niinkään olleet ongelmia, niissä työmäärä oli huomattavasti vähäisempi.

Logaritmifunktio ja sen taulukoidut arvot muodostivat oikotien. Kertolaskun tapauksessa perustana on identiteetti \[ \log(a) + \log(b) = \log(ab).  \] Taulukosta haettiin tulontekijöiden $a$ ja $b$ logaritmit ja nämä laskettiin yhteen, jolloin saatiin tulon $ab$ logaritmi. Käyttämällä taulukkoa käänteisesti haettiin logaritmia vastaava luku $ab$. Työläs kertolasku oli vältetty. Jakolasku palautui vähennyslaskuun identiteetin \[ \log(a) - \log(b) = \log(a/b) \] avulla. Juurenotto ja potenssiinkorotus palautuivat näitä hieman helpompiin kerto- tai jakolaskuihin yhtälön \[ p\log(a) = \log(a^p) \] perusteella.

Jotta kaikkien lukujen (tai ainakin tavattoman monen luvun) logaritmeja ei tarvinnut taulukoida, oli käytettävä Briggsin logaritmeja, joiden kantalukuna on 10. Luku jaetaan aluksi tuloksi, jossa edellinen tekijä on jokin $10$:n potenssi ja jälkimmäinen on välillä $]1,10[$. Esimerkiksi \[ 1234000 = 10^6 \cdot 1.234, \qquad 0.0001234 = 10^{-4} \cdot 1.234.  \] Luvun logaritmi on tekijöiden logaritmien summa. Edellisen tekijän logaritmi on $10$:n eksponentti; tätä kutsutaan karakteristikaksi. Jälkimmäisen tekijän logaritmi — nimeltään mantissa — haetaan taulukosta.  Tarvitaan siis vain väliltä $]1,10[$ jollakin tiheydellä otettujen lukujen logaritmit. Nämä ovat välillä $]0,1[$. Lukiolaisilla oli aikoinaan käytössä taulut, joissa logaritmit annettiin viiden numeron tarkkuudella.  Kuudes numero oli mahdollista saada interpoloimalla, mitä varten tauluissa oli pienet 'Partes proportionales' -aputaulut päässälaskua helpottamaan. Tauluja oli 37 sivua. (G. J. Hoüel, V. J. Kallio, Logaritmitaulut; alunperin ranskalaiset, joista suomalainen versio oli tehty valokuvaamalla alkuperäiset taulut ladontavirheiden välttämiseksi.)

Logaritmitaulujen sivu


Lukujen logaritmit esitettiin yleensä ns. normaalimuodossa pitäen karakteristika ja mantissa erikseen näkyvissä. Edellä olevien esimerkkien logaritmit saivat tällöin muodon (ks. kuvassa näkyvän taulukon alinta riviä!) $0.09132+6 = 6.09132$ ja $0.09132-4$. Joissakin tilanteissa — jos esimerkiksi jakolaskussa jouduttiin vähentämään pienemmästä mantissasta isompi — voitiin käyttää muutakin muotoa kuten $1.09132-5$ jälkimmäiselle esimerkkiluvulle.

Laskut oli syytä tehdä johdonmukaisesti. Tunnettu (ja arvostettu) Väisälän algebran oppikirja antoi tähän yksityiskohtaiset nyrkkisäännöt ja tähdensi huolellisuuden merkitystä: 'On tärkeätä tottua suorittamaan logaritmilaskut hyvin järjestettyinä.'

Alla oleva kuva on Väisälän esimerkki hieman mutkikkaammasta logaritmilaskusta hyvin järjestettynä.

Osamäärän ja juuren laskeminen


Logaritmifunktion arvojen lisäksi tauluissa oli trigonometristen funktioiden arvojen logaritmit. Näitä oli 45 sivua. Tauluja käytettiin lukion trigonometrian kurssissa kolmioiden ratkaisemiseen. Alla oleva esimerkki on lyhyen kurssin oppimäärästä Väisälän trigonometrian kirjasta.

Suorakulmaisen kolmion ratkaiseminen


Logaritmitaulujen ohella oli toinenkin oikotie numeeriseen laskemiseen: laskutikku. Tämä on logaritmitaulujen analoginen versio, jossa tikun kieltä ja hahloa liikuttelemalla saadaan tulos muutaman numeron tarkkuudella, yleensä pienemmällä kuin logaritmitauluja käytettäessä. Laskutikut kehittyivät logaritmitauluja monipuolisemmiksi laskuvälineiksi. Vielä 1960-luvulla laskutikku oli yleisesti käytössä esimerkiksi yliopisto-opintojen fysiikan laboratoriotöissä.Verkkoartikkeleita laskutikuista (slide rule, Rechenschieber, règle à calcul) löytyy runsaasti. Käyttöä voi myös harjoitella virtuaalisesti.


Laskutikku

Elektronisten laskimien tulo siirsi sekä logaritmitaulut että laskutikut hetkessä historiaan. Numeeriset laskut muuttuivat näppäimien paineluksi ja ohjelmoinniksi, laskennassa alkoi uusi aikakausi. Lukion matematiikkakin helpottui huomattavasti ainakin näiltä osin.

sunnuntai 23. toukokuuta 2021

Benfordin jakauma

Jotakin tilastodataa katsellessa tuntuu usein siltä, että datassa on ykkösellä alkavia lukuja eniten. Loppupään lukuja 7, 8, 9 on ensimmäisenä numerona huomattavasti vähemmän. Esimerkiksi Terveyden ja hyvinvoinnin laitoksen verkkosivuilta on saatavissa koronavirustartunnat viikoittain ja päivittäin pandemian koko ajalta. Näiden ensimmäisistä numeroista tehdyt jakaumat näyttävät seuraavilta:


Viikoittaisten tartuntojen ensimmäisen numeron jakauma

 

Päivittäisten tartuntojen ensimmäisen numeron jakauma

Samaan tapaan voidaan tarkastella Suomen kuntien väkilukuja, pinta-aloja ja väentiheyksiä. Sama ilmiö näkyy näissäkin (keltaiset pylväät, mustat pisteet viittaavat alempana esiteltävään Benfordin jakaumaan):

Kuntien väkilukujen ensimmäisen numeron jakauma

Kuntien pinta-alojen ensimmäisen numeron jakauma

Kuntien väentiheyksien ensimmäisen numeron jakauma



Ykkösten osuus näyttäisi olevan 30 prosentin paikkeilla, kakkosia on 15-20 prosenttia, kolmosia 10-15 prosenttia, nelosia kymmenkunta prosenttia, loppuja alenevasti muutamia prosentteja. Vaihtelu on melko suurta.

Ilmiöön kiinnitti huomiota amerikkalainen sähköinsinööri ja fyysikko Frank Benford julkaisussaan The Law of Anomalous Numbers vuonna 1938. Hän ei tosin ollut ensimmäinen, sillä jo 1881 oli kanadalainen astronomi ja matemaatikko Simon Newcomb havainnut logaritmitaulujen alkupään olevan kuluneempia kuin myöhemmät sivut ja päätellyt tästä laskuissa tarvittavien lukujen yleisemmin alkavan alkupään numeroilla.

Julkaisussaan Benford esitti jakauman, jota sittemmin on alettu kutsua Benfordin jakaumaksi. Todennäköisyys, että luvun ensimmäisen numero on $d$, on \[ \log_{10}\Bigl(1+\frac{1}{d}\Bigr), \quad d = 1,2,3,4,5,6,7,8,9.  \] Prosentteina todennäköisyydet ovat 30.1, 17.6, 12.5, 9.7, 7.9, 6.7, 5.8, 5.1 ja 4.6. Mustat pisteet yläpuolella olevissa kuvissa esittävät Benfordin jakaumasta laskettuja arvoja.

Äkkiseltään tulos tuntuu ihmeelliseltä. Eikö olisi luonnollisempaa, että ensimmäinen numero jakautuisi tasaisesti, ts, jokaisen numeron todennäköisyys olisi noin 11 %? Näinhän käy, kun tarkastellaan esimerkiksi väliltä $]0,1[$ tasaisesti arvottuja satunnaislukuja. Tilastodata ei tosin ole satunnaislukuja, ja tulos riippuu myös siitä, miltä väliltä tasaisesti jakautuneet satunnaisluvut arvotaan.

Useista tilastodatoista on laskettu ensimmäisen numeron jakaumia, ja erittäin usein nämä noudattavat Benfordin jakaumaa ainakin kohtuullisella tarkkuudella. Miksi näin käy?

Ensimmäisen numeron jakauma voidaan laskea mistä tahansa lukujoukosta, ei yksinomaan jostakin tilastodatasta. Sadan ensimmäisen Fibonaccin luvun ensimmäiset numerot näyttävät noudattavan Benfordin jakaumaa kohtuullisen tarkasti. Sama koskee väliltä $]0,\pi/2[$ otettuja sataa tangenttifunktion arvoa, joista otetaan ensimmäinen merkitsevä (nollasta eroava) numero, mutta ei vastaavasti muodostettuja sinifunktion arvoja.

Fibonaccin lukujen ensimmäisen numeron jakauma

Tangenttifunktion ensimmäisen numeron jakauma

Sinifunktion ensimmäisen numeron jakauma


Ilmiön syy alkaa paljastua tarkastelemalla kakkosen (tai yhtä hyvin monen muun luvun, vaikkapa kolmosen) potensseja. Tuhannen ensimmäisen kakkosen potenssin ensimmäiset numerot noudattavat täydelleen Benfordin jakaumaa:

Kakkosen potenssien ensimmäisen numeron jakauma


Alkaa vaikuttaa siltä, että eksponentiaalinen kasvu jotenkin liittyy Benfordin jakaumaan. Tämä on kuitenkin hieman hätäinen huomio: tarkasteltavia lukuja voidaan nimittäin jokaista erikseen skaalata 10:n potensseilla ilman, että ensimmäinen (merkitsevä) numero muuttuu. Jakaumakaan ei tällöin muutu.

Tarina siis on monimutkaisempi. Tyydyn viittaamaan Rashida Hakimin blogikirjoitukseen Putting #1 First – Deriving Benford’s Law. Huolellinen esitys ja lukiotiedoilla luettavissa, vaikka tietty matemaattinen kypsyys saattaakin olla tarpeen.

tiistai 13. huhtikuuta 2021

Nelikulmioiden runsaudensarvi

Kävin kouluni pääosin 50-luvulla, jolloin kuoluvuosien 7-12 matematiikanopetuksesta suuri osa käsitteli geometriaa Eukleideen tapaan: todistettiin tasokuvioita koskevia teoreemoja eli lauseita, konstruoitiin kuvioita harpilla ja viivoittimella. Jonkin verran käytettiin myös algebraa geometrisiin ongelmiin. Tästä on nykyisessä koulukurssissa jäljellä aika vähän. En oikeastaan pidä sitä pahana. Kuvioiden ominaisuudet eivät ehkä kovin tärkeitä ole, deduktiivinen päättely saattaisi ollakin.


Kuvioiden geometrisissa ominaisuuksissa ja niiden todistamisessa on kuitenkin jotakin viehättävää, ainakin Eukleideensa lukeneelle. Olen selaillut AMS:n ja MAA:n (American Mathematical Society, Mathematical Association of America) yhdessä julkaisemaa Claudi Alsinan ja Roger B. Nelsenin teosta A Cornucopia of Quadrilaterals, suomeksi 'nelikulmioiden runsaudensarvi'. Ei varmaankaan aineistoa koulukurssille eikä siis tiukasti ottaen tarpeellista. Muutama hyvä idea ylioppilaskokeeseen voisi kyllä löytyä.  Pikemminkin kyseessä on palanen geometrista kulttuuria, hämmästyttävä määrä yksinkertaisten kuvioiden ominaisuuksia ja säännönmukaisuuksia, todistamisen ja sen tarpeellisuuden idea.

Kirjassa on yli 300 sivua, aiheena yksinomaan nelikulmiot, kaikin tavoin. Ominaisuuksia ja niiden todistuksia, selkeät kuvat, haasteiksi (challenge) kutsuttuja helpompia ja vaikeampia harjoitustehtäviä, niiden ratkaisut, hakemisto. Lopussa on varsin laaja kirjallisuusluettelo, joten tietojaan voi helposti syventääkin. (Olisiko tässä aineksia opettajakoulutukseen?)

Lukijan alkaa helposti tehdä mieli kokeilla: Onko se nyt todella noin, jos muunnan kuviota?  Entä jos teksinkin hieman toisin? Voisinko todistaa jotakin vastaavaa samaan tapaan?  Kouluaikanani kokeilut olisivat olleet hankalia: piirrettävä melkein sama kuvio moneen kertaan.  Nykyään on helpompaa: tällaisiin kokeiluihin GeoGebra (tai vastaava) on omiaan.

Muutama esimerkki:

Nelikulmion massakeskipisteen hakeminen

Mielivaltaisen nelikulmion massakeskipiste voidaan hakea ajattelemalla, että nelikulmion kärjissä on identtiset massat. Jokaisen sivun massakeskipiste on tällöin sen keskipiste. Kun nämä yhdistetään perättäin, syntyy suunnikas (miksi?). Tätä kutsutaan Varignonin suunnikkaaksi ranskalaisen matemaatikon Pierre Varignonin (1654–1722) mukaan. Suunnikkaan kahden vastakkaisen kärjen massakeskipiste on niiden yhdysjanan, suunnikkaan lävistäjän keskipiste. Koska kummankin lävistäjän keskipisteet yhtyvät (miksi?), on saatu Varignonin suunnikkaan massakeskipiste. Tämä on myös alkuperäisen nelikulmion massakeskipiste.

Toisaalta nelikulmio voidaan ajatella homogeeniseksi levyksi. Kun se jaetaan (toisella) lävistäjällä kahdeksi kolmioksi, voidaan kummallekin kolmiolle löytää massakeskipiste keskijanojen leikkauspisteestä. Nelikulmion massakeskipiste sijaitsee näiden yhdysjanalla.  Tekemällä vastaava konstruktio toisen lävistäjän suhteen saadaan toinen yhdysjana.  Massakeskipiste on näiden yhdysjanojen leikkauspiste.

Lukija jää ehkä miettimään, ovatko saadut massakeskipisteet samat. Kokeilemaan GeoGebralla ja myönteisessä tapauksessa todistamaan!


Sinin ja kosinin yhteenlaskukaavat (kirjan kuvio 6.4.2)

Toinen esimerkki trigonometriasta:  Kuvioilla voi todistaakin kaikenlaista, vaikkapa sinin ja cosinin yhteenlaskukaavat \begin{align*} \sin(x+y) &= \sin x \cos y + \cos x \sin y, \\ \cos(x+y) &= \cos x \cos y - \sin x \sin y \end{align*} rakentamalla sopivista kolmioista suorakulmio sopivalla tavalla. (Samaa ideaa käytti myös K. Väisälä 50-luvulla trigonometrian kirjassaan, mutta hän ei pakannut kolmioitaan suorakulmion sisään.)

Miten tällaisia muualla maailmassa ilmestyneitä kirjoja sitten saa käsiinsä? Painetun kirjan tilaamisesta sen saapumiseen saattaa kulua viikkoja, varsinkin korona-aikana pikemminkin kuukausia. Onneksi kuitenkin sähköisten kirjojen tarjonta on lisääntynyt. Sain tämän kirjan jäsenyyteni perusteella ilmaiseksi ja ostopäätöksestä kirjan tallentumiseen koneeni levylle meni muutama minuutti. Luottokortilla maksaminen tuskin prosessia merkittävästi hidastaa. Sähköisissä kirjoissa on muitakin hyviä puolia: eivät täytä kirjahyllyä, hävittäminen on helppoa.

Tarjonnan seuraaminen kyllä teettää hieman töitä eikä esitteen tai mainoksen perusteella aina ole helppoa päätellä kannattaako ostaa. Olisiko vaikka MAOLilla resursseja seurata tarjontaa ja nostaa kiinnostavia teoksia esiin?

Kieli, ainakaan englanti, ei varmaan ole ylivoimainen este. Matematiikassa tarvittava sanasto on aika suppea. Suomeksi kääntäminen voisi tietenkin olla hienoa, mutta vaikka se levikkiä lisäisikin, kaupallista kannattavuutta tuskin syntyisi.