Edellinen | Seuraava |
Historia on ollut periaatteessa ainakin osittain kiinnostavaa. Nyt olen päättänyt että se on myös tärkeää. Erikoisen tärkeää on suomalaisen tieteen historia, koska haluan vielä joskus opiskella ihan oikeassa yliopistossa. Tieteen historia on paljolti yliopiston historiaa. Eläkeikään on tosin "vain" 6 vuotta jäljellä, enkä ole vielä saavuttanut AMK-insinöörin tutkintoa, jota pystyy ehkä käyttämään ponnahduslautana, mutta silti. Ehkä pystyisi opiskelemaan yliopistossa vielä eläkeläisenäkin?
Ai niin, hain jatkoaikaa opiskeluoikeuteen, koska olin siinä käsityksessä että aikaa syksyllä 2013 alkaneeseen opiskeluun oli yhteensä vain noin 4½ vuotta, eli aika olisi sen mukaan loppunut joulukuun lopussa tänä vuonna 2017. Sain nyt kuitenkin tietää että opinto-oikeutta minulla on yllättäen vuotta aiemmin luultua enemmän eli ensi vuoden 2018 loppuun. No hyvä, siinä ajassa pitäisi saada asiat reilaan ammattikorkeakoulun osalta, vaikka onkin ollut pientä takaiskua pitkin matkaa.
Jossakin vaiheessa on ilmeisesti vaivihkaa lisätty yksi vuosi lisää opiskeluoikeutta. Eipä vaan ole vaivauduttu ilmoittamaan minulle, se on talon tapa. Informaatioyhteiskunta mukamas, mutta tiedon kulku takkuilee tavan takaa. Tiimivastaava, mistähän hänkin oikeasti vastaa? Kokemukseni mukaan hän ei vastaa edes sähköpostistaan, ei vastaa sähköpostiin.
Suomalainen tieteen historia ei sinänsä ole kovin hohdokasta, varsinkaan alkutaipaleellaan. Kirkon, Raamatun ja uskonnon ylivalta yliopistoissa on varsin ärsyttävä piirre aina jonnekin 1700 -luvulle saakka. Jostakin 1800-luvun lopusta alkaen se on kuitenkin parasta mitä tästä maasta löytyy. Ei kautta linjan koko maailman parasta, mutta Suomen parasta. Maailman parasta suomalaista tiedettä.
Ihmisyyden historia on liki äärettömän paljon kauempana arkipäivästäni, mutta se on väistämättä se kivijalka jolla me kaikki seisomme. Ihmisyyden alkuperä kätkeytyy esi-historian hämärään. Joitakin osia siitä toki on kaivettu päivänvaloon, mutta joudun pitämään sitä kuitenkin - ainakin yksityiskohdiltaan - suurena mysteerinä.
Jos oikein syntyjä syviä haluaa kaivella niin voisi kokea arvuutella jopa ihmisen ja elämän alkuperää, maapallon alkuperää, maailmankaikkeuden alkuperää. Tässä aion kuitenkin poiketa nykytieteen ja tieteellisen maailmankuvan traditiosta ja vetää sen jyrkän itsenäisen linjan että meillä ei ole suoria havaintoja niin kaukaisista asioista. Kaikki mitä tiedämme - tai ainakin luulemme tietävämme - evoluutiosta, kosmogoniasta ja kosmologiasta on vain teoreettista pohdiskelua. Sinänsä arvokasta tiedettä, mutta sisällytän sen tieteen historiaan. Käsitykset ovat vaihdelleet aikojen kuluessa ja epäilemättä tulevat jatkossakin muuttumaan. Tieteen historia jatkuu edelleen. Kuka välittää nykyisestä maailmankuvasta joskus sadan vuoden kuluttua!
"The Human Web, a bird's-eye view of world history" vuodelta 2003 on isän ja pojan kirjoittama eräänlainen kompakti maailmanhistorian yleisesitys. Lähestymistavaltaan ehkä hiukan originelli, mutta pääsääntöisesti myönteinen ilmiö ja kohtalaisen kiinnostava. Se saa toistaiseksi kelvata minulle maailmanhistorian lähdeteokseksi näissä opiskeluboxin oloissa. Grimbergin kaikki Kansojen historiat olen raijannut Porin kaupunginkirjaston vaihtokirjahyllyyn jo aikapäiviä sitten.
Suomen, Venäjän ja Ruotsin historia ovat toki suomalaiselle tärkeimmät, vaikka suurvaltojen aiheuttamat laineet ja muut globaalit tekijät ovatkin ajoittain kotoisen kansamme oloja heilutelleet. Venäjän historiasta minulla ei valitettavasti ole omaa opusta. Oikeasti Venäjän historiaa pitäisi tietenkin lukea venäjäksi, alkukielellä.
Ruotsin historiasta löysin kaksi kirjaa sarjasta "Den Svenska Historien", luonnollisesti alkukielellä, osat 8 ja 9. Nämä koettavat yhdessä kattaa vuodet 1809 - 1920, jotka vaikuttavatkin kiinnostavimmalta ajanjaksolta Ruotsin historiassa. Tämä on siis suunnilleen ajanjakso Suomen sodasta ensimmäiseen maailmansotaan. Suomi ei enää kuulu Ruotsin yhteyteen, mutta epäilemättä Suomessa edelleen näkyy entisen emomaan vaikutus vahvana monessa suhteessa.
Mutta Suomen historiahan se kaikkein tärkein täytyy olla. Ja onhan siitäkin kohtalainen oppikirja olemassa. Löytyi ihan SAMK:in Vähärauman kirjastosta vaikka kyseinen kirjasto tuskin historiaan paljoa panostaakaan.
"SUOMEN HISTORIA ; Jääkaudesta Euroopan unioniin" on painettu 2003 ja edustanee sikäli kohtalaisen nykyaikaista katsantokantaa.
Historianhan voi aina tarvittaessa kirjoittaa uudelleen, se on siitä kiitollinen aihe. Näkemykset historiasta ovat aina subjektiivisia. Mielipiteet ovat vaihdelleet ja epäilemättä tekevät sitä vastakin.
Henkilökohtaisesti toivon että jäsenyys EU:ssa jää piankin suomalaisten historian pienimerkitykseksi välivaiheeksi, katkeraksi erehdykseksi, joka mieluiten unohdetaan ja painetaan jonnekin Ö-mapin syövereihin pois silmistä. Sitä kirottua EU:ta ja Brysselin herroja tuo Väinämöinenkin varmaan tuossa eepoksen kansikuvassa manaa ja kiukuttelee, kokee laulaa suohon. Jeesus-lapsikin tosin hohtaa taustalla eräänä kiusallisena häiriötekijänä.
Hmmm, historiasta puheen ollen, oikeastaan ei olisi hassumpaa jos Adolf Hitler olisikin voittanut sodan ja valloittanut Englannin kuten ohessa kuvattu vaihtoehtoinen maailmanhistoria tuntuu spekuloivan, koska lontoolaisen 2-kerroksisen bussin kyljessä on reipas Hitler-tervehdys "Heil Hitler!" ja hakaristiliput koristavat jopa brittien julkista rakennusta.
Tai jospa Jeesus Nasaretilainen olisikin elänyt 64 vuotiaaksi kuten hautakivi vihjaa ja kuollut ihan vaan silkkaa vanhuuttaan? Tai jos eurooppalaiset eivät olisikaan valloittaneet Amerikkaa?
Tämän hauskan kirjan kannen kuvasin Porin kaupunginkirjaston Kirjakirpussa jossa on tarjolla poistokirjoja euron kappalehintaan (paitsi lasten ja nuorten kirjat 0,50€/kpl).
Kalevala epäilemättä on kansallisen suomalaisen identiteettimme keskeinen tukipylväs, vaikka siinä runojen keräilijän oma henkilökohtainen panos varmaankin näkyykin melko selvästi. Pohja on kuitenkin vanhaa suomalaista kansanrunoutta, ehkä paljolti peräisin Länsi-Suomesta.
Jääkauden jälkeinen suomenniemen valloitus on sinänsä kiinnostava aihe. Tietoja siitä ei vaan millään voi väittää kovinkaan kattaviksi ja yksityiskohtaisiksi. Kivikauden ihmisen maailma on meille vieras ja tuskin voimme sitä aidosti ymmärtää.
Tutulta ja konkreettiselta historia alkaa vaikuttaa vasta 1800-luvun lopulta lähtien. En silti voi olla haikailematta parempia ja suomalaisempia tietoja ristiretkiä edeltäneeltä ajalta. Eivätkö suomalaiset muka olleet mitään ennenkuin ruotsalaiset valloittivat maan? Eikö suomalaisilla ollut omia arvokkaita saavutuksia? Olimmeko vain maakuopissa asuvia nokinaamoja, tietämättömiä mongoleja? Eikö meillä ollut omaa maailmankuvaa, omaa alkuperäistä uskontoa?
Virallinen historia ei tee täyttä oikeutta vanhoille suomalaisille. Eipä se kyllä tee oikeutta uusillekaan suomalaisille uhatessaan sulattaa ja tuhota suhteellisen pienen kansamme pahan EU:n ylikansallisessa sulatusuunissa ja hukuttaa globalisaation tuhotulvaan sekä nimetä sotahullun NATOn taistelukentäksi. Emme sovellu globalisaation ja itä-länsi-vastakkaisasettelun uhrilampaiksi. Suomen pitäisi viimeinkin aidosti itsenäistyä. Emme tyydy EU:n kiltin mallioppilaan asemaan, se tulee meille liian kalliiksi.
Suomalaisen identiteetin ja itsetunnon eteen pitäisi kiireesti tehdä jotakin, niin kauan kuin kielemme ja kansamme vielä joten-kuten on tolpillaan ja kenttäkelpoinen.
SAMK:in matematiikkamoduulin (nykyisin Porissa oikeasti TTY:n Porin laitoksen pyörittämä) differentiaali- ja integraalilaskentaa käsittelevä osa on ainakin aiemmin perustunut kirjalle Calculus, Adams-Essex, jota koulun kirjastosta löytyy muutamia kappaleita eri editioita. Tai löytyy ainakin silloin kun ko. kurssi ei ole meneillään. Kun kirjalle sitten on kysyntää jokseenkin koko lukukauden kestävällä kurssilla, niin kirjaston hyllyssä on tarjonta tältä osin huomattavan heikkoa.
Nyt kesäksi olen lainannut koulun kirjastosta kirjan seitsemännen edition (vuodelta 2010) valmistautuakseni sen avulla tuleviin koitoksiin. Kirjan kannessa näkyvä kuumuusaavikko ehkä kuvaa lukijan edessä olevia haasteita?
Kesällä kurssikirjaa saa pitää lainassa kunnes kirjasto vihdoin syyskuussa aukeaa uudella kampuksella. Normaali laina-aika kurssikirjalle on vain yksi viikko ja jos kirjaan on varaus, et voi uusia lainaa, eli käytännössä kirjaa pitäisi kuljettaa koko ajan mukanaan että pystyisi palauttamaan sen ellei pysty uusimaan lainaa. Aika hankalaa. Tekee pitkäjännitteisen opiskelun tarpeettoman vaikeaksi.
Olen päättänyt kuitenkin sitoutua pysyvästi kyseiseen opukseen, on se sitten uudessa matematiikkamoduulissa käytössä ensi kevätlukukaudella tai ei. Kirjassa on myös amerikkalaista tyhmyyttä, mutta se muodostaa kuitenkin tukevan pohjan korkeamman matematiikan opinnoille joita toivottavasti vielä on paljon edessäpäin.
Niinpä päätin hankkia sellaisen itselleni. Suomalainen kirjakauppa Porissa ei halunnut tilata ko. kirjaa ollenkaan, mutta onhan olemassa myös kilpailija joka Porin kauppatorin laidalla tarjoaa palveluksiaan. Tilaus tuli perille aika räpsäkästi, ei tarvinnut odotella viikkotolkulla. Tämä on kirjan 8. editio (vuodelta 2014), jonka kansi kuvaa mehiläispesän hyörinää ja on sikäli hiukan lohdullisemman näköinen ulkoapäin. Hintaa 95,60€ ei voi ylistää suorastaan edulliseksi, mutta mies haluaa sen minkä haluaa ja se maksaa sen minkä se maksaa.
Kuvassa uusi kirjani lepäilee ylemmyydentuntoisena koulun kirjaston kirjan päällä. Luulen että ne kuitenkin ovat sisällöltään oleellisesti samoja, vaikka uuden edition nimessä on oikein erikseen se sana "revised". Seitsemännessä editiossa on normaalisti numeroituja sivuja 973 ja kahdeksannessa rev-editiossa 1026 kappaletta. No joo, täytynee niissä jotakin eroa olla. Eniten näissä ehkä ärsyttää Maple-niminen tietokoneen matikkaohjelma johon en todennäköisesti pääse käsiksi. Matematiikkaa voi kuitenkin oppia ilman tietokonettakin.
Eri editioista voi olla vaivaa sikäli että opettajan kirjassa saattaa olla erilainen tehtävien numerointi. Se tuskin kuitenkaan on mikään ratkaiseva ongelma. Ja kyllä kurssista varmaankin voi päästä läpi pelkän maksuttoman kurssimateriaalin avulla, mutta minulle tässä on kyse ihan muusta kuin siitä saanko jonkin yksittäisen kurssin suoritettua rimaa hipoen. Näen tämän kriittisen tärkeänä osana todellisen insinöörin ammattitaitoa. Napinpainajainsinöörit tuskin tarvitsevat matematiikkaa ollenkaan.
Kesäkuu tulee sujumaan integroiden ja loppukesästä aion saavuttaa ja valloittaa vektorianalyysin syöverit. Parempi matematiikka on avain joka sopii paremman tekniikan lukittuihin oviin ja tarjoaa pääsyn läkähdyttävän hiekka-aavikon polttavan kuumien dyynien takaiseen kauniiseen kukkivaan matemaattiseen keitaaseen, vilvoittavien vetten äärelle. Siellä ahkerat työmehiläiset pörisevät kantaen mettä kukista kennostoihinsa.
Kukista ja mehiläisistä puheen ollen, varmaankin siellä kukkaiskedoilla ja rehevien palmujen katveessa vartoo pitkään monenlaisessa niukkuudessa ja puutteessa elänyttä matkamiestä runsaslukuinen määrä muodokkaita naimaikäisiä ja -haluisia neitsykäisiä, jotka vähissä vaatteissa loikoilevat Auringon paahteessa, ojennellen raukeina kutsuvasti nuoria vetreitä jäseniään, ihan Tuhannen ja yhden yön eroottis-sävytteisten kertomusten malliin. Olisiko tuo ihan Koraanissa? Tai Kama-Sutrassa?
Matte kakkosesta eli matematiikkamoduulin toisesta lineaarialgebraa käsitelleestä kurssista alkaa jo olla kuukausia aikaa, mutta tekee mieli palata PNS-ratkaisuihin oman esimerkin avulla, koska se aihe jäi sentään hiukan heikompiin kantimiin ja uskon että minulla olisi tässä jotakin sisältöä tarjottavana. Kyllähän pienimmän neliösumman menetelmää voi soveltaa muutenkin kuin lineaarialgebraa käyttäen, mutta tässä on juurikin työkaluna lineaarialgebra, matriisit ja vektorit.
Matte 2 -kurssin viimeisessä harjoituskokeessa ei ollut kovinkaan laajoja PNS-tehtäviä, luultavasti siksi että kokeessa aikaa on vain puoli tuntia, eikä omia muistiinpanoja, laskimia ja tietokonetta saa käyttää apuna, vaan tehtävät täytyy ratkaista käsilaskuna, kynällä ja paperilla. Hiukan komeampi PNS-sovite on sentään jo aika työläs laskuteknisesti. MATLAB-tehtävänä komeakin pienimmän neliösumman sovite olisi realistinen siinä ajassa, mutta ne tietokonetehtävät olivat jo ohi kun kurssi lopuksi saavutti pienimmän neliösumman aineiston. Niinpä pieneen kertaukseen on aihetta.
Käytän tässä tilastollisen analyysin merkintöjä. Ratkaistava matriisiyhtälö on periaatteessa seuraavaa muotoa: X β = y
, jossa X on suunnittelumatriisi, β on parametrivektori ja y on havaintovektori. Vektori y sisältää siis havainnot jotka halutaan selittää. Parametrivektori β on alkutilanteessa tuntematon. Tehtävänä on löytää sellaiset parametrivektorin arvot että suunnittelumatriisissa X olevat 2D-esityksessä x-arvoiksi ajatellut arvot ja havaintovektorissa y olevat vastaavat y-arvoiksi ajatellut havainnot saadaan sopimaan yhteen mahdollisimman hyvin.
Lineaarinen sovite : Yksinkertaisin sovite voidaan 2-ulotteisessa XY-tasossa kuvata suoralla viivalla joka mahdollisimman hyvin kulkee kaikkien havaintopisteiden läheltä. Jos pisteitä on enemmän kuin 2, eivätkä ne kaikki ole täsmälleen samalla suoralla, niin on mahdotonta vetää sellaista yhtä suoraa joka kulkisi kaikkien havaintopisteiden kautta. PNS-menetelmän idea on löytää suora joka kuvaisi havaintoja mahdollisimman hyvin, vaikka se ei voikaan kulkea kaikkien pisteiden läpi.
Selitettävät havainnot voivat olla mittaustuloksia joissa luultavasti on jonkin verran virhettä, se on aivan normaalia. Emme voi olettaa että yksikään havainnoista olisi aivan ehdottoman tarkka. Emme etsi tarkkaa ratkaisua tavalliselle matriisiyhtälölle, koska sillä ei yleensä edes ole olemassa tarkkaa ratkaisua.
Yleisesti voimme ajatella että käsiteltävä data D muodostuu pistejoukosta jonka kullakin pisteellä on x- ja y-koordinaatit ja pisteitä on yhteensä n kappaletta: D = { (x1, y1), (x2, y2), (x3, y3) , ... , (xn, yn) }
.
Tarvitsemme funktion joka kuvaa muuttujien x ja y välistä suhdetta. Suoran tapauksessa se voi olla yksinkertainen y = β0 + β1 x
, jossa β0 ja β1 ovat toistaiseksi tuntemattomia vakioita. Kuvattavia pisteitä on useita, joten oikeastaan meillä on yhtälöryhmä jossa on yhtä monta yhtälöä kuin on pisteitä, tässä n kappaletta.
β0 + β1 x1 = y1 β0 + β1 x2 = y2 β0 + β1 x3 = y3 ... ... β0 + β1 xn = yn
Yhteenkuuluvia koordinaatteja xi ja yi merkitsemme alaviittein 1 ... n kun rivejä ja pisteitä on n kappaletta. Huomattakoon että tuntemattomat kertoimet β0 ja β1 ovat kuitenkin joka rivillä samat vaikka x ja y muuttuvat.
Ratkaistava matriisiyhtälö olisi siis periaatteessa : X β = y
. Tosin pahoin pelkään ettei siihen tässä muodossa yleensä olisi olemassa ratkaisua. Hiukan avuttomin merkinnöin nämä vektorit ja matriisi voidaan esittää alkioittain seuraavasti:
┌ ┐ | 1 x1 | | 1 x2 | Suunnittelumatriisi X = | 1 x3 | | ... ... | | 1 xn | └ ┘
┌ ┐ | β0 | Parametrivektori β = | | | β1 | └ ┘
┌ ┐ | y1 | | y2 | Havaintovektori y = | y3 | | ... | | yn | └ ┘
Suunnittelumatriisin ensimmäisessä sarakkeessa olevat ykköset ansaitsevat paremman selityksen. Funktiomme ovat tässä suoran eli yhtälön y = β0 + β1 x
tapauksessa seuraavat:
f0(x) = x0 = 1 f1(x) = x1 = x
Suunnittelumatriisimme koko komeudessaan olisi oikeastaan seuraavan kaltainen:
┌ ┐ | f0(x1) f1(x1) | | f0(x2) f1(x2) | X = | f0(x3) f1(x3) | | ... ... | | f0(xn) f1(xn) | └ ┘
Ja tästähän tulee juuri yllä esitetty suunnittelumatriisi X kun sjoitetaan f0(x) = x0 = 1
ja f1(x) = x1 = x
Seuraavaksi tapaamme normaaliyhtälön josta on ratkaistava parametrivektori β. Oikeastaan merkintänä pitäisi käyttää beeta-hattua, koska kyse on PNS-ratkaisusta, mutta tavallinen beeta saa nyt tässä kelvata. Normaaliyhtälömme on seuraava : XT X β = XT y
Kauneimmalta voisi tuntua ratkaista ensin erikseen yhtälön vasemman puolen parametrivektorin β kerroin ( XT X )
sekä yhtälön oikea puolen kertolasku ( XT y )
sekä muodostaa näistä laajennettu matriisi [ XT X | XT y ]
, josta ratkaistaisiin parametrivektori β lineaarialgebran stabiililla menetelmällä kuten tavanomaisen matriisiyhtälön A x = b
vektori x laajennetusta matriisista [ A | b ]
.
Tavanomaista on kuitenkin käyttää käänteismatriisia ratkaisussa, jolloin normaaliyhtälön ratkaisukaavaksi tulee : β = ( XT X )-1 XT y
Esimerkki: Teoria saattaa vaikuttaa hiukan sekavalta, joten selvennetäänpä menettelyä valaisevin käytännön esimerkein.
Olkoon meillä datana 4 pistettä, esimerkiksi D = { (x1, y1), (x2, y2), (x3, y3), (x4, y4) } = { (2, 3), (3, 3), (6, 4), (9, 6) }
. Tätä pistejoukkoa koettaa selventää oheinen kuva.
Kun tiedämme että y = β0 + β1 · x
niin voimme todeta pistejoukosta D järjestyksessä pisteittäin:
Piste Havaintovektorin alkio yi (xi, yi) yi = β0 + β1 · xi (2, 3) : 3 = β0 + β1 · 2 (3, 3) : 3 = β0 + β1 · 3 (6, 4) : 4 = β0 + β1 · 6 (9, 6) : 6 = β0 + β1 · 9
( Kaikki nämä yhtälöt eivät voi toteutua tarkasti yhtäaikaisesti, mutta pyritään löytämään ratkaisu joka sopii näihin parhaalla mahdollisella tavalla )
Suunnittelumatriisiin X tulee ensimmäiseen sarakkeeseen ykköset (koska x0 = 1) ja toiseen sarakkeeseen pisteiden x-koordinaatit järjestyksessä. Havaintovektoriin y tulee vastaavat pisteiden y-koordinaatit. Matriisiyhtälöksi X β = y
muodostuisi periaatteessa tämän mukaan hiukan avuttomin merkinnöin:
┌ ┐ ┌ ┐ | 1 2 | ┌ ┐ | 3 | | 1 3 | | β0 | | 3 | | 1 6 | | β1 | = | 4 | | 1 9 | └ ┘ | 6 | └ ┘ └ ┘
Mutta eihän sitä tästä edes yritetä ratkaista, vaan PNS-tapauksessa käytetään vastaavaa normaaliyhtälöä XT X β = XT y
Tässä tapauksessa tuntemattoman parametrivektorin β kertoja ( XT X )
olisi 2*4 ja 4*2 matriiseiden kertolasku jonka tuloksena syntyy 2x2 matriisi:
┌ ┐ ┌ ┐ | 1 2 | ┌ ┐ ┌ ┐ | 1 1 1 1 | | 1 3 | = | 1+1+1+1 2+3+6+9 | = | 4 20 | | 2 3 6 9 | | 1 6 | | 2+3+6+9 4+9+36+81 | | 20 130 | └ ┘ | 1 9 | └ ┘ └ ┘ └ ┘
Yhtälön oikea puoli olisi 2*4 matriisin ja 4-rivisen vektorin kertolasku josta syntyy 2-rivinen vektori:
┌ ┐ ┌ ┐ | 3 | ┌ ┐ ┌ ┐ | 1 1 1 1 | | 3 | = | 3+3+4+6 | = | 16 | | 2 3 6 9 | | 4 | | 2*3+3*3+6*4+9*6 | | 93 | └ ┘ | 6 | └ ┘ └ ┘ └ ┘
Edellisen perusteella voi todeta että XT X β = XT y
eli:
┌ ┐ ┌ ┐ ┌ ┐ | 4 20 | | β0 | = | 16 | | 20 130 | | β1 | | 93 | └ ┘ └ ┘ └ ┘
Josta pitäisi sitten ratkaista parametrivektori β jolla on alkiot β0 ja β1. Yksinkertaisinta on ehkä kertoa yhtälön oikea puoli (vasemmalta) vasemman puolen kertovan matriisin käänteismatriisilla koska 2x2 matriisin käänteismatriisi on sentään aika helppo laskea käsinkin.
Kaksirivisen neliömatriisin A käänteismatriisi A-1 lasketaan helposti sen determinantin det A
avulla.
┌ ┐ | a b | A = | | | c d | └ ┘ ┌ ┐ | d -b | A-1 = 1/(det A) | | | -c a | └ ┘
Huomaa että yllä matriisissa diagonaalialkiot a ja d vaihtavat paikkaa ja ei-diagonaalialkiot b ja c vaihtavat etumerkkiä. Kaksirivisen matriisin A determinantti on myös helppo: det A = a·d - b·c
eli siinä on matriisin diagonaalialkioiden tulo vähennettynä ei-diagonaalialkioiden tulolla. Matriisin (pää)diagonaali kulkee vasemmasta ylänurkasta viistosti oikealle alas.
Esimerkkitapauksessa determinantti on 4*130 - 20*20 = 520 - 400 = 120
jonka käänteisluvulla ( 1/120 ) siis kerrotaan uuden matriisin alkiot. Käänteismatriisiksi tulee täten kertomalla determinantin käänteisluku sisään matriisiin:
┌ ┐-1 ┌ ┐ ┌ ┐ ┌ ┐ | 4 20 | | 130 -20 | | 130/120 -20/120 | | 13/12 -1/6 | | | = 1/120 · | | = | | = | | | 20 130 | | -20 4 | | -20/120 4/120 | | -1/6 1/30 | └ ┘ └ ┘ └ ┘ └ ┘
Näin ollen PNS-sovitus jatkuu seuraavasti:
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | β0 | = | 13/12 -1/6 | | 16 | = | 13*16/12 - 93/6 | = | 1,8333 | | β1 | | -1/6 1/30 | | 93 | | -16/6 + 93/30 | | 0,4333 | └ ┘ └ ┘ └ ┘ └ ┘ └ ┘
Eli siis suoran yhtälön y = β0 + β1 · x
etsityt kertoimet ovat tulosvektorista saatavat arvot β0 = 1,8333
ja β1 = 0,4333
eli regressiosuoran yhtälö on kaikessa komeudessaan lopulta y = 1,8333 + 0,4333 · x
.
Suora voidaan piirtää kun tunnetaan kaksi sen pistettä. Kun x = 0, on y = 1,8333 ja kun x = 9 niin y = 5,733. Tätä ratkaisua kuvaa oheinen piirros. Muuttujan x kerrointa β1, tässä arvoltaan 0,4333 nimitetään suoran kulmakertoimeksi, se määrää suoran kaltevuuden. Positiivinen kulmakerroin merkitsee oikealle nousevaa suoraa ja negatiivinen kulmakerroin kuvaa sitä että suora laskee alaspäin oikealle mentäessä.
Tämä suora kuvaa näitä arvopareja eli pisteitä paremmin kuin mikään muu suora (olettaen että kaikki pisteet ovat yhtä tarkkoja eli virhe on kaikissa samaa luokkaa), koska suora on sovitettu pienimmän neliösumman menetelmällä. Voihan tosin olla sellaisia käyriä viivoja, jotka sopivat pisteiden kanssa paremmin yhteen.
Ratkaisu ilman käänteismatriisia: Toisaalta vaihtoehtona käänteismatriisin käytölle voisi kokeilla yhtälön ratkaisua laajennetun matriisin avulla. Tiedämme siis että seuraava matriisiyhtälö pätee ja β0 ja β1 ovat tuntemattomia kertoimia:
┌ ┐ ┌ ┐ ┌ ┐ | 4 20 | | β0 | = | 16 | | 20 130 | | β1 | | 93 | └ ┘ └ ┘ └ ┘
Tämä on vastaava kuin lineaarialgebrassa paljon treenattu matriisiyhtälö A x = b
johon voidaan koettaa hakea ratkaisu x käyttäen laajennettua matriisia [ A | b ]
. Vektori x sisältää tuntemattomat muuttujat, b on tunnettu vakiovektori ja A on kerroinmatriisi. Tässä tapauksessa β -arvot voisi koettaa ratkaista seuraavasta laajennetusta matriisista.
Ryhdymme muokkaamaan sitä alkeisrivioperaatioin, jotka eivät muuta matriisin arvoa kokonaisuutena. Matomerkki ~ tarkoittaa että matriisit ovat - osittain erilaisista arvoistaan huolimatta - riviekvivalentteja, eli tarkoittavat samaa, kokonaisuus ei sittenkään ole muuttunut.
┌ ┐ ┌ ┐ ┌ ┐ | 4 20 | 16 | ~ | 4 20 | 16 | ~ | 4 20 | 16 | | 20 130 | 93 | | 20-5*4 130-5*20 | 93-5*16 | | 0 30 | 13 | └ ┘ └ ┘ └ ┘
Rivien järjestystä voisi halutessaan muuttaa, mutta se ei lie nyt tarpeen. Ensinnä haluamme sarakkeellaan ainoaksi nollasta poikkeavaksi ensimmäisessä sarakkeessa ekalla rivillä olevan alkion. Yllä on suoraan lisätty toiseen riviin eka rivi kerrottuna vakiolla -5. Näin saadaan toisen rivin eka alkio nollaksi.
Emme ole vielä saavuttaneet ratkaisua koska laajennettu matriisi ei vielä ole riviredusoidussa porrasmuodossa eli rref-muodossa (Row Reduced Echelon Form), mutta se on kyllä porrasmuodossa ja siitä jo näkee että ratkaisu on olemassa, koska viimeinen sarake ei ole tukisarake. Näin on koska kerroinmatriisin molemmat alkiot toisella rivillä eivät menneet nolliksi ylläolevassa operaatiossa, vain eka nollaantui. Mukavaa on myös että pystyviivojen vasemmalla puolella olevissa kerroinmatriisin molemmissa sarakkeissa on tukialkio, koska se lupaa että ratkaisu on yksikäsitteinen. Ratkaisua joko ei ole olemassa, on yksi ratkaisu (yksikäsitteinen ratkaisu) tai sitten ratkaisuja on ääretön määrä, siinä kaikki vaihtoehdot. Ei voi koskaan olla esim. vain 2 tai 3 ratkaisua.
Yhtälö ei siis ole mahdoton, vaan sillä on jokin ratkaisu, emme vaan vielä tiedä mikä. Matematiikka vakuuttaa että ratkaisu on kuitenkin olemassa. Yksityiskohtainen ratkaisu kiskotaan siitä irti siirtymällä rref-prosessin seuraavaan vaiheeseen.
On kuitenkin pakko tässä välissä marmattaa kurssilla korvaa usein kiusanneesta sanontatavasta "rivi m kerrotaan vakiolla k ja lisätään riviin n". Tämä ei pidä sananmukaisesti paikkaansa. Riviä m ei kerrota, vaan se jää entiselleen. Paremminkin rivistä m otetaan kopio alkuperäiseen kajoamatta ja tämä kopio kerrotaan jollakin sekä lisätään toiseen riviin. Itse rivi m ei siinä yhteydessä muutu miksikään.
Ensin työskentelimme ylhäältä alaspäin, mutta nyt alamme työskennellä alhaalta ylöspäin. Tavoite on saada toisen rivin toisen sarakkeen alkio ykköseksi. Ensin haluamme saada toisen rivin toinen alkio ainoaksi nollasta poikkeavaksi alkioksi sarakkeessaan. On siis saatava ekan rivin toisen sarakkeen alkio nollaksi lisäämällä ekaan riviin toisen rivin sopiva monikerta. Ekassa sarakkeessahan tilanne ei voi enää muuttua koska toisella rivillä on jo nolla ekassa sarakkeessa. En merkitse erikseen nollien kerto- ja jakolaskuja, koska nolla ei muutu kerrottaessa tai jaettaessa (ei-nollalla), vaan pysyy nollana. Nolla mikä nolla.
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | 4 20 | 16 | ~ | 4 20-2/3*30 | 16 - 2/3*13 | ~ | 4 0 | (3*16 - 2*13)/ 3 | ~ | 4 0 | 22/3 | | 0 30 | 13 | | 0 30 | 13 | | 0 30 | 13 | | 0 30 | 13 | └ ┘ └ ┘ └ ┘ └ ┘
Ekan rivin toisen sarakeen arvo 20 saadaan nollaksi lisäämällä siihen -2/3 * 30 = -20 (jossa 30 on toisen rivin vastaava alkio), joten -2/3 on sopiva arvo jolla tokan rivin kopion voi kertoa. Ekan rivin viimeinen murtoluku voi tuntua hiukan vaivalloiselta, mutta ei se ole paha. Tokan rivin tukialkio saadaan ykköseksi jakamalla koko rivi 30:lla (tai oikeastaan pitäisi sanoa että kertomalla luvulla 1/30). Ensimmäisen rivin tukialkio saadaan ykköseksi jakamalla eka rivi neljällä (kauniimmin ilmaisten kertomalla luvulla 1/4).
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | 4 0 | 22/3 | ~ | 4/4 0 | 22/(3*4) | ~ | 1 0 | 22/12 | ~ | 1 0 | 11/6 | | 0 30 | 13 | | 0 30/30 | 13/30 | | 0 1 | 13/30 | | 0 1 | 13/30 | └ ┘ └ ┘ └ ┘ └ ┘
Tämä tulos on edelleen riviyhteensopiva alkuperäisen laajennetun matriisin kanssa, joten tapaus on kokonaisuutena sama, vain eri muodossa. Laajennetussa matriisissa pystyviivojen paikalle voi ajatella yhtäsuuruusmerkin. Pystyviivojen vasemmalla puolella olevien sarakkeiden kertoimet ovat järjestyksessä tässä prosessissa haetut kertoimet β0 ja β1. Niinpä yllä oleva laajennetun matriisin rref-muoto voidaan lukea seuraavasti vektoriyhtälöksi kun matriisin sarakkeet tulkitaan erillisiksi sarakevektoreiksi:
┌ ┐ ┌ ┐ ┌ ┐ | 1 | * β0 + | 0 | * β1 = | 11/6 | | 0 | | 1 | | 13/30 | └ ┘ └ ┘ └ ┘
Ja myös suoraan seuraavana samaa tarkoittavana yhtälöryhmänä (huomaa että osa kertoimista on nollia):
1 * β0 + 0 * β1 = 11/6 = β0 0 * β0 + 1 * β1 = 13/30 = β1
Niinpä siis etsityt arvot on nyt ratkaistu: β0 = 11/6
ja β1 = 13/30
ja näistä murtoluvuistahan tulee samat desimaaliluvut kuin edellä eli 1,8333... ja 0,4333... joten loppu hyvin, kaikki hyvin. Isommilla matriiseilla ja takkuisemmilla luvuilla tällainen sinänsä siisti ja stabiili ratkaisu laajennetun matriisin kautta voi vaan olla hiukan hankala käsilaskuna.
Lineaarisen sovitteen raju yksinkertaistus: Ylläolevassa varaudutaan siihen että PNS-suora ei mene origon läpi, joka järkevää olikin. Menettely kuitenkin yksinkertaistuisi entisestään jos oletamme että suora menee origon kautta. Siinä tapauksessa meille riittää yksinkertaisempi yhtälö y = β1 x
( voimme ajatella että β0 = 0 )
Suunnittelumatriisiin tulee vain yksi sarake johon tulee pisteiden x-koordinaatit järjestyksessä, joten se on oikeastaan vektori X. Kertoja β1 on yksittäinen skalaari. Havaintovektorissa on vastaavat pisteiden y-koordinaatit järjestyksessä. Yhtälö olisi periaatteessa yksinkertaisesti X β1 = y
eli tässä tapauksessa:
┌ ┐ ┌ ┐ | 2 | | 3 | | 3 | | 3 | | 6 | · β1 = | 4 | | 9 | | 6 | └ ┘ └ ┘
Paitsi että tähän ei oikeasti ole olemassa täsmällistä ratkaisua, sillä tuohan merkitsisi muun muassa toisen rivin mukaan 3·β1 = 3
eli sen mukaan β1 = 1
, mutta toisaalta pitäisi olla samalla myös neljännen rivin mukaan 9·β1 = 6
jota vastaava β1 olisi erilainen. Siinä on ristiriita, joten ratkaisu ei löydy perusyhtälöstä X β1 = y
vaan on käytettävä normaaliyhtälöä.
Normaaliyhtälö XT X β1 = XT y
lie helppo ratkaista koska tuntemattoman kerroin ( XT X )
on vektoreiden sisätulo eli se on pelkkä skalaari ja myös yhtäsuuruusmerkin oikealla puolella on pelkkä vektoreiden skalaaritulo joka ratkeaa kerto- ja yhteenlaskuin.
Tuntematoman kerroin ( XT X )
on siis tässä tapauksessa:
┌ ┐ | 2 | [ 2 3 6 9 ] | 3 | = 4 + 9 + 36 + 81 = 130 | 6 | | 9 | └ ┘
Normaaliyhtälön oikea puoli ( XT y )
taasen olisi:
┌ ┐ | 3 | [ 2 3 6 9 ] | 3 | = 2*3 + 3*3 + 6*4 + 9*6 = 93 | 4 | | 6 | └ ┘
Tässä siis origon kautta kulkevan suoran yhtälön muuttujan x kerroin on ratkaisuna saatava β1. Voi siis todeta että 130 * β1 = 93
eli β1 = 93 / 130
. Näin ollen etsityn origon kautta kulkevan suoran yhtälö on y = β1 · x = 93 / 130 · x
Origo on yksi suoran piste ja toinen saadaan esimerkiksi kun x = 9, jolloin tulisi olemaan y = 93/130 * 9 = 6,438... ja suoran kulmakerroin on siis tuo 93/130 = 0,715...
Oheinen kuvaaja esittää tätä origon kautta kulkevaa suoraa. Eihän se kylläkään tunnu kuvaavan alkupään pisteitä kovin hyvin kun se on pakotettu kulkemaan origon kautta.
Voi tuntua hassulta mainita toisen asteen käyrä kun kyseessä pitäisi olla nimenomaan lineaarialgebra. PNS-käyrä voisi kuitenkin aivan hyvin olla korkeampaa astetta. Käytetty menettelytapa kertoimien löytämiseksi on silti lineaarinen eli lineaarialgebra on tässä ihan OK.
Korkeampiasteinen sovituskäyrä valitaan muodostamalla sopiva funktio. Yleisesti k-asteinen yhtälö on y = β0 f0(x) + β1 f1(x) + ... + βk fk(x)
Toisen asteen käyrän tapauksessa käyrän yhtälö on y = β0 f0(x) + β1 f1(x) + β2 f2(x)
ja funktiot ovat:
f0(x) = x0 = 1 f1(x) = x1 = x f2(x) = x2
Joten toisen asteen käyrän yhtälöksi tulee y = β0 + β1 x + β2 x2
Muuttujia on siis toisen asteen käyrän tapauksessa 3 kappaletta ja suunnittelumatriisiin X tulee kolme saraketta ja tässä tapauksessa suunnittelumatriisi X on siis seuraava:
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | f0(x1) f1(x1) f2(x1) | | 1 x1 x12 | | 1 2 22 | | 1 2 4 | | f0(x2) f1(x2) f2(x2) | = | 1 x2 x22 | = | 1 3 32 | = | 1 3 9 | | f0(x3) f1(x3) f2(x3) | | 1 x3 x32 | | 1 6 62 | | 1 6 36 | | f0(x4) f1(x4) f2(x4) | | 1 x4 x42 | | 1 9 92 | | 1 9 81 | └ ┘ └ ┘ └ ┘ └ ┘
Parametrivektori β saa myös uuden rivin koska tuntemattomia alkioita on yhtä enemmän:
┌ ┐ | β0 | Parametrivektori β = | β1 | | β2 | └ ┘
Havaintovektorin y ei tarvitse muuttua miksikään. Siinähän on neljä riviä, mutta se kerrotaan normaaliyhtälössä suunnittelumatriisin transpoosilla joten kertolasku on OK koska suunnittelumatriisi on 4x3 matriisi ja sen transpoosi siten 3x4. Matriisiyhtälö X β = y
olisi periaatteessa:
┌ ┐ ┌ ┐ | 1 2 4 | ┌ ┐ | 3 | | 1 3 9 | | β0 | | 3 | | 1 6 36 | | β1 | = | 4 | | 1 9 81 | | β2 | | 6 | └ ┘ └ ┘ └ ┘
Tätähän muotoa emme varsinaisesti yritä suoraan ratkaista, mutta tässäkin rivien ja sarakkeiden määrät olisivat OK koska suunnittelumatriisi on 4x3 ja sillä kerrotaan 3-rivinen parametrivektori ja tuloksena on tavallaan 4x1 matriisi eli 4-rivinen vektori. Oikeastaan on helppo todeta ettei matriisiyhtälöön tässä muodossa edes ole olemassa mitään ratkaisua tarkan lineaarialgebran tarkoittamassa mielessä. Katsotaanpa laajennettua matriisia ja tehdään muutama alkeisrivioperaatio pyrkien kohti porrasmuotoa:
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | 1 2 4 | 3 | | 1 2 4 | 3 | | 1 2 4 | 3 | | 1 2 4 | 3 | | 1 2 4 | 3 | | 1 3 9 | 3 | ~ | 0 1 5 | 0 | ~ | 0 1 5 | 0 | ~ | 0 1 5 | 0 | ~ | 0 1 5 | 0 | | 1 6 36 | 4 | | 0 4 32 | 1 | | 0 0 12 | 1 | | 0 0 3 | 1/4 | | 0 0 3 | 1/4 | | 1 9 81 | 6 | | 0 7 77 | 3 | | 0 0 42 | 3 | | 0 0 42 | 3 | | 0 0 0 | -1/2 | └ ┘ └ ┘ └ ┘ └ ┘ └ ┘
Tästä on turha jatkaa. Laajennetun matriisin viimeinen rivi esittää seuraavan uhmakkaan herjan: 0 * β0 + 0 * β1 + 0 * β2 = -1/2
eli toisin sanoen viimeisellä rivillä on otsaa väittää että 0 = -1/2
. Kun kuitenkin on ilmiselvää ettei nolla voi mitenkään olla tasan yhtäsuuri kuin miinus puoli, on tässä sovittamaton ristiriita joka osoittaa ettei ko. matriisiyhtälöllä ole (tarkkaa ja täydellistä) ratkaisua lineaarialgebran kannalta. Viimeinen sarake on tässä tukisarake ja kun se on vakiovektorin puolella pystyviivaa, eikä kerroinmatriisin puolella, niin No Fucking Way!. Matriisiyhtälöllä X β = y
ei ole ratkaisua näillä arvoilla.
Mutta mehän ratkaisemme tämän asemesta normaaliyhtälön XT X β = XT y
ja se on ongelmaton. Parametrivektorin β kerroin ( XT X )
on neliömatriisi ja luotamme siihen ettei se ole singulaarinen, vaan sille on olemassa käänteismatriisi. Luulenpa että kaikkien taiteen sääntöjen mukaan muodostetun suunnittelumatriisin X kanssa parametrivektorin kertoimen olisi aika vaikea olla singulaarinen.
Katsotaan kuitenkin ensin pisteitä tämän tapauksen kannalta:
Piste Havaintovektorin alkio yi (xi, yi) yi = β0 + β1 · xi + β2 · xi2 (2, 3) : 3 = β0 + β1 · 2 + β2 · 22 (3, 3) : 3 = β0 + β1 · 3 + β2 · 32 (6, 4) : 4 = β0 + β1 · 6 + β2 · 62 (9, 6) : 6 = β0 + β1 · 9 + β2 · 92
( Kaikki nämä yhtälöt eivät voi toteutua tarkasti yhtäaikaisesti, mutta pyritään löytämään ratkaisu joka sopii näihin parhaalla mahdollisella tavalla )
Koetetaanpa sitten ratkaista tuntemattoman parametrivektorin β kertoja ( XT X )
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | 1 1 1 1 | | 1 2 4 | | 1+1+1+1 2+3+6+9 4+9+36+81 | | 4 20 130 | | 2 3 6 9 | | 1 3 9 | = | 2+3+6+9 4+9+36+81 8+27+6*36+9*81 | = | 20 130 980 | | 4 9 36 81 | | 1 6 36 | | 4+9+36+81 8+27+6*36+9*81 16+81+36*36+81*81 | | 130 980 7954 | └ ┘ | 1 9 81 | └ ┘ └ ┘ └ ┘
Kun 3x3 matriisin kääntö on jo hiukan työlästä käsilaskuna, niin lasketaanpa saman tien valmiiksi tämän parametrivektorin kertojan käänteismatriisi käyttäen apuna Texas Instruments CX CAS -merkkistä tietoteknistä apuvälinettä:
┌ ┐ | 409/66 -8/3 5/22 | ( XT X )-1 = | -8/3 113/90 -1/9 | | 5/22 -1/9 1/99 | └ ┘
Tulos saadaan ratkaisemalla normaaliyhtälö parametrivektorin kertojan käänteismatriisia käyttäen parametrivektorin β suhteen: β = (XT X)-1 XT y
joka toimenpide on siis tässä:
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | β0 | | 409/66 -8/3 5/22 | | 1 1 1 1 | | 3 | | 211/66 | | 3,1970 | | β1 | = | -8/3 113/90 -1/9 | | 2 3 6 9 | | 3 | = | -7/30 | = | -0,2333 | | β2 | | 5/22 -1/9 1/99 | | 4 9 36 81 | | 4 | | 2/33 | | 0,0606 | └ ┘ └ ┘ └ ┘ | 6 | └ ┘ └ ┘ └ ┘
On siis näiden kertoimien perusteella todettava että haettu yhtälö y = β0 + β1 x + β2 x2
on y = 3,197 - 0,2333 x + 0,0606 x2
. Lasketaanpa siitä taulukkoon joitakin arvoja kun sitä voi olla ihan vapaalla kädellä hankalaa piirtää:
x y = 3,197 - 0,2333·x + 0,0606·x2 0 3,197 1 3,024 2 2,973 3 3,043 4 3,233 5 3,546 6 3,979 7 4,533 8 5,209 9 6,006
Ohessa on koetettu hahmotella kyseisen käyrän kulku pisteiden lähistöllä. Kyseessä on ylöspäin aukeneva parabeli (toisen asteen termin x2 kerroin positiivinen), vaikka esitystapa on hiukan karkea. Käyrä kuvaa dataa aika hyvin, joten jos olisi syytä uskoa että sovitteen kuuluu jostakin aivan "loogisesta" syystä olla juuri paraabelin muotoinen, niin tämä tulos säilyttäisi laskijan mielenrauhan.
Käänteismatriisi käsilaskuna käyttäen laajennettua matriisia : Kolmirivinen neliömatriisi on jo käsilaskuna hiukan vaativampi käännettäväksi, mutta voisihan sitä yrittää. Periaate on joka tapauksessa tärkeä. Tässä esimerkissä käännettävä matriisi ( XT X )
siis oli seuraavan kaltainen:
┌ ┐ ┌ ┐ ┌ ┐ | 1 1 1 1 | | 1 2 4 | | 4 20 130 | XT X = | 2 3 6 9 | | 1 3 9 | = | 20 130 980 | | 4 9 36 81 | | 1 6 36 | | 130 980 7954 | └ ┘ | 1 9 81 | └ ┘ └ ┘
Käännettäessä matriisi A oikeaoppisesti käsin (ja ehkä hiukan nelilaskimella auttaen) ideana on että laajennettu matriisi [ A | I ]
muuttuu alkeisrivioperaatioilla riviekvivalenttiin muotoon [ I | A-1 ]
, eli kun alkuperäinen matriisi A muuttuu alkeisrivioperaatioissa identiteettimatriisiksi I
, niin samalla alkuperäinen identiteettimatriisi pystyviivan oikealla puolella muuttuu käänteismatriisiksi A-1
. Siis samat alkeisrivioperaatiot jotka muuttavat matriisin A vain ykkösiä sisältäväksi diagonaalimatriisiksi, muuttavat myös vastaavan kokoisen yksikkömatriisin A:n käänteismatriisiksi. Singulaarisella matriisilla tämä ei tietenkään onnistuisi, koska sillä ei ole käänteismatriisia.
Eräs ajattelutapa tehdä tuo paremmin ymmärrettäväksi on vertaaminen tavanomaisen matriisiyhtälön A x = b
ratkaisemiseen laajennetulla matriisilla [ A | b ]
jossa etsitään ratkaisua tuntemattomalle vektorille x. Laajennettu matriisi tuottaa vastauksen kysymykseen "mikä on se jokin joka on kerrottava (vasemmalta) matriisilla A että saadaan tulokseksi vektori b?" Kuten matriisiyhtälöstä A x = b
nähdään, se jokin täytyy olla vektori x eli nimenomaan tälle vektorille x siis löydetään konkreettiset arvot ratkaisemalla ko. laajennettu matriisi.
Vastaavasti voisi kysyä laajennetusta matriisista [ A | I ]
"mikä on se jokin joka on kerrottava matriisilla A että saadaan tulokseksi identiteettimatriisi I
?" Mehän tiedämme että matriisin ja sen käänteismatriisin tulo on vastaavankokoinen identiteettimatriisi, suoritetaan kertolasku kumpaan suuntaan tahansa. Tämä sisältyy käänteismatriisin määritelmään. Käänteismatriisi on aina yksikäsitteinen. Kutakin matriisia A vastaa vain yksi aivan uniikki käänteismatriisi A-1 ; ei voi olla useita. Eli kaavana pätee A-1A = A A-1 = I
. Tämän pohjalta on helppo ymmärtää että se etsitty jokin joka on kerrottava matriisilla A että saadaan tulokseksi identiteettimatriisi I
, täytyy juurikin olla käänteismatriisi A-1, koska mikään muu se ei voi olla. Toisin sanoen tästä laajennetusta matriisista saatava tulos on nimenomaan käänteismatriisi A-1.
Tätä käänteismatriisin ratkaisun tekniikkaa ei muuten opeteta Majaniemen vihkosille perustuvassa ammattikorkeakoulun insinöörin perusmatematiikassa ollenkaan, koska koko laajennetun matriisin käsite on siellä tuntematon. Majaniemi antaa vain tunnetun kaksirivisen matriisin käänteismatriisin kaavan joka perustuu determinanttiin ja tukeutuu muilta osin MathCad-ohjelmaan. Se helppo kaava on ehkä helpompi ymmärtää, ellei omaa kunnollisia perustietoja lineaarialgebrasta.
Käänteismatriisin käyttö ei sinänsä ole mitenkään erikoisen suositeltavaa. Uskoakseni numeerinen stabiilisuus jättää toivomisen varaa erikoisesti singulaarisen matriisin lähistöllä olevalla eräänlaisella harmaalla vyöhykkeellä, joka voi olla laskentatarkkuuden suhteen yllättävän vaativa. Käänteismatriiseiden rooli on insinöörimatematiikassa suhteettoman korostunut oikeaoppiseen lineaarialgebraan nähden. Oikeaoppinen kirkasotsainen matemaattinen lineaarialgebrikko välttää käänteismatriisin ratkaisemista viimeiseen asti, koska se ei ole tehokas toimenpide ja stabiilisuuden suhteen parempiakin vaihtoehtoja voi olla. Ollaan nyt kuitenkin tällä kertaa vähemmän kirkasotsaisia ja jatketaan esimerkkiä.
Hiukan hämmentävää tässä voi olla se että laajennetun matriisin pystyviivan oikealla puolella onkin nyt useita lukuja. Kokeillaanpa tuottaa (XT X)-1
lähtien liikkeelle laajennetusta matrisista [ XT X | I ]
:
┌ ┐ ┌ ┐ ┌ ┐ | 4 20 130 | 1 0 0 | | 2 10 65 | 1/2 0 0 | | 2 10 65 | 1/2 0 0 | | 20 130 980 | 0 1 0 | ~ | 0 130-10*10 980-10*65 | -5 1 0 | ~ | 0 30 330 | -5 1 0 | | 130 980 7954 | 0 0 1 | | 0 980-65*10 7954-65*65 | -65/2 0 1 | | 0 330 3729 | -65/2 0 1 | └ ┘ └ ┘ └ ┘
Ensin jaettiin ensimmäinen rivi kahdella. Sitten lisättiin ensimmäinen rivi toiseen riviin kerrottuna luvulla -10 (koska 20/2 = 10) ja kolmanteen riviin kerrottuna luvulla -65 (koska 130/2 = 65) niin että ensimmäisen rivin johtava alkio on ainoa nollasta poikkeava sarakkeessaan. Eka rivi on tällä erää valmiiksi käsitelty.
┌ ┐ ┌ ┐ ┌ ┐ | 2 10 65 | 1/2 0 0 | | 2 10 65 | 1/2 0 0 | | 2 10 65 | 1/2 0 0 | | 0 30 330 | -5 1 0 | ~ | 0 30 330 | -5 1 0 | ~ | 0 30 330 | -5 1 0 | | 0 330 3729 | -65/2 0 1 | | 0 330-11*30 3729-11*330 | -65/2-11*(-5) -11 1 | | 0 0 99 | 45/2 -11 1 | └ ┘ └ ┘ └ ┘
Kun toinen rivi lisätään kolmanteen riviin kerrottuna luvulla -11 (koska 330/30 = 11), saadaan toisen rivin johtavan alkion alla sarakkeessaan kaikki arvot nollaksi. Porrasmuoto on saavutettu laajennetun matriisin vasemmalla puolella, joten siirrytään toiseen vaiheeseen eli aletaan edetä alhaalta ylöspäin kohti vasemman puolen riviredusoitua porrasmuotoa eli rref-muotoa.
┌ ┐ ┌ ┐ ┌ ┐ | 2 10 65 | 1/2 0 0 | | 2 10 0 | 1/2-65*(5/22) -65*(-1/9) -65/99 | | 2 10 0 | -157/11 65/9 -65/99 | | 0 30 330 | -5 1 0 | ~ | 0 30 0 | -5-330*(5/22) 1-330*(-1/9) -330/99 | ~ | 0 30 0 | -80 113/3 -10/3 | | 0 0 99 | 45/2 -11 1 | | 0 0 1 | 45/(2*99) -11/99 1/99 | | 0 0 1 | 5/22 -1/9 1/99 | └ ┘ └ ┘ └ ┘
Kolmas rivi jaettiin luvulla 99 niin että rivin johtava alkio saatiin ykköseksi. Kolmas rivi lisättiin toiseen riviin kerrottuna luvulla -330 ja ekaan riviin kerrottuna luvulla -65 niin että kolmannen rivin johtava alkio on sarakkeessaan ainoa ei-nolla. Murtoluvuilla laskenta käy jo hiukkasen hankalaksi.
┌ ┐ ┌ ┐ | 2 10 0 | -157/11 65/9 -65/99 | | 2 0 0 | -157/11-10*(-8/3) 65/9-10*(113/90) -65/99-10*(-1/9) | | 0 30 0 | -80 113/3 -10/3 | ~ | 0 1 0 | -8/3 113/90 -1/9 | | 0 0 1 | 5/22 -1/9 1/99 | | 0 0 1 | 5/22 -1/9 1/99 | └ ┘ └ ┘
Ai jukra, tämä vaatii jo korkeampaa matematiikkaa;-)
Toinen rivi kerrottiin ensin luvulla 1/30 niin että rivin johtava alkio saatiin ykköseksi. Sitten ensimmäiseen riviin lisättiin toinen rivi kerrottuna luvulla -10, niin että toisen rivin johtava alkio saatiin ainoaksi ei-nollaksi sarakkeessaan. Vielä on jaettava ensimmäinen rivi kahdella että saadaan ykkönen sen ekaksi alkioksi, kuten vasemmalle puolelle tulevassa identiteettimatriisissa kuuluu olla.
┌ ┐ ┌ ┐ | 2 0 0 | 409/33 -16/3 135/297 | | 1 0 0 | 409/66 -8/3 135/(2*297) | ~ | 0 1 0 | -8/3 113/90 -1/9 | ~ | 0 1 0 | -8/3 113/90 -1/9 | | 0 0 1 | 5/22 -1/9 1/99 | | 0 0 1 | 5/22 -1/9 1/99 | └ ┘ └ ┘
Alkuperäinen laajennettu matriisi [ XT X | I ]
on nyt muuttunut muotoon [ I | (XT X)-1 ]
. Lopputuloksena laajennetun matriisin pystyviivan oikealla puolella saatava matriisi saattaa tässä vaikuttaa erilaiselta kuin Texas Instruments CX CAS -merkkisen tietoteknisen apuvälineen edellä laskema tulos
┌ ┐ | 409/66 -8/3 5/22 | ( XT X )-1 = | -8/3 113/90 -1/9 | | 5/22 -1/9 1/99 | └ ┘
Mutta se on kyllä itse asiassa sama, nimittäin 135/594 = 5/22 koska osoittaja ja nimittäjä ovat kumpikin jaollisia samalla luvulla 27. Täytyi kylläkin muutaman kerran korjailla käsinlaskua ennenkuin syntyi tämä lopputulos. Murtolukuja kannattaa supistaa pitkin matkaa, aina kun voi. Käsin laskenta on melko virheherkkää nelilaskimen avustuksellakin. Ihan kylmii jos ajattelee kääntävänsä 4x4 matriisin käsin (varsinkin jos ei tiedä oikeaa lopputulosta etukäteen;-), isommista puhumattakaan.
Tavallisessa lineaarialgebrassa matriisin kääntöä ei mielellään harrasteta, koska se on melkoisen tehoton operaatio isommilla matriiseilla. Monasti on parempiakin vaihtoehtoja tai sitten käänteismatriisi saadaan jostakin valmiina, sivutuotteena tai "ilmaiseksi".
Voisimme vielä tarkistaa että todellakin pätee A A-1 = I
eli käänteismatriisi on esimerkissä todistettavasti laskettu oikein, koska vain ja ainoastaan toistensa käänteismatriiseiden keskinäinen tulo on saman kokoinen identiteettimatriisi.
┌ ┐ ┌ ┐ ┌ ┐ | 4 20 130 | | 409/66 -8/3 5/22 | | 4*409/66+20*(-8/3)+130*5/22 4*(-8/3)+20*113/90-130/9 4*5/22-20/9+130/99 | | 20 130 980 | | -8/3 113/90 -1/9 | = | 20*409/66+130*(-8/3)+980*5/22 20*(-8/3)+130*113/90-980/9 20*5/22-130/9+980/99 | | 130 980 7954 | | 5/22 -1/9 1/99 | | 130*409/66+980*(-8/3)+7954*5/22 130*(-8/3)+980*113/90-7954/9 130*5/22-980/9+7954/99 | └ ┘ └ ┘ └ ┘ ┌ ┐ | 1636/66-160/3+650/22 -32/3+2260/90-130/9 20/22-20/9+130/99 | = | 8180/66-1040/3+4900/22 -160/3+14690/90-980/9 100/22-130/9+980/99 | | 53170/66-7840/3+39770/22 -1040/3+110740/90-7954/9 650/22-980/9+7954/99 | └ ┘ ┌ ┐ ┌ ┐ ┌ ┐ | (1636-22*160+3*650)/66 (-3*32+226-130)/9 (9*10-11*20+130)/99 | | 66/66 0/9 0/99 | | 1 0 0 | = | (8180-22*1040+3*4900)/66 (-3*160+1469-980)/9 (9*50-11*130+980)/99 | = | 0/66 9/9 0/99 | = | 0 1 0 | = I3 | (53170-22*7840+3*39770)/66 (-3*1040+11074-7954)/9 (9*325-11*980+7954)/99 | | 0/66 0/9 99/99 | | 0 0 1 | └ ┘ └ ┘ └ ┘
Kokoa 3x3 olevien matriisien kertolasku siis todellakin lopulta kaikkien murtolukulaskennan ihmeiden jälkeen tuotti tulokseksi samankokoisen ykkösmatriisin I3
, joten ko. matriiseiden täytyy olla toistensa käänteismatriiseja.
Voin koettaa vielä lisätä kolmannen asteen käyrän kokeilun, vaikka se ei tällaisella vähäisellä pistemäärällä olekaan perusteltu.
Matematiikka ei kerro sitä minkä asteinen käyrä olisi valittava. Valinta voidaan perustella esimerkiksi fysikaalisin perustein jos tiedetään tai oletetaan että tietynlainen fysikaalinen ilmiö on vastuussa. Tarpeettoman korkeaa astelukua ei kuitenkaan pidä valita. Ei ole järkevää yrittää saada käyrä kulkemaan kaikkien pisteiden kautta, sillä mittauspisteissähän on käytännössä aina mukana suuruudeltaan tuntematon virhe. Emme halua mallintaa virhettä, vaan yleistä trendiä.
Tässä kokeilussa datapisteiden lukumäärä on aivan lapsellisen pieni. Laskelmat kun halutaan pitää mahdollisimman helppoina.
Kolmannen asteen kuulustelumenetelmät ainakin nostavat niskakarvat pystyyn, mutta nyt heitetään Geneven sopimus nurkkaan ja pannaan haisemaan.
Kokeillaanpa sitten sovittaa kolmannen asteen käyrä seuraavien pisteiden kautta pienimmän neliösumman menetelmällä. Olen reippaasti lisännyt edelliseen esimerkkiin kokonaista kolme uutta pistettä eli datapisteitä on nyt kunniahimoisesti peräti 7 kpl.
D = { (x1, y1), (x2, y2), (x3, y3), (x4, y4), (x5, y5), (x6, y6), (x7, y7) } = { (1, 1), (2, 3), (3, 3), (6, 4), (7, 5), (7, 6), (9, 6) }
.
Tämäkin on lineaarialgebraa vaikka käyrästä ei tulekaan suoraa. Kertoimien määritys on lineaarista.
Kolmannen asteen käyrän yhtälö on periaatteessa y = β0 f0(x) + β1 f1(x) + β2 f2(x) + β3 f3(x)
ja funktiot ovat:
f0(x) = x0 = 1 f1(x) = x1 = x f2(x) = x2 f3(x) = x3
Joten kolmannen asteen käyrän yhtälöksi tulee y = β0 + β1 x + β2 x2 + β3 x3
Muuttujia β0, ... , β3
on nyt yhteensä 4 kappaletta, joten parametrivektori β saa edelliseen nähden uuden rivin :
┌ ┐ | β0 | Parametrivektori β = | β1 | | β2 | | β3 | └ ┘
Pisteiden koordinaatit ovat nyt hiukan erilaiset kuin aiemmin. Suunnittelumatriisissa X on 4 saraketta koska muuttujia on neljä ja 7 riviä koska datapisteitä on 7 kpl :
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | f0(x1) f1(x1) f2(x1) f3(x1) | | 1 x1 x12 x13 | | 1 1 12 13 | | 1 1 1 1 | | f0(x2) f1(x2) f2(x2) f3(x2) | | 1 x2 x22 x23 | | 1 2 22 23 | | 1 2 4 8 | | f0(x3) f1(x3) f2(x3) f3(x3) | | 1 x3 x32 x33 | | 1 3 32 33 | | 1 3 9 27 | | f0(x4) f1(x4) f2(x4) f3(x4) | = | 1 x4 x42 x43 | = | 1 6 62 63 | = | 1 6 36 216 | | f0(x5) f1(x5) f2(x5) f3(x5) | | 1 x5 x52 x53 | | 1 7 72 73 | | 1 7 49 343 | | f0(x6) f1(x6) f2(x6) f3(x6) | | 1 x6 x62 x63 | | 1 7 72 73 | | 1 7 49 343 | | f0(x7) f1(x7) f2(x7) f3(x7) | | 1 x7 x72 x73 | | 1 9 92 93 | | 1 9 81 729 | └ ┘ └ ┘ └ ┘ └ ┘
Havaintovektori y sisältää datapisteiden y-koordinaatit järjestyksessä:
┌ ┐ | 1 | | 3 | | 3 | Havaintovektori y = | 4 | | 5 | | 6 | | 6 | └ ┘
Normaaliyhtälömme olisi kaikessa komeudessaan XT X β = XT y
, mutta haluamme ratkaista sen tuntemattomat sisältävän β -vektorin arvot seuraavasta käänteismatriisia käyttävästä muodosta: β = (XT X)-1 XT y
Ei kuitenkaan yritetä suorittaa tätä yhdessä rysäyksessä, vaan edetään askeleittain hyödyntäen helppokäyttöistä tietoteknistä apuvälinettä.
┌ ┐ | 7 35 229 1667 | XT X = | 35 229 1667 12757 | | 229 1667 12757 100715 | | 1667 12757 100715 814189 | └ ┘
Käänteismatriisi syntyy tästä parilla laskimen nappulan painalluksella Ans-1
(Ans-muisti niinkuin "Answer" sisältää viimeisimmän laskutoimituksen tuloksen) :
┌ ┐ | 1102523/193254 -881975/193254 89312/96627 -5267/96627 | ( XT X )-1 = | -881975/193254 3118091/773016 -27489/32209 39977/773016 | | 89312/96627 -27489/32209 144617/773016 -3005/257672 | | -5267/96627 39977/773016 -3005/257672 24/32209 | └ ┘
Laskin antaa ratkaisun edellisen pohjalta, eli kun kerroinmatriisi on muistissa X ja välitulos ( XT X )-1 on Ans-muistissa ja 7-rivinen havaintovektori annetaan erikseen, laskimen omalla kielellä ilmaistuna:
┌ ┐ | 1 | | 3 | ┌ ┐ | 3 | | -29143/193254 | Ans · XT · | 4 | = | 630923/386508 | | 5 | | -78385/386508 | | 6 | | 2129/193254 | | 6 | └ ┘ └ ┘
Parametrivektorin β arvot sisältävät siis ratkaistut kertoimet, jotka ylläolevista murtoluvuista ehkä miellyttävämmiksi desimaaliluvuiksi laskettuina kuuluvat suunnilleen seuraavasti:
┌ ┐ ┌ ┐ | β0 | | -0,1508 | β = | β1 | = | 1,6324 | | β2 | | -0,2028 | | β3 | | 0,0110 | └ ┘ └ ┘
Yhtälömme on siis näitä kertoimia käyttäen y = β0 + β1 x + β2 x2 + β3 x3 = -0,1508 + 1,6324 x - 0,2028 x2 + 0,0110 x3
Lasketaanpa tästä taulukkoon muutama vetreä arvo graafista esitystä varten:
x y = -0,1508 + 1,6324 x - 0,2028 x2 + 0,0110 x3 0 -0,1508 1 1,290 2 2,391 3 3,218 4 3,838 5 4,316 6 4,719 7 5,112 8 5,561 9 6,133
Tulosten tarkkuus on hiukan liiallinen graafista esitystä ajatellen, mutta näiden tietojen pohjalta voi koettaa hahmotella oheisen kuvaajan datapisteiden joukkoon.
Aika komea lopputulos, vaikka sen itse sanonkin. No juu, myönnetään että kun eka y oli 2, niin aika vähän siinä näkyy kolmannen asteen yhteyttä, UFOja ja salaisia kansioita, melkein suora viiva. Ensimmäisen pisteen y-arvon muuttaminen ykköseksi aiheutti ison muutoksen.
Laskemista on tavallaan paljon, mutta kaavassa β = (XT X)-1 XT y
havaintovektorin y kerroin (XT X)-1 XT
sisältää ainoastaan x-arvoista riippuvia tekijöitä. Niinpä jos x-arvot pysyvät samoina ja vain y-arvot vaihtelevat, niin havaintovektorin kertoja on vakio jota voi käyttää monille eri tapauksille kunhan sen on kerran ratkaissut.
Matematiikka ei sinänsä anna vastausta siihen miten korkea sovituskäyrän asteluku tulisi olla, mutta joka tapauksessa asteluku tulisi olla kohtuullisen pieni, niin ettei yritetä seurata virheitä. Virheiden seuraaminen ei ole PNS-sovituksen idea, vaan paremminkin koetamme olla mahdollisimman immuuneja virheille ja koettaa hahmottaa sitä suurta linjaa sekä yleistä trendiä, nähdä metsä puilta.
Pisteitä voisi olla vaikka kuinka paljon, mutta valittu asteluku lie harvoin tätä korkeampi. Jos asteluku on n
ja määritettäviä kertoimia siis n+1
sekä pisteitä sama määrä n+1
ja lisäksi jokaista x-arvoa vastaa vain yksi y-arvo, niin sovituskäyrä kulkee uskoakseni täsmälleen kyseisten pisteiden kautta, tai ainakin pitäisi, mutta voi tulla pieni ero laskuvirheen vuoksi. Sellainen täydellinen sopivuus voi ehkä ensi kuulemalta kuulostaa hyvältä, mutta on todellisuudessa pienimmän neliösumman mielessä täyttä hulluutta kun muistetaan että y-arvoissa on aina virhettä. Käyrän käytös niiden muutamien pisteiden ulkopuolella - ja ehkä jopa niiden välissäkin - voi olla aika villiä jos asteluku on aivan liian korkea.
Kahden pisteen kautta voidaan aina vetää suora viiva, riippumatta pisteiden koordinaateista. Suoraa viivaa vastaa lineaarinen yhtälö, "ensimmäisen asteen yhtälö" ( muuttuja x on ensimmäistä astetta, x1 = x ).
Jos pisteitä onkin kolme, niin sama yksi suora viiva kulkee täsmälleen niiden kaikkien kautta vain erityistapauksessa. Sensijaan toisen asteen käyrä (muuttuja x on toista astetta, x2) saadaan normaalisti kulkemaan täsmälleen kaikkien kolmen pisteen kautta, vaikka ne eivät olekaan samalla viivalla. Toisen asteen käyrä on joko ylös- tai alaspäin avautuva paraabeli.
( Tjaah, poikkeuksena tästä tilanne jossa pisteillä on sama x-koordinaatti, eli muuuttujaa x vastaava y-arvo ei ole yksikäsitteinen. )
Jos pisteitä onkin neljä kappaletta, niin toisen asteen yhtälö ei yleensä pysty synnyttämään sellaista käyrää joka kulkisi täsmälleen kaikkien pisteiden kautta. Tarvitaan kolmannen asteen käyrä (muuttuja x on kolmatta astetta, x3). Kokeilenpa piruuttani kolmannen asteen sovituskäyrää alkuperäiselle esimerkille jossa on vain 4 datapistettä. Tästä tulee siis aivan pöljä esimerkki pienimmän neliösumman menetelmän kannalta.
Suunnittelumatriisista X tulee 4x4 neliömatriisi kun pisteitä ja muuttujia on sama määrä:
┌ ┐ | 1 2 4 8 | X = | 1 3 9 27 | | 1 6 36 216 | | 1 9 81 729 | └ ┘
Ratkaistaan 4 tärkeää kerrointa tietoteknistä apuvälinettä käyttäen:
┌ ┐ ┌ ┐ | β0 | | 51/14 | β = | β1 | = (XT X)-1 XT y = | -47/84 | | β2 | | 8/63 | | β3 | | -1/252 | └ ┘ └ ┘
Yhtälöksi saadaan y = β0 + β1 · x + β2 · x2 + β3 · x3 = 3,6429 - 0,5595 · x + 0,1270 · x2 - 0,0040 · x3
Lasketaan käyrän pisteitä taulukkoon:
x y = 3,6429 - 0,5595· x + 0,1270· x2 - 0,0040· x3 0 3,643 1 3,206 2 3,000 3 3,000 4 3,181 5 3,520 6 3,994 7 4,577 8 5,247 9 5,978
Tällä rajoitetulla välillä käyrä vielä käyttäytyy hillitysti, mutta kauempana näistä rajoista se poikkeaisi huomattavasti esim. suorasta. Ei ole järkevää yrittää sovittaa korkea-asteista käyrää täsmällisesti datapisteisiin joissa on virhettä. Kolmannen asteen käyrä on kuitenkin siitä etevä että se voi kaareutua kahteen eri suuntaan, kun toisen asteen käyrä voi kaareutua vain yhteen suuntaan, alas tai ylös.
Oikeastaan tässä tapauksessa pitäisi onnistua myös ihan perusyhtälö X β = y
koska pisteitä on neljä ja käyrä on kolmatta astetta, kun lisäksi jokaista x-arvoa vastaa vain yksi y-arvo eikä datassa ole samoja x-arvoja. Pienimmän neliösumman sovitetta ja normaaliyhtälöä ei siis oikeastaan tarvittaisi. Kokeillaanpa täydellistä suoraa täsmäystä lineaarialgebralla, koetetaan ratkaista laajennettu matriisi [ X | y ]
.
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | 1 2 4 8 | 3 | | 1 2 4 8 | 3 | | 1 2 4 8 | 3 | | 1 2 4 8 | 3 | [ X | y ] = | 1 3 9 27 | 3 | ~ | 0 1 5 19 | 0 | ~ | 0 1 5 19 | 0 | ~ | 0 1 5 19 | 0 | | 1 6 36 216 | 4 | | 0 4 32 208 | 1 | | 0 0 12 132 | 1 | | 0 0 3 33 | 1/4 | | 1 9 81 729 | 6 | | 0 7 77 721 | 3 | | 0 0 42 588 | 3 | | 0 0 0 126 | -1/2 | └ ┘ └ ┘ └ ┘ └ ┘
Laajennettu matriisi on porrasmuodossa ja hyvin on pullat uunissa. Matriisiyhtälöön on olemassa yksikäsitteinen ratkaisu kuten pitääkin, sillä jokaisella rivillä on tukisarake eikä viimeinen sarake eli vakiosarake ole tukisarake. Kolmannen ja neljännen vaiheen välinen muutos tapahtui ensinnäkin niin että kolmas rivi kerrottiin luvulla 1/4 eli 12/4 = 3, 132/4 = 33 ja 1/4 = 1/4. Sen jälkeen voitiin todeta että neljännen rivin nollaksi haluttava kolmas alkio 42 on kolmosen monikerta 42/3 = 14 joten se saadaan nollaksi lisäämällä siihen -14*3 = -42. Siispä kolmannen rivin kopio lisätään neljänteen riviin kerrottuna luvulla -14. Esimerkiksi 588 - 14*33 = 588 - 462 = 126 ja 3 - 14/4 = (4*3)/4 - 14/4 = (12 - 14)/4 = -2/4 = -1/2.
Tässä vaiheessa laajennetun matriisin viimeiseltä riviltä jo näkee että β3·126 = -1/2
josta on helppo päätellä että β3 = -1/(2*126) = -1/252
, mutta eihän se vielä riitä, vaan täytyy ratkaista muutkin muuttujat joten siirrytään "takaisinsijoitusvaiheeseen". Neljännen rivin ratkaistua arvoa β3 voidaan käyttää hyväksi kolmannella rivillä jossa tuntemattomana on siis vain β2 joka voidaan ratkaista kun tiedetään että β2·3 + β3·33 = 1/4
ja niin edelleen rivi kerrallaan laajennettu matriisi aukeaa kuin hyvin rasvattu vetoketju.
Joten eikun jatketaan laajennetun matriisin työstämistä kohti ratkaisua tämän kanssa riviekvivalentein muodoin. Kukin kerroinmatriisin tukialkio halutaan sarakkeessaan ainoaksi nollasta eroavaksi luvuksi ja sen suuruudeksi halutaan ykkönen niin että vakiosarake kertoo sitä vastaavan muuttujan arvon. Työ jatkuu nyt alhaalta ylöspäin.
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | 1 2 4 8 | 3 | | 1 2 4 8 | 3 | | 1 2 4 0 | 3 + 8/252 | | 1 2 4 0 | 764/252 | | 0 1 5 19 | 0 | ~ | 0 1 5 19 | 0 | ~ | 0 1 5 0 | 0 + 19/252 | ~ | 0 1 5 0 | 19/252 | | 0 0 3 33 | 1/4 | | 0 0 3 33 | 1/4 | | 0 0 3 0 | 1/4 + 33/252 | | 0 0 3 0 | 96/252 | | 0 0 0 126 | -1/2 | | 0 0 0 1 | -1/(2*126) | | 0 0 0 1 | -1/252 | | 0 0 0 1 | -1/252 | └ ┘ └ ┘ └ ┘ └ ┘
Kun neljännen rivin tukialkio saatiin ykköseksi, piti kerroinmatriisin neljännen rivin yläpuolella oleviin riveihin lisätä neljäs rivi kerrottuna luvuilla jotka tekevät neljännen sarakkeen muut alkiot nolliksi, eli alhaalta ylöspäin -33, -19 ja -8. Kun neljännen rivin viimeisen sarakkeen arvo on negatiivinen, tulee noihin kuitenkin plusmerkki. Näitähän voisi kyllä hiukan supistellakin, mutta en tiedä kannattaako vielä tässä vaiheessa. Olisi sinänsä hyvä jos murtoluvut pysyisivät samannimisinä niin että murtolukulaskenta sujuisi helpommin. Toisaalta laskenta pienemmillä luvuilla voi olla helpompaa.
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | 1 2 4 0 | 764/252 | | 1 2 4 0 | 764/252 | | 1 2 0 0 | 191/63 - 4*8/63 | | 1 2 0 0 | 191/63 - 32/63 | | 0 1 5 0 | 19/252 | ~ | 0 1 5 0 | 19/252 | ~ | 0 1 0 0 | 19/252 - 5*8/63 | ~ | 0 1 0 0 | 19/252 - 40/63 | | 0 0 3 0 | 96/252 | | 0 0 1 0 | 96/(3*252) | | 0 0 1 0 | 24/189 | | 0 0 1 0 | 8/63 | | 0 0 0 1 | -1/252 | | 0 0 0 1 | -1/252 | | 0 0 0 1 | -1/252 | | 0 0 0 1 | -1/252 | └ ┘ └ ┘ └ ┘ └ ┘
Tarkka laskenta rationaaliluvuilla alkaa jo käydä voimille, mutta koetetaan punnertaa vielä yksi askel että saadaan muutettua toisen rivin tukialkion yläpuolella oleva kakkonen nollaksi.
┌ ┐ ┌ ┐ ┌ ┐ | 1 2 0 0 | 159/63 | | 1 0 0 0 | 159/63 - 2*(19/252 - 40/63) | | 1 0 0 0 | 3,642857 | | 0 1 0 0 | 19/252 - 40/63 | ~ | 0 1 0 0 | 19/252 - 40/63 | = | 0 1 0 0 | -0,559523 | | 0 0 1 0 | 8/63 | | 0 0 1 0 | 8/63 | | 0 0 1 0 | 0,126984 | | 0 0 0 1 | -1/252 | | 0 0 0 1 | -1/252 | | 0 0 0 1 | -0,003968 | └ ┘ └ ┘ └ ┘
Olemme täten saavuttaneet rref-muodon (kerroinmatriisi on muuttunut identiteettimatriisiksi) josta suoraan näkyy ratkaisu jonka laskin jo helpommin tulkittaviksi yksittäisiksi desimaaliluvuiksi. Nämä vektorin β alkiot ovat siis esitystarkkuuden puitteissa käytännössä samat kuin edellä normaaliyhtälön ja käänteismatriisin kanssa lasketut PNS-sovitteen kertoimet.
Mutta tehdäänpä tuo ylläoleva rref-muotoinen laajennettu matriisi merkitykseltään täysin selväksi "kirjoitamalla se auki". Mitä tuo muoto varsinaisesti merkitsee ihan yksityiskohtaisesti? Missä ovat parametrivektorin β alkiot?
No nythän on niin että alkuperäistä yhtälöä X β = y
vastaava alkuperäinen laajennettu matriisi [ X | y ]
on lopulta ratkaistussa rref-muodossa [ I | β ]
jossa I
on yksikkömatriisi eli identiteettimatriisi ja β lähtökohtaisesti tuntematon parametrivektori. Laajennetun matriisin identiteettimatriisin (aiemman kerroinmatriisin) ja vakiovektorin erottavan pystyviivan paikalle voidaan ajatella yhtäsuuruusmerkki ja aiempi kerroinmatriisi (nykyinen identiteettimatriisi) pitäisi varsinaisesti kertoa parametrivektorilla jos tuo puretaan auki matriisiyhtälöksi.
Laajennettu matriisi voitaisiin siis ratkaistussa muodossa tavallaan kirjoittaa auki matriisiyhtälöksi muotoon I β = β
joka voi vaikuttaa tarpeettomalta itsestäänselvyydeltä. Identiteettimatriisilla kertominen on nimittäin matriisimaailman vastine skalaarimaailman ykkösellä kertomiselle. Tämä esitystapa on kuitenkin hyödyllinen kun kirjoitetaan matriisiyhtälö I β = β
komponenteittain:
┌ ┐ ┌ ┐ | 1 0 0 0 | | 3,642857 | | 0 1 0 0 | β = | -0,559523 | | 0 0 1 0 | | 0,126984 | | 0 0 0 1 | | -0,003968 | └ ┘ └ ┘ ┌ ┐ ┌ ┐ ┌ ┐ | 1 0 0 0 | | β0 | | 3,642857 | | 0 1 0 0 | | β1 | = | -0,559523 | | 0 0 1 0 | | β2 | | 0,126984 | | 0 0 0 1 | | β3 | | -0,003968 | └ ┘ └ ┘ └ ┘
Ylläoleva voidaan tulkita myös parametrivektorin β komponentit sisältävänä vektoriyhtälönä jossa pystyvektorit tulevat identiteettimatriisista seuraavasti:
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | 1 | | 0 | | 0 | | 0 | | 3,642857 | β0·| 0 | + β1 ·| 1 | + β2·| 0 | + β3 ·| 0 | = | -0,559523 | | 0 | | 0 | | 1 | | 0 | | 0,126984 | | 0 | | 0 | | 0 | | 1 | | -0,003968 | └ ┘ └ ┘ └ ┘ └ ┘ └ ┘
Huomattakoon että parametrivektorin β alkiot ovat skalaareja, joten tuossa on siis joukko skalaarin ja pystyvektorin kertolaskuja. Parametrivektorin komponentit voidaan "kertoa sisään" noihin entisiin identiteettimatriisin sarakevektoreihin. Vain ykkösen sisältävään kohtaan tulee nollasta poikkeava tulos, koska nolla kertaa jotakin on nolla. Sitten parametrivektorin alkiot sisältävät pystyvektorit yksinkertaisesti lasketaan yhteen, niin että syntyy vain yksi parametrivektorin alkioita sisältävä pystyvektori. Nolla plus nolla on nimittäin nolla, eikä nollan lisääminen muuta arvoa.
( Äitini Armi koetti muuten kertomansa mukaan seminaariaikoinaan opetella laskusääntöjä ulkoa silloiseen tyyliin, oikeasti kai jotakin sellaista että "kun yhtäsuuriin lukuihin lisätään sama luku, ovat tulokset yhtäsuuret", mutta ilmeisesti kokeessa sitten muistikin vain sellaisen omatekoisen, matemaattisesti aika arveluttavan säännön että "kun lukuihin lisätään aivan sama niin tulos on aivan sama" )
┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ | β0 | | 0 | | 0 | | 0 | | β0 + 0 + 0 + 0 | | 3,642857 | | 0 | + | β1 | + | 0 | + | 0 | = | 0 + β1 + 0 + 0 | = | -0,559523 | | 0 | | 0 | | β2 | | 0 | | 0 + 0 + β2 + 0 | | 0,126984 | | 0 | | 0 | | 0 | | β3 | | 0 + 0 + 0 + β3 | | -0,003968 | └ ┘ └ ┘ └ ┘ └ ┘ └ ┘ └ ┘
Tämä lopputulos voidaan lyhyesti myös esittää seuraavassa muodossa josta parametrivektorin komponenttien numeeriset arvot näkyvät suoraan vektoreiden vastinalkioista:
┌ ┐ ┌ ┐ | β0 | | 3,642857 | | β1 | = | -0,559523 | = β | β2 | | 0,126984 | | β3 | | -0,003968 | └ ┘ └ ┘
Voisihan tuon laajennetun matriisin rref-muodon toisaalta kirjoittaa myös ilman matriisi- ja vektorimerkintöjä aivan täsmälleen samaa tarkoittavana yhtälöryhmänä, jos se tuntuu ymmärrettävämmältä. Nolla kertaa jotakin on aina tasan nolla. Nollan lisääminen ei muuta luvun suuruutta. Ykkösellä kertominen ei muuta luvun suuruutta.
1·β0 + 0·β1 + 0·β2 + 0·β3 = 3,642857 0·β0 + 1·β1 + 0·β2 + 0·β3 = -0,559523 0·β0 + 0·β1 + 1·β2 + 0·β3 = 0,126984 0·β0 + 0·β1 + 0·β2 + 1·β3 = -0,003968
Kun käyrä pakotetaan kulkemaan kaikkien pisteiden kautta nostamalla asteluku riittävän suureksi, tavallinen lineaarialgebra toimii, eikä PNS-ratkaisua oikeasti tarvita, mutta tämähän on oikeasti sulaa hulluutta. Tämä ei kuitenkaan onnistuisi jos datajoukon yhtäkin x-arvoa vastaisi kaksi tai useampi erilainen y-arvo. Sovituskäyrällä voi olla kussakin kohdassa vain yksi y-arvo, ei kahta erilaista arvoa samassa kohdassa.
Niin ja tämä oli sentään vielä melko pieni datajoukko ... tällaista käsilaskuna pyöritellessä konkreettisesti oivaltaa mikä idea on tietoteknisessä apuvälineessä. Esimerkiksi symbolisen laskennan (so. "laskenta muuttujanimiä käyttäen") hanskaavassa CAS-laskimessa (Computer Algebra System) on funktio rref
joka näppärästi tuottaa matriisin riviredusoidun porrasmuodon (Row Reduced Echelon Form) - toki ongelmitta vain siinä tapauksessa että ratkaisu on edes olemassa. Tiukan matemaattisesti orientoituneen puhdasotsaisen opiskelijan kannattaa aina ensin tshekata ja varmistaa että ratkaisu todella on olemassa, ennenkuin yrittää tuottaa numeerista vastausta. Muussa tapauksessa tuloksena saattaa olla joukko pelkkää roskaa.
Painotettakoon vielä kaiken tämän hulluttelun jälkeen että PNS-ratkaisun idea on löytää suuresta joukosta enemmän tai vähemmän virhettä sisältäviä havaintoja eräänlainen kompromissi, punainen lanka, kupletin juoni, kuvaelman tarkoitus, villakoiran ydin. PNS-sovite auttaa meitä selviytymään tässä virheiden täyttämässä maailmassa. PNS-sovite on ystävämme.
Käytännössä ei voi olettaa että yksittäiset havainnot olisivat ehdottoman tarkkoja. Täsmälleen samaa x-arvoa voi havaintojoukossa vastata useita erilaisia y-arvoja. Voidaan olettaa että havainnot ovat keskimäärin oikeita, tilastollisessa mielessä oikean suuntaisia. Keskiarvo on tarkempi kuin hajonnan ääripäiden arvot. Voidaan olettaa että keskiarvot ovat sitä tarkempia mitä enemmän on havaintoja, vaikka ääripäissä virhe samalla saattaa kasvaakin. Jos virheen suuruus on tarkemmin tuntematon, lie paras oletus ja työhypoteesi sellainen että virhe on kaikissa havainnoissa keskimäärin suunnilleen samaa luokkaa.
Koetan vielä myöhemmin tarkistaa näitä tuloksia, jos jaksan. Virheitä tekee helposti.
Vaikka olen kyllä tavannut muutamia kertomansa mukaan absoluuttisen erehtymättömiä henkilöitä, jotka eivät kuulemma koskaan tee virheitä. Olen kuitenkin myös joutunut korjailemaan heidän tekemiään karkeita virheitä, joten suhteeni "erehtymättömyyteen" on kehittynyt melko epäluuloiseksi, monasti ivallisen skeptiseksi, toisinaan suorastaan psykoottisen kyräileväksi.