(toiminnot)

hwechtla-tl: Irrationaalilukujen esitystapa: viime muutokset

Ensinnäkin pieni kertaus: irrationaaliluvut ovat lukuja, joita ei voi ilmaista (tarkasti) kahden luvun suhteena, eli siis joita ei voi ilmaista murtolukuna. Tämä tarkoittaa myös, ettei niitä voi ilmaista desimaalilukuina, koska jokainen desimaaliluku on muunnettavissa murtoluvuksi, esimerkiksi 0,00374 =

{{{ 374 187 ~~~~~~ = ~~~~~ 100000 50000 }}}

Luulisin, että irrationaalilukujen nimi tulee siitä, että ''suhde'' (ratio) ei riitä ilmaisemaan niitä -> "irrationalis". Ratio tarkoittaa myös järkeä, joten nimityksen voi kääntää myös järjenvastaiseksi luvuksi. Mikä kuvaa hyvin ihmisten mielikuvituksen rajoittuneisuutta.

No niin, asiaan. Miten irrationaalilukuja merkitään, jos niitä ei voi merkitä suhteina? (Miten edes voidaan tietää, mistä numerosta on kyse, jos sitä ei ole mitään tapaa merkitä?) Irrationaalilukuja saadaan tuloksina tietyistä laskutoimituksista. On esimerkiksi helppoa osoittaa, että jos n x n = 2, (jolloin n on 2:n neliöjuuri), n:a ei voida ilmaista minään murtolukuna. Niinpä se on irrationaalinen. (Muita esimerkkejä irrationaaliluvuista ovat pii, e ja erilaiset näitä keskenään ynnäämällä, vähentämällä, kertomalla ja jakamalla saadut luvut.)

Irrationaalilukuja voidaan ilmaista kahdella tavalla: joko viittaamalla laskutoimitukseen, josta kyseinen irrationaaliluku on tuloksena (kuten neliöjuuri 2 yllä), tai niistä voidaan antaa ''likiarvoja'', eli desimaali-/murtolukuja, jotka eivät tosin ole tarkalleen irrationaaliluvun lukuarvoa vastaavia, mutta "tarpeeksi lähellä" jotain tarkoitusta varten (näin tekee esimerkiksi taskulaskin, kun pyydät sitä laskemaan 2:n neliöjuuren).

Molemmissa lähestymistavoissa on ongelmansa. Ensimmäinen estää sieventämästä lausekkeita ja tuottaa hirmuisen määrän erilaisia merkintätapoja luvuille, eikä sittenkään pysty ilmaisemaan kuin pienen osan irrationaaliluvuista. Esimerkiksi V3 (neliöjuuri kolme) on irrationaaliluku, samoin on 2+V3, ja 2+V3+V5/2. Useat näistä eivät sievene. Ei ole edes yksimielisyyttä, kumpi on "sievempi" tapa ilmaista tietty luku, 1/V2 vai V2/2 (jotka siis ovat sama luku). Ylipäänsä tämä symbolinen merkintätapa on hankala koneille, minkä takia taskulaskimet yleensä käyttävätkin toista tapaa.

Toisen tavan vika on se, että se on virheellinen. Taskulaskimessa näkyvä luku ''ei ole'' V2 vaan sen likiarvo, eikä aina voida olettaa, että juuri meidän tarkoitustamme varten se on "riittävän tarkka". Taskulaskin ei sitä paitsi pidä kirjaa siitä, kuinka suuri erilaisten laskutoimitusten jälkeen on luvun virhemarginaali, joten emme itse asiassa edes tiedä, kuinka luotettava tuo likiarvo on, ellemme sitä itse laskemalla tarkista. Suurimpaan osaan päivittäistä käyttöä tietenkin riittää yksinkertaisesti, että laskee niin tarkasti kuin taskulaskin pystyy, ja tarkkuus riittää ylenpalttisesti.

Mutta ensimmäisen ja toisen lähestymistavan pystyy yhdistämään. On nimittäin niin, että nämä irrationaalilukujen likiarvot tuotetaan jollain tavoin laskemalla (miten muuten laskin osaisi tuottaa niitä?). Kaikenlaisille tunnetuille irrationaaliluvuille on tunnettuja menetelmiä, joilla niitä pystyy laskemaan mielivaltaisen tarkasti. Ja tämä kaava (likiarvojen tuottamiskaava) on itse asiassa irrationaaliluvun ''tarkka'' (eikä likiarvoinen) määritelmä, koska sillä voi laskea luvun mielivaltaisen tarkasti ja niinpä sen raja-arvo tarkkuuden kasvaessa äärettömään on tuo luku itse.

Miksi tämä on tärkeää? Koska mielivaltaisen tarkan irrationaaliluvun (toisin kuin valmiiksi täysin tarkan kuten 1+V10) pystyy mallintamaan äärettömänä listana desimaaleja. Äärettömän listan desimaaleja taas pystyy ohjelmointitekniikoilla mallintamaan siten, ettei sitä tarvitse laskea kokonaan (jolloin laskeminen ei loppuisi), vaan sitä voi laskea tarkempiin ja tarkempiin desimaaleihin sitä mukaa, kuin niitä tarvitaan. Tämän tekniikan nimi on [laiska evaluaatio]. Tällä tavoin mallinnetuille irrationaaliluvuille on helppoa määritellä operaatioita, kuten yhteen-, vähennys- jne. laskuja, joiden tulokset ovat myös äärettömiä desimaalilistoja.

[kategoria: ohjelmointi] [kategoria: filosofia]


(viimeksi muutettu 27.06.2005 15:41)