sunnuntai 12. joulukuuta 2021

Miltä $\pi$ kuulostaa?

 Blogijutussani Irrationaalikävelyllä  tarkastelin luvun $\pi$ desimaalien mukaan eri suuntiin eteneviä askelia ja näistä muodostuvaa polkua. Luvun irrationaalisuus näkyy polun ennakoimattomuutena.
Olisiko muita tapoja havainnollistaa piitä tai ainakin leikitellä sillä? Mitä saadaan, jos esimerkiksi asetetaan desimaalit vastaamaan tiettyjä sävelkorkeuksia? Ja miten helposti tällaisia kokeiluja pääsee tekemään.

Olen kokeiluissani yleensä käyttänyt laskentaohjelma Mathematicaa, johon on versio versiolta kertynyt jatkuvasti lisää kaikenlaisia, usein hieman sekavia ja kokeellisia ominaisuuksia. Esimerkiksi 12-sävelasteikon sävelet yksiviivaisesta c:stä alkaen saadaan muutamalla komennolla ja tulos voidaan tallentaa äänitiedostona:


Piin esitykseen päästäänkin tämän jälkeen varsin vähällä:


Ajatus piin esittämisestä äänitiedostona ei toki ole uusi. Piin desimaalit ovat lukujono A000796 kokonaislukujonojen ensyklopediassa (The On-Line Encyclopedia of Integer Sequences) ja täällä on myös mahdollista kuunnella pii jopa useana erilaisena esityksenä.

Vähän yksitoikkoiselta pii toki kuulostaa. Mathematican kokeelliset piirteet antavat mahdollisuuden muuhunkin. Sävelet voidaan määritellä myös suoraan nuotteina, niiden kesto voidaan määritellä erikseen ja jopa soitinkin voidaan valita. Viimeksi mainittu on kyllä musta laatikko: missään ei käsittääkseni ole dokumentoituna, miten eri soitinten äänet on muodostettu. Pii voidaan tietenkin esittää muutoinkin kuin 10-kantaisena ja esityksen numerot sitoa sävelkorkeuksiin miten halutaan. En esittele tarvittavia komentoja, niissä tuskin on mitään yleispätevää kiinnostavuutta.

Ensimmäisenä esimerkkinä on 10-kantainen pii 12-asteikossa uruilla soitettuna, sävelten kestot Neperin luvun 10-kantaisesta esityksestä. Tästä voi piirtää kuvankin, eräänlaiset nuotit nämäkin:


Toisena esimerkkinä on 'kolmisointu-pii', ts. pii esitettynä 3-kantaisena, tämän numerot sidottuina säveliin c, e, ja g, kestot Neperin luvun 3-kantaisesta esityksestä, soittimena edelleen urut.

Monilla matemaattisilla ongelmilla on käänteiset ongelmansa. Niin tässäkin. Edellä kuvatulla tavalla voidaan muuntaa luku musiikiksi, tai siis ainakin ääneksi, mutta entä musiikin muuntaminen luvuksi? Sitäkin voi kokeilla:

Olkoon \begin{align*} a &= \frac{2819342985735813859733523604893034305465368787123665428766810701824}{1730765619511609209510165443073365}, \\[5pt] b &= \frac{2934443644746840392851674865259212716387069853696}{4238682002231055}. \end{align*} Tällöin komennot

tuottavat joulunaikaan sopivan äänitiedoston. (Miksi heksadesimaalikanta? Jotta 12-järjestelmässä saadaan esitetyksi tarvittava ääniala ...)

Lopuksi toivotan kaikille lukijoille riemullista joulujuhlaa.

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

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.