SYMBOLINEN ANALYYSI. Keijo Ruohonen
|
|
|
- Anni-Kristiina Koskinen
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 SYMBOLINEN ANALYYSI Keijo Ruohonen 2003
2 Sisältö 1 I SYMBOLIT JA SYNTAKSI Symbolit ja aakkostot Lausekkeet ja syntaksi Tulkinta Yhtälöt, listat, jonot, joukot, asetelmat, vektorit, matriisit,... 6 II SYMBOLINEN DIFFERENTIAALLASKENTA Symbolinen derivointi Taylorin sarja Eräitä apufunktioita ja niiden derivaattoja 14 III KOKONAISLUVUT Jaollisuus, tekijät, alkuluvut Kokonaisluvun esitys eri kannoissa Suurin yhteinen tekijä ja pienin yhteinen jaettava Kongruenssilaskenta eli moduläärilaskenta Kertoma. Stirlingin approksimaatio Binomi- ja multinomikertoimet (Suurten) kokonaislukujen algoritmeja 38 IV ALGEBRAA Yleistä Renkaat ja kunnati Esimerkkejä renkaista ja kunnista Alirenkaat ja -kunnat, laajennukset, ihanteet, tekijärenkaat, murtokunnat Tekijät, s.y.t. ja p.y.j kokonaisalueissa UFD, PID ja ED 47 V POLYNOMIT Yhden muuttujan polynomit Polynomien juuret Algebralliset laajennukset Rationaalifunktiot ja osamurtokehitelmä Monen muuttujan polynomit ja rationaalifunktiot Transsendenttiset laajennukset Polynomien algoritmeja i
3 ii 66 VI ESITYS JA SIEVENNYS Kanoniset ja normaalit esitykset Polynomien ja rationaalifunktioiden esitykset ja sievennys Juurilausekkeiden, algebrallisten lukujen ja algebrallisten funktioiden esitys ja sievennys Transsendenttifunktiot 75 VII SYMBOLINEN INTEGROINTI JA DIFFERENTIAALI- YHTÄLÖT Yleistä Rationaalifunktioiden integrointi Irrationaalisten alkeisfunktioiden integrointi Erikoisfunktiot Differentiaaliyhtälöt 95 VIII SUMMAUS JA KERTOMINEN Summat ja differenssit Rationaalifunktioiden summaus Hypergeometrinen summaus. Gosperin algoritmi Tulo 110 IX LINEAARISET REKURSIOKAAVAT Yleistä Ensimmäisen kertaluvun lineaarinen rekursiokaava Vakiokertoiminen lineaarinen rekursiokaava Matriisiesitys Generoiva funktio Eksponentiaalipolynomi 121 Kirjallisuus 123 Hakemisto Esipuhe Tämä moniste on tarkoitettu TTY:n kurssin Symbolinen analyysi 1 perusmateriaaliksi. Monisteessa käydään läpi symbolisen laskennan peruskäsitteet sekä suuri joukko algoritmeja. Esitietoina tarvitaan vain peruskurssit, vaikkakin monet muut kurssit (esimerkiksi Algebra 1, Kryptologia ja Algoritmimatematiikka) ovat toki hyödyksi. Tarvittavat lukuteorian ja algebran käsitteet ja tulokset käydään läpi. Symbolinen analyysi on suhteellisen lyhyessä ajassa kehittynyt omaksi hyvin laajaksi alueekseen matematiikan ja laskennallisen fysiikan tai yleisesti tieteellisen laskennan välimaastossa, ks. esimerkiksi ENNS & MCGUIRE tai GRABMEIER & KALTOFEN & WEISPFENNING. Tästä syystä mikään kovin laaja tai yksityiskohtainen asian käsittely ei ole mahdollista yhden kurssin puitteissa. Tästäkin monisteesta on jätetty pois tai vain maininnalle useat tehokkaat algoritmit, jotka ovat työläitä esittää ja/tai vaativat paljon esitietoja, ja esimerkiksi symbolista lineaarialgebraa tai monen muuttujan polynomien manipulaatiossa keskeisiä Gröbnerin kantoja ei käsitellä ollenkaan.
4 Olennainen osa symbolisen analyysin kurssia on tutustuminen johonkin laajaan symbolisen laskennan ohjelmistoon (Maple, Mathematica, MuPAD, jne.). Moniste on kuitenkin kirjoitettu mahdollisimman ohjelmistoriippumattomaksi. Näissä ohjelmistoissa on myös helppokäyttöinen ohjelmointikieli, jolla käsittelyn voi automatisoida. Symbolisen laskennan rajoitukset johtuvat enimmäkseen siitä, että aivan puhtaan symbolisesti esitettyinä monet tavalliset tehtävät ovat hyvin vaativia tai suorastaan algoritmisesti ratkeamattomia! Pelastuksena on tehtävien formuloiminen algebralliseen muotoon, jolloin ne tulevat helpommiksi tai yleensä ottaen ratkeaviksi. Ohjelmistot tekevät tällaisen formuloinnin usein automaattisesti. Koska puhtaan symbolisen lausekkeen ja tarkoitetun vastaavan algebrallisen muodon välillä ei ole mitään helppoa yhteyttä tehtävähän pitäisi oikeaoppisesti formuloida alusta alkaen algebralliseen muotoon tapahtuu tässä toisinaan virheitä, jotka käyttäjän pitäisi huomata. Ohjelmistojen käyttö ei olekaan aivan niin mutkatonta kuin käyttäjät muutaman esimerkin jälkeen usein kuvittelevat ja siinä tarvitaan tiettyä rutiinia ja varovaisuutta. Oikein käytettynä symbolinen analyysi on tavattoman vahva työkalu, jolla selvitetään monia muutoin aivan mahdottomia tehtäviä. iii Keijo Ruohonen
5 Luku 1 SYMBOLIT JA SYNTAKSI 1.1 Symbolit ja aakkostot Symbolinen laskenta on pohjimmiltaan tiettyjen symbolijonojen manipulaatiota annettujen sääntöjen mukaan. Käytännön syistä perussymboleja voi olla vain tietty äärellinen määrä. Ne muodostavat ns. perusaakkoston Σ={a 1,a 2,...,a N }. Perussymbolien joukossa ovat ainakin englanninkielen aakkoset a,b,...,z sekä numeraalit 0,1,2,...,9, mutta käytännössä tietysti suuri joukko muitakin symboleja (sananväli, sulut, välimerkkejä, jne.). Aakkoston Σ symboleista voidaan muodostaa ns. sanoja 1, ts. äärellisiä symbolijonoja, jotka perinteiseen tapaan kirjoitetaan ilman erottimia: w = a i1 a i2 a in. Tässä n on sanan pituus. Mukana on myös ns. tyhjä sana Λ, jonka pituus on nolla. n-pituisia sanoja on N n kpl. Symbolisen laskennan ohjelmistoissa suurin sallittu sananpituus on äärellinen, mutta niin suuri, ettei sitä käytännössä juurikaan kukaan hätyyttele. Osa sanoista käy muuttujien, vakioiden, funktioiden yms. nimiksi, mutta eivät kaikki. Esimerkiksi sulut eivät yleensä saa esiintyä nimissä, vaan niillä on oma tavanomainen käyttönsä lausekkeissa (tietyt sulut voivat kuitenkin erottaa muuttujan indeksin). Sanojen perusoperaatio on ns. katenaatio, mikä tarkoittaa yhdyssanojen muodostamista: Sanojen w 1 = a i1 a i2 a in1 ja w 2 = a j1 a j2 a jn2 katenaatio on sana a i1 a i2 a in1 a j1 a j2 a jn2 = merk. w 1 w 2. Katenointi on ilmeisesti liitännäinen operaatio, ts. aina (w 1 w 2 )w 3 = w 1 (w 2 w 3 ), mutta se ei ole (yleisesti) vaihdannainen. Kaikki mahdolliset perusaakkoston symboleista muodostetut sanat muodostavat katenaation suhteen algebrallisesti ns. monoidin, ts. operaatio (katenaatio) on liitännäinen ja sillä on identiteettialkio (tyhjä sana). Symbolisen laskennan ohjelmistoissa katenaatiolla on omat merkintänsä, mutta tietysti vain osalle sanoja! (Katenaation merkki on mukana perusaakkostossa.) Samoin tyhjällä sanalla on oma merkkinsä. Näitä käyttäen voidaan esimerkiksi ohjelmallisesti muodostaa uusia muuttujanimiä. 1 Sanojen teoria on sinällään hyvinkin pitkälle vietyä, ks. kurssit Automaattiteoria ja Formaaliset kielet. 1
6 LUKU 1. SYMBOLIT JA SYNTAKSI Lausekkeet ja syntaksi Osa perussymboleista tulkitaan kiinteiksi operaattoreiksi tai funktioiksi. Tuttuja tällaisia operaattoreita ovat esimerkiksi +, -, * (kertolasku), /, ˆ (potenssiin korotus) ja sin (sinifunktio). Operaattoreita ja funktioita voidaan ottaa lisääkin käyttöön antamalla niille nimet ja tarvittaessa määrittelemällä operaattorin toiminta. Määrittelemätöntä operaattoria tarvitaan laskettaessa symbolisesti operaattoreilla tai esimerkiksi annettaessa differentiaaliyhtälön riippuva muuttuja. Operaattori operoi aina argumentteihinsa, joita voi olla yksi tai useampia. (Tai ei yhtään, jolloin operaattori on kuten muuttuja tai vakio.) Argumenttien lukumäärä voi olla kiinteä tai vaihteleva. Argumentit merkitään yleensä järjestyksessä operaattorin perään sulkujen sisään, ns. prefiksimerkintä. Operaattoria, jolla on vain yksi argumentti, kutsutaan unääriseksi. Operaattoria, jolla on kaksi argumenttia, kutsutaan binääriseksi. +, -, *, / ja ˆ ovat binäärisiä, - on myös unäärinen. Binäärinen operaattori esiintyy usein infiksimerkintäisenä, ts. ei esimerkiksi merkitä +(a,b) vaan a + b. Lisäksi esiintyy toisinaan ns. suffiksimerkintä eli puolalainen merkintä, jossa operaattori merkitään argumenttiensa perään. Huomattakoon, että eräät operaattorit eivät hyväksy mitä tahansa argumentteja, vaan tietyllä argumenttipaikalla on aina oltava tietynlainen termi. Vakioihin, muuttujiin tms. operoivat operaattorit ovat ns. 1. kertaluvun operaattoreita. Toisaalta tietyt operaattorit operoivat 1. kertaluvun operaattoreihin, esimerkkinä vaikkapa funktioiden yhdistäminen tai derivointi. Näitä kutsutaan 2. kertaluvun operaattoreiksi. Edelleen jotkin operaattorit (ns. 3. kertaluvun operaattorit) operoivat 2. kertaluvun operaattoreihin, jne. Käytännössä ei kovin korkean kertaluvun operaattoreita juurikaan tarvita, eivätkä ohjelmistot niitä tue. Binäärinen operaattori f voi määrittää liitännäisen operaation, ts. operaattori käyttäytyy siten, että aina infiksimerkinnässä f(a,f(b,c)) = f(f(a,b),c), a f (b f c) = (a f b) f c. Monet operaattorit, varsinkin kiinteät, ajatellaan ilman muuta liitännäisiksi. Esimerkiksi edellisen pykälän katenaatio ja funktioiden yhdistäminen ovat liitännäisiä, samoin + ja *. Liitännäisille operaatioille pitkät peräkkäiset operoinnit voidaan suluttaa missä järjestyksessä tahansa. Jotta päästäisiin tähän, määritellään sulkuopillisesti oikea sulutus infiksioperaattoreille. Lauseke on oikein sulutettu, jos (i) jokaisella sulkumerkillä on lausekkeessa yksikäsitteinen vastapari, (ii) jokaisen sulkeen ja sen vastasulkeen sisällä oleva lauseke on muotoa x f y tai x f (...) tai (...) f y tai (...) f (...), missä f on operaattori ja x ja y eivät sisällä operaattoreita, ja (iii) itse lauseke on muotoa x tai x f y tai x f (...) tai (...) f y tai (...) f (...), missä f on operaattori ja x ja y eivät sisällä operaattoreita.
7 LUKU 1. SYMBOLIT JA SYNTAKSI 3 Lause 1.1. Liitännäisen operaattorin f sulkuopillisesti oikea lauseke, jossa f esiintyy n 2 kertaa eikä muita infiksioperaattoreita esiinny, voidaan aina kirjoittaa ekvivalenttiin muotoon x 1 f (x 2 f (x 3 f(... (x n f x n+1 )... ))). Todistus. Asia on selvä, jos n =2.Muutoin (kohta (iii) yllä) lauseke on muotoa x f (...) tai (...) f y tai (...) f (...), missä x ja y eivät sisällä operaattoria f. Jos lauseke on muotoa x f (...), jatketaan sulkujen sisällä olevasta lausekkeesta, jossa on operaattoreita yksi vähemmän. Jos taas lauseke on muotoa (...) f y, voidaan olettaa että sulkujen sisällä oleva lauseke (kohta (ii)) on jo saatettu vaadittuun muotoon x 1 f (x 2 f (x 3 f(... (x n 1 f x n )... ))), jolloin lauseke voidaan kirjoittaa muotoon x 1 f ((x 2 f (x 3 f(... (x n 1 f x n )... ))) f y), mistä jatketaan. Samoin menetellään muotoa (...) f (...) olevan lausekkeen kanssa, ensimmäinen sulkulauseke saatetaan vaadittuun muotoon, jne. Lauseesta seuraa, että liitännäisen operaattorin tapauksessa sulutuksella ei ole väliä, kunhan se on sulkuopillisesti oikea. Niinpä kirjoitetaankin lauseke usein täysin ilman sulkuja: x 1 f x 2 f x 3 f... x n f x n+1. Ohjelmistot yleensä tukevat tätä merkintätapaa tavallisimpien liitännäisten operaattorien suhteen. Huomautus. Laskujen määrän suhteen ei ole aina ollenkaan yhdentekevää, miten lauseke lopulta sulutetaan (sehän on sulutettava laskuja varten täydellisesti). Esimerkiksi kerrottaessa monia erikokoisia matriiseja, voi laskujen määrässä olla suuria eroja sulutuksesta riippuen. Huomattakoon, että sulkusymboleja voi esiintyä erilaisina alkusulku-loppusulku-pareina. Niille yllä oleva pätee samoin perustein. Itse asiassa, koska jokaisella alkusululla on yksikäsitteinen loppusulkunsa, on yhdentekevää kuinka sulkuja merkitään, kunhan alku- ja loppusulut erotetaan toisistaan merkinnällisesti. Erikoisia sulkupareja käytetään usein matematiikassa myös operaattorien merkintään, esimerkkinä tuttu määräämätön integraali, jota merkitään alkusululla ja loppusululla dx. (Tätä käytäntöä näkee vähemmän symbolisen laskennan ohjelmistoissa.) Samoin sulkupareja käytetään rajoittimina, erityisesti ohjelmistoissa, esimerkiksi joukon määrittelyssä: {a, b, c}. Parittomien sulkujen käyttö on tavallista matematiikassa (esimerkkinä itseisarvo a tai normi a ), mutta sitä vältetään ohjelmistoissa (miksi muuten?). Sulkuja käyttäen ohjelmisto jäsentää lausekkeen, joko automaattisesti tai vasta pyydettäessä. Huomattakoon, että sulkuja jätetään pois lausekkeista sopimalla operaatioille suoritusjärjestys. Esimerkiksi * ja / sovitaan suoritettaviksi aina ennen operaatiota + ja -, mikä mahdollistaa esimerkiksi lausekkeen (x * y) + (z * (u / v))kirjoittamisen suluttomaan muotoon x * y + z * u / v. Ohjelmistot tukevat tavallisimpia tällaisia suoritusjärjestyksiä. Huomattakoon myös, että useimmiten * ja / ajatellaan samanarvoisiksi ja yhteisliitännäisiksi, ts. esimerkiksi a * b / c * d / e = a * b * c 1 * d * e 1. Binäärinen operaattori f on vaihdannainen, jos aina
8 LUKU 1. SYMBOLIT JA SYNTAKSI 4 a f b = b f a. Monet operaattorit, varsinkin kiinteät, ajatellaan vaihdannaisiksi, esimerkkeinä * ja +. Toisaalta esimerkiksi / ei ole vaihdannainen eikä myöskään ˆ, funktioiden yhdistäminen tai katenaatio. Ohjelmistot tunnistavat tavallisimmat vaihdannaiset operaattorit. Symbolisessa laskussa lausekkeiden koko kasvaa usein valtavaksi, niin isoksi, että niiden kirjoittaminen tai kopiointi on käytännössä mahdotonta. Tästä syystä ohjelmistoissa nimetään lausekkeita muuttujanimillä, joilla niihin voidaan sitten myöhemmin viitata. Huomattakoon, että tällaisen nimeämisen liittäminen varsinaiseen syntaksiin johtaa tiettyihin vaikeuksiin. Näin nimeäminen onkin ajateltava metaoperaatioksi, ts. käyttäjän kannalta, ei ohjelmiston. Myös operaattoreita ja funktioita voidaan nimetä. 1.3 Tulkinta Ohjelmisto ei voi koskaan täysin tulkita lauseketta, ts. tajuta täydellisesti sen yhteyttä käyttötilanteeseen, vaan tämä jää käyttäjälle. Toisaalta aivan puhtaan symbolinen merkkipeli johtaa varsin työlääseen käyttöön, mikäli joitain tulkinnan osia ei ole valmiina tai kutsuttavissa. Esimerkiksi numeraalit 0,1,2,...,9 liitetään melko automaattisesti lukuihin, kun se on paikallaan, ja lasketaan niillä sen mukaisesti. On kuitenkin huomattava, että valmiit tulkinnan osat voivat olla melko pinnallisia, ts. ohjelmisto ei tunne syvällisempiä ominaisuuksia. Erikoistarkoituksiin tehdyt paketit sen sijaan voivat tuntea alansa ominaisuuksia tarkemminkin. Valmiiksi mukaan otetut tulkinnan osat liittyvät tavallisimmin kokonaislukuihin (lukuteoria), reaali- ja kompleksilukujen aritmetiikkaan (numeerinen laskenta), algebraan (polynomit, kunnat, lineaarialgebra, jne.), analyysiin (differentiaali- ja integraalilaskenta, differentiaaliyhtälöt, integraalimuunnokset, jne.), summauslaskentaan (summat, differenssit, differenssiyhtälöt, jne.), logiikkaan tai joukko-oppiin. Nämä alat eivät ole kuitenkaan erillisiä, vaan laskennan kuluessa tarvitaan usean alueen tulkintoja, joskus kaikkiakin. Erityisen tavallista on laskea ensin symbolisesti ja, kun on saatu sille otollinen muoto, sitten numeerisesti. Näiden (ja muiden) eri tulkinta-alojen yhteispeli antaa symboliselle analyysille sen tavattoman voiman, mutta tekee sen algoritmien kehittämisen ja käyttämisenkin sangen vaativaksi. Todettakoon, että itse asiassa tulkinta johonkin rajaan asti on teoreettisestikin välttämätöntä laskujen etenemiseksi. Puhtaasti symbolisena ilman tulkintoja annettu tehtävä voi nimittäin olla jopa algoritmisesti ratkeamaton tai laskennallisesti hyvin vaativa, ks. Pykälä 6.1. Monesti ohjelmisto tekee automaattisesti tällaisen tulkinnan, eikä voi edetä ollenkaan, ellei se sitä voi tehdä. Esimerkiksi sopivasti algebrallisesti tulkittu symbolinen alkeisfunktioiden integrointi on algoritmisesti ratkeava tehtävä, mutta puhtaasti symbolinen ei sitä ole, ks. Pykälä 7.1. Jatkossa käsitellään pääasiassa eri tulkinta-alojen piirteitä nimenomaan symbolisen laskennan näkökannalta. Numeerisen laskennan osuus jää vähäiseksi (sille on oma kurssinsa Numeerinen analyysi 1). Algebraa käsitellään sen sijaan enemmänkin, kurssi Algebra 1 on avuksi,
9 LUKU 1. SYMBOLIT JA SYNTAKSI 5 muttei välttämätön. Lukuteorian, logiikan ja joukko-opin taustatietona kurssi Algoritmimatematiikka on hyödyksi, muttei sekään välttämätön. Keskeisessä asemassa on polynomialgebra, sillä hyvin monet symboliset operaatiot pohjautuvat siihen, esimerkiksi lausekkeessa 3 / 4 * sqrt(2) * sin(x) - y ˆ 3 / 4 * (1 - sin(x) ˆ 2) esiintyvä sin(x) voidaan tulkita yhdeksi muuttujaksi, jolloin kyseessä on sen ja y:n polynomi. Symbolista lineaarialgebraa ei tässä käsitellä. 1.4 Yhtälöt, listat, jonot, joukot, asetelmat, vektorit, matriisit,... Erilaisilla erottimilla lausekkeista voidaan muodostaa uusia käsitteitä, joista monet ovat matematiikasta tuttuja. Kirjoittamalla kahden lausekkeen väliin yhtäläisyysmerkki = saadaan yhtälö, esimerkiksi tan(x) = x. Ohjelmistot tuntevat yhtälön käsitteen ja käsittelevät sitä oikein. (Tavallisinta on tietysti yrittää ratkaista yhtälö numeerisesti tai symbolisesti, mutta yhtälöjä voidaan käsitellä muullakin tavoin.) Lausekkeista voidaan muodostaa erotinta käyttäen jono. Tavallisin erotin on pilkku,, esimerkiksi 1 - x ˆ 2, 3 - x, x ˆ 4, 0, 0 on viiden polynomin jono. Ohjelmistoissa on yleensä käsky, jolla jonoja voidaan muodostaa ohjelmallisesti. Jonoja tarvitaan mm. operaattorien argumentteina, tiedostorakenteina, yms. Jonojen perusoperaatio on katenaatio, jonka merkkinä on erotin. Tämä operaatio on selvästi liitännäinen, identiteettinä on tyhjä jono. Näin jonotkin muodostavat algebralliselta rakenteeltaan monoidin. Lista on yhdeksi lausekkeeksi merkitty jono. Matemaattisesti lista on järjestetty jono. Ohjelmistoissa on operaattori, joka ottaa listasta sen sisällä olevan jonon eli litistää listan. Joukko taas on matemaattinen joukko, ts. järjestämätön jono, joka ei sisällä samaa termiä monta kertaa. Joukkoihin voidaan soveltaa tavallisia joukko-opin operaatioita: yhdiste, leikkaus ja erotus. Asetelma eli taulu muodostuu taulukon muotoon kirjoitetuista lausekkeista. Tavallisesti tällainen taulukko tulkitaan matemaattiseksi vektoriksi tai matriisiksi. Todettakoon, että jonorakenne on eräänlainen liitännäisen operoinnin prototyyppi, josta helposti saadaan muita. Koska summa (merkkinä +) on liitännäinen, on summarakenne hyvin samantapainen kuin jonorakenne. Toisaalta siihen liittyvät summalle ominaiset tulkinnalliset piirteet, jotka ohjelmistot tunnistavat, ts. summa summataan. Samoin tulorakenne on hyvin samantapainen kuin jonorakenne, mutta siinäkin tulkinta tuo muita piirteitä. Tyhjä summa on nolla ja tyhjä tulo on ykkönen. Myös yhtälöitä, jonoja, listoja ja asetelmia voidaan nimetä. Niiden osiin viitataan tavalliseen tapaan indekseillä.
10 Luku 2 SYMBOLINEN DIFFERENTIAALILASKENTA 2.1 Symbolinen derivointi Symbolisista operaatioista periaatteessa yksinkertaisin on derivointi. Tämä johtuu siitä, että peruskursseilla opitut derivointisäännöt ovat selvästi symbolisia: perusoperaatioille saadaan symboliset derivointisäännöt ja toisaalta alkeisfunktioiden derivointi tuottaa toisia alkeisfunktioita. Näin onkin vain tarpeen jäsentää lauseke ja käyttää derivointisääntöjä ja tunnettuja alkeisfunktioiden derivaattoja. Derivaatan raja-arvomäärittelyä ei siten tarvita lainkaan! Sama koske osittaisderivointia. Seuraavassa kertauksen vuoksi derivointisäännöt: D(f(x) ± g(x)) =Df(x) ± Dg(x) D(f(x)g(x)) = g(x)df(x) + f(x)dg(x) D(f(x)/g(x)) = 1 (g(x)df(x) f(x)dg(x)) g(x) 2 ( ) g(x) D(f(x) g(x) )=f(x) g(x) Df(x)+(ln f(x))dg(x) f(x) k D(f(g 1 (x),...,g k (x)) = D i f(g 1 (x),...,g k (x))dg i (x) Df 1 (x) = i=1 1 Df(f 1 (x)) Tässä D i tarkoittaa osittaisderivointia i:nnen muuttujapaikan suhteen. Ohjelmistot osaavat nämä säännöt, myös määräämättömille funktioille. Korkeamman kertaluvun derivaatat saadaan toistamalla derivointia. Lausekkeissa saa myös esiintyä derivoituja määräämättömiä funktioita. Edelleen derivoitavissa lausekkeissa saa esiintyä integraaleja ja näidenkin derivointi on symbolista peruskursseilta tutun kaavan mukaan: b(x) b(x) D f(x, y)dy = D 1 f(x, y)dy + f(x, b(x))db(x) f(x, a(x))da(x). a(x) a(x) Pulmallisinta symbolisessa derivoinnissa on se, että lopputuloksena saatavat lausekkeet ovat usein hyvin isoja, vaikka ne itse asiassa sieventyisivät huomattavasti pienemmiksi. Näin ni- 6
11 LUKU 2. SYMBOLINEN DIFFERENTIAALILASKENTA 7 menomaan sievennyksellä on tärkeä rooli symbolisessa derivoinnissa. Sievennykseen palataan myöhemmin Luvussa 6. Huomautus. Koska derivointi on näin symbolinen operaatio, voidaan funktion laskevasta ohjelmakoodista usein helposti muokata sen derivaatan laskeva koodi. Tätä kutsutaan automaattiseksi derivoinniksi, käyttäjän ei tarvitse sitä tehdä tai edes tietää, että derivointi tehtiin. (Ks. esimerkiksi RALL.) Vektorilaskennan nablauskaavat ovat kutakuinkin kaikki symbolisia identiteettejä, joten ne olisivat periaatteessa käytettävissä. Nablausta ei kuitenkaan ole yleisesti ohjelmistoissa, johtuen siitä, että kaavojen käyttö ei enää olekaan suoraviivaista vaan vaatii tietyt strategiat ja näitä ei ole saatu mekanisoiduksi tyydyttävästi. Koska nablauskaavat ovat symbolisia, niitä vastaava tulos saadaan toisinaan aikaan derivoinnilla ja sopivalla sievennyksellä. 2.2 Taylorin sarja Funktion f(x) Taylorin sarja pisteessä x = a saadaan tutulla kaavalla f(x) =f(a)+ 1 1! Df(a)(x a)+ 1 2! D2 f(a)(x a) ! D3 f(a)(x a) n! Dn f(a)(x a) n + Koska derivaatat pisteessä x = a ovat symbolisesti laskettavissa, saadaan sarjasta lasketuksi symbolisesti periaatteessa miten tahansa suuri määrä termejä. Ohjelmistot eivät kuitenkaan yleensä pysty laskemaan yleistä termiä, vaan antavat tuloksen n:nnen asteen Taylorin kehitelmänä eli muodossa Taylorin polynomi + virhetermi eli f(x) =f(a)+ 1 1! Df(a)(x a)+ 1 2! D2 f(a)(x a) ! D3 f(a)(x a) n! Dn f(a)(x a) n + O((x a) n+1 ). Tässä virhetermi O((x a) n+1 ) tarkoittaa kollektiivisesti sellaista korjaustermiä θ n (x), että θ n (x) C x a n+1 jollain välillä x a R, missä C on vakio (ns. O-notaatio). Samoin saadaan symbolisesti lasketuksi monen muuttujan funktion Taylorin sarjan termejä. Huomattakoon, että myös määräämättömien funktioiden Taylorin sarjat ovat käytettävissä ja että lausekkeissa saa esiintyä myös integraaleja. On muitakin tapoja saada symbolisesti Taylorin kehitelmiä. Jos esimerkiksi funktio y = y(x) määritellään yhtälöllä g(x)f(y) =h(x), missä f(y):n, g(x):n ja h(x):n Taylorin kehitelmät (pisteissä y = b ja x = a, joille g(a)f(b) = h(a))tunnetaan, saadaan y(x):n Taylorin kehitelmä pisteessä x = a y(x) =c 0 + c 1 (x a)+ + c m (x a) m + O((x a) m+1 ) lasketuksi iteroiden peräkkäisten approksimaatioiden menetelmällä: Peräkkäisten approksimaatioiden menetelmä: 1. Asetetaan r 0 ja y 0 b.
12 LUKU 2. SYMBOLINEN DIFFERENTIAALILASKENTA 8 2. Lasketaan g(x):n ja h(x):n Taylorin polynomit P (x) ja Q(x) pisteessä x = a sekä f(y):n Taylorin polynomi R(y) pisteessä y = b. (Polynomien asteen pitää olla riittävän korkea.) 3. Ratkaistaan yhtälöstä P (x)r(y r )=Q(x) kerroin c r (unohtaen (x a) r :ää korkeammat x a:n potenssit). 4. Jos tarvitaan vielä korkeampiasteisia termejä, asetetaan r r +1 sekä y r y r 1 + c r (x a) r ja mennään kohtaan 2. Muuten tulostetaan y r ja lopetetaan. Peräkkäisten approksimaatioiden menetelmällä saadaan esimerkiksi lasketuksi funktioiden h(x) ja g(x) osamäärän h(x)/g(x) sekä neliöjuuren f(x) jms. Taylorin kehitelmät, kunhan tunnetaan lähtöfunktioiden kehitelmät. Edellinen saadaan käyttäen yhtälöä g(x)y = h(x) ja jälkimmäinen yhtälöllä y 2 = f(x). Onhuomattava, ettei menetelmä säilytä aina alkuperäisten Taylorin kehitelmien tarkkuutta. Esimerkiksi ns. sinc-funktion eli kardinaalisinin 1 sinc x = sin x x 2. asteen Taylorin kehitelmää origossa ei saa 2. asteen kehitelmistä sin x = x + O(x 3 ) ja x = x + O(x 3 ). Kuten peruskursseilla on opittu, määräämättömiä raja-arvoja voidaan useinkin laskea Taylorin sarjoja käyttäen, ottaen mukaan sopiva määrä termejä. Näin tämäkin operaatio voidaan suorittaa symbolisesti. Mutkikkaammat raja-arvot vaativat muunkinlaisia sarjakehitelmiä. 2.3 Eräitä apufunktioita ja niiden derivaattoja (Diracin) deltafunktiota δ(x) käytetään symbolisesti laskettaessa seuraavassa formaalisessa merkinnässä: b { f(c), jos c on integrointivälillä f(x)δ(x c)dx = 0 muuten. a Tässä oletetaan, että a b. Integrointiväli voi olla myös ääretön. Merkinnän etu on se, että integraalin sisään saadaan tavaraa, joka ei sinne normaalisti kuulu. Näin käsittely ja notaatio yksinkertaistuu ja yhtenäistyy. Jotta deltafunktiomerkintä olisi käyttökelpoinen, sovitaan vielä, että (1) b (f(x)δ(x c)+g(x))dx = b f(x)δ(x c)dx + b g(x)dx (yhteenlasku), (2) a b f(x)δ(x c)dx = b d a f(y + d)δ(y + d c)dy a (translaatio), (3) a a d b a f(x)δ(x c)dx = f(x)δ(x c)dx (a b, rajojen vaihto). a b 1 Nimi lienee englanninkielen sanaleikki, vrt. cardinal sin, peräisin J.M. Whittakerin klassikosta Interpolatory Function Theory. Cambridge University Press (1935).
13 LUKU 2. SYMBOLINEN DIFFERENTIAALILASKENTA 9 Huomautus. On melko ilmeistä, ettei mikään tavallinen funktio voi käydä yo. deltafunktioksi. Deltafunktio onkin usein vain merkinnällinen apuväline. Matemaattisesti toki voidaan upottaa tavalliset funktiot laajempaan luokkaan, ns. yleistettyihin funktioihin, joihin myös deltafunktio kuuluu. Symbolisesti laskettaessa kumpikin tulkinta on mahdollinen. Funktio g(x) on funktion f(x) ns. heikko derivaatta, jos voidaan kirjoittaa f(x) =f(a)+ x a g(y)dy jollekin vakiolle a (voi olla ). Huomaa, ettei heikko derivaatta ole yksikäsitteinen. Vaikkakin yo. deltafunktiomerkintä on vain merkintä, voidaan sen avulla saada (heikot) symboliset derivaatat monille funktioille. Esimerkiksi x δ(y)dy = x 1 δ(y)dy = { 0, jos x<0 1, jos x 0 } = H(x), joten deltafunktio on ns. Heavisiden funktion H(x) symbolinen derivaatta. Samoin Tästä syystä voidaan merkitä D(H(x c)) = δ(x c). δ(x c) =0, kun x c, sillä H(x c) on vakio, kun x<ctai x>c. Edelleen on mukavaa sopia, että deltafunktio on parillinen funktio, ts. δ( x) =δ(x), kun x 0. Vielä, koska suoraan deltafunktion määritelmän mukaan b a f(x)δ(x c)dx = b a f(c)δ(x c)dx, on tapana kirjoittaa f(x)δ(x c) =f(c)δ(x c). Deltafunktioon voidaan soveltaa myös osittaisintegrointia: Lause 2.1. Jos f(x):llä on derivaatta, niin b a f(x)δ(x c)dx = / b a f(x)h(x c) b a H(x c)df(x)dx (osittaisintegrointi), kun c min(a, b). Todistus. Rajoitutaan tapaukseen, missä a < b ja c =0(muut menevät samoin). Saadaan kolme alatapausta: 0 on integrointivälillä. Silloin a<0 ja oikea puoli = f(b) b 0 Df(x)dx = f(0) = vasen puoli.
14 LUKU 2. SYMBOLINEN DIFFERENTIAALILASKENTA 10 a on positiivinen. Silloin oikea puoli = b on negatiivinen. Silloin / b a oikea puoli = f(x) / b a 0 / b a b a f(x) =0=vasen puoli. 0 dx = 0 = vasen puoli. Seuraus. Tulolle f(x)h(x c) pätee tulon derivointisääntö. Todistus. Lauseen 2.1 nojalla (valitaan b = x) x f(x)h(x c) =f(a)h(a c)+ (f(y)δ(y c)+h(y c)df(y))dy. a Osittaisintegroimalla symbolisesti toisin päin kuin Lauseessa 2.1 (ja olettaen, että a<b) todetaan, että f(c), jos a<c<b 0, jos c<atai c>b } = = b a / b a b = f(x)δ(x c)dx F (x)δ(x c) a b F (x)d(δ(x c))dx, a F (x)d(δ(x c))dx missä F (x) on f(x):n integraalifunktio. Näin symbolisesti saadaan deltafunktion derivaatta D(δ(x c)). Eli derivaatta valitaan siten, että tulon derivointisääntö pätee tulolle f(x)δ(x c) (vrt. yo. Seuraus). Yleisesti n-kertaisella osittaisintegroinnilla voidaan perustella deltafunktion n:nnen kertaluvun derivaatan seuraava määritelmä: b { f(x)d n ( 1) n D n f(c), jos c on integrointivälillä (δ(x c))dx = 0 muuten. a Huomaa myös, että on järkevää merkitä D n (δ(x c)) =0, jos x c. Likeistä sukua Heavisiden funktiolle on signumfunktio 1, jos x>0 sgn(x) = 0, jos x =0 = H(x) H( x). 1, jos x<0
15 LUKU 2. SYMBOLINEN DIFFERENTIAALILASKENTA 11 Näin ollen (symbolisesti) D sgn(x) =DH(x) DH( x)( 1) =2δ(x). Huomaa myös, että signumfunktio sgn(x) on itseisarvon x heikko derivaatta. Eräänlaiset yleistykset signumfunktiolle ovat katto ja pohja. Reaaliluvun x katto, merkitään x,onpienin kokonaisluku, joka on x.vastaavasti luvun x pohja, merkitään 2 x,onsuurin kokonaisluku, joka on x. Seuraavassa kuvaajat ja varsin ilmeisiä katon ja pohjan ominaisuuksia: katto pohja x 2 3 (1) x = x x on kokonaisluku x = x { 1, jos x ei ole kokonaisluku (2) x x = 0, jos x on kokonaisluku (3) x 1 < x x x <x+1 (4) x = x ja x = x Edelleen, jos k on kokonaisluku, niin saadaan seuraavat ominaisuudet: (5) x = k k x<k+1 x 1 <k x (6) x = k k 1 <x k x k<x+1 (7) x + k = x + k ja x + k = x + k (8) x<k x <k (9) k<x k< x 2 Vanha, vieläkin usein käytössä oleva merkintä on [x].
16 LUKU 2. SYMBOLINEN DIFFERENTIAALILASKENTA 12 (10) x k x k (11) k x k x Mitään varsinaisia perustuloksia ei katolle ja pohjalle ole, sievennykseen on kuitenkin toisinaan käytettävissä Lause 2.2. (McEliecen lemma) Jos f(x) on jatkuva ja aidosti kasvava ja jos x on kokonaisluku aina kun f(x) on kokonaisluku, niin f(x) = f( x ) ja f(x) = f( x ). Todistus. Näytetään kaava f(x) = f( x ). Pohjia koskevan kaavan todistus on kutakuinkin samanlainen (jätetään lukijalle). Jos x = x, niin asia on selvä. Näin ollen voidaan siirtyä tapaukseen x < x. Tällöin f(x) < f( x ), sillä f on aidosti kasvava, ja edelleen f(x) f( x ). Asetetaan vastaoletus: f(x) < f( x ). Silloin f(x) f(x) < f( x ). Koska f on jatkuva, niin on sellainen luku y väliltä x y< x, että f(y) = f(x). Mutta tällöin y on kokonaisluku lauseessa mainitun ehdon takia, mikä on ristiriita. Lauseesta saadaan erikoistapauksina mm. kaavat x = x ja x = x (valitaan f(x) = x). Edelleen, jos m 2 on kokonaisluku ja log m merkitsee m-kantaista logaritmia, niin log m x = log m x ja log m x = log m x (valitaan f(x) =log m x). Vielä, jos k ja n>0ovat kokonaislukuja, niin x + k x + k x + k x + k = ja = n n n n (valitaan f(x) = x + k n ). Kattoa ja pohjaa käyttäen saadaan ilmaistuksi reaalilukuväleillä olevien kokonaislukujen lukumäärät: Lause 2.3. (i) Välillä [a, b] on b a +1kokonaislukua (a b). (ii) Välillä [a, b) on b a kokonaislukua (a b). (iii) Välillä (a, b] on b a kokonaislukua (a b). (iv) Välillä (a, b) on b a 1 kokonaislukua (a <b). Todistus. (i) k on välillä [a, b] oleva kokonaisluku tarkalleen silloin, kun a k b. (ii) k on välillä [a, b) oleva kokonaisluku tarkalleen silloin, kun a k< b. (iii) k on välillä (a, b] oleva kokonaisluku tarkalleen silloin, kun a <k b. (iv) k on välillä (a, b) oleva kokonaisluku tarkalleen silloin, kun a <k< b.
17 LUKU 2. SYMBOLINEN DIFFERENTIAALILASKENTA 13 Katto ja pohja liittyvät likeisesti Heavisiden funktiosarjoihin, sillä ilmeisesti x = n=0 H(x n)+ (H(x n) 1) n=1 (ja x = x ). Siispä symbolisesti D x =D x = δ(x n), n= ns. 1-jaksoinen deltafunktio eli deltafunktiokampa (tunnetaan myös ideaalisen näytteenottofunktion nimellä). Kyseessä on erikoistapaus ns. deltafunktiosarjasta, jollaisen yleinen muoto on a n δ(x n). n=
18 Luku 3 KOKONAISLUVUT 3.1 Jaollisuus, tekijät, alkuluvut Symbolisen laskennan tavallisin valmistulkinta on numeraalijonojen tulkinta kokonaisluvuiksi. Näin ollen tietyt lukuteorian 1 käsitteet ja tulokset tulevat hyvin usein esille laskettaessa symbolisesti, vaikka lasku sinänsä ei liitykään lukuteoriaan. Kaikkien kokonaislukujen joukkoa merkitään Z:lla. Ei-negatiivisten kokonaislukujen eli ns. luonnollisten lukujen joukkoa {0, 1, 2,...} merkitään N:llä. Kokonaislukujen yhteen- ja kertolasku ovat tuttuja vaihdannaisia ja liitännäisiä operaatioita, joiden identiteettialkiot ovat 0 ja 1. Muista myös liitäntälaki x(y +z) = xy +xz sekä vastaluvun ja vähennyslaskun määrittelyt: x =( 1)x ja x y = x +( 1)y.Kokonaislukujen jakolasku tarkoittaa seuraavanlaista operaatiota: Jaettaessa kokonaisluku x (jaettava)kokonaisluvulla y 0 (jakaja) x saatetaan muotoon x = qy + r, missä kokonaisluku r on jakojäännös, joka toteuttaa ehdon 0 r < y. Kokonaisluku q on osamäärä. Lisäämällä x:ään toistuvasti y:tä tai y:tä nähdään, että x on mahdollista kirjoittaa ko. muotoon. Jos voidaan kirjoittaa x = qy, missä q on kokonaisluku, sanotaan, että x on jaollinen y:llä tai että y jakaa x:n tai että y on x:n tekijä, merkitään y x. Kokonaisluvun x ns. triviaalit tekijät ovat ±1 ja ±x. Mahdolliset muut tekijät ovat ei-triviaaleja. Seuraavat jakolaskun ja jaollisuuden ominaisuudet ovat melko ilmeisiä: (1) 0 on jaollinen millä tahansa kokonaisluvulla, mutta jakaa vain itsensä. (2) ±1 jakaa kaikki kokonaisluvut, mutta on jaollinen vain itsellään. (3) Jos y x ja x 0, niin y x. (4) Jos x y ja y z, niin myös x z. (5) Jos x y ja x z, niin myös x y ± z. (6) Jos x y ja z on kokonaisluku, niin x yz. 1 Lukuteoria on nimenomaan kokonaislukujen teoriaa. 14
19 LUKU 3. KOKONAISLUVUT 15 (7) Jakolaskun tulos on yksikäsitteinen. Jos nimittäin x = q 1 y + r 1 = q 2 y + r 2, missä q 1,q 2,r 1,r 2 ovat kokonaislukuja ja 0 r 1,r 2 <y, niin y jakaa r 1 r 2 :n. Koska r 1 r 2 < y, tästä seuraa että r 1 = r 2 ja edelleen että q 1 = q 2. Kokonaislukua, jolla on vain triviaalit tekijät, kutsutaan jaottomaksi. Jaoton kokonaisluku on alkuluku, jos seon 2. Ensimmäiset alkuluvut ovat 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53,... 2 on ainoa parillinen alkuluku. Eräs symbolisen laskennan perustehtävä on testata onko luonnollinen luku alkuluku vai ei. Alkulukujen joukkoa merkitään toisinaan P:llä. Kokonaisluku, joka on 2 eikä ole alkuluku, on yhdistetty luku. Lause 3.1. Jos kokonaisluku x on itseisarvoltaan 2, niin sillä on alkulukutekijä eli ns. alkutekijä. Todistus. Jos x 2, alkutekijä p löytyy seuraavalla algoritmilla: 1. Asetetaan z x. 2. Jos z on jaoton, tulostetaan p = z ja lopetetaan. 3. Jos z ei ole jaoton, etsitään ei-triviaali tekijä u. Asetetaan z u ja mennään kohtaan 2. Menettely pysähtyy, sillä kohdan 3. kautta mentäessä aina z pienenee ja on lopulta alkuluku, jolloin tullaan ulos kohdasta 2. Seuraus. Alkulukuja on äärettömän monta. Todistus. Äärettömän pitkä jono alkulukuja voidaan saada aikaan seuraavalla jo muinaisten kreikkalaisten tuntemalla menettelyllä (joka ei tietenkään tuota kaikkia alkulukuja): 1. Asetetaan P Jos P = p 1,...,p n, niin lasketaan x = p 1 p n +1. Huomaa, ettei mikään jonon P alkuluvuista jaa x:ää (jakolaskun yksikäsitteisyys). 3. Lauseen 3.1 mukaisesti x:llä on alkutekijä p, joka ei siis kuitenkaan ole mikään jonon P alkuluvuista. Etsitään jokin p, asetetaan P P,pja palataan kohtaan 2. Symbolisen laskennan alkulukuihin liittyviä perustehtäviä ovat mm. seuraavat: (1) Laske (suuruusjärjestyksessä) n:s alkuluku. (2) Laske (suuruusjärjestyksessä) n ensimmäistä alkulukua. (3) Laske suurin (vast. pienin) alkuluku, joka on x (vast. x). (4) Laske alkuluvut, jotka ovat x. Jos merkitään π(x):llä niiden alkulukujen lukumäärää, jotka ovat x, niin saadaan asymptoottinen arvio
20 LUKU 3. KOKONAISLUVUT 16 Lause 3.2. (Alkulukulause) 2 lim x π(x) x/ ln x =1 Lause 3.3. Kokonaisluku x 0voidaan etumerkkiä vaille kirjoittaa alkulukujen tuloksi, ns. tekijöihinjako. Todistus. Seuraava menettely tuottaa jonon alkulukuja, joiden tulo on = ±x: 1. Asetetaan T NULL (tyhjä jono). 2. Jos x = ±1, tulostetaan T ja lopetetaan. (Muista, että tyhjä tulo on =1.) 3. Etsitään jokin x:n alkutekijä p (Lause 3.1), jolloin x = py. Asetetaan T T,p sekä x y ja mennään kohtaan 2. Menettely pysähtyy, koska aina kohdan 3. kautta mentäessä x pienenee ja on lopulta =1, jolloin tullaan ulos kohdasta 2. Myöhemmin todetaan vielä, että ko. tekijöihinjako on (tekijöiden järjestystä lukuunottamatta) yksikäsitteinen (ks. Pykälä 3.3). Luonnollisesti eräs symbolisen analyysin perustehtäviä on kokonaisluvun tekijöihinjaon etsiminen. Laskennallisesti tämä on varsin vaativa tehtävä. 3.2 Kokonaisluvun esitys eri kannoissa Tavallisin tapa esittää kokonaisluku on käyttää tuttua desimaaliesitystä eli 10-kantaista esitystä. Myös 2-kantainen eli binääriesitys on usein esillä, samoin 8-kantainen oktaaliesitys tai 16-kantainen heksadesimaaliesitys. Yleisen kannan esityksen antaa Lause 3.4. Jos k 2, niin jokainen positiivinen kokonaisluku x voidaan esittää yksikäsitteisesti muodossa x = a n k n + a n 1 k n a 1 k + a 0, missä 0 a 0,a 1,...,a n k 1 ja a n > 0. (Kyseessä on x:n k-kantainen esitys, n +1on esityksen pituus.) Todistus. Esityksen eli jonon a n,a n 1,...,a 0 antaa seuraava algoritmi: 1. Asetetaan K NULL (tyhjä jono). 2. Jaetaan x kantaluvulla k: x = qk + r (osamäärä q, jakojäännös r). Asetetaan K r, K ja x q. 3. Jos x =0, tulostetaan K ja lopetetaan. Muussa tapauksessa mennään kohtaan 2. Koska kohdassa 2. aina x pienenee, menettely pysähtyy lopulta kohtaan 3. k-kantainen esitys on yksikäsitteinen. Jos nimittäin x = a n k n + a n 1 k n a 1 k + a 0 = b m k m + b m 1 k m b 1 k + b 0, missä 0 a 0,a 1,...,a n,b 0,b 1,...,b m k 1 ja a n,b m > 0 ja n m, niin ensinnäkin voidaan päätellä, että n = m (eli että esityksen pituus on yksikäsitteinen). Jos olisi n>m, niin olisi myös 2 Tämän todistus on varsin hankala!
21 LUKU 3. KOKONAISLUVUT 17 b m k m + b m 1 k m b 1 k + b 0 (k 1)k m +(k 1)k m 1 + +(k 1)k + k 1 = k m+1 1 <k m+1 k n a n k n + a n 1 k n a 1 k + a 0, mikä on ristiriita. Siispä n = m. Samalla tavoin voidaan todeta, että a n = b n. Jos nimittäin vaikkapa a n >b n, niin b n k n + b n 1 k n b 1 k + b 0 (a n 1)k n +(k 1)k n 1 + +(k 1)k + k 1 = a n k n 1 <a n k n + a n 1 k n a 1 k + a 0, mikä on taas ristiriita. Edelleen voidaan samalla tavoin näyttää, että a n 1 = b n 1, jne. Eo. todistuksen menettely antaa nollan esitykseksi tyhjän jonon, yleensä kuitenkin sovitaan, että ko. esitys on 0. Esitys on usein tapana kirjoittaa sanaksi eikä jonoksi, ts. erotinta (pilkkua) ei käytetä. Konversio eri kantaesitysten välillä (ns. kantamuunnos eli radix-muunnos) on tietysti symbolisen analyysin perustehtäviä. Lause 3.5. Positiivisen kokonaisluvun xk-kantaisen esityksen pituus on missä log k on k-kantainen logaritmi 3. log k x +1= log k (x +1), Todistus. Jos x:n k-kantainen esitys on x = a n k n + a n 1 k n a 1 k + a 0,niin pituus on s = n +1. Ilmeisesti x k n ja toisaalta x (k 1)k n +(k 1)k n 1 + +(k 1)k + k 1=k n+1 1 <k n+1. Koska siis k s 1 x<k s, niin s 1 log k x<seli s = log k x +1. Toisaalta myös k s 1 <x+1 k s,joten s 1 < log k (x +1) s eli s = log k (x +1). 3.3 Suurin yhteinen tekijä ja pienin yhteinen jaettava Kokonaislukujen x ja y suurin yhteinen tekijä (s.y.t.) onsuurin kokonaisluku d, joka jakaa molemmat luvut, merkitään d = syt(x, y). S.y.t. on olemassa, jos ainakin toinen luvuista x ja y on 0. Huomaa, että s.y.t. on positiivinen. Jos syt(x, y) =1, sanotaan että luvuilla x ja y ei ole yhteisiä tekijöitä tai että ne ovat keskenään jaottomia. 3 Muistathan, että logaritmien kannan vaihto sujuu kaavalla log k x = ln x ln k.
22 LUKU 3. KOKONAISLUVUT 18 Lause 3.6. (Bezout n lause) Kokonaislukujen x ja y (joista ainakin toinen on 0) s.y.t. d voidaan kirjoittaa muotoon d = c 1 x + c 2 y (ns. Bezout n muoto), missä c 1 ja c 2 ovat kokonaislukuja (ns. Bezout n kertoimet). Lisäksi, jos x, y 0, voidaan olettaa, että c 1 y ja c 2 x. Todistus. Bezout n muodon samoin kuin s.y.t.:nkin antaa seuraava ns. (Yleistetty) Eukleideen algoritmi. Tässä oletetaan, että 0 x y, mikä ilmeisesti ei mitenkään rajoita tilannetta. Merkitään SYT(x, y) =(d, c 1,c 2 ). (Yleistetty) Eukleideen algoritmi: 1. Jos x =0, niin tulostetaan SYT(x, y) =(y, 0, 1) ja lopetetaan. 2. Jos x>0, niin jaetaan yx:llä: y = qx + r, missä 0 r<x. Ilmeisesti syt(x, y) = syt(x, r) (ajattele jaollisuuksia). Etsitään SYT(r, x) =(d, e 1,e 2 ). Silloin d = e 1 r + e 2 x = e 1 (y xq)+e 2 x =(e 2 e 1 q)x + e 1 y. Tulostetaan SYT(x, y) =(d, e 2 e 1 q, e 1 ) ja lopetetaan. Rekursio on päättyvä, koska min(r, x) < min(x, y), ts. aina kutsuttaessa SYT ko. minimiarvo pienenee ja on lopulta =0. Ilmeisesti juuri ennen kuin tullaan kohtaan 1. on y = qx ja r =0ja d = x, jolloin c 1 = 1 y ja c 2 =0 x. Toisaalta, jos y = qx + r ja d = e 1 r + e 2 x,missä e 1 x ja e 2 r, niin e 1 ja e 2 ovat erimerkkiset ja e 2 e 1 q = e 2 + e 1 q r + xq = y. Suoraan Bezout n lauseesta näkee seuraavan tuloksen: Seuraus. Jos kokonaisluku z jakaa kokonaisluvut x ja y (joista ainakin toinen on 0), niin se jakaa myös syt(x, y):n. Huomautus. Tästä johtuen syt(x, y) määritelläänkin usein siten, että se on x:n ja y:n yhteinen tekijä, joka on jaollinen kaikilla näiden lukujen yhteisillä tekijöillä. Tämä johtaa samaan s.y.t.:n käsitteeseen. Vm. määritelmä soveltuu kuitenkin myös tilanteeseen x = y =0ja antaa kaavan syt(0, 0) = 0. Toinen seuraus Bezout n lauseesta on lukujen tekijöihinjaon yksikäsitteisyys (ks. Lause 3.3). Lause 3.7. Kokonaisluvun x 0tekijöihinjako on yksikäsitteinen. Todistus. Asetetaan vastaoletus: On kokonaisluku x, jolla on (ainakin) kaksi eri tekijöihinjakoa. Voidaan olettaa, että x on positiivinen ja pienin sellainen positiivinen kokonaisluku, jolla on vastaoletuksessa mainittu ominaisuus. Ilmeisesti x 2 (sillä ykkösen ainoa tekijöihinjako on tyhjä tulo). Nyt x voidaan kirjoittaa tulomuotoihin x = p i 1 1 p i 2 2 p in n = q j 1 1 q j 2 2 q jm m, missä p 1,...,p n ovat eri alkulukuja ja samoin q 1,...,q m ovat eri alkulukuja ja i 1,...,i n,j 1,..., j m ovat positiivisia kokonaislukuja. Itse asiassa edelleen tiedetään, että myös alkuluvut p 1,...,
23 LUKU 3. KOKONAISLUVUT 19 p n eroavat alkuluvuista q 1,...,q m.jos nimittäin esimerkiksi p 1 = q 1, niin kokonaisluvulla x/p 1 olisi myös kaksi eri tekijöihinjakoa ja se on pienempi kuin x. Ilmeisesti syt(p 1,q 1 )=1, joten Bezout n muodossa 1=c 1 p 1 + c 2 q 1. Mutta tästä seuraa, että q j q j 2 2 qm jm = c 1 p 1 q j q j 2 2 qm jm + c 2 x, josta havaitaan, että p 1 jakaa tulon q j q j 2 2 qm jm, ts. q j q j 2 2 qm jm = p 1 z. Koska z:lla ja q j q j 2 2 qm jm :llä on yksikäsitteiset tekijöihinjaot (ne ovat pienempiä kuin x), seuraa tästä, että p 1 on jokin alkuluvuista q 1,...,q m,mikä on ristiriita. Vastaoletus on siis väärä. Esitettäessä rationaaliluku muodossa x/y, ontapana että syt(x, y) =1, ts. luku on supistetussa muodossa. Tämä on erityisen tärkeää symbolisessa analyysissä, jotta x ja y eivät pääsisi kasvamaan suuriksi. Supistettu muoto saadaan luonnollisesti jakamalla x ja y syt(x, y):llä, joten pitkissä laskuissa s.y.t. joudutaan etsimään toistuvasti. On tärkeää huomata, että Bezout n lauseessa mainittu kertoimia koskeva ehto on voimassa eo. Eukleideen algoritmin joka vaiheessa. Välitulokset eivät näin kasva suuriksi. Jotta toisaalta saataisiin mielikuva siitä miten monta askelta eo. Eukleideen algoritmi enintään ottaa, merkitään Y n :llä pienintä sellaista positiivista kokonaislukua y, että jollekin kokonaisluvulle 0 x<y n Eukleideen algoritmi tarvitsee n askelta. Ilmeisesti Y 0 =1, Y 1 =2ja Y 2 =3. Lause 3.8. (Lamén lause) Y n toteuttaa rekursiokaavan Y n = Y n 1 + Y n 2, ts. Y n on ns. n +1:s Fibonaccin luku 4 F n+1. Lisäksi nimenomaan syt(f n,f n+1 ):n laskeminen vaatii ne n askelta Eukleideen algoritmilla, kun n>0. Todistus. Laskettaessa syt(x, Y n ) Eukleideen algoritmilla tehdään jakolaskut y 0 = Y n = q 1 x + r 1,y 1 = x = q 2 r 1 + r 2,..., y n 3 = r n 4 = q n 2 r n 3 + r n 2, y n 2 = r n 3 = q n 1 r n 2 + r n 1,y n 1 = r n 2 = q n r n 1, joten y n 1 2,y n 2 y n 1 +1,y n 3 y n 2 + y n 1,... Siispä pienin y 0 eli Y n saadaan valitsemalla y n 1 =2,y n 2 = y n 1 +1,y n 3 = y n 2 + y n 1,..., jolloin y n j = F j+1 (j =1, 2,...,n)jaerityisesti Y n = y 0 = F n+1 ja x = y 1 = F n. Seuraus. Jos x ja y ovat kokonaislukuja ja 0 x<y, niin syt(x, y):n laskeminen Eukleideen algoritmilla vie enintään ln( / 5y) ln askelta. Todistus. Jos askelia tarvitaan n, niin y Y n = F n+1. Suoraan laskien voidaan todeta, että 4 Fibonaccin luvut F n (n =0, 1, 2,...)määritellään sopimalla ensin, että F 0 = F 1 =1ja jatkamalla määrittelyä rekursiokaavalla F n = F n 1 + F n 2 (n =2, 3,...), ks. Luku 9.
24 LUKU 3. KOKONAISLUVUT 20 F n = 1 ( ) n ( ) n (Ks. myös Pykälä ) Näytetään tätä käyttäen, että F n > 1 5 ( ) n (n 0). Koska ( ) n+1 < 2 5+1, riittää näyttää, että ( ) n+1 ( ) n eli että ( ) n ( ) Tämä on kuitenkin selvä, sillä = = ja > 1. Siispä 1 5 ( ) n+1 <F n+1 y, mistä otetaan puolittain logaritmit ja pohjat. Eukleideen algoritmin soveltaminen ei näin ole kovin työlästä, ln( 5y) on verrannollinen y:n pituuteen (Lause 3.5). Tarkemmin Eukleideen algoritmin laskennallista vaativuutta käsittelee esimerkiksi KNUTH. Useamman kuin kahden kokonaisluvun x 1,x 2,...,x N suurin yhteinen tekijä d = syt(x 1,x 2,...,x N ) määritellään samoin kuin kahdenkin eli se on suurin kokonaisluku, joka jakaa kaikki luvut x 1,x 2,...,x N. Jälleen vaaditaan, että ainakin yksi luvuista on 0,voidaan sopia, että x N 0. Tällainen s.y.t. voidaan laskea soveltamalla N 1 kertaa Eukleideen algoritmia: Lause 3.9. syt(x 1,x 2,...,x N )=syt(x 1, syt(x 2,...,x N )) ja lisäksi s.y.t. voidaan kirjoittaa Bezout n muodossa Todistus. Merkitään lyhyyden vuoksi = syt(x 1, syt(x 2, syt(x 3,...,syt(x N 1,x N ) ))) syt(x 1,x 2,...,x N )=c 1 x 1 + c 2 x c N x N. d = syt(x 1,x 2,...,x N ) ja d = syt(x 1, syt(x 2, syt(x 3,...,syt(x N 1,x N ) ))). Bezout n lauseen nojalla syt(x N 1,x N )=e 1 x N 1 + e 2 x N
25 LUKU 3. KOKONAISLUVUT 21 ja edelleen syt(x N 2, syt(x N 1,x N )) = e 3 x N 2 + e 4 syt(x N 1,x N )=e 3 x N 2 + e 4 e 1 x N 1 + e 4 e 2 x N, jne., eli lopulta nähdään, että d = c 1 x 1 + c 2 x c N x N. Tästä seuraa, että d d ja siis d d.toisaalta d jakaa x 1 :n ja s.y.t.:n syt(x 2, syt(x 3,...,syt(x N 1,x N ) )). Viimemainittu s.y.t. jakaa x 2 :n ja s.y.t.:n syt(x 3,...,syt(x N 1,x N ) ). Jne. Siispä d jakaa kaikki luvut x 1,x 2,...,x N ja näin ollen d d. Kaiken kaikkiaan päätellään, että d = d. Jos lukujen x 1,x 2,...,x N tekijöihinjaot ovat x i = ±p j i1 1 p j i2 2 p j im M (i =1, 2,...,N), missä sovitaan, että j ik =0, mikäli luku p k ei ole x i :n alkutekijä, niin ilmeisesti syt(x 1,x 2,...,x N )=p min{j 11,...,j N1 } 1 p min{j 12,...,j N2 } 2 p min{j 1M,...,j NM } M. Vaikeus tämän tuloksen käytössä on se, ettei tekijöihinjakoja yleisesti tunneta ja niiden etsiminen taas on tunnetusti hyvin työlästä. Kokonaislukujen x 1,x 2,...,x N pienin yhteinen jaettava (p.y.j.) onpienin positiivinen kokonaisluku, jonka kaikki luvut x 1,x 2,...,x N jakavat, merkitään pyj(x 1,x 2,...,x N ). Jotta p.y.j. olisi olemassa, pitää olla x 1,x 2,...,x N 0. Myös p.y.j. saadaan rekursiivisesti Eukleideen algoritmilla, sillä Lause pyj(x 1,x 2,...,x N )=pyj(x 1, pyj(x 2,...,x N )) =pyj(x 1, pyj(x 2, pyj(x 3,...,pyj(x N 1,x N ) ))) ja pyj(x 1,x 2 )= x 1x 2 syt(x 1,x 2 ). Todistus. Ajatellen edellä ollutta tekijöihinjakoa on ilmeisesti pyj(x 1,x 2,...,x N )=p max{j 11,...,j N1 } 1 p max{j 12,...,j N2 } 2 p max{j 1M,...,j NM } M. Lauseen ensimmäinen kaava seuraa tästä, sillä p k :n eksponentti pyj(x 1, pyj(x 2,...,x N )):ssä on max{j 1k, max{j 2k,...,j Nk }} ja toisaalta max{j 1k, max{j 2k,...,j Nk }} = max{j 1k,j 2k,...,j Nk } (k =1, 2,...,M). Samoin toinen kaava seuraa tekijöihinjaosta, sillä alkutekijän p k eksponentti x 1 x 2 :ssa on j 1k + j 2k ja toisaalta max{j 1k,j 2k } = j 1k + j 2k min{j 1k,j 2k }. Seuraus. (Bezout n lause) pyj(x 1,x 2,...,x N ) voidaan esittää lukujen x 1,x 2,...,x N harmonisena yhdelmänä, ts. 1 pyj(x 1,x 2,...,x N ) = c 1 + c c N (Bezout n muoto). x 1 x 2 x N Todistus. Jätetään lukijalle harjoitukseksi. Tavallinen tilanne, missä p.y.j. tulee esille, on etsittäessä rationaaliluvuille yhteenlaskua varten pienintä yhteistä nimittäjää.
26 LUKU 3. KOKONAISLUVUT Kongruenssilaskenta eli moduläärilaskenta Kongruenssilaskennan idea on, että lasketaan vain kokonaislukujen jakojäännöksillä käyttäen (yhtä tai useampaa) kiinteää jakajaa, ns. modulia m 2. Kongruenssilaskentaa kutsutaan usein myös moduläärilaskennaksi. Sanotaan, että kokonaisluvut x ja y ovat kongruentit modulo m, merkitään x y mod m, jos x y on jaollinen m:llä. Tämä luetaan myös x on kongruentti y:n kanssa modulo m tai vain x on y modulo m. x y mod m sanoo, että jaettaessa x ja y modulilla m:llä saadaan sama (jako)jäännös, ts. x ja y kuuluvat samaan (jako)jäännösluokkaan modulo m. Jokainen kokonaisluku kuuluu aina johonkin jäännösluokkaan modulo m ja vain yhteen sellaiseen. Lause (i) Jos x y mod m ja u v mod m, niin x + u y + v mod m. (ii) Jos x y mod m ja u v mod m, niinxu yv mod m. (iii) Jos x y mod m ja n on positiivinen kokonaisluku, niin x n y n mod m. Todistus. (i) Jos x y = km ja u v = lm, niin (x + u) (y + v) =(k + l)m. (ii) Jos x y = km ja u v = lm, niin xu yv =(x y)u +(u v)y =(ku + ly)m. (iii) Tämä seuraa (ii):sta. Näin ollen, jos ajatellaan jakojäännöksiä, voidaan laskea millä tahansa kokonaisluvuilla, joilla modulilla jaettaessa on kyseiset jakojäännökset, ja tulokset ovat samat, ts. edustajien valinnasta riippumattomat. Tietyt edustajajoukot, ns. jäännössysteemit, ovat kuitenkin usein esillä: positiivinen jäännössysteemi 0, 1,..., m 1; symmetrinen jäännössysteemi (parittomalle m:lle) m 1 2, m 3 2,..., 1, 0, 1,..., m 3 2 negatiivinen jäännössysteemi m +1,..., 1, 0., m 1 ; 2 Tavallisin on positiivinen jäännössysteemi. Yleisesti mitkä tahansa m kokonaislukua, joista mitkään eivät ole keskenään kongruentteja modulo m, muodostavat jäännössysteemin modulo m. Jakolasku ei yleisesti ole sallittua kongruensseissa, vaan vain seuraavassa mielessä: Lause xu yu mod m on sama kuin kuin x y mod m/syt(u, m), eli kongruenssista saa supistaa pois kokonaisluvun, mikäli samalla jakaa modulin sen ja supistettavan luvun s.y.t.:llä. Todistus. Lähdetään ensin liikkeelle siitä, että xu yu mod m eli että (x y)u = km. Merkitään d = syt(u, m) ja u = du 1 sekä m = dm 1. Silloin ilmeisesti syt(u 1,m 1 )=1ja m 1 = m/syt(u, m) ja vielä (x y)u 1 = km 1. Bezout n lauseen mukaan 1=c 1 u 1 + c 2 m 1, josta seuraa että x y = c 1 u 1 (x y)+c 2 m 1 (x y) =(c 1 k + c 2 (x y))m 1, ts. että x y mod m/syt(u, m). Lähdetään sitten liikkeelle siitä, että x y mod m/d eli että x y = km/d.tästä seuraa, että (x y)d = km ja edelleen että (x y)u = u 1 km. Siispä xu yu mod m.
27 LUKU 3. KOKONAISLUVUT 23 Erityisesti kokonaisluvun, jolla ei ole yhteisiä tekijöitä modulin kanssa, saa supistaa pois kongruenssista (moduliin koskematta). Seuraus. Jos syt(x, m) = 1, niin luvut y + kx (k = 0, 1,..., m 1) muodostavat jäännössysteemin modulo m, olipa y mikä tahansa kokonaisluku. Todistus. Lukuja on m kpl. Jos y + ix y + jx mod m,missä 0 i, j m 1, niin ix jx mod m ja Lauseen 3.12 nojalla i j mod m. Siis j i = km,mutta koska 0 i, j m 1, tämä on mahdollista vain kun k =0eli i = j. Luvut eivät siis ole kongruentteja keskenään. Samantapaisella tekniikalla nähdään välittömästi, että jos syt(x, m) =1, niin x:llä on inverssi modulo m, ts. on sellainen luku y, että xy 1 mod m. Tällöin kirjoitetaan myös x 1 y mod m tai 1/x y mod m. Tällainen inverssi saadaan Eukleideen algoritmilla, sillä Bezout n lauseen nojalla 1=c 1 x+c 2 m ja näin x 1 c 1 mod m. Hyvin usein moduli on alkuluku p. Tällöin muut kuin p:llä jaolliset kokonaisluvut voidaan aina supistaa pois kongruensseista modulo p ja niillä on myös inverssi modulo p. Myös potenssien laskenta helpottuu, sillä Lause (Fermat n pieni lause) Jos syt(x, p) =1ja p on alkuluku, niin x p 1 1 mod p. Todistus. Otetaan positiivinen jäännössysteemi 0, 1,..., p 1 sekä eo. Seurauksen antama jäännössysteemi 0,x,2x,...,(p 1)x. Nämä luvut ovat keskenään pareittain kongruentteja modulo p jossain järjestyksessä: 0 0 mod p, 1 k 1 x mod p, 2 k 2 x mod p,..., p 1 k p 1 x mod p. Siispä (Lause 3.11 kohta (ii)) 1 2 (p 1) k 1 k 2 k p 1 x p 1 mod p. Mutta k 1 k 2 k p 1 =1 2 (p 1) ja ilmeisesti syt(1 2 (p 1),p)=1, joten Lauseen 3.12 nojalla x p 1 1 mod p. Laskettaessa nyt x n modulo p, missä syt(x, p) =1ja n on suuri luku, jaetaan n ensin p 1:llä n = q(p 1) + r, 0 r<p 1, jolloin x n x q(p 1)+r (x p 1 ) q x r x r mod p. x r modulo p onkin sitten jo paljon helpompi laskea. Jos taas syt(x, p) 1, niin p x ja x n 0 mod p. Näin hyvinkin korkeiden potenssien lasku modulo alkuluku on rutiininomaista. Samalla tekniikalla saadaan myös x:n inverssi modulo p, sillä ilmeisesti x 1 x p 2 mod p. Jos modulin tekijöitä tunnetaan, ts. voidaan kirjoittaa m = m 1 m 2 m k, seuraa kongruenssista x y mod m luonnollisesti kongruenssit x y mod m i (i =1, 2,...,k). Jos moduli on suuri luku, voi usein olla helpompaa laskea käyttäen näitä pienempiä moduleja. Näin voidaan tehdä aivan yleisestikin, jos tekijät m 1,m 2,...,m k ovat pareittain keskenään jaottomia:
28 LUKU 3. KOKONAISLUVUT 24 Lause (Kiinalainen jäännöslause) Jos modulit m 1,m 2,...,m k ovat pareittain keskenään jaottomia, on täsmälleen yksi kokonaisluku x modulo m 1 m 2 m k, joka toteuttaa k kongruenssia x y i mod m i (i =1, 2,...,k). Todistus. Merkitään M = m 1 m 2 m k ja M i = M/m i (i = 1, 2,...,k), jolloin syt(m 1, M 2,...,M k )=1ja syt(m i,m i )=1(i =1, 2,...,k) (miksi?). Seuraava menetelmä tuottaa ratkaisun x (jos sellainen on!) ja näyttää myös, että ratkaisu on yksikäsitteinen modulo M: 1. Kirjoitetaan yleistettyä Eukleideen algoritmia käyttäen syt(m 1,M 2,...,M k )=1Bezout n muotoon 1=c 1 M 1 + c 2 M c k M k. 2. Tulostetaan x c 1 M 1 y 1 + c 2 M 2 y c k M k y k mod M. (Vaikkapa positiivisessa jäännössysteemissä.) Menettely toimii, jos ratkaisu on, sillä kongruensseista x y i mod m i seuraa suoraan, että c i M i x c i M i y i mod M (i =1, 2,...,k)japuolittain yhteenlaskien edelleen että x =1 x =(c 1 M 1 + c 2 M c k M k )x c 1 M 1 y 1 + c 2 M 2 y c k M k y k mod M. Vielä pitää vielä osoittaa, että ratkaisu on olemassa. Koska ilmeisestikin M i 0 mod m j, jos i j, jatoisaalta 1=c 1 M 1 + c 2 M c k M k, niin c i M i 1 mod m i (i =1, 2,...,k). Siispä x c 1 M 1 y 1 + c 2 M 2 y c k M k y k y i mod m i (i =1, 2,...,k). 3.5 Kertoma. Stirlingin approksimaatio n-kertoma n! =1 2 n on tuttu kokonaislukufunktio. Symbolisen laskennan ohjelmistoissa se yleensä tulostuu ja sillä lasketaan gammafunktion avulla. Peruskursseista tuttu gammafunktiohan Γ(x) = 0 t x 1 e t dt saa arvon Γ(x) =(x 1)!, jos x on positiivinen kokonaisluku (mikä nähdään x 1-kertaisella osittaisintegroinnilla). Ts. gammafunktio on kertoman jatkuva yleistys. Itse asiassa gammafunktio on määritelty kaikille arvoille x>0 (ja myös jatkettuna niille negatiivisille x:n arvoille, jotka eivät ole kokonaislukuja). Gammafunktiolle tunnetaan koko joukko (oleellisesti symbolisia) laskusääntöjä 5, joten ohjelmistot käyttävät mielellään näitä, myös kun käsitellään vain kertomaa. Tulos on toisinaan yllättävä. Alla Maple-ohjelmiston piirtämä gammafunktion Γ(x) kuvaaja välillä 4 x 4: 5 Ks. esimerkiksi ABRAMOWITZ &STEGUN.
29 LUKU 3. KOKONAISLUVUT y x Kertoma n! on hyvin nopeasti kasvava funktio. Toisaalta symbolisen laskennan ohjelmistot pystyvät käsittelemään hyvin suuria kokonaislukuja, joten kertomilla voidaan mainiosti laskea suurillekin n:n arvoilla. Kertoman suuruusluokan, enemmän tai vähemmän tarkasti, antavat erilaiset ns. Stirlingin approksimaatiot. Yksinkertaisin on Lause (Heikko Stirlingin kaava) n n e 1 n n! n n+1 e 1 n (n =1, 2,...) Todistus. Tapaus n =1on selvä, joten oletetaan, että n 2. Koska ln x on kasvava funktio, tiedetään integraalilaskennasta, että ln k k+1 ln xdx ln(k +1) (k =1, 2,...). k Lasketaan nämä kaksoisepäyhtälöt puolittain yhteen k:n arvoille k =1,...,n 1: n ln ln(n 1) ln xdx ln 2 + +lnn 1 eli ln((n 1)!) n ln xdx ln(n!) eli eli Sama asia toisin kirjoitettuna: ln((n 1)!) 1 1 n/ (x ln x x) ln(n!) ln((n 1)!) n ln n n +1 ln(n!). n ln n n +1 ln(n!) (n +1)lnn n +1. Itse kaava saadaan tästä eksponenttifunktiolla kuvaamalla (eksponenttifunktiohan on kasvava funktio).
30 LUKU 3. KOKONAISLUVUT 26 Arviointia terästämällä (ks. GRAHAM &KNUTH &PATASHNIK tai GREENE &KNUTH tai KNUTH) saadaan vahvempia Stirlingin approksimaatioita, esimerkiksi seuraavat: (1) 2πn n n e n+ 1 12n+0.6/n <n! < 2πn n n e n+ 1 12n (n =1, 2,...) (2) n! = 2πn n n θn n+ e 12n, missä 0 <θ n < 1 (n =1, 2,...) (3) n! = 2πn n n e n+ 1 12n 1 360n 3 +O(n 5 ) (4) n! = 2πn n n e n ( n n n n 4 + O(n 5 ) Tässä O(f(n)) tarkoittaa kollektiivisesti sellaista korjaustermiä φ n, että jostain rajasta n n 0 lähtien φ n Cf(n), missä C on vakio (ns. O-notaatio, vrt. sivu 7). Fermat n pienen lauseen nojalla saatiin helposti lasketuksi korkeatkin potenssit modulo alkuluku. Samantapainen tulos saadaan kertomalle (ja itse asiassa Fermat n pienen lauseen seurauksena!). Perustana on Lause (Wilsonin lause) Kokonaisluku p 2 on alkuluku tarkalleen silloin, kun (p 1)! 1 mod p. Todistus. Todistus siihen suuntaan, että jos p on alkuluku, niin esitetty kongruenssi pätee, vaatii polynomien juurirakenteen tuloksia. Se on esitetty sivun 50 alaviitteessä. Jos taas kongruenssi pätee, mutta p on yhdistetty luku, sanotaan p = ab, missä a, b 2, niin saadaan ristiriita. Silloin nimittäin (p 1)! =1 2 a (p 1) 0 mod a, mutta koska toisaalta myös (p 1)! 1 mod p ja siis myös mod a, olisi näin 0 1 mod a,mikä ei käy. Ilmeisesti n! 0 mod p, jos n p. Wilsonin lauseen avulla saadaan muita kertomaa koskevia kongruensseja. ) 3.6 Binomi- ja multinomikertoimet Yleisesti binomikerroin 6 määritellään seuraavasti: ( ) x x(x 1) (x k +1) =. k k! Tässä k on ei-negatiivinen kokonaisluku, mutta x saa olla mitä tahansa. (Kyllä vaan, kompleksiluku, funktio tai vaikkapa neliömatriisi!) Mikäli x on kokonaisluku, niin ( ) x! x ( ) k!(x k)! =, jos x k x k x = 0, jos 0 x<k k ( ) k (k 1 x)! k 1 x ( 1) ( 1 x)!k! =( 1)k, jos x<0. k 6 Luetaan x yli k:n. x on kertoimen osoittaja ja k sen nimittäjä. Lauseke x(x 1) (x k +1)muuten tunnetaan ns. Pochhammerin symbolina, merkitään x k. Ks. Pykälä 8.1.
31 LUKU 3. KOKONAISLUVUT 27 Siispä esimerkiksi ( ) 1 k =( 1) k. Symbolisen laskennan ohjelmistoissa käytetään vieläkin yleisempää määritelmää ( ) x Γ(x +1) = k Γ(k + 1)Γ(x k +1), joka toimii myös kun k ei ole kokonaisluku. Jos k on kokonaisluku, antavat määritelmät saman tuloksen. Tämä johtuu gammafunktion laskukaavasta Γ(y +1)=yΓ(y). Samalla laskukaavalla saadaan edelleen binomikerrointen peruskaava : ( ) ( ) ( ) x +1 x x Lause = + k +1 k k +1 Todistus. Suoraan laskien ( ) x +1 Γ(x +2) = k +1 Γ(k + 2)Γ(x k +1) = (x + 1)Γ(x +1) Γ(k + 2)Γ(x k +1) (k +1+x k)γ(x +1) = Γ(k + 2)Γ(x k +1) (k + 1)Γ(x +1) (x k)γ(x +1) = + Γ(k + 2)Γ(x k +1) Γ(k + 2)Γ(x k +1) Γ(x +1) = Γ(k + 1)Γ(x k +1) + Γ(x +1) Γ(k + 2)Γ(x k) ( ) ( ) x x = +. k k +1 ( ) x Seuraus. Jos x ja k 0 ovat kokonaislukuja, on sitä myös. k Todistus. Tapaus, jossa x on negatiivinen, palautuu tapaukseen, jossa x on ei-negatiivinen, joten katsotaan vain tapaus x 0. Peruskaavan nojalla palaudutaan lopulta muotoa ( ) n 0 =1 ja ( ) n n olevien binomikerrointen summaan, joka on kokonaisluku. Yo. todistuksesta saadaan tuttu Pascalin kolmio, jonka binomikertoimet muodostavat: =
32 LUKU 3. KOKONAISLUVUT 28 Toisinaan binomikerroin palautuu symbolisessa laskennassa ns. betafunktioon β(x, y), joka määritellään 7 kaavalla β(x, y) = Γ(x)Γ(y) Γ(x + y). Laskien voi todeta, että betafunktio ja binomikerroin liittyvät toisiinsa seuraavasti: ( ) x k = 1 (x k)β(x k, k +1). Tuttu paikka, jossa binomikertoimet tulevat vastaan, on binomikaava: (a + b) n = n i=0 ( ) n a i b n i. i Samantapainen kaava, ns. multinomikaava, saadaan myös jos yhteenlaskettavia on useampia kuin kaksi. Tätä varten tarvitaan multinomikerroin ( ) x x! = k 1,k 2,...,k m k 1!k 2! k m!, jossa k 1,k 2,...,k m ovat ei-negatiivisia kokonaislukuja ja x = k 1 + k k m. Lause (Multinomikaava) (a 1 +a 2 + +a m ) n = ( ) n i 1,i 2,...,i m i 1,i 2,...,i m 0 i 1 +i 2 + +i m=n a i 1 1 a i 2 2 a im m Todistus. Kaava pitää ilmeisesti paikkansa, kun m =1, sillä multinomikerroin on silloin =1, ja tietysti myös, kun m =2(binomikaava). Riittääkin näyttää, että jos kaava pitää paikkansa m:n arvolla m = l 1, niin se pitää myös paikkansa yhtä isommalla m:n arvolla m = l. Jos kaava on oikea arvolla m = l 1, niin n ( ) n (a 1 + a a l ) n =(a 1 +(a a l )) n = a i 1 1 (a a l ) n i 1 = n ( ) n a i 1 1 i 1 =0 = i 1 i 1,i 2,...,i l 0 i 1 +i 2 + +i l =n i 2,...,i l 0 i 2 + +i l =n i 1 ( n i 1,i 2,...,i l i 1 =0 ( n i1 i 2,...,i l i 1 ) a i 1 1 a i 2 2 a i l l. ) a i 2 2 a i l l Näin ollen, jos kaava on oikea arvoilla m =1, 2, niin se on oikea myös arvolle m =3(trinomikaava), ja arvolle m =4, jne. 7 Jos x, y > 0,voidaan betafunktio määritellä myös integraalina β(x, y) = 1 0 t x 1 (1 t) y 1 dt. Tämä näytetään kirjoittamalla yhtälö β(x, y)γ(x + y) =Γ(x)Γ(y) kaksinkertaisten integraalien avulla.
33 LUKU 3. KOKONAISLUVUT 29 Avattaessa potenssi (a + b) n binomikaavalla saadaan n +1yhteenlaskettavaa. Avattaessa potenssi (a 1 + a a m ) n multinomikaavalla saadaan yhtä monta yhteenlaskettavaa kuin on n alkion toistokombinaatioita m:stä eri alkiosta eli tunnetusti ( ) m + n 1 = n (m + n 1)(m + n 2) (m +1)m n! Tämä luku voi olla suurikin, jos m on suuri, jolloin voi olla syytä välttää avaamasta eksplisiittisesti multinomilausekkeita. 3.7 (Suurten) kokonaislukujen algoritmeja Alkulukutestaus Positiivisen kokonaisluvun n 2 alkulukutestaukseen on nopeita algoritmeja. Yksinkertainen (mutta hidas) tapa on testata jakaako jokin kokonaisluvuista 2, 3,..., n luvun n.tämä voidaan tehdä ns. Eratostheneen seulan muodossa: Eratostheneen seula: 1. Asetetaan J [2, 3,...,n] (lista) sekä k Jos k 2 >n, n on alkuluku ja lopetetaan. 3. Jos n ei ole listalla J, n on yhdistetty luku ja lopetetaan. 4. Jos k 2 n ja n on listalla J, muodostetaan uusi lista J korvaamalla listalla J k:sta lähtien joka k:s termi (ts. k:lla jaolliset luvut) poistomerkillä.(vaihtoehtoisesti voitaisiin poistaa listalta kaikki k:lla jaolliset luvut.) Asetetaan J J sekä k k +1ja mennään kohtaan 2. Tämä yksinkertainen jo antiikin kreikkalaisten tuntema seulamenetelmä voidaan yleistää tavattoman paljon tehokkaammiksi seulamenetelmiksi (ks. esimerkiksi RIESEL tai VON ZUR GAT- HEN &GERHARD tai CRANDALL &POMERANCE). Huomaa, että jos n on yhdistetty luku, tuottaa Eratostheneen seula sen pienimmän alkutekijän p. Ajamalla seula uudelleen luvulle n/p, saadaan uusi alkutekijä, ja tätä toistamalla lopulta luvun n tekijöihinjako. Eräät alkulukutestit ovat probabilistisia, ts. ne tuottavat (oikean) tuloksen vain tietyllä suurella todennäköisyydellä. Tällainen testi on esimerkiksi ns. Miller Rabin-testi 8.Testi perustuu Fermat n pieneen lauseeseen. Sen mukaisesti, jos p on alkuluku ja x on sellainen kokonaisluku, että syt(x, p) =1, niin x p 1 1 mod p. Kirjoitetaan p muotoon p =1+2 l m, missä m on pariton. Jos p on pariton, niin l 1 ja kpl. 0 x p 1 1=x 2lm 1=(x 2l 1m 1)(x 2l 1m +1) modp ja koska p on alkuluku se jakaa joko x 2l 1m 1:n tai x 2l 1m +1:n. Jos p jakaa x 2l 1m 1:n, niin sama operaatio voidaan toistaa. Jne. Tästä päätellään, että joko jollekin luvulle i =0, 1,..., l 1 x 2im 1 mod p 8 Alkuperäisviitteet ovat MILLER, G.L.: Riemann s Hypothesis and Tests for Primality. Journal of Computer and System Sciences 13 (1976), sekä RABIN, M.O.: Probability Algorithms. Algorithms and Complexity (J.F. Traub, toim.). Academic Press (1976),
34 LUKU 3. KOKONAISLUVUT 30 tai sitten, ellei näin ole, lopulta x m 1 mod p. Jos nyt jollekin sellaiselle kokonaisluvulle x, että syt(x, p) =1ja x m ±1 mod p, onkin kaikille luvuille i =1, 2,..., l 1 x 2im 1 mod p, niin voidaan vain päätellä, että p ei olekaan alkuluku. (Samoin, kun kohdataan sellainen i > 0, että x 2im ±1 mod p.) Toisaalta, kun kokeillaan useita lukuja, esimerkiksi tiettyä määrää pieniä alkulukuja x =2, 3, 5, 7, 11,..., saadaan tietynlainen todiste sille, että p on alkuluku. Itse asiassa tämä todiste voidaan saada erittäin varmaksi käyttämällä kyllin monta hyvin valittua lukua x. (Myös todennäköisyysmielessä, ajatellen luvun x satunnaista valintaa.) Seuraavassa oletetaan, että käytössä ovat testiluvut x 1,x 2,...,x N (annetut tai satunnaiset). Miller Rabin-alkulukutesti: 1. Jos p on parillinen, on asia helppo ja lopetetaan. 2. Jos p on pariton, asetetaan l 0 ja m p Asetetaan l l +1ja m m/2. 4. Jos m on parillinen, mennään kohtaan Asetetaan j Jos j<n, asetetaan j j +1ja x x j. Muutoin tulostetaan ALKULUKU (arveltu tieto) ja lopetetaan. 7. Jos x m 1 mod p tai syt(x, p) 1, niin mennään kohtaan 6. Jos taas 1 < syt(x, n) <n,tulostetaan YHDISTETTY LUKU (varma tieto) ja lopetetaan. 8. Asetetaan i l Jos x 2im ±1 mod p, tulostetaan YHDISTETTY LUKU (varma tieto) ja lopetetaan. 10. Jos x 2im 1 mod p,mennään kohtaan Asetetaan i i 1 ja mennään kohtaan 9. Huomautus. Tämä on top-down -versio testistä. Siitä on myös bottom-up -versio, jossa i kasvaa (ks. esimerkiksi moniste RUOHONEN, K.: Kryptologia). Näillä ei liene suurta eroa nopeudessa. Testi ei siis ole vuoren varma. Sellaisia yhdistettyjä lukuja, joita testi arvelee alkuluvuiksi, kutsutaan vahvoiksi valealkuluvuiksi testilukujen x 1,x 2,...,x N suhteen. Esimerkiksi = on vahva valealkuluku testilukujen 3 ja 5 suhteen. Alkulukutestien aatelia ovat Adleman Pomerance Rumely-testi 9 ja sen seurannaiset. Testi pohjautuu varsin pitkälle menevään lukuteoriaan ja on nopea, luvun n alkulukutestaus vie sillä enintään O((ln n) c ln(ln(ln n)) ) askelta, missä c on (pieni) vakio. Toisaalta, sekä teoreettisesti että implementointia ajatellen, se on vaikea käsiteltävä. 9 Alkuperäisviite on ADLEMAN, L.&POMERANCE, C.&RUMELY, R.: On Distinguishing Prime Numbers from Composite Numbers. Annals of Mathematics 117 (1983), Ks. myös CRANDALL &POMERANCE.
35 LUKU 3. KOKONAISLUVUT 31 Viime aikojen suuria lukuteorian tuloksia on se, että alkulukujen tunnistus on polynomiaikainen. Tämän todistivat intialaiset Manindra Agrawal, Neeraj Kayal ja Nitin Saxena v käsikirjoituksessaan PRIMES is in P. Algoritmin todistettu kompleksisuus on O((ln n) 8 ),mutta heuristisesti sille saadaan kompleksisuus O((ln n) 6 ).Kovin nopeita implementointeja ei kuitenkaan toistaiseksi ole, vaikka algoritmi on varsin lyhyt esittää. Tekijöihinjako Kokonaislukujen tekijöihinjako on tuntuvasti työläämpi kuin alkulukutestaus. Eo. Eratostheneen seula käy myös tekijöihinjakoon, mutta on hidas. Toisaalta luvun n tekijöihinjakoon kehitetyt parhaat algoritmitkin vievät tyypillisesti ( ) O n c ln(ln n) ln n askelta, missä c on (pieni) vakio. Ks. esimerkiksi RIESEL tai CRANDALL &POMERANCE. Esimerkkinä hiukan Eratostheneen seulaa nopeammasta menetelmästä otetaan Pollardin ρ-menetelmä. Pollardin ρ-menetelmä: 1. Valitaan kokonaisluku x 0 satunnaisesti väliltä 0,...,n 1 ja asetetaan y 0 x 0 sekä i Asetetaan i i +1ja x i x 2 i 1 +1 modn sekä y i (y 2 i 1 +1) 2 +1 modn ja lasketaan d = syt(x i y i,n). Tässä käytetään positiivisen jäännössysteemin lukuja. Huomaa, että y i x 2i mod n. 3. Jos d =1, mennään kohtaan Jos taas 1 <d<n, tulostetaan ei-triviaali tekijä d ja lopetetaan. 5. Jos d = n (eli x i = y i ), lopetetaan ilman tulosta. Luonnollisesti iteraatioiden lukumäärälle (eli laskurille i) pitää asettaa jokin yläraja. Menettely perustuu siihen, että kohdan 2. rekursiiviset kaavat kuljettavat x i :tä ja y i :tä satunnaisesti ja toisistaan riippumattomasti jäännösluokkien joukossa. Jos n on yhdistetty luku, sillä on alkutekijä p ja x i y i mod n,niin myös x i y i mod p ja p d. Ks. esimerkiksi VON ZUR GATHEN & GERHARD. Yhteen- ja vähennyslasku Tavallinen koulussa opittu yhteenlasku sekä vähennyslasku ovat sellaisenaankin sopivia myös ohjelmoitaviksi. Kertolasku Tavallinen koulussa opittu kertolasku on sopiva tietokoneellekin, mutta se ei ole likellekään nopein mahdollinen. Lukujen n ja m kertolasku vaatii tällä tavoin noin O(lnn ln m) askelta, mikä voi olla paljon.
36 LUKU 3. KOKONAISLUVUT 32 Karatsuban algoritmi on nopeampi kuin perinteinen algoritmi. Algoritmi on eräänlainen hajoita ja hallitse -menetelmä. Lukujen n ja m kertomiseksi (desimaaliesityksessä) kirjoitetaan ne ensin muotoon n = a10 k + b ja m = c10 k + d, missä a, b, c, d < 10 k ja lukujen maksimipituus on 2k tai 2k 1. Toinen luvuista a ja c voi olla nolla, mutta eivät molemmat. (Ts. kirjoitetaan ainakin toinen luvuista 10 k -kantaisessa esityksessä.) Silloin nm =(a10 k + b)(c10 k + d) =y10 2k +(x y z)10 k + z, missä x =(a + b)(c + d), y = ac ja z = bd, ts. tarvitaankin vain kolme erillistä pitkää kokonaislukujen kertolaskua (eikä neljä kuten äkkinäisempi luulisi). Kun nämä kolme kertolaskua (a + b)(c + d), ac ja bd edelleen suoritetaan samalla tavoin jakamalla kertolaskut kolmeen lyhyempään kertolaskuun, jne., jolloin lopulta päädytään kertotaulun käyttöön, saadaan varsinainen Karatsuban algoritmi (merkitään TULO(n, m) =nm): Karatsuban algoritmi: 1. Jos n, m < 10, katsotaan TULO(n, m) taulukosta ja lopetetaan. 2. Jos n 10 tai m 10, kirjoitetaan n ja m muotoon n = a10 k + b ja m = c10 k + d, missä a, b, c, d < 10 k. (Desimaaliesityksessä tämä on helppoa.) 3. Lasketaan TULO(a + b, c + d), TULO(a, c) ja TULO(b, d) ja tulostetaan (helposti saatava) TULO(n, m) =10 2k TULO(a, c)+10 k (TULO(a + b, c + d) TULO(a, c) TULO(b, d)) + TULO(b, d). Menettely pysähtyy, sillä kerrottavien lukujen maksimipituus pienenee noin puoleen joka kierroksella. Jos kerrotaan Karatsuban algoritmilla kaksi N-pituista lukua ja merkitään K(N):llä tarvittavien numeraaleja 0, 1,...,9 koskevien peruslaskutoimitusten enimmäismäärää, niin ilmeisestikin saadaan K(N):lle seuraava rekursiokaava { αn +3K(N/2), jos N on parillinen K(N) =, K(1) =1, αn +3K((N +1)/2), jos N on pariton missä kerroin α saadaan tarvittavien yhteen- ja vähennyslaskujen määrästä (käytetystä algoritmista riippuen). Tietyn arvion tarvittavien perusoperaatioiden määrästä antaa Lause Jos N =2 l, niin K(N) =(2α + 1)3 l α2 l+1 =(2α +1)N log 2 3 2αN. Todistus. Ilmeisesti arvo on oikea, kun N =1. Jos arvo pätee, kun N =2 l,sepätee myös kun N =2 l+1, sillä K(2 l+1 )=α2 l+1 +3K(2 l )=α2 l+1 + 3(2α + 1)3 l 3α2 l+1 =(2α + 1)3 l+1 α2 l+2. (Tässä esiintyvä rekursiokaava on K(N) =αn +3K(N/2), K(1) =1, jonkalaisia symbolisen laskennan ohjelmistotkin pystyvät ratkaisemaan. Ks. Pykälä 9.2.)
37 LUKU 3. KOKONAISLUVUT 33 Luonnollisesti lauseesta suurelle pituudelle N saatava perusoperaatioiden enimmäismäärä (2α +1)N log 2 3 2αN on tuntuvasti pienempi kuin O(N 2 ). Esimerkiksi jos N = , niin N 2 /N log Karatsuban menetelmästä on vieläkin nopeampia versioita, joissa kertolasku jaetaan useampaan kuin kahteen osaan, ks. esimerkiksi MIGNOTTE. Nopeimmat kertolaskualgoritmit perustuvat ns. nopean Fourier n muunnoksen (FFT) käyttöön, ks. esimerkiksi LIPSON tai CRANDALL & POMERANCE. Tällöin perusoperaatioiden lukumäärä on O(N ln N ln(ln N)). (Ks. myös kurssi Fourier n menetelmät tai Laaja Fourieranalyysi.) Jakolasku Tavanomainen koulussa opetettu ns. pitkäjako on siirrettävissä tietokoneelle, tosin siinä oleva arvausvaihe on jonkin verran hankala toteuttaa tehokkaasti, ks. KNUTH. Perusoperaatioiden lukumäärä on O(N 2 ), missä on N on jaettavan pituus. Peruskursseilta tuttuun Newtonin menetelmään pohjautuva jakolasku on varsin tehokas. Merkitään jaettavan n pituutta N:llä ja jakajan m pituutta M:llä. Koska tapaukset N < M ja N = M ovat helppoja, oletetaan, että N>M. Funktion f(x) =m 1/x nollakohdan eli 1/m:n etsimiseksi saadaan Newton-iteraatio x i+1 = x i f(x i) f (x i ) =2x i mx 2 i. Käytännössä, jotta voitaisiin käyttää kokonaislukujen kertolaskua, lasketaankin 10 M /m, jolle saadaan vastaavasti Newton-iteraatio y i+1 =2y i m 10 M y2 i. Merkitään 10 M m = y i + ɛ i, missä ɛ i on virhe. Tarkoitus on saada laskettua n/m 1:n tarkkuudella, jolloin ottamalla pohja saadaan osamäärä tai osamäärä ± 1,mistä helpolla korjauksella saadaan oikea osamäärä ja siitä sitten jakojäännös. Näin ollen pitää olla n m n 10 y M i = n 10 ɛ i < 1 M eli ɛ i < 10M n. Toisaalta 10 M /n > 10 M N, joten asetetaankin vaatimukseksi ɛ i 10 M N. Newtonin menetelmät ovat kvadraattisia, ts. ne kaksinkertaistavat oikeiden numeroiden määrän joka askeleella, niin tässäkin: ɛ i+1 = 10M m = 10M m 2 y i+1 = 10M m 2y i + m 10 M y2 i ( ) 10 M m ɛ i + m ( 10 M 10 M m ) 2 ɛ i = m 10 M ɛ2 i <ɛ 2 i.
38 LUKU 3. KOKONAISLUVUT 34 Toistamalla tätä saadaan arvio ɛ i < ɛ 0 2i ja, koska tavoite oli ɛ i 10 M N,vaaditaan, että ɛ 0 2i 10 M N eli M N i log 2. log 10 ɛ 0 Jotta tämä toimisi, on ilmeisesti oltava ɛ 0 < 1. Valitsemalla 10 M 10 M y 0 = tai y 0 =, m m kumpi nyt sitten on lähempänä, voidaan olettaa, että ɛ 0 1/2. Näin ollen riittää valita iteraatioiden lukumääräksi M N log 2 = log log 10 1/2 2 (N M) log 2 (log 10 2). Huomaa, että virhe ɛ i on ei-negatiivinen, kun i 1, ts. iteraatio tuottaa liian pieniä arvoja, mutta ei liian suuria. Lopputuloksena saatu osamäärä voi siis olla 1:llä liian pieni, mutta ei liian suuri. Jakolasku Newtonin menetelmällä: 1. Asetetaan N jaettavan n pituus ja M jakajan m pituus. 2. Jos N<Mtulostetaan osamäärä q =0ja ja jakojäännös r = n ja lopetetaan. 3. Jos N = M, lasketaan osamäärä q. Tämä on helppoa, sillä nyt 0 q 9. (Vaikka kokeilemalla, ellei muuten.) Tulostetaan q ja jakojäännös r = n qm ja lopetetaan. 4. Jos N > M,lasketaan 10 M /m. Jälleen tämä on helppoa, sillä 1 10 M /m 10. (Kokeilemalla tai muuten.) Asetetaan I log 2 (N M) log 2 (log 10 2). 5. Jos 10 M /m 10 M /m 1/2 eli 2 10 M 2m 10 M /m m asetetaan y 0 10 M /m. Muuten asetetaan y 0 10 M /m Toistetaan I kertaa rekursiokaavaa y i+1 = 1 10 M y i(2 10 M my i ) lähtien arvosta y 0. Huomaa, että koska jaetaan vain 10 M :llä, mikä on helppoa desimaaliluvuille, tarvitaan vain kokonaislukujen kertolasku, halutun tarkkuuden puitteissa. Riittää käyttää N desimaalia. 7. Testataan kertolaskulla kumpi luvuista n n 10 y M i vai 10 y M i +1 on oikea osamäärä q.tulostetaan q ja jakojäännös r = n qm ja lopetetaan. Myös Karatsuban algoritmin tapainen jakolaskualgoritmi on mahdollinen ja varsin nopea (ks. esimerkiksi MIGNOTTE tai moniste RUOHONEN, K.: Kryptologia).
39 LUKU 3. KOKONAISLUVUT 35 Potenssiin korotus Luvun a potenssiin korotus a n peräkkäisillä kertomisilla on liian aikaaviepää, sillä siihen tarvitaan n 1 kertolaskua, kun itse asiassa enintään 2 log 2 n kertolaskuakin riittää: Venäläisten talonpoikien menetelmä: 1. Jos n =0,tulostetaan potenssi 1 ja lopetetaan. 2. Jos n<0,asetetaan a a 1 sekä n n. 3. Jos n 1, muodostetaan n:n binääriesitys b j b j 1 b 0, missä j = log 2 n (n:n pituus binäärilukuna miinus yksi, ks. Lause 3.5). 4. Asetetaan i 0 sekä x 1 ja y a. 5. Jos i = j, niin tulostetaan potenssi xy ja lopetetaan. 6. Jos i<jja 6.1 b i =0, niin asetetaan i i +1sekä y y 2 ja mennään kohtaan b i =1, niin asetetaan x xy ja y y 2 sekä i i +1ja mennään kohtaan 5. Algoritmin toimivuus seuraa välittömästi binääriesityksestä: ja n = b j 2 j + b j 1 2 j b 1 2+b 0 a n = a b j2 j a b j 12 j 1 a b 12 a b 0. Käytännössä lienee mukavaa laskea n:n binääriesitystä sitä mukaa, kun sitä tarvitaan, eikä kerralla alussa. Itse asiassa tämä menettely toimii kaikenlaisille potensseille ja myös silloin kun kertolasku ei ole vaihdannainen, siis esimerkiksi polynomien tai matriisien potenssiinkorotuksessa. Laskettaessa potensseja modulo m pitää tulot tietysti redusoida koko ajan positiiviseen jäännössysteemiin modulo m, jotteivat välitulokset kasvaisi suuriksi. Näin voidaan laskea hyvinkin korkeita moduläärisiä potensseja. Nimi muuten tulee siitä, että venäläiset talonpojat käyttivät helmitaululla laskiessaan tätä menetelmää kertolaskuun, onhan a n tulkittavissa a:n n:nneksi potenssiksi yhteenlaskun suhteen. Algoritmi on ilmeisesti hyvin vanha. Satunnaisluvun generointi Satunnaisbittijonoja generoidaan yleisesti käyttäen p:nnen kertaluvun siirtorekisteriä 10 modulo 2: r i a 1 r i 1 + a 2 r i a p r i p mod 2, missä a 1,a 2,...,a p ovat vakiobittejä (0 tai 1, a p = 1). Aluksi tarvitaan tietysti siemenbitit r 0,r 1,...,r p 1. (Tässä lasketaan koko ajan positiivisessa jäännössysteemissä modulo 2 eli biteillä.) Saatava jono r p,r p+1,... ei tietenkään oikeasti ole mitenkään satunnainen, saadaanhan 10 Klassinen viite on GOLOMB, S.W.: Shift Register Sequences. Aegean Park Press (1982)
40 LUKU 3. KOKONAISLUVUT 36 se täysin deterministisellä menettelyllä ja on periodinen (periodin pituus enintään 2 p ). Kun valitaan kertoimet a 1,a 2,...,a p 1 sopivasti saadaan jono kuitenkin käyttäytymään monessa mielessä satunnaisesti, periodi on pitkä jne., ks. esimerkiksi KNUTH. Yksinkertaisimmillaan melkein kaikki kertoimet ovat nollia. Tyyppiä r i r i q + r i p mod 2 olevat siirtorekisterit, missä p on alkuluku ja q valitaan sopivasti, tuottavat usein varsin hyviä satunnaisia bittejä. Seuraavassa taulussa on listattuna eräitä valintoja, missä luku q voidaan korvata myös luvulla p q: p q (myös p q käy) p q (myös p q käy) , , 915, , , , 369, 370, 649, 1393, 1419, , 5, , 471, 1836, 2444, , 6, 7, , 7083, , 6619, , 7, 15, 30, , , 48, 158, , , 147, , 33912, 41469, 52549, Nämä arvot on löydetty tietokone-etsinnällä. 11 Pienet p:n arvot eivät tietenkään ole kovin käyttökelpoisia. Matriisimuodossa siirtorekisteri on seuraavanlainen. Merkitään r i = r i+p 1 r i+p 2. r i ja A = a 1 a 2 a p 1 a p A on ns. siirtorekisterin oheismatriisi. (Ks. Pykälä ) Silloin r i+1 Ar i mod 2 ja näin ollen r i A i r 0 mod 2 (i =0, 1,...). Matriisipotenssi A i voidaan laskea nopeasti modulo 2 käyttäen venäläisten talonpoikien algoritmia. Niinpä ehkä vähän yllättäen voidaan varsin nopeasti laskea jonoa r p,r p+1,... etukäteen hyvinkin pitkälle. Satunnaisbittijonosta saadaan binääriesityksen kautta satunnaislukuja. Binääriesityksessään n-pituisia satunnaislukuja s 0,s 1,... saadaan jakamalla jono peräkkäisiin n bitin lohkoihin ja tulkitsemalla lohkot binääriluvuiksi. Matriisiesityksessä lasketaan A n modulo 2 etukäteen, generoidaan jono t j (A n ) j r 0 mod 2 (j =0, 1,...) 11 Artikkeliviitteet ovat ZIERLER, N.: On Primitive Trinomials Whose Degree is a Mersenne Exponent. Information and Control 15 (1969), ja HERINGA, J.R. & BLÖTE, H.W.J. & COMPAGNER, A.: New Primitive Trinomials of Mersenne-Exponent Degrees for Random Number Generation. International Journal of Modern Physics C3 (1992),
41 LUKU 3. KOKONAISLUVUT 37 ja (olettaen, että p n)lasketaan s j =(2 n 1, 2 n 2,...,2, 1, 0,...,0)t j (j =0, 1,...), missä nollia on lisätty vaakavektoriin p n kpl. Todettakoon, että vaativiin käyttötarkoituksiin, esimerkiksi kryptologiassa, siirtorekisteripohjaiset satunnaislukugeneraattorit ovat liian heikkoja (liian hyvin ennustettavissa), ks. kurssi Kryptologia.
42 Luku 4 ALGEBRAA 4.1 Yleistä Symbolisen laskennan yleinen valmistulkinta on lausekkeiden tulkinta johonkin algebralliseen rakenteeseen liittyväksi, usein tavalla tai toisella polynomiksi. Algebrallisina operaatioina ovat yhteen-, vähennys-, kerto- ja jakolasku, mutta sovellettuina moniin erityyppisiin alkioihin, esimerkiksi kokonais- tai rationaalilukuihin, jäännösluokkiin, polynomeihin, matriiseihin, vektoreihin, funktioihin, potenssisarjoihin, jne. Yhteistä näille on tiettyjen peruslaskusääntöjen käyttö, mutta toisaalta erojakin on, esimerkiksi matriisikertolasku ei ole vaihdannainen, jäännösluokilla ei aina voi jakaa, jne. Erot johtavat siihen, että algebrallisia rakenteita on (käytössäkin) suuri määrä, joista osaan tutustutaan kursseilla Algebra 1&2, Finite Fields, Koodausteoria ja Kryptologia. Symbolisessa laskennassa toisaalta tarvitaan käytäntöä ajatellen enimmäkseen rakenteita, jotka tavalla tai toisella pohjautuvat reaali- tai kompleksilukuihin. Tällaisia ovat erilaiset lukurenkaat ja -kunnat, polynomi- ja potenssisarjarenkaat, rationaalifunktioiden kunnat, funktiokunnat, yms. Algebrallisista struktuureista päästään toisiin erinäisillä muokkausoperaatioilla: Rakennetta voidaan karkeistaa samaistamalla samoin käyttäytyviä alkioita (tekijärenkaat). Rakenteesta voidaan ottaa vain osa unohtamalla muut alkiot (alirenkaat ja -kunnat). Rakennetta voidaan laajentaa ottamalla mukaan uusia alkioita (rengas- ja kuntalajennukset, murtokunnat, polynomirenkaat, rationaalifunktioiden kunnat, formaalisten potenssisarjojen renkaat). 4.2 Renkaat ja kunnat Joukko R varustettuna binäärisillä laskuoperaatioilla + ja (joita kutsutaan yhteen- ja kertolaskuksi) on ns. rengas, jos seuraavat laskulait pitävät paikkansa: 1. + on liitännäinen, ts. aina a +(b + c) =(a + b)+c. 2. on liitännäinen, ts. aina a (b c) =(a b) c on vaihdannainen, ts. aina a + b = b + a. 4. Vasen osittelulaki pätee, ts. aina a (b + c) =(a b)+(a c). 5. Oikea osittelulaki pätee, ts. aina (a + b) c =(a c)+(b c). 6. Joukossa R on ns. nolla-alkio eli nolla 0, jolle pätee a +0=a. 7. Jokaisella joukon R alkiolla a on ns. vasta-alkio a, jolle pätee a +( a) =0. 38
43 LUKU 4. ALGEBRAA 39 Huomaa, että kertolaskulta ei tässä vaadita vaihdannaisuutta. Jos kertolaskukin on vaihdannainen, ts. aina a b = b a, niin kyseessä on ns. vaihdannainen rengas (eli kommutatiivinen rengas). Tavalliseen tapaan merkitään tuloa a b myös ab:llä ja sulkumerkkien vähentämiseksi sovitaan, että kertolasku suoritetaan ennen yhteenlaskua. Koska yhteen- ja kertolasku ovat (yhteis)liitännäisiä, jätetään peräkkäisistä operoinneista sulut pois (ks. Pykälä 1.2). Operaation + potenssia eli ns. monikertaa merkitään tavalliseen tapaan kokonaisluvulla kertomisella, ts. jos k on kokonaisluku, niin a, jos k =1 0, jos k =0 } a + + {{ a }, jos k>1 ka = k kpl a,josk = 1 ( a)+ +( a),josk< 1. }{{} k kpl Samoin määritellään operaation potenssi: a, jos k =1 a k = a a }{{},josk>1. k kpl Vähennyslasku määritellään myös tavalliseen tapaan, ts. merkitään a b = a +( b). Tällöin merkitään tavalliseen tapaan esimerkiksi (ab) = ab, jne. Nolla-alkioita voi olla vain yksi. Jos nimittäin niitä olisi kaksi, merkitään 0 ja 0, niin 0=0+0 =0 + 0=0, eli ne ovatkin samat. Vasta-alkiokin on aina yksikäsitteinen. Jos a:lla olisi kaksi vasta-alkiota a ja a, niin a =( a)+0=( a)+a +( a) =0+( a) = a. Peruslaskusääntöjä käyttäen saadaan lisää sääntöjä, esimerkiksi (totea!) ab = (ab) =( a)b = a( b) ja a 0=0 a =0. Huomaa edelleen, että kertolaskulle ei vaadita ykkösalkiota. Jos tällainen ykkösalkio 1 on, ts. aina 1 a = a 1=a, niin sanotaan renkaan olevan ns. ykkösrengas (eli 1-rengas). Potenssimerkintää ajatellen sovitaan tällöin, että a 0 =1. Yleensä (niin tässäkin) oletetaan, että 0 1 (muutoinhan rengas on harvinaisen yksinkertainen, eikö vain). On aivan mahdollista, että renkaassa ab = 0, vaikka a, b 0. Tällaisia alkioita a ja b kutsutaan nollanjakajiksi. Nollanjakajien olemassolo tietää sitä, ettei renkaassa yhtälöistä saa aina supistaa tekijöitä puolittain pois. Itsestään yhtälöstä ab = 0 = 0 b = a 0 ei saa supistaa pois a:ta eikä b:tä, jos a ja b ovat nollanjakajia. Jos vaihdannaisessa 1-renkaassa ei ole nollanjakajia, sitä sanotaan kokonaisalueeksi. Jos 1-renkaassa ab =1, niin alkioita a ja b kutsutaan yksiköiksi. (Itse asiassa tällöin a on b:n vasen ja b on a:n oikea käänteisalkio.)
44 LUKU 4. ALGEBRAA 40 Vaikka renkaassa olisi ykkösalkiokin, ei vaadita, että nollasta eroavilla alkioilla olisi käänteisalkio. Jos jokaisella alkiolla a 0on käänteisalkio a, ts. a a = a a =1, sanotaan 1-renkaan olevan vinokunta eli jakorengas. Potenssimerkinnässä tällöin merkitään tavalliseen tapaan a, jos k = 1 a k = a a }{{}, jos k< 1, k kpl ja erityisesti siis tuttuun tapaan a = a 1.Huomaa, että vinokunnassa ei voi olla nollanjakajia ja tulomuotoisista yhtälöistä voi supistaa tekijöitä puolittain pois. Uusia laskusääntöjä syntyy entisistä, esimerkiksi (totea!) (ab) 1 = b 1 a 1. Jakolasku määritellään tavalliseen tapaan vinokunnassa: a/b = ab 1 ja a\b = a 1 b. Nollalla ei tietenkään saa jakaa! Vinokunta, joka on vaihdannainen rengas, on ns. kunta. Kunnissa ovat voimassa tavalliset luvuille (ja muuttujille ja funktioille) tutut laskusäännöt, joten ne ovat erityisen keskeisessä asemassa symbolisessa analyysissä (ja mm. koodausteoriassa). Kunnassa jakolaskua merkitään myös tavalliseen tapaan, ts. a b = ab 1, ja sille saadaan tavalliset laskusäännöt, esimerkiksi (totea!) ( a b ) 1 = b a ja a b + c d ad + bc =. bd 4.3 Esimerkkejä renkaista ja kunnista Kokonaisluvut Z tavallisten laskuoperaatioiden suhteen muodostavat kokonaisalueen, joka ei ole kunta. Yksiköt ovat ±1. Rationaaliluvut Q, reaaliluvut R sekä kompleksiluvut C muodostavat tavallisten laskuoperaatioiden suhteen tutut kunnat, ns. lukukunnat. Kokonaisalkioiset n n-matriisit (n 2) muodostavat tavallisten laskuoperaatioiden suhteen 1-renkaan M n (Z), joka ei ole vaihdannainen ja jossa on nollanjakajia. Yksiköt ovat ne ei-singulääriset matriisit, joiden käänteismatriisi on myös kokonaisalkioinen. Samoin rationaalialkioiset, reaalialkioiset ja kompleksialkioiset n n-matriisit muodostavat vastaavanlaiset 1-renkaat M n (Q), M n (R) ja M n (C), yksiköinä ei-singulääriset matriisit. Jäännösluokat modulo n muodostavat tavallisten laskuoperaatioiden suhteen vaihdannaisen 1-renkaan Z n, joka ei yleisesti ole kokonaisalue. Jos kuitenkin p on alkuluku, niin Z p on kunta (ns. alkukunta). Kunnilla Z p on tärkeä rooli virheitä korjaavien koodien konstruktiossa, ks. kurssi Koodausteoria. Symbolisen analyysin kannalta tärkeitä renkaita ovat erilaiset polynomirenkaat, kokonais-, rationaali-, reaali- ja kompleksikertoimisten muuttujan x polynomien renkaat Z[x], Q[x], R[x] ja
45 LUKU 4. ALGEBRAA 41 C[x] sekä vastaavat usean muuttujan polynomirenkaat Z[x 1,x 2,...,x n ], jne. Yksiköinä ovat vakiopolynomit (kokonaiskertomisessa tapauksessa vain ±1). Vastaavasti tärkeitä kuntia ovat kuntien (ja kokonaisalueiden) rationaalifunktioiden (polynomien osamäärien) kunnat, mm. Q(x), R(x) ja C(x), sekä myös monen muuttujan rationaalifunktioiden kunnat, R(x 1,...,x n ), jne. Merkitään R 4 :n luonnollisia kantavektoreita seuraavasti: = 1, = i, = j, = k. Kun yhteenlasku on tavallinen vektorien yhteenlasku, skalaarilla kertominen tavallinen vektorin kertominen skalaarilla ja itse vektorien kertolasku määritellään osittelulaeilla sekä taululla 1 i j k 1 1 i j k i i 1 k j j j k 1 i k k j i 1 saadaan ns. kvaternionirengas. Se on rakenteeltaan vinokunta. Kvaternioneilla on tärkeä rooli eräissä kolmiulotteisten rotaatioiden mallinnustavoissa, mm. tietokonegrafiikassa. 4.4 Alirenkaat ja -kunnat, laajennukset, ihanteet, tekijärenkaat, murtokunnat Jos renkaan R osajoukko A on myös itsessään rengas, kutsutaan sitä R:n alirenkaaksi. Tärkeää on silloin, että jos a ja b ovat A:ssa, niin siellä ovat myös a + b, ab ja a. Esimerkiksi parilliset kokonaisluvut muodostavat Z:n alirenkaan (mutta parittomat eivät). Vastaavasti määritellään alikunta, jolloin vielä alikunnan nollasta eroavan alkion käänteisalkionkin pitää olla alikunnassa. Esimerkiksi Q on R:n alikunta. Toisinpäin asiaa ajatellen, jos rengas R on renkaan S alirengas, sanotaan S:n olevan R:n rengaslaajennus eli ylirengas. Vastaavasti määritellään kuntalaajennus (eli ylikunta). Tärkeä alirengastyyppi on ns. ihanne. Renkaan R alirengas I on ihanne eli ideaali, jos aina kun a on I:n alkio ja r on R:n alkio, niin ra ja ar ovat I:ssä.. Nimi tulee siitä, että tällaisia alirenkaita sanottiin ihanteellisiksi, koska niitä käyttäen renkaan rakennetta voidaan karkeistaa eli muodostaa tekijärenkaita. Renkaan rakenteen karkeistaminen tapahtuu hyvin samaan tapaan kuin kokonaislukujen kongruenssilaskennassa. Siellähän kokonaislukujen renkaan rakennetta karkeistetaan ottamalla kokonaisluvusta huomioon vain sen jäännös modulo m. Itse asiassa m:llä jaolliset kokonaisluvut muodostavatkin Z:n ihanteen. Jos nyt I on renkaan R ihanne, niin sanotaan, että R:n alkiot a ja b ovat kongruentit modulo I, merkitään a b mod I, mikäli b a on I:ssä. Karkeistuksessa keskenään kongruentit alkiot samaistetaan. Tuloksena saatua rengasta kutsutaan tekijärenkaaksi ja merkitään R/I:llä. Merkitään a I :llä kaikkien niiden renkaan R alkioiden joukkoa, jotka ovat kongruentteja a:n kanssa modulo I, eli a:n edustamaa tekijärenkaan R/I alkiota, ns. jäännösluokkaa, eli niiden alkioiden joukkoa, jotka karkeistuksessa samaistuvat a:n kanssa. Todetaan seuraavat ominaisuudet:
46 LUKU 4. ALGEBRAA 42 (1) a I :n alkiot samaistuvat myös keskenään eli ovat kongruentteja keskenään modulo I, sillä jos a b mod I ja a c mod I, niin b a on I:ssä ja c a on I:ssä, jolloin myös on I:ssä (I on alirengas), ts. b c mod I. (2) Jos a b mod I, ts. b a on I:ssä, niin (3) Jos (c a) (b a) =c b a b = (b a) =( b) ( a) on sekin I:ssä eli b a mod I ja a b mod I. niin ja ovat I:ssä (I on ihanne), ts. a b mod I ja c d mod I, (b + d) (a + c) =(b a)+(d c) bd ac =(b a)d a(d c) a + c b + d mod I ja ac bd mod I. Tämä osoittaa, että tekijärenkaan alkioilla voidaan suorittaa yhteen-, vähennys- ja kertolasku edustajien välityksellä lähtien renkaan R laskuoperaatioista. Tekijärenkaan nolla-alkio on 0 I = I. Kokonaisalue on paljolti kuntaa muistuttava, ainoa puute on (mahdollinen) käänteisalkioiden puuttuminen. Näin tulee mieleen, että kokonaisalueelle voisi olla rengaslaajennus, joka on kunta. Näin onkin, jokainen kokonaisalue voidaan laajentaa kunnaksi. Pienintä kuntaa, joka näin laajentaa kokonaisaluetta D, kutsutaan sen murtokunnaksi eli osamääräkunnaksi, merkitään Q(D). Esimerkiksi kokonaisalueen Z murtokunta on tietysti Q, mutta myös R on sen laajennusrengas. Kokonaisalueen D murtokunnan konstruoimiseksi muodostetaan ensin parit (a, b), missä a ja b ovat D:n alkioita ja b 0,jasamaistetaan sitten sellaiset parit (a, b) ja (c, d), joille ad = bc. Näille pareille määritellään yhteen- ja kertolaskut seuraavalla tavalla: (a, b)+(c, d) =(ad + bc, bd) ja (a, b) (c, d) =(ac, bd). Tämä määrittelee laskuoperaatiot hyvin. Jos nimittäin parit (a, b) ja (a,b ) samaistetaan ja samoin parit (c, d) ja (c,d ), niin ab = ba ja cd = dc. Silloin (ad + bc)b d =(a d + b c )bd ja acb d = a c bd, joten myös parit (ad + bc, bd) ja (a d + b c,b d ) pitää samaistaa ja samoin parit (ac, bd) sekä (a c,b d ). Nyt nolla-alkio on (0, 1) (ja siihen samaistuvat parit (0, b), missä b 0) ja ykkösalkio (1, 1) (ja siihen samaistuvat parit (a, a), missä a 0), alkion (a, b) vasta-alkio on ( a, b) (ja siihen samaistuvat parit). Tuloksena on itse asiassa kunta, kuten helposti voidaan todeta, sillä parin
47 LUKU 4. ALGEBRAA 43 (a, b), missä a, b 0, käänteisalkio on (b, a). Tämä kunta on D:n murtokunta 1 Q(D), kunhan ajatellaan pari (a, 1) (ja siihen samaistuvat parit) D:n alkioksi a. Luonnollisesti parimerkinnän asemasta käytetään yleensä tuttua jakoviivamerkintää eli kirjoitetaan a tai a/b tai b\a eikä (a, b). b Myös kirjoitetaan a/1:n sijasta a ja 1/b:n sijasta b 1, jne. Huomautus. Tämä konstruktio on itse asiassa täysin formaalinen, ts. mitään murtokuntaa ei tarvitse etukäteen olla odottamassa. Eräänlainen bootstrap-operaatio siis. Symbolisessa laskennassa voidaan näin periaatteessa aina puhtaan symbolisesti muodostaa murtokunta. Itse asiassa symbolisessa laskennassa käyttöön otetut uudet käsitteet pitääkin määritellä vanhojen avulla ja varsinaisia primitiivejä on vain vähän. Kuntien polynomirenkaat ovat kokonaisalueita, kuten on helppo nähdä. Rationaalifunktioiden kunnat ovat näiden murtokuntia, siis esimerkiksi R(x, y) on R[x, y]:n murtokunta, jne. Yleisestikin kokonaisalueen D polynomirengas on kokonaisalue ja sen murtokunta Q(D[x]) voidaan samaistaa kuntiin ja D(x) ja Q(D)(x), siis esimerkiksi Q(Z[x]) = Z(x) =Q(x). Toinen tapa saada aikaan kuntia on karkeistaa kokonaisalueiden rakennetta ihanteita käyttäen. Tämä onnistuu vain tietynlaisille ihanteille. Esimerkiksi Z p on kunta (alkukunta), jos p on alkuluku, mutta vaikkapa Z 6 ei ole kunta. Tähän liittyen, eräs tapa saada aikaan uusia kuntia on laajentaa kunta ottamalla mukaan sen polynomirenkaan jonkin polynomin juuret. Tämä tapahtuu yksinkertaisesti karkeistamalla polynomirengasta samaistamalla ko. polynomi nollapolynomiin! Tästä lisää myöhemmin. Tällä tavoin muodostetaan alkukunnista ns. äärelliset kunnat, jotka ovat tärkeitä vaikkapa koodausteoriassa. 4.5 Tekijät, s.y.t. ja p.y.j. kokonaisalueissa Kokonaislukujen renkaassa (joka on kokonaisalue) lukujen jaollisuus, tekijöihinjako, alkuluvut, jne. ovat keskeisiä. Renkaissa vastaavat käsitteet muodostavat yleisesti ottaen jonkin verran sotkuisen osan teoriaa (ks. kurssi Algebra 1), mutta kokonaisalueille saadaan selkeämmät tulokset. Niinpä tässä pykälässä rajoitutaankin (mielivaltaiseen) kokonaisalueeseen D, vaikka käsitteet olisivat järkeviä muillekin renkaille. Jos D:n alkio a voidaan kirjoittaa muotoon a = bc, niin b on a:n tekijä, merkitään b a (eli b jakaa a:n eli a on b:n monikerta). Huomaa, että yksikkö jakaa minkä tahansa alkion ja kaikki alkiot jakavat nolla-alkion. D:n alkio d on alkioiden a ja b suurin yhteinen tekijä (s.y.t.), merkitään d = syt(a, b), jos d jakaa a:n ja b:n ja toisaalta d on jokaisen sellaisen alkion monikerta, joka jakaa sekä a:n että b:n. Edelleen D:n alkio m on alkioiden a ja b pienin yhteinen jaettava (p.y.j.), merkitään m =pyj(a, b), jos sekä a että b jakavat m:n ja toisaalta m jakaa jokaisen alkion, joka on sekä a:n että b:n monikerta. Nämä määritelmät kävisivät myös kokonaisluvuille, jos sovitaan, että syt(0, 0) = 0 ja pyj(0,b)=0. (Huomaa kuitenkin, että alkioilla ei ole suuruutta kuten luvuilla, vaikka puhutaan suurimmasta ja pienimmästä.) S.y.t. ja p.y.j. eivät muuten ole olemassa kaikissa kokonaisalueissa. Alkioiden a ja b sanotaan olevan liitännäisiä, jos ne jakavat toinen toisensa. Yksiköt ovat näin ollen keskenään liitännäisiä. Samoin alkioiden a ja b suurimmat yhteiset tekijät (joita voi siis olla useita) ovat keskenään liitännäisiä, kuten ovat pienimmät yhteiset jaettavatkin. Lause 4.1. Kokonaisalueen alkiot a ja b ovat liitännäiset täsmälleen silloin, kun voidaan kirjoittaa a = ub, missä u on yksikkö. 1 Asia vaan ei ole ihan helppo tarkasti näyttää, ks. kurssi Algebra 1. Murtokunnanhan piti olla pienin laajennuskunta.
48 LUKU 4. ALGEBRAA 44 Todistus. Tapaus a =0on helppo. Muutoin, jos a ja b ovat liitännäiset, niin a = bc ja b = ac. Siispä a = ac c ja 1=c c (kokonaisalueessa kun saa supistaa). c on näin ollen yksikkö. Jos a = ub, missä u on yksikkö, niin b jakaa a:n ja toisaalta jollekin alkiolle v pitää olla vu =1. Siispä av = ubv = b eli a jakaa b:n. Kokonaisluvulle k 0ainoa sen kanssa liitännäinen luku on k ja monesti sovitaan, että näistä liitännäisistä luvuista ±k valitaan edustajaksi positiivinen luku (esimerkiksi suurin yhteinen tekijä on positiivinen). Yleiselle kokonaisalueelle tällaista sopimusta ei voida tehdä (positiivisuutta ei ole määritelty). Usein kuitenkin valitaan jollain kriteerillä keskenään liitännäisten alkioiden joukosta yksi, ns. yksikkönormaali. Kunnan yksikkönormaalit ovat tavan mukaan 0 ja 1, mutta muille kokonaisalueille valinta on jonkin verran mielivaltainen. Yksiköiden yksikkönormaali on kuitenkin yleensä 1. Alkiota a vastaavaa yksikkönormaalia merkitään n(a):lla, ns. a:n normaaliosa, jolloin voidaan kirjoittaa a = u(a)n(a), missä yksikkö u(a) on ns. a:n yksikköosa. Lisäksi vaaditaan, että normaaliosa on on multiplikatiivinen, ts. n(ab) =n(a)n(b) (mistä tietysti seuraa, että myös yksikköosa on multiplikatiivinen). Huomautus. Tästä lähin sovitaan, että valitaan alkioiden a ja b suurimmista yhteisistä tekijöistä se, joka on yksikkönormaali, samoin pienimmistä yhteisistä jaettavista, ellei nyt sitten toisin sanota. Useamman kuin kahden alkion s.y.t. ja p.y.j. määritellään yleistäen kahden alkion tapauksen määritelmät: d = syt(a 1,a 2,...,a N ), jos d jakaa alkiot a 1,a 2,...,a N ja toisaalta d on jokaisen sellaisen alkion monikerta, joka jakaa alkiot a 1,a 2,...,a N. m =pyj(a 1,a 2,...,a N ), jos alkiot a 1,a 2,...,a N jakavat m:n ja toisaalta m on jokaisen sellaisen alkion tekijä, jonka alkiot a 1,a 2,...,a N jakavat. Kuten kokonaisluvuillekin, useamman kuin kahden alkion s.y.t. ja p.y.j. ovat olemassa ja voidaan laskea, kunhan vain kahden alkion s.y.t. on olemassa ja laskettavissa. Lause 4.2. syt(a 1,a 2,...,a N )=syt(a 1, syt(a 2,...,a N )) = syt(a 1, syt(a 2, syt(a 3,...,syt(a N 1,a N ) ))) pyj(a 1,a 2,...,a N )=pyj(a 1, pyj(a 2,...,a N )) =pyj(a 1, pyj(a 2, pyj(a 3,...,pyj(a N 1,a N ) ))) Todistus. Jos merkitään d = syt(a 1,a 2,...,a N ) ja d = syt(a 2,...,a N ), niin d jakaa a 1 :n sekä alkiot a 2,...,a N,jasiis myös d :n. Näin ollen d jakaa syt(a 1,d ):n. Toisaalta syt(a 1,d ) jakaa a 1 :n sekä d :n, ja siis myös alkiot a 2,...,a N. Näin ollen syt(a 1,d ) jakaa d:n. d ja syt(a 1,d ) ovat siis liitännäiset ja (yksikkönormaalimuotoisina) samat. P.y.j.:tä koskeva kaava todistetaan aivan samoin. Toiset yhtälöt saadaan toistamalla kaavaa. P.y.j.:n ja s.y.t.:n yhteyttä koskevan tuloksen todistus ei menekään samalla tavoin kuin Lauseen 3.10 todistus, sillä yleisesti yksikäsitteistä tekijöihinjakoa ei ole kokonaisalueissa, vaikka s.y.t. olisikin olemassa! Todistus onkin näin vaikeampi. Lause 4.3. pyj(a, b)syt(a, b) =n(ab)
49 LUKU 4. ALGEBRAA 45 Todistus. Asia on selvä, jos a =0tai b =0,joten oletetaan, että a, b 0. Merkitään d = syt(a, b) (yksikkönormaali) ja kirjoitetaan a = da sekä b = db. Silloin (multiplikatiivisuus) n(ab) =n(a b d 2 )=n(a b )d 2. Pitäisi näyttää, että n(a b )d on pyj(a, b). Koska a b d = a b = ab, on a b d sekä a:n että b:n monikerta. Otetaan sitten mielivaltainen a:n ja b:n yhteinen monikerta c ja kirjoitetaan c = ra sekä näytetään, että a b d jakaa c:n. Jotta päästään eteenpäin, todetaan ensin, että syt(a,b )=1(siis yksikkönormaalimuotoisena). Jos nimittäin merkitään d = syt(a,b ), niin d jakaa sekä a :n että b :n ja siitä seuraa, että dd jakaa sekä a:n että b:n. Mutta silloin dd jakaa d:n, ts. d = dd u eli (supistus) 1=d u ja d on yksikkö. Seuraavaksi todetaan, että syt(rda,rdb ) eli syt(ra, rb) eli syt(c, rb) on n(rd). Jos nimittäin merkitään e = syt(rda,rdb ), niin ilmeisesti rd jakaa e:n, ts. e = rds.toisaalta e eli rds jakaa rda :n ja rdb :n, ts. rda = vrds ja rdb = wrds, ja (supistamalla rd pois) a = vs ja b = ws. s siis jakaa sekä a :n että b :n ja myös 1:n. Siispä s on yksikkö ja (yksikkönormaalina) syt(rda,rdb )=n(rd). Mutta nyt b jakaa sekä rb:n että c:n, joten se jakaa myös niiden s.y.t.:n eli n(rd):n ja edelleen rd:n, ts. rd = tb. Niinpä c = ra = rda = tba = ta b d on jaollinen a b d:llä. Kaiken kaikkiaan päätellään, että yksikkönormaalina pyj(a, b) = n(a b )syt(a, b). Näiden lauseiden merkitys symbolisen laskennan kannalta on, että riittää etsiä menettely, jolla saadaan aikaan kahden alkion s.y.t.. Siitä sitten saadaan niin mielivaltaisen monen alkion s.y.t.:t kuin p.y.j.:tkin. 4.6 UFD, PID ja ED Kokonaislukujen kokonaisalueessa pätee niin yksikäsitteinen tekijöihinjako kuin Bezout n lausekin ja Eukleideen algoritmi on käytettävissä. Kokonaisalueissa ei näin valitettavasti yleisesti ole. Niinpä ne luokitellaankin sen mukaan mitä ym. ominaisuuksista on käytettävissä: Kokonaisalue, jossa on olemassa yksikäsitteinen tekijöihinjako, on ns. yksikäsitteisen tekijöihinjaon alue eli UFD 2.Kokonaisalue, jossa Bezout n lause pätee, on ns. pääihannealue eli PID 2.Kokonaisalue, jossa on Eukleideen algoritmi, on ns. Eukleideen alue eli ED 2. Katsotaan kutakin näistä kokonaisaluetyypeistä tarkemmin. Kokonaisalueen alkio p on ns. alkualkio, jos p ei ole yksikkö ja UFD kirjoitettaessa p tulomuotoon p = ab aina toinen alkioista a tai b on yksikkö. 2 UFD = unique factorization domain PID = principal ideal domain (Oudon nimen perustelu löytyy kurssilta Algebra 1.) ED = Euclidean domain
50 LUKU 4. ALGEBRAA 46 (Vrt. alkuluvun määritelmä.) Ilmeisesti jos p on alkualkio, ovat sitä myös kaikki sen kanssa liitännäiset alkiot. Jotta päästäisiin eroon turhista vain näennäisesti erilaisista alkualkioista, sovitaan, että ellei toisin sanota, alkualkio on yksikkönormaali. (Samoin kokonaisluvuille sovittiin, että alkuluvut ovat positiivisia.) Kokonaisalue on UFD, jos sen jokaisen alkion a, joka ei ole nolla, normaaliosa voidaan yksikäsitteisesti kirjoittaa alkualkioiden tuloksi (järjestystä lukuunottamatta; tulo on tyhjä, jos a on yksikkö): n(a) =p i 1 1 p i M M ja a = u(a)p i 1 1 p i M M, missä p 1,...,p M ovat eri alkualkioita. Kuten Pykälässä 3.3, todetaan nyt, että jos alkioiden a 1,a 2,...,a N tekijöihinjaot ovat a j = u(a j )p i j1 1 p i jm M (j =1, 2,...,N), missä sovitaan, että j ik =0, mikäli alkualkio p k ei ole a i :n alkutekijä, niin syt(a 1,a 2,...,a N )=p min{i 11,i 21...,i N1 } 1 p min{i 1M,i 2M...,i NM } M ja pyj(a 1,a 2,...,a N )=p max{i 11,i 21...,i N1 } 1 p max{i 1M,i 2M...,i NM } M. UFD:ssä siis s.y.t. ja p.y.j. ovat olemassa ja laskettavissa, jos vain alkioiden tekijöihinjaot saadaan tehdyksi. PID Kokonaisalue on PID, jos alkioiden a 1,a 2,...,a N s.y.t. on olemassa ja kirjoitettavissa Bezout n muotoon syt(a 1,a 2,...,a N )=c 1 a 1 + c 2 a c N a N. Voidaan näyttää, että PID on aina myös UFD, mutta tämä ei ole helppoa (ks. kurssi Algebra 1). Kokonaiskertoimisten polynomien rengas Z[x] on esimerkki UFD:stä, joka ei ole PID: syt(x +1,x 2 )=1, mutta sitä ei voida esittää Bezout n muodossa. ED Kokonaisalue E on ED, jos sen alkioille (nollaa lukuunottamatta) on määritelty ns. Eukleideen arvotus δ, joka käyttäytyy seuraavasti: 1. δ(a) on luonnollinen luku. 2. δ(ab) δ(a), kun b Jos a sekä b ovat E:n alkioita ja b 0, niin on olemassa sellaiset alkiot q (osamäärä) sekä r (jakojäännös), että a voidaan kirjoittaa muotoon a = qb + r, missä joko r =0tai sitten δ(r) <δ(b). Kokonaislukujen Eukleideen arvotus on tietysti itseisarvo. Huomaa, miten Eukleideen arvotus sallii jakolaskun E:ssä, aivan samassa mielessä kuin kokonaisluvuille Pykälässä 3.1. Tästä on se seuraus, että ED:ssä yleistetty Eukleideen algoritmi on käytössä ja Bezout n lause pätee. ED on siis aina PID. Osamäärän ja jakojäännöksen ei tarvitse kuitenkaan olla yksikäsitteisiä. Huomautus. Kirjallisuudessa on useita erilaisia Eukleideen arvotuksen määritelmiä, käytännössä ne johtavat samaan tulokseen.
51 Luku 5 POLYNOMIT 5.1 Yhden muuttujan polynomit Peruskursseilla polynomit ovat funktioita. Algebrassa ne voidaan kyllä tarvittaessa ajatella funktioiksikin (ja niin tehdäänkin), mutta varsinaisesti polynomi on formaalisesti äärellinen jono renkaan alkioita (ns. kertoimet) a 0,a 1,..., a n, joista viimeinen, ns. johtava kerroin, on 0. (Oikeastaan kyseessä on lista, ks. Pykälä 1.4.) Jonon pituus vähennettynä yhdellä eli n on ns. polynomin aste. Perinteisesti polynomit esitetään kuitenkin käyttäen jotain (apu)muuttujaa x tutussa muodossa a 0 + a 1 x + + a n x n = p(x) ja astetta merkitään deg(p(x)):llä. a n x n on ns. johtava termi. Myös tyhjä jono otetaan mukaan ja sitä kutsutaan nollapolynomiksi, merkitään 0. Polynomeja, joiden aste on nolla, sanotaan vakiopolynomeiksi ja niitä merkitään renkaan alkiolla. Itse asiassa ne samaistetaan renkaan alkioiksi eli polynomirengas on aina myös laajennusrengas. (Nollapolynomi samaistetaan renkaan nollaan.) Nollapolynomin asteeksi sovitaan 1 (usein myös ). Jotteivat merkinnät menisi liian mutkikkaiksi, sovitaan että jos p(x) =a 0 + a 1 x + + a n x n,niina n+1 = a n+2 = =0eli jatketaan jonoa nollilla tarvittaessa. (Toisinaan pitää myös sopia, että a 1 = a 2 = =0.) Kaikkien renkaan R polynomien joukkoa merkitään R[x]:llä, ns. R:n polynomirengas. (Tässä x tarkoittaa vain, että polynomit esitetään muuttujaa x käyttäen.) Kyseessä on todella rengas, kun polynomien yhteen- ja kertolasku määritellään tuttuun tapaan: Jos p(x) =a 0 + a 1 x + + a n x n ja q(x) =b 0 + b 1 x + + b m x m ja n m, niin ja missä Erityisesti p(x)+q(x) =(a 0 + b 0 )+(a 1 + b 1 )x + +(a n + b n )x n, p(x) = a 0 +( a 1 )x + +( a n )x n = a 0 a 1 x a n x n p(x)q(x) =c 0 + c 1 x + + c n+m x n+m, c k = a i b j i+j=k Seuraavat tosiasiat on varsin helppo todeta: (k =0, 1,...,n+ m). p(x)+0=p(x) ja p(x) 0=0 p(x) =0. 47
52 LUKU 5. POLYNOMIT 48 (1) Jos R on vaihdannainen, niin samoin on R[x]. (2) Jos R on 1-rengas, niin samoin on R[x]. (3) Jos R on kokonaisalue, niin samoin on R[x]. Tällöin pätee myös tuttu astelukukaava deg(p(x)q(x)) = deg(p(x)) + deg(q(x)). (4) deg(p(x) +q(x)) max(deg(p(x)), deg(q(x))) ja yhtäläisyys pätee, jos deg(p(x)) deg(q(x)) (ja tietysti usein muulloinkin). (5) Jos D on kokonaisalue, niin D[x]:n yksiköt ovat D:n yksiköt. (6) Jos S on R:n rengaslaajennus, niin S[x] on R[x]:n rengaslaajennus. Erityisesti jos D on kokonaisalue, niin Q(D)[x] on D[x]:n rengaslaajennus. (7) Jos D on kokonaisalue, niin D:n alkualkiot ovat myös D[x]:n alkualkioita. D[x]:n muita alkualkioita kutsutaan jaottomiksi polynomeiksi. (8) Jos a n on polynomin p(x) johtava kerroin kokonaisalueen polynomirenkaassa, niin p(x):n yksikkönormaali on n(p(x)) = u(a n ) 1 p(x), jonka johtava kerroin on n(a n ). Erityisesti kunnan polynomirenkaan yksikkönormaalin johtava kerroin on aina 1, ts. kyseessä on ns. pääpolynomi. Erityisen mukavia ovat kuntien polynomirenkaat, sillä Lause 5.1. Jos F on kunta, niin F [x] on ED, jonka Eukleideen arvotus on aste. F [x]:ssä on siis Eukleideen algoritmi käytössä. Todistus. Tavallinen koulussa opittu polynomien pitkäjako riittää. Kunnan polynomirenkaassa on siis jakolasku. Koulussa opittu pitkäjako näyttää toisaalta myös, että kokonaisalueen D polynomirenkaassa D[x] voidaan jakaa polynomilla, jonka johtava kerroin on 1 (tai yksikkö) eli pääpolynomilla. Koska muilla polynomeilla ei sitten ehkä voidakaan jakaa, ei D[x] tällöin ole (välttämättä) ED. Huomattavasti vaikeampi on todistaa Lause 5.2. Jos R on UFD, niin samoin on R[x]. Todistus. Ks. kurssi Algebra 1. Eräs symbolisen laskennan perustehtävistä on testata, onko annettu polynomi jaoton vai ei, ja myös jakaa jaolliset polynomit tekijöihin. Kyseessä on tällöin UFD:n tai kunnan polynomirenkaan polynomi. Jos kokonaisalueessa s.y.t. on olemassa, niin voidaan määritellä sen polynomirenkaan polynomin p(x) =a 0 + a 1 x + + a n x n (ei nollapolynomin) ns. sisältö cont(p(x)) = syt(a 0,a 1,...,a n ). Polynomia, jonka sisältö on yksikkö, kutsutaan primitiiviseksi. Ottamalla sisältö tekijäksi kertoimista polynomi p(x) voidaan kirjoittaa muotoon p(x) =cont(p(x))q(x).
53 LUKU 5. POLYNOMIT 49 Kuten Lauseen 4.3 todistuksessa, voidaan näyttää, että q(x) on tällöin primitiivinen, ts. sen kerrointen s.y.t. on yksikkö. Monesti laskuissa jaetaan polynomien sisältö pois, jotteivat kertoimet kasvaisi suuriksi. Symbolisia laskuja ajatellen on tärkeää huomata, että polynomi on täysin formaalinen konstruktio, ja jos kerroinrenkaassa R voidaan laskea symbolisesti, niin samoin voidaan laskea R[x]:ssä. 5.2 Polynomien juuret Polynomien juurten symbolista käsittelyä tarvitaan usein, esimerkiksi silloin kun muodostetaan osamurtokehitelmiä (rationaalifunktioiden symbolinen integrointi, symbolinen käänteinen Laplacen muunnos, jne.). Osa polynomin juurista voi olla kerroinrenkaassa, osa joudutaan ottamaan mukaan sopivalla laajennuksella (ns. algebrallinen laajennus, ks. Pykälä 5.3). Juuria ajatellen polynomirenkaan R[x] polynomia p(x) =a 0 + a 1 x + + a n x n ajatellaankin funktiona, kuten peruskursseilla. Alkio b on polynomin p(x) juuri, jos p(b) =a 0 + a 1 b + + a n b n =0. Nollanjakajien olemassaolo tekee juurirakenteen oudoksi, joten jatkossa oletetaan, että R on kokonaisalue D. Jos x b on D[x]:n polynomin p(x) tekijä, niin selvästi b on p(x):n juuri. Myös käänteinen pätee: Lause 5.3. Jos b on D[x]:n polynomin p(x) juuri, niin x b jakaa p(x):n. Todistus. Jaetaan p(x) pääpolynomilla x b: p(x) =q(x)(x b)+r(x), missä r(x) = 0 tai r(x)on vakiopolynomi. (Kuten edellä todettiin, pääpolynomilla voidaan jakaa kokonaisalueen polynomirenkaassa.) Sijoitetaan tähän x = b: 0=p(b) =(b b)q(b)+r(b) =r(b). Koska r(x) on joko nolla tai vakio, sen on siis oltava nolla ja x b jakaa p(x):n. Juuri voi olla moninkertainen: b on polynomin p(x) m-kertainen juuri, jos (x b) m jakaa p(x):n, mutta (x b) m+1 ei enää jaa sitä. m on ns. juuren kertaluku. Lause 5.4. Jos b on D[x]:n polynomin p(x) juuri ja p(x) voidaan kirjoittaa tuloksi p(x) = s(x)t(x), niin b on jommankumman polynomin s(x) tai t(x) juuri (ehkä molempienkin). Todistus. Koska 0=p(b) =s(b)t(b) ja nollanjakajia ei D:ssä ole, on joko s(b) =0tai t(b) = 0.
54 LUKU 5. POLYNOMIT 50 Seuraus. D[x]:n polynomilla, jonka aste on d 0, on enintään d eri juurta D:ssä. Myös jos monikerrat otetaan mukaan, niin juuria on enintään d kpl. 1 Todistus. Jos D[x]:n polynomilla p(x) on D:ssä n eri juurta b 1,b 2,...,b n, joiden kertaluvut ovat vastaavasti m 1,m 2,...,m n,niin(x b 1 ) m 1 jakaa p(x):n eli p(x) =(x b 1 ) m 1 p 1 (x). Mutta silloin b 2 on p 1 (x):n juuri, joten (x b 2 ) m 2 jakaa p 1 (x):n eli Jne. Lopulta nähdään, että p 1 (x) =(x b 2 ) m 2 p 2 (x). p(x) =(x b 1 ) m 1 (x b 2 ) m2 (x b n ) mn p n (x). Siispä d = deg(p(x)) n ja m 1 + m m n d. Seuraus. Jos D[x]:n polynomit p(x) ja q(x), joiden aste on enintään n, saavat n+1 eri pisteessä a 1,a 2,...,a n+1 samat arvot, niin polynomit ovat samat. (Polynomin kertoimien laskeminen sen pisteissä a 1,a 2,...,a n+1 saamista arvoista on ns. interpolaatiotehtävä, ks. Pykälä 5.7.) Todistus. Merkitään s(x) =p(x) q(x), jolloin myös s(x):n aste on enintään n. Ilmeisestikin a 1,a 2,...,a n+1 ovat s(x):n eri juuria, joten s(x):n on oltava nollapolynomi. Jos polynomin p(x) kaikki juuret ovat D:ssä, se voidaan kirjoittaa muotoon p(x) =a(x b 1 ) m 1 (x b 2 ) m2 (x b n ) mn missä a on johtava kerroin. Käänteisesti ajatellen polynomi voidaan ilmoittaa antamalla sen juuret kertalukuineen (sekä johtava kerroin). Jos p(x) =a(x b 1 )(x b 2 ) (x b n ), missä kukin juuri nyt esiintyy kertalukunsa osoittaman määrän kertoja, niin kertomalla auki tulo havaitaan, että p(x) =a 0 + a 1 x + + a n x n,missä a n = a (1 termi), n a n 1 = a b i (n termiä), i=1 a n 2 = a b i b j ( ( n 2) termiä),. 1 i<j n 1 Nyt on tilaisuus esittää halukkaille Wilsonin lauseen todistuksen puuttuva puolisko, ks. Pykälä 3.5. Oletetaan siis, että p on alkuluku. Tarkastellaan Z p [x]:n polynomia q(x) =x p 1 1 (x 1)(x 2) (x p +1). q(x):n aste on p 2. Jos 1 k<p, niin syt(p, k) =1ja Fermat n pienen lauseen mukaan k p mod p. Toisaalta myös (k 1)(k 2) (k k) (k p +1) 0 mod p. Näin ollen polynomilla q(x) on Z p :ssä ainakin p 1 eri juurta, joten sen on oltava nollapolynomi. Erityisesti q(x):n vakiotermi on nolla eli 1 ( 1)( 2) ( p +1)= 1 ( 1) p 1 (p 1)! 0 mod p.
55 LUKU 5. POLYNOMIT 51 a 1 =( 1) n 1 a b i1 b i2 b in 1 ( ( n n 1) termiä), 1 i 1 <i 2 < <i n 1 n a 0 =( 1) n ab 1 b 2 b n (1 termi). Yhteensä termejä on siis n ( ) n =2 n kpl, i i=0 mikä voi olla paljon. (Tuloa ei siis aina kannata automaattisesti kertoa auki.) Periaatteessa symbolisessa analyysissä erityisen kiinnostavia ovat sovelluksissa runsaasti esiintyvät reaalikertoimiset R[x]:n polynomit ja usein myös kompleksikertoimiset C[x]:n polynomit. Valitettavasti vain symbolisilla menetelmillä ei päästä kiinni mielivaltaiseen reaali- tai kompleksilukuun. Käytännössähän esimerkiksi numeeriset likiarvot ovat aina rationaalilukuja. Niinpä voidaan sanoa, että enimmäkseen symbolisissa menetelmissä esiintyvät luvut ovat, joitain tavanomaisia vakioita (π, e, jne.) lukuunottamatta, rationaalilukuja tai yleisemmin ns. algebrallisia lukuja (eli Q[x]:n polynomien juuria). Kaikki Q[x]:n ja jopa C[x]:n polynomien juuret ovat sentään kompleksisia: Lause 5.5. (Algebran peruslause) Jokaisella C[x]:n polynomilla, jonka aste on positiivinen, on ainakin yksi kompleksijuuri. Todistus. Ks. kurssi Kompleksimuuttujan funktiot. Algebran peruslauseen mukaisesti jakautuu jokainen C[x]:n polynomi p(x), joka ei ole vakio, 1. asteen tekijöihin. Toisaalta, jos p(x) onkin R[x]:n polynomi ja b on sen kompleksijuuri, niin kompleksinen liittoluku b on myös juuri, jopa samaa kertalukua kuin b. Tämä seuraa siitä, että jos (x b) m jakaa p(x):n, ts. p(x) =(x b) m q(x), niin ottamalla puolittain kompleksiset liittoluvut todetaan, että p(x) =p(x) =(x b ) m q(x) eli että myös (x b ) m jakaa p(x):n. (Oikeastaan tämä pitäisi tehdä n+1eri reaalilukupisteessä a 1,a 2,...,a n+1, vrt. e.o. Seuraus.) Koska (x b) m (x b ) m =(bb (b + b )x + x 2 ) m ja bb (b + b )x + x 2 on reaalikertoiminen, päätellään tästä, että jokainen R[x]:n polynomi p(x) (ei vakio) jakautuu 1. tai 2. asteen reaalikertoimisiin tekijöihin, 1. asteen tekijät liittyvät p(x):n reaalijuuriin ja 2. asteen tekijät kompleksijuuripareihin. Yllä oleva pätee erityisesti Q[x]:n polynomiin p(x) (joka ei ole vakio): p(x) jakautuu 1. asteen kompleksikertoimisiin tai reaalikertoimisiin 1. tai 2. asteen tekijöihin. Tämä tekijöihinjako symbolisesti toteutettuna on eräs symbolisen analyysin perustehtäviä. Kyseessä on itse asiassa Q[x]:n polynomien juurien etsiminen. Kompleksilukua, joka on jonkin Q[x]:n polynomin juuri, sanotaan algebralliseksi luvuksi. Algebrallisten lukujen joukkoa merkitään A:lla. Rationaaliluku n/m on tietysti algebrallinen (polynomin mx n juurena). Lause 5.6. A on kunta (C:n alikunta ja Q:n laajennus). Lisäksi jokaisen A[x]:n polynomin juuret ovat A:ssa, ts. A on algebrallisesti suljettu. Todistus. Todistus on varsin työläs, vaikka ei kovin vaikea. Sivuutetaan. Kaikki kompleksiluvut tai edes reaaliluvut eivät ole algebrallisia. Luku, joka ei ole algebrallinen, on transsendenttinen. Esimerkiksi π ja e ovat transsendenttilukuja (tämä on varsin vaikea todistaa).
56 LUKU 5. POLYNOMIT Algebralliset laajennukset Tässä jälleen D on kokonaisalue. Kaikilla D[x]:n polynomeilla ei suinkaan ole täyttä kokoelmaa juuria (tai yhtäkään juurta) D:ssä. Lauseesta 5.3 seuraa esimerkiksi, että jos D[x]:n polynomi on jaoton, niin sillä ei voi olla juuria D:ssä. Jos lähdetään tietystä D[x]:n polynomista p(x), jolla ei ole juurta D:ssä (ja joka ei ole vakio), voisi kuvitella, että sopivasti laajentamalla D:tä päästään renkaaseen, jossa p(x):llä on juuri. Itse asiassa tällainen laajennus on hyvinkin helppo tehdä täysin formaalisesti. Joukko I = {q(x)p(x) q(x) on D[x]:n polynomi} on D[x]:n ihanne, ns. p(x):n generoima (pää)ihanne, kuten on helppo todeta. Muodostetaan tekijärengas D[x]/I. Nyt voidaan itse asiassa ajatella tätä tekijärengasta D:n rengaslaajennuksena samaistamalla D:n alkiot a niiden edustamien jäännösluokkien a I kanssa. Samoin voidaan D[x]:n polynomit ajatella tekijärenkaan polynomirenkaan polynomeiksi. Tässä laajennuksessa jäännösluokka x I, joka ei ole D:ssä, on kaivattu p(x):n juuri, sillä jos p(x) = a 0 + a 1 x + + a n x n, niin 0 = 0 I = p(x) I = a 0 + a 1 x + + a n x n I = a 0 I + a 1 I x I + + a n I x n I = a 0 + a 1 x I + + a n x n I, missä = merkitsee samaistamista. Huomaa, miten tällainen laajennus on täysin keinotekoinen ja formaalinen ja on siis symbolisesti toteutettavissa. Edellytyksenä kuitenkin on, että jäännösluokilla modulo I voidaan laskea symbolisesti. Tämä onnistuu ainakin, mikäli p(x):llä voidaan aina jakaa. Silloin nimittäin jäännösluokilla voidaan laskea käyttäen edustajina jakojäännöksiä, eli menetellään samoin kuin kokonaisluvuille kongruenssilaskennassa. Koska pääpolynomilla voidaan aina jakaa ja toisaalta kunnan polynomirengas on ED, voidaan jäännösluokilla laskea helposti, jos p(x) on pääpolynomi tai jos D on kunta. Itse asiassa tällöin voidaan laskea ratkaisemalla x n yhtälöstä a 0 + a 1 x + + a n x n =0ja korvaamalla se aina ratkaistulla lausekkeella. Lasku on ilmeisesti yleisesti ottaen sitä työläämpää mitä korkeampi p(x):n aste on. Jäännösluokilla laskemisen lisäksi toinen pulma on se, että saatu laajennusrengas voikin sisältää nollanjakajia, ts. se ei ole kokonaisalue. Ratkaisu eo. pulmiin saadaan, jos voidaan olettaa, että D on kunta F ja p(x) on F [x]:n jaoton polynomi. Ensinnäkin, kuten todettiin, jäännösluokilla lasku sujuu silloin helposti, ainakin mitä tulee yhteen-, vähennys ja kertolaskuun. Toiseksi, laajennusrengas F [x]/i on tällöin itse asiassa kunta eli kyseessä on kuntalaajennus. Tämä seuraa siitä, että F [x] on ED (Lause 5.1) ja siis myös PID ja siinä pätee Bezout n lause. Tilanne on aivan samanlainen kuin kokonaisluvuille Lauseessa 3.12: Jos F [x]:n polynomi q(x) (ei vakio) ei ole p(x):llä jaollinen, ts. q(x) 0 mod I, niin syt(p(x),q(x)) =1ja saadaan Bezout n muoto 1=c 1 (x)p(x)+c 2 (x)q(x) ja F [x]/i:ssä q(x) 1 I = c 2 (x) I. Huomataan, että jakolaskukin sujuu F [x]/i:ssä varsin helposti: se vaatii vain yleistetyn Eukleideen algoritmin soveltamista. Jatkossa rajoitutaankin tapaukseen, missä D on kunta F ja laajennus suoritetaan aina jaotonta polynomia käyttäen. Jotta saataisiin aikaan laajennuskunta K, missä on täysi kokoelma F [x]:n polynomin q(x) juuria, menetellään seuraavasti:
57 LUKU 5. POLYNOMIT Asetetaan K F ja p(x) q(x). 2. Jos deg(p(x)) 1, tulostetaan K ja lopetetaan. 3. Jos deg(p(x)) > 1 etsitään p(x) alkutekijä t(x) (kunnan polynomirengas on aina UFD). Käytännössä alkutekijän etsiminen voi olla varsin työläs tehtävä. 4. Jos deg(t(x)) =1, asetetaan p(x) p(x)/t(x) (kunnan polynomirengas on ED, joten siinä voidaan jakaa) ja mennään kohtaan Jos deg(t(x)) > 1, laajennetaan K kunnaksi L käyttäen t(x):n juurta b, kuten yllä on esitetty. Asetetaan K L sekä p(x) p(x)/(x b) (Lause 5.3) ja mennään kohtaan 2. Laajennusta, jossa kunta F laajennetaan liittämällä siihen joidenkin F [x]:n polynomien juuria (ei välttämättä kaikkia) b 1,b 2,...,b k,onns. F :n algebrallinen laajennus ja sitä merkitään F (b 1,b 2,...,b k ):llä. Jos erityisesti b 1,b 2,...,b k ovat tarkalleen kaikki jonkin F [x]:n polynomin p(x) juuret, sanotaan F (b 1,b 2,...,b k ):ta p(x):n hajoamiskunnaksi. Tällaista peräkkäisten kuntalaajennusten jonoa kutsutaan usein kuntalaajennustorniksi. Käytännössä hyvin usein polynomin q(x) juurilla laajennettava kunta on rationaalilukujen kunta Q,jolloin juuret ovat algebrallisia lukuja. Näille juurille voidaan tietysti numeerisilla menetelmillä etsiä kuinka tahansa tarkat likiarvot ja vieläpä testata mitkä juurista ovat samat ja mitkä muodostavat kompleksijuuriparin, jne. Symbolista laskentaa ajatellen näistä likiarvoista ei ole paljon apua, niitä ei voida käyttää tarkkoina suureina. Sen sijaan voidaan täysin formaalisesti liittää Q:hun q(x):n juuret kuten yllä, merkitä näitä juuria jollakin sovitulla tavalla ja laskea niillä symbolisesti laajennuskunnassa. Asia ei kuitenkaan ole aivan niin yksinkertainen toteuttaa kuin äkkipäätä luulisi. Niinpä ohjelmistoissa tätä ei ole yleensä tuettu kuin vain osittain. Tuttu esimerkki on Q:n laajentaminen polynomin 1+x 2 juurella i = 1. Tuloksena on kompleksisten rationaalilukujen kunta Q(i). Huomaa, että laajennuksessa on automaattisesti mukana 1+x 2 :n toinenkin juuri i. Itse asiassa Q:hun liitetty juuri voitaisiin tulkita kummaksi tahansa näistä kahdesta. 2 Q(i) muodostuu kaikista muotoa r + si olevista kompleksiluvuista, missä r ja s ovat rationaalilukuja. Yleensäkin on tavallista, että liitettäessä kuntaan jonkin jaottoman polynomin juuri, sinne tulee ko. polynomin muitakin juuria, joskus kaikki juuret. Liitettävä juuri voidaan valita miksi tahansa näistä juurista, rakenne on aivan sama. Q:n laajennuksissa esiintyvät juuret ovat reaali- tai kompleksilukuja ja paikannettavissa reaaliakselilla ja kompleksitasolla. Symbolisesti laskettaessa juuria merkitään symboleilla ja silloin on yleensä tarpeen kiinnittää juuret, ts. tietää mikä symboli vastaa mitäkin reaaliakselilla tai kompleksitasolla olevaa juurta. Tähän tarvitaan juurten paikannusmenetelmiä (ks. esimerkiksi MIGNOTTE tai AKRITAS). 5.4 Rationaalifunktiot ja osamurtokehitelmä Kokonaisalueen D polynomirengas on myös kokonaisalue, joten se voidaan laajentaa murtokunnakseen. Tämä murtokunta on ns. D:n rationaalifunktioiden kunta, merkitään D(x), ja sen alkiot ovat muotoa p(x)/q(x),missä p(x) ja q(x) ovat D[x]:n polynomeja. (Muista: p 1 (x)/q 1 (x) 2 Helposti saman jaottoman polynomin eri juuret sekaantuvat huolettomassa laskussa. Ohjelmistotkin tekevät tällaisia virheitä. Esimerkkinä tuttu väärä lasku Q(i):ssä: 1= 1= ( 1)( 1) = 1 1= 1.
58 LUKU 5. POLYNOMIT 54 ja p 2 (x)/q 2 (x) samaistetaan, jos p 1 (x)q 2 (x) =p 2 (x)q 1 (x).) Jos s.y.t. on saatavissa, voidaan rationaalifunktio p(x)/q(x) kirjoittaa supistettuun muotoonsa supistamalla d(x) =syt(p(x), q(x)) pois sekä osoittajasta p(x) että nimittäjästä q(x): p(x) q(x) = d(x)p (x) d(x)q (x) = p (x) q (x). Toisaalta myös D itse voidaan laajentaa murtokunnakseen Q(D), jolle on polynomirengas Q(D)[x] sekä rationaalifunktioiden kunta Q(D)(x). Silloin Q(D)[x] voidaan ajatella D[x]:n laajennukseksi ja Q(D)(x) samaistetaan D(x):ään: D D[x] D(x) Q(D) Q(D)[x] Q(D)(x) Rationaalifunktioiden yhteenlasku tapahtuu tutulla tavalla tekemällä nimittäjät samannimisiksi, ts. summa on muotoa p 1 (x) q 1 (x) + p 2(x) q 2 (x) + + p k(x) q k (x) = p(x) q 1 (x)q 2 (x) q k (x) (ja jos s.y.t. on käytettävissä voidaan nimittäjksi ottaa pyj(q 1 (x),q 2 (x),...,q k (x))). Tämän operaation käänteinen operaatio, erityisesti laajennettuna osamurtokehitelmäksi asti, on varsin usein esiintyvä. Se perustuu polynomien p.y.j.:n Bezout n muotoon harmonisena yhdelmänä (ks. Pykälä 3.3, Bezout n lause p.y.j.:lle): 1 pyj(q 1 (x),q 2 (x),...,q k (x)) = c 1(x) q 1 (x) + c 2(x) q 2 (x) + + c k(x) q k (x). Huomaa, että harmoninen yhdelmä on olemassa vasta rationaalifunktioiden kunnassa, ei itse polynomirenkaassa. Lisäksi tietysti oletetaan, että Bezout n muoto s.y.t.:lle on olemassa. Seuraava menettely laskee yhdelmän ED:ssä tapauksessa k =2: Nimittäjien tekeminen erinimisiksi: 1. Muodostetaan yleistetyllä Eukleideen algoritmilla d(x) =syt(q 1 (x),q 2 (x)) = e 1 (x)q 1 (x)+e 2 (x)q 2 (x). 2. Lauseen 4.3 mukaisesti pyj(q 1 (x),q 2 (x)) = n(q 1(x)q 2 (x)) d(x) = uq 1(x)q 2 (x), d(x) missä u on yksikkö (itse asiassa q 1 (x):n ja q 2 (x):n johtavien kerrointen tulon yksikköosan inverssi). Muodostetaan 1 pyj(q 1 (x),q 2 (x)) = u 1 e 2 (x) + u 1 e 1 (x) q 1 (x) q 2 (x) ja valitaan c 1 (x) =u 1 e 2 (x) ja c 2 (x) =u 1 e 1 (x).
59 LUKU 5. POLYNOMIT 55 Lause 5.7. Jos D[x] on ED ja deg(p(x)) < deg(q 1 (x)q 2 (x)) ja vielä syt(q 1 (x),q 2 (x)) =1, niin on yksikäsitteiset sellaiset D[x]:n polynomit a(x) ja b(x), että p(x) q 1 (x)q 2 (x) = a(x) q 1 (x) + b(x) q 2 (x), missä deg(a(x)) < deg(q 1 (x)) (tai a(x) =0)jadeg(b(x)) < deg(q 2 (x)) (tai b(x) =0). Todistus. Jos syt(q 1 (x),q 2 (x)) =1, niin pyj(q 1 (x),q 2 (x)) = uq 1 (x)q 2 (x), missä u on yksikkö. Nimittäjien tekeminen erinimisiksi antaa silloin seuraavan: p(x) q 1 (x)q 2 (x) = p(x)c 1(x) q 1 (x) + p(x)c 2(x). q 2 (x) Jakamalla osoittajat nimittäjillä voidaan olettaa, että osoittajan aste kummassakin yhteenlaskettavassa on pienempi kuin nimittäjän. Osamäärinä syntyvät polynomit nimittäin supistuvat pois, koska vasemman puolen osoittajan aste on pienempi kuin nimittäjän. Näin saadaan haluttu muoto p(x) q 1 (x)q 2 (x) = a(x) q 1 (x) + b(x) q 2 (x). a(x) ja b(x) ovat yksikäsitteiset, sillä jos myös p(x) q 1 (x)q 2 (x) = a (x) q 1 (x) + b (x) q 2 (x). missä deg(a (x)) < deg(q 1 (x)) (tai a (x) =0)jadeg(b (x)) < deg(q 2 (x)) (tai b (x) =0), niin (a(x) a (x))q 2 (x) =(b (x) b(x))q 1 (x). D[x] on UFD, ja koska syt(q 1 (x),q 2 (x)) =1,eiq 1 (x):llä ja q 2 (x):llä ole yhteisiä alkutekijöitä. Siis q 1 (x) jakaa a (x) a(x):n, mutta koska tämän aste on pienempi kuin q 1 (x):n aste, pitää olla a (x) a(x) =0,jamyösb (x) b(x) =0. Seuraus. Jos D[x] on ED ja deg(p(x)) < deg(q 1 (x)q 2 (x) q m (x)) ja vielä polynomien q 1 (x),q 2 (x),...,q m (x) pareittaiset s.y.t.:t ovat =1, niin on yksikäsitteiset sellaiset D[x]:n polynomit a 1 (x),a 2 (x),...,a m (x),että p(x) q 1 (x)q 2 (x) q m (x) = a 1(x) q 1 (x) + a 2(x) q 2 (x) + + a m(x) q m (x). missä deg(a i (x)) < deg(q i (x)) (tai a i (x) =0)(i =1, 2,...,m). Todistus. Suoritetaan ensin nimittäjien erinimisiksi tekeminen rationaalifunktiolle p(x) q 1 (x)(q 2 (x) q m (x)) = a 1(x) q 1 (x) + b 1 (x) q 2 (x) q m (x), sitten rationaalifunktiolle b 1 (x) q 2 (x)(q 3 (x) q m (x)) = a 2(x) q 2 (x) + b 2 (x) q 3 (x) q m (x), jne. Yksikäsitteisyys seuraa myös. Jos nimittäin esimerkiksi q 2 (x):n osoittaja a 2 (x) voitaisiin valita kahdella eri tavalla, voitaisiin myös tehdä nimittäjät erinimisiksi rationaalifunktiolle p(x) q 2 (x)(q 1 (x)q 3 (x) q m (x)) = a 2(x) q 2 (x) + b(x) q 1 (x)q 3 (x) q m (x), kahdella eri tavalla, mikä on mahdotonta.
60 LUKU 5. POLYNOMIT 56 Osamurtoihinjaossa mennään vielä pidemmälle: Silloin nimittäjässä saa olla polynomien potensseja. Lähdetään liikkeelle yksinkertaisesta tapauksesta: Lause 5.8. Jos D[x] on ED ja deg(p(x)) < deg(q(x) k ), niin on yksikäsitteiset sellaiset D[x]:n polynomit a 1 (x),a 2 (x),...,a k (x), että p(x) q(x) k = a 1(x) q(x) + a 2(x) q(x) a k(x) q(x) k, missä deg(a i (x)) < deg(q(x)) (tai a i (x) =0)(i =1, 2,...,k). Todistus. Todistus on aivan samanlainen kuin muodostettaessa kokonaisluvun kantaesitystä Lauseen 3.4 todistuksessa, kokonaislukua vastaa nyt p(x) ja kantalukua q(x). Tulos nimittäin voidaan kirjoittaa myös muotoon p(x) =a 1 (x)q(x) k 1 + a 2 (x)q(x) k a k (x). Toisaalta se saadaan (yksikäsitteisyyttä lukuunottamatta) myös p.y.j.:n Bezout n muodosta, sillä pyj(q(x),q(x) 2,...,q(x) k )=n(q(x)) k. Seuraus. Jos D[x] on ED ja deg(p(x)) < deg(q 1 (x) k 1 q 2 (x) k2 q m (x) km ) ja vielä polynomien q 1 (x),q 2 (x),...,q m (x) pareittaiset s.y.t.:t ovat =1, niin on yksikäsitteiset sellaiset D[x]:n polynomit a ij (x) (i =1, 2,...,m; j =1, 2,...,k i ), että p(x) q 1 (x) k 1 q2 (x) k 2 qm (x) km = a 11(x) q 1 (x) + a 12(x) q 1 (x) + + a 1k 1 (x) 2 q 1 (x) k 1 + a 21(x) q 2 (x) + a 22(x) q 2 (x) + + a 2k 2 (x) 2 q 2 (x) k a m1(x) q m (x) + a m2(x) q m (x) + + a mk m (x) 2 q m (x), km missä deg(a ij (x)) < deg(q i (x)) (tai a ij (x) =0)(i =1, 2,...,m; j =1, 2,...,k i )(ns. osamurtokehitelmä). Todistus. Suoritetaan ensin nimittäjien erinimisiksi tekeminen rationaalifunktiolle p(x) q 1 (x) k 1 q2 (x) k 2 qm (x) = b 1(x) km q 1 (x) k 1 ja jatketaan sitten siitä Lausetta 5.8 käyttäen. + b 2(x) q 2 (x) k b m(x) q m (x) km Kehitelmä voidaan etsiä yllä esitetyllä tavalla, Lauseiden 5.7 ja 5.8 ja niiden Seurauksien todistukset muodostavat algoritmin. Huomautus. Osamurtokehitelmää voidaan soveltaa myös, jos osoittajan aste on suurempi tai yhtäsuuri kuin nimittäjän: jaetaan vain ensin osoittaja nimittäjällä ja tehdään kehitelmä rationaalifunktiolle jakojäännös/nimittäjä. Kehitelmään tulee silloin mukaan polynomiyhteenlaskettava.
61 LUKU 5. POLYNOMIT 57 Tavallisin tilanne osamurtokehitelmän teossa on se, missä nimittäjä on pääpolynomi ja jaettu 1. asteen tekijöihin, ts. muotoa q(x) =(x b 1 ) k 1 (x b 2 ) k2 (x b m ) km. Esimerkiksi jokainen Q[x]:n (tai R[x]:n) pääpolynomi q(x), jonka aste on 1, voidaan kirjoittaa tähän muotoon, kunhan ensin saadaan käyttöön sen kaikki eri juuret. Tämä onnistuu siirryttäessä sopivaan kuntalaajennukseen L (tai peräti C:hen). Tällöin rationaalifunktiolle p(x)/q(x) saadaan L(x):ssä osamurtokehitelmä p(x) q(x) = r(x)+ a 11 a 12 + x b 1 (x b 1 ) + + a 1k1 2 (x b 1 ) k 1 + a 21 x b 2 + a 22 (x b 2 ) a 2k2 (x b 2 ) k a m1 a m2 + x b m (x b m ) + + a mkm 2 (x b m ), km missä a ij on kunnan L alkio (i =1, 2,...,m; j =1, 2,...,k i ). Tämä kehitelmä voidaan etsiä yo. tavalla, mutta myös seuraavalla ns. määräämättömien kerrointen menetelmällä: Tehdään kaikki oikean puolen rationaalifunktiot samannimisiksi ja lasketaan ne yhteen. Silloin osoittajan on oltava = p(x) q(x)r(x). Merkitsemällä puolittain osoittajien kertoimet samoiksi saadaan deg(q(x)) kpl lineaarisia yhtälöitä, joista a ij :t ratkaistaan. Vastaava kehitelmä saadaan Algebran peruslauseen nojalla tietysti aina C[x]:ssä. Q[x]:n (tai R[x]:n) pääpolynomi q(x) saadaan myös muotoon q(x) =q 1 (x)q 2 (x) q m (x), jossa q 1 (x),q 2 (x),...,q m (x) ovat 1. tai 2. astetta olevia reaalikertoimisia pääpolynomeja. Tällöin yo. menettely antaa peruskursseilta tutun reaalisen osamurtokehitelmän. Symbolinen osamurtokehitelmä saadaan merkitsemällä polynomin q(x) juuria symboleilla ρ 1,...,ρ m. Näiden kertaluvut saadaan nimittäin selville ns. neliöttömiin tekijöihin jaolla, ks. Pykälä 5.7. Sen jälkeen etsitään osamurtokehitelmä määräämättömien kerrointen menetelmällä symbolisesti. 5.5 Monen muuttujan polynomit ja rationaalifunktiot Renkaan R polynomirengas R[x] voidaan edelleen laajentaa uudeksi polynomirenkaaksi R[x][y], merkitään R[x, y], ja tämä edelleen polynomirenkaaksi R[x, y][z] = R[x, y, z], jne. Näitä renkaita kutsutaan monen muuttujan polynomirenkaiksi. Yleisesti voidaan peräkkäisillä laajennuksilla saada l muuttujan polynomirengas R[x 1,x 2,...,x l ]. Tämä ns. rekursiivinen esitys esittää R[x 1,x 2,...,x l ]:n polynomin p(x 1,x 2,...,x l ) muodossa p(x 1,x 2,...,x l )=a 0 (x 1,x 2,...,x l 1 )+a 1 (x 1,x 2,...,x l 1 )x l + +a nl (x 1,x 2,...,x l 1 )x n l l, missä a 0 (x 1,x 2,...,x l 1 ),a 1 (x 1,x 2,...,x l 1 ),...,a nl (x 1,x 2,...,x l 1 ) ovat polynomirenkaan R[x 1,x 2,...,x l 1 ] polynomeja, jotka jälleen esitetään vastaavassa muodossa, jne. Tutumpi esitysmuoto on monen muuttujan polynomin kirjoittaminen muotoa ax i 1 1 x i 2 2 x i l l, missä a 0, olevien termien (ns. monomien) summaksi. (Samanmuotoiset monomit tietysti yhdistetään summassa.) Monomit voidaan asettaa järjestykseen monella tavalla. Kaksi tavallisinta ovat seuraavat järjestykset:
62 LUKU 5. POLYNOMIT 58 (1) Leksikograafinen järjestys: Monomi ax i 1 1 x i 2 2 x i l l on leksikograafisesti pienempi kuin monomi bx j 1 1 x j 2 2 x j l, jos ensimmäinen nollasta eroava eksponenttien erotus jonossa l i 1 j 1,i 2 j 2,..., i l j l on negatiivinen. Huomaa, miten leksikograafinen järjestys perustuu annettuun muuttujien järjestykseen x 1,x 2,...,x l. Leksikograafiselle järjestykselle käänteistä järjestystä kutsutaan käänteisleksikograafiseksi järjestykseksi. (2) Kokonaisastejärjestys: Monomin ax i 1 1 x i 2 2 x i l l kokonaisaste on i 1 + i i l.kokonaisastejärjestyksessä monomit asetetaan ensin järjestykseen kokonaisasteen mukaan eli mitä pienempi kokonaisaste sitä pienempi monomi. Samaa kokonaisastetta olevat monomit asetetaan sitten jollain sovitulla tavalla järjestykseen (esimerkiksi leksikograafisesti tai käänteisleksikograafisesti). Polynomin p(x 1,x 2,...,x l ) johtava termi (eli johtava monomi)onkäytettyä järjestystä vastaava suurin monomi ja johtava kerroin tämän kerroin. Leksikograafista järjestystä käytettäessä polynomin p(x 1,x 2,...,x l ) aste (p(x 1,x 2,...,x l )) on vektori (n 1,n 2,...,n l ), joka saadaan johtavasta termistä ax n 1 1 x n 2 2 x n l l. (Nollapolynomille tämä aste ei ole lainkaan määritelty.) Kokonaisastejärjestystä käytettäessä aste deg(p(x 1,x 2,...,x l )) on suurin esiintyvä monomin kokonaisaste. Monen muuttujan polynomirenkaiden ominaisuudet ovat paljolti samat kuin yhden muuttujan tapauksessa (ks. Pykälä 5.1), tietyin tärkein poikkeuksin: Lause 5.1 ei pidä paikkaansa, ts. kunnankaan monen muuttujan polynomirengas ei ole ED eli siinä ei ole jakolaskua! Tämä aiheuttaa suuria vaikeuksia monen muuttujan polynomien käsittelyssä. Kuten eo. pykälissäkin on havaittu, monet algoritmit toimivat pohjimmiltaan jakolaskun varassa. Tilanteen pelastaa ainakin osittain Eukleideen algoritmin yleistäminen eräällä tavalla monen muuttujan polynomirenkaisiin, ns. Buchbergerin algoritmi, jolla konstruoidaan monen muuttujan polynomirenkaiden ihanteiden ns. Gröbnerin kantoja. Huomaa kuitenkin, että jos R on UFD, niin samoin ovat sen kaikki monenkin muuttujan polynomirenkaat (rekursiivisen määrittelyn nojalla). Jos D on kokonaisalue, niin samoin on sen monen muuttujan polynomirengas D[x 1,x 2,..., x l ]. Näin ollen D[x 1,x 2,...,x l ] voidaan laajentaa murtokunnakseen D(x 1,x 2,...,x l ).Kyseessä on ns. D:n monen muuttujan rationaalifunktioiden kunta. 5.6 Transsendenttiset laajennukset Kokonaisalueeseen D voidaan helposti liittää uusi alkio y, joka ei ole minkään polynomirenkaan D[x] nollasta eroavan polynomin juuri, ns. D:n (suhteen) transsendenttinen alkio. Tarvittava laajennus on nimittäin formaalisesti ottaen polynomirengas D[y], jossa y tulkitaan muuttujaksi. Tästä ei tule vaikeuksia, y:hän ei ole minkään D[x]:n polynomin juuri. Liitettäessä siis esimerkiksi luku π (joka on transsendenttiluku eli ei ole minkään Q[x]:n polynomin juuri) rationaalilukujen renkaaseen Q saadaan oleellisesti polynomirengas Q[π], jossa käytetään π:tä formaalisesti muuttujana. Näin tällainen laajennus voidaan tehdä puhtaan symbolisesti. Vastaavasti, jos kuntaan F halutaan liittää uusi alkio y, joka ei ole minkään polynomirenkaan F [x] nollasta eroavan polynomin juuri, tarvittava kuntalaajennus on formaalisesti ottaen rationaalifunktioiden kunta F (y), jossa y tulkitaan muuttujaksi. Liitettäessä siis esimerkiksi
63 LUKU 5. POLYNOMIT 59 transsendenttiluku π rationaalilukujen kuntaan Q saadaan oleellisesti rationaalifunktioiden kunta Q(π), jossa käytetään π:tä muuttujana. Jälleen laajennus voidaan tehdä puhtaan symbolisesti. Yllä olevia laajennuksia kutsutaan transsendenttisiksi laajennuksiksi. Vastaavasti voidaan liittää kokonaisalueeseen tai kuntaan useampia transsendenttisia alkioita, jolloin saadaan vastaavasti (oleellisesti) monen muuttujan polynomirengas tai rationaalifunktioiden kunta. Tehtäessä transsendenttisiä laajennuksia on tiedettävä, että liitettävä alkio on todella transsendenttinen. Luvuillekin transsendenttisyys on monesti avoin probleema, ei esimerkiksi tiedetä onko π + e transsendenttiluku vai ei. Jos (muka) transsendenttisenä alkiona liitetään alkio, joka ei itse asiassa sitä ole, voi periaatteessa odottaa vaikeuksia. (Tosin, jos π + e sattuisi olemaankin algebrallinen luku, niin asia paljastuu heti, kun transsendenttisessä liitoksessa Q(π + e) tulee ristiriita!) D:n transsendenttistä alkiota t voidaan käyttää D[x]:n (nollasta eroavien) polynomien p(x) ja q(x) samuuden testaamiseen: 1. Lasketaan p(t) sekä q(t). 2. Jos p(t) q(t), niin tulostetaan p(x) q(x) ja lopetetaan. 3. Jos p(t) =q(t), niin tulostetaan p(x) =q(x) jalopetetaan. (Koska t on tällöin polynomin p(x) q(x) juuri ja on transsendenttinen, on p(x) q(x) nollapolynomi.) Vaikeus esimerkiksi Q[x]:n polynomien tapauksessa on se, että p(t) ja q(t) saadaan käytännössä lasketuksi vain tietyllä tarkkuudella. Jos tarkkuus riittää osoittamaan, että p(t) q(t), onasia selvä. Toisaalta, jos useammallekin transsendenttiluvulle t on p(t) =q(t) käytetyn tarkkuuden puitteissa, voidaan tämä katsoa vahvaksi näytöksi siitä, että p(x) =q(x). 5.7 Polynomien algoritmeja Yhteen-, vähennys-, kerto- ja jakolasku Tavalliset koulussa opitut yhteen-, vähennys-, kerto- ja jakolaskumenetelmät ovat aivan käyttökelpoisia. Aivan kuin kokonaisluvuillekin, nopeampi kertolasku saadaan käyttämällä Karatsuban algoritmia (joka on helppo modifioida polynomeille) ja vielä nopeampi käyttämällä nopeaa Fourier n muunnosta (FFT, ks. esimerkiksi LIPSON ja vrt. myös sivu 33). Interpolaatio ja Kiinalainen jäännöslause Kun tunnetaan enintään n-asteisen polynomin p(x) arvot p 1,p 2,...,p n+1 eri pisteissä a 1,a 2,...,a n+1, määräytyy polynomi p(x) yksikäsitteisesti (Lauseen 5.4 toinen Seuraus). Interpolaation tehtävä on löytää polynomi p(x), kun p 1,p 2,...,p n+1 ja a 1,a 2,...,a n+1 on annettu. Jos esiintyvä polynomirengas D[x] on ED, interpolaatiotehtävä liittyy (yllättäen 3 ) likeisesti polynomeille formuloituun Kiinalaiseen jäännöslauseeseen: Lause 5.9. (Kiinalainen jäännöslause) Jos D[x] on ED ja D[x]:n polynomien m 1 (x),m 2 (x),...,m k (x) pareittain muodostetut s.y.t.:t ovat =1ja vielä I 1,I 2,...,I k sekä I ovat polynomien m 1 (x),m 2 (x),...,m k (x) sekä m 1 (x)m 2 (x) m k (x) generoimat ihanteet, vastaavasti (ks.pykälä 5.3), on täsmälleen yksi polynomi p(x) modulo m 1 (x)m 2 (x) m k (x), joka toteuttaa kaikki k kongruenssia p(x) s i (x) mod I i (i =1, 2,...,k), missä s 1 (x),s 2 (x),...,s k (x) ovat annettuja D[x]:n polynomeja. 3 Ei ehkä sentään, sillä kokonaislukujen Kiinalainen jäännöslausekin on eräänlainen interpolaatiotulos, kun sitä sillä silmällä katsoo.
64 LUKU 5. POLYNOMIT 60 Todistus. Todistus on hyvin samantapainen kuin Kiinalaisen jäännöslauseen todistus Pykälässä 3.4. Jos merkitään M(x) =m 1 (x)m 2 (x) m k (x) ja M i (x) = M(x) (i =1, 2,...,k), m i (x) niin saadaan seuraava algoritmi (vrt. Kiinalaisen jäännöslauseen todistus Pykälässä 3.4): 1. Kirjoitetaan yleistettyä Eukleideen algoritmia käyttäen syt(m 1 (x),m 2 (x),...,m k (x)) =1Bezout n muotoon 2. Tulostetaan 1=c 1 (x)m 1 (x)+c 2 (x)m 2 (x)+ + c k (x)m k (x). p(x) c 1 (x)m 1 (x)s 1 (x)+c 2 (x)m 2 (x)s 2 (x)+ + c k (x)m k (x)s k (x) mod I. Tässä tulostus on mukavinta antaa enintään deg(m(x)) 1-asteisena polynomina, eli jäännösluokan modulo M(x) edustajana. Valitaan nyt interpolaatiota ajatellen k = n +1ja polynomit m 1 (x),m 2 (x),...,m n+1 (x) seuraavasti: m i (x) =x a i (i =1, 2,...,n+1). Silloin M(x) =(x a 1 )(x a 2 ) (x a n+1 ) ja M i (x) = M(x) n+1 = (x a j ) (i =1, 2,...,n+1). x a i j=1 j i Jakamalla ja sijoittamalla x = a i havaitaan, että p(x) =(x a i )q i (x)+p(a i )=(x a i )q i (x)+p i (i =1, 2...,n+1). Niinpä valitaankin jolloin kongruenssi s i (x) =p i p(x) s i (x) (i =1, 2,...,n+1), mod I i tarkoittaa nimenomaan sitä, että p(a i )=p i (i =1, 2,...,n+1). Eo. algoritmi antaa nyt p(x):n modulo I muodossa p(x) c 1 (x)m 1 (x)p 1 + c 2 (x)m 2 (x)p c n+1 (x)m n+1 (x)p n+1 mod I eli p(x) =c 1 (x)m 1 (x)p 1 + c 2 (x)m 2 (x)p c n+1 (x)m n+1 (x)p n+1 + r(x)m(x). Siirrytään sitten pienempiasteiseen jäännösluokan edustajaan modulo I. Ensinnäkin M(a 1 )= M(a 2 )= = M(a n+1 )=0, joten r(x)m(x) voidaan interpolointia ajatellen jättää pois. Edelleen p(a i )=p i c i (a i )M i (a i )=p i (i =1, 2,...,n+1).
65 LUKU 5. POLYNOMIT 61 Jos p i 0,onc i (a i )M i (a i )=1(supistus), joten interpolointia ajatellen voidaan c i (x) silloin korvata vakiolla c i (a i )=M i (a i ) 1 (ainakin murtokunnassa Q(D)). (Jos taas p i =0,onsamantekevää mitä c i (x) on, eikö totta.) Kaiken kaikkiaan saadaan p(x) interpoloiduksi muodossa n+1 p(x) = p i M i (a i ) 1 M i (x) i=1 (ns. Lagrangen interpolaatiokaava). Huomaa, että oikean puolen asteluku on enintään n kuten pitääkin. Huomautus. Vastaavanlaisella menettelyllä saadaan Kiinalaisesta jäännöslauseesta myös toinen klassinen interpolaatiokaava, ns. Newtonin interpolaatiokaava, ks. esimerkiksi LIPSON. Tekijöihinjako Jos D on UFD ja siinä tunnetaan tekijöihinjakoalgoritmi, se voidaan muokata D[x]:n tekijöihinjakoalgoritmiksi (D[x]:hän on silloin myös UFD), edellyttäen, että D:ssä on äärellinen määrä yksiköitä u 1,u 2,...,u l ja että D on ääretön. Ns. Kroneckerin algoritmi etsii tällöin polynomille p(x) alkutekijän, jos sellainen on: Kroneckerin algoritmi: 1. Jos p(x)onnolla, ei tekijöihinjakoa ole ja lopetetaan. 2. Jos p(x) on joku yksiköistä u 1,u 2,...,u l, tekijöihinjako on triviaali ja lopetetaan. 3. Jos p(x) ei ole nolla eikä yksikkö, etsitään sen sisältö cont(p(x)) (ks. Pykälä 5.1). 4. Jos cont(p(x)) ei ole yksikkö, etsitään sille alkutekijä D:n tekijöihinjakoalgoritmilla, tulostetaan se ja lopetetaan. 5. Jos cont(p(x)) on yksikkö, asetetaan m deg(p(x)). 6. Jos m =1, tulostetaan alkutekijä n(p(x)) ja lopetetaan. Jos m > 1, asetetaan s m/2. Huomaa, että jos p(x):llä on aito tekijä, sillä on myös aito tekijä, jonka aste on enintään s. 7. D on ääretön, joten voidaan etsiä D:n eri alkiot a 1,a 2,...,a s+1. Jos jokin näistä, vaikkapa a i,onp(x):n juuri, on p(x):llä tekijä x a i ja tulostetaan se ja lopetetaan. Näin voidaan olettaa, että p(a i ) 0 (i =1, 2,...,s+1). 8. Etsitään kaikki p(a i ):n tekijät (mukaanlukien yksiköt) (i =1, 2,...,s+1). Tekijöitä on äärellinen määrä, koska yksiköitä on äärellinen määrä. 9. Asetetaan B {(b 1,b 2,...,b s+1 ) b i on p(a i ):n tekijä (i =1, 2,...,s+1)}. 10. Lasketaan (vaikkapa Lagrangen interpolaatiokaavalla) kullekin B:n vektorille b =(b 1,b 2,...,b s+1 ) sellainen enintään astetta s oleva polynomi t b (x), että t b (a i )=b i (i =1, 2,...,s+1). Tämä voidaan tehdä murtokunnan polynomirenkaassa Q(D)[x], joka on ED (D:hän ei välttämättä ole ED).
66 LUKU 5. POLYNOMIT Jos nyt u(x) on enintään astetta s oleva p(x):n tekijä D[x]:ssä, niin u(a i ) jakaa p(a i ):n D:ssä (i =1, 2,...,s+1). Siispä u(x) on jokin edellisen kohdan polynomeista t b (x). Etsitäänkin polynomeista t b (x) sellainen D[x]:n polynomi u(x) (ei D:n yksikkö), joka Q(D)[x]:ssä jakaa p(x):n siten, että osamäärä on D[x]:n polynomi, asetetaan p(x) u(x) ja mennään kohtaan 3. (Huomaa, että tällöin p(x):n aste pienenee ainakin puoleen.) Itse asiassa jokainen polynomi u(x), joka jakaa p(x):n Q(D)[x]:ssä, johtaa p(x):n tekijään, kun se kerrotaan sopivalla D:n alkiolla. (Tämä seuraa ns. Gaussin lemmasta, ks. alla.) Jos p(x):n tekijää ei löydy, se on jaoton. Silloin tulostetaan n(p(x)) ja lopetetaan. Huomautus. Kroneckerin algoritmi voidaan jatkaa myös monen muuttujan polynomirenkaille käyttäen rekursiivista esitystä. Huomautus. Kroneckerin algoritmi voidaan muokata myös kokonaislukujen alkutekijän etsimiseen: Lagrangen interpolaation sijasta käytetään Kiinalaista jäännöslausetta, jne. Tämä versio on jonkinlainen Eratostheneen seulan yleistys. Näin ollen Kroneckerin algoritmi on eräänlainen seulamenetelmä sekin. Kroneckerin algoritmi ei sellaisenaan sovellu tekijöihinjakoon, jos yksiköitä on ääretön määrä, kuten on esimerkiksi äärettömän kunnan polynomirenkaassa. Jos kuitenkin on kyse UFD:n D murtokunnan polynomirenkaasta, niin Kroneckerin algoritmi on varsin helposti modifioitavissa siihen sopivaksi. Seuraava algoritmi kirjoittaa Q(D)[x]:n polynomin p(x) muotoon p(x) = a b p prim(x), missä p prim (x) on primitiivinen D[x]:ssä ja a, b D: 1. Lasketaan p(x):n kerrointen nimittäjien p.y.j. b (tai tulo, jos se ei ole liian suuri). Silloin bp(x) on D[x]:n polynomi. 2. Lasketaan D[x]:n polynomin bp(x) kerrointen s.y.t. a. 3. Otetaan a tekijäksi bp(x):stä. Jäljelle jäävä polynomi on kysytty primitiivinen polynomi p prim (x). Jos nyt p(x):n tekijöihinjako Q(D)[x]:ssä on p(x) =u(p(x))p 1 (x) i 1 p 2 (x) i2 p k (x) i k, niin yo. algoritmia soveltaen se voidaan kirjoittaa muotoon p(x) = a b p 1,prim(x) i 1 p 2,prim (x) i2 p k,prim (x) i k, missä p 1,prim (x) i 1,p 2,prim (x) i 2,...,p k,prim (x) i k ovat D[x]:n primitiivisiä polynomeja. Toisaalta pätee Lause (Gaussin lemma) UFD:n D polynomirenkaan polynomien tulo on primitiivinen tarkalleen silloin, kun sen tulontekijät ovat primitiivisiä. Todistus. Ks. kurssi Algebra 1.
67 LUKU 5. POLYNOMIT 63 Siispä p prim (x) =p 1,prim (x) i 1 p 2,prim (x) i2 p k,prim (x) i k, ja riittää jakaa p prim (x) tekijöihin D[x]:ssä Kroneckerin algoritmilla. Tällä menettelyllä voidaan Kroneckerin algoritmilla jakaa tekijöihin esimerkiksi Q[x 1,x 2,...,x n ]:n polynomit. Kroneckerin algoritmi on tekijöihinjakoa ajatellen varsin hidas johtuen vektorien (b 1,b 2,..., b s+1 ) suuresta määrästä, jo yksiköitäkin on (kokonaisluvuillekin) kaksi. Huomattavasti nopeampiakin algoritmeja on ja myös yleisempiä. Eräs tällainen on Kroneckerin algoritmin yleistys, ns. Tragerin algoritmi, jolla voidaan jakaa polynomeja tekijöihin Q:n algebrallisten laajennuskuntien polynomirenkaissa, ks. esimerkiksi GEDDES &CZABOR &LABAHN. Kroneckerin algoritmi ei sovellu sellaisenaan, mikäli D on äärellinen (esimerkiksi äärellinen kunta). Toisaalta tällöin D[x]:n polynomin p(x) mahdollisia tekijöitä on vain äärellinen määrä, joten periaatteessa selvitään kokeilemalla läpi kaikki enintään astetta deg(p(x))/2 olevat polynomit. Käytännössä kokeilu on liian aikaaviepää ja tarvitaan muita algoritmeja, esimerkiksi ns. Berlekampin algoritmia, ks. esimerkiksi GEDDES &CZABOR &LABAHN. Neliöttömiin tekijöihin jako Polynomirenkaan polynomin alkutekijöihinjako on varsin työläs tehtävä. Huomattavasti helpompi on ns. jako neliöttömiin tekijöihin, joka usein riittää (esimerkiksi symbolisessa integroinnissa). D[x]:n polynomin p(x) sanotaan olevan neliötön, jos siinä ei ole tekijänä yksiköitä lukuunottamatta minkään D[x]:n polynomin neliö. UFD:n D polynomirenkaan polynomin p(x) jako neliöttömiin tekijöihin on muotoa p(x) =ap 1 (x)p 2 (x) 2 p 3 (x) 3 p k (x) k, missä p 1 (x),p 2 (x),...,p k (x) ovat primitiivisiä neliöttömiä D[x]:n polynomeja (mahdollisesti = 1), joiden parittaiset s.y.t.:t ovat = 1, ja a = cont(p(x)). Ilmeisesti neliöttömiin tekijöihin jako saataisiin p(x):n alkutekijöihinjaosta kertomalla keskenään samaa kertalukua olevat alkutekijät, mutta helpompikin tapa on. Kätevä apuväline tässä on polynomin formaalinen derivointi: D[x]:n polynomin (formaalinen) derivaatta on D[x]:n polynomi p(x) =a 0 + a 1 x + a n x n p (x) =a 1 +2a 2 x + + na n x n 1. Huomaa, että p (x):n aste voi olla pienempikin kuin n 1, sillä yleisesti D:n nollasta eroavan alkion monikerta voi olla nolla (eli tässä na n voi olla nolla). Vakiopolynomin derivaatta on nollapolynomi. Derivoinnille pätevät muutkin tutut derivointisäännöt: (1) (p(x) ± q(x)) = p (x) ± q (x) (2) (p(x)q(x)) = p (x)q(x)+p(x)q (x) (3) (p(x) m ) = mp(x) m 1 p (x) (m =1, 2,...) Näistä (1) on ilmeinen, (2) on helppo mutta vähän työläs todistaa (jätetään harjoitukseksi) ja (3) seuraa suoraan (2):sta.
68 LUKU 5. POLYNOMIT 64 Lause Jos UFD:n D minkään nollasta eroavan alkion monikerta ei ole nolla 4, niin D[x]:n primitiivinen polynomi p(x) (ei vakio) on neliötön tarkalleen silloin, kun syt(p(x),p (x)) =1. Todistus. Jos q(x) 2 jakaa p(x):n, niin p(x) on muotoa ja derivointisääntöjen nojalla p(x) =q(x) 2 s(x) p (x) =2q(x)q (x)s(x)+q(x) 2 s (x), mistä nähdään, että q(x) jakaa tällöin p (x):n ja siis myös syt(p(x),p (x)):n. Näin ollen, jos q(x) ei ole yksikkö, ei sitä ole myöskään syt(p(x),p (x)). Toisaalta, jos p(x) on neliötön ja syt(p(x),p (x)) = d(x), niin p(x):n alkutekijöihinjako on muotoa p(x) =q 1 (x)q 2 (x) q k (x), ja ellei d(x) ole yksikkö, niin sen alkutekijät ovat tässä mukana. Asia on selvä jos d(x) on yksikkö, joten oletetaan, että se ei sitä ole. Jälleen derivointisääntöjä noudattaen p (x) =q 1(x)q 2 (x) q k (x)+q 1 (x)q 2(x) q k (x)+ + q 1 (x)q 2 (x) q k(x). Koska d(x) ei nyt ole yksikkö, on sillä tekijänä jokin p(x):n alkutekijöistä, sanotaan q i (x). d(x) jakaa p (x):n, joten q i (x) jakaa nyt q i(x):n. Koska q i(x) on joko nollapolynomi tai alempaa astetta kuin q i (x),eijää muuta vaihtoehtoa kuin että q i(x) on nollapolynomi. Tästä kuitenkin seuraa ristiriita, sillä q i (x) on ainakin 1. astetta eikä siitä derivoimalla saa nollapolynomia, koskapa sen johtavan kertoimen monikerta ei voi olla nolla. (Huomaa, että koska p(x) on primitiivinen, sillä ei ole vakiopolynomeja alkutekijöinään.) Ristiriita näyttää, että d(x):n on oltava yksikkö (ja yksikkönormaalina 1). Jos nyt derivoidaan primitiivisen polynomin p(x) neliötön hajoitelma saadaan p(x) =p 1 (x)p 2 (x) 2 p 3 (x) 3 p k (x) k, p (x) =p 1(x)p 2 (x) 2 p 3 (x) 3 p k (x) k +2p 1 (x)p 2 (x)p 2(x)p 3 (x) 3 p k (x) k mistä edelleen nähdään, että +3p 1 (x)p 2 (x) 2 p 3 (x) 2 p 3(x) p k (x) k + + kp 1 (x)p 2 (x) 2 p 3 (x) 3 p k (x) k 1 p k(x), d(x) =syt(p(x),p (x)) = p 2 (x)p 3 (x) 2 p 4 (x) 3 p k (x) k 1. Huomaa, että Lauseen 5.11 nojalla syt(p i (x),p i(x)) =1, sillä p i (x) on neliötön tekijä (i = 1, 2,...,k). Jakamalla saadaan 4 Tällöin sanotaan, että D:n karakteristika on nolla. r(x) = p(x) d(x) = p 1(x)p 2 (x) p k (x),
69 LUKU 5. POLYNOMIT 65 josta edelleen jakamalla saadaan ensimmäinen neliötön tekijä p 1 (x): p 1 (x) = r(x) syt(d(x),r(x)), sillä syt(d(x),r(x)) = p 2 (x) p k (x). Seuraava neliötön tekijä p 2 (x) saadaan jatkamalla d(x):stä, jne. Oletuksena on koko ajan, että D:ssä ei ole nollasta eroavia alkioita, joiden jokin monikerta olisi nolla. Myös tarvittavien s.y.t.:iden etsimisten ja jakolaskujen on oltava suoritettavissa (eli mieluiten D:n pitäisi olla ED). Neliöttömiin tekijöihin jako primitiiviselle polynomille: 1. Asetetaan L NULL (tyhjä jono). 2. Lasketaan p (x) sekä syt(p(x),p (x)) ja asetetaan d(x) syt(p(x),p (x)) ja r(x) p(x) d(x). 3. Jos d(x) on vakio, tulostetaan L,r(x) ja lopetetaan. 4. Jos d(x) ei ole vakio, lasketaan s(x) =syt(d(x),r(x)) sekä asetetaan L L,r(x)/s(x), d(x) d(x) s(x) ja r(x) s(x). Mennään kohtaan 3. Tämä algoritmi ei, kuten todettiin, ole sellaisenaan sovellettavissa tapauksiin, missä D:ssä on nollasta eroavia alkioita, joiden jokin monikerta on nolla. Se on kuitenkin yleistettävissä mm. äärellisten kuntien polynomirenkaisiin, ks. esimerkiksi GEDDES &CZABOR &LABAHN. Neliöttömiin tekijöihin jako mahdollistaa symbolisen osamurtoihin jaon, ks. Pykälä 5.4. Jaettaessa rationaalifunktio p(x) q(x), missä deg(p(x)) < deg(q(x)), osamurtoihin aloitetaan laskemalla nimittäjän q(x) jako neliöttömiin tekijöihin: q(x) =bq 1 (x)q 2 (x) 2 q 3 (x) 3 q k (x) k. Sen jälkeen muodostetaan tätä käyttäen (rationaalifunktioiden kunnassa) osamurtoihin jako: p(x) q(x) = a 1(x) q 1 (x) + a 2(x) q 2 (x) a k(x) q k (x) k. Jos nyt q j (x):llä olisi moninkertainen juuri, se olisi myös sen derivaatan q j(x) juuri ja edelleen Bezout n muodon kautta syt(q j (x),q j(x)):n juuri ja Lauseen 5.11 nojalla q j (x) ei olisikaan neliötön. Toisaalta polynomeilla q 1 (x),q 2 (x),...,q k (x) ei ole yhteisiä juuria, koska ne ovat pareittain keskenään jaottomia. Näin eri juuria voidaan merkitä symboleilla ρ 1,ρ 2,...,ρ m. Juuret, joiden kertaluku on l,ovat silloin nimenomaan tarkalleen kaikki polynomin q l (x) juuret. Huomautus. Neliöttömiin tekijöihin jaolla voidaan myös ottaa polynomista n:s juuri (silloin kun se on n:s potenssi). Yleensä on myös syytä ottaa polynomista neliöttömiin tekijöihin jako ennen varsinaista tekijöihinjakoa.
70 Luku 6 ESITYS JA SIEVENNYS 6.1 Kanoniset ja normaalit esitykset Ei ole ollenkaan yhdentekevää, miten symbolisesti (eli sanoina) esitetään polynomeja ja muita lausekkeita. Eroja syntyy jo esityksen vaatimassa tilassa, toiset esitykset taas ovat joidenkin operaatioiden kannalta parempia kuin muut. Esimerkiksi lauseketta (x + y + z) ˆ 1000 ei kannata avata, ellei se ole erityisesti tarpeen, siinä kun on avattuna puolen miljoonaa termiä ja suurin kerroinkin on melkein viisisataanumeroinen, ks. Pykälä 3.6. Myös supistamaton rationaalifunktio (x ˆ y ˆ 1000) / (x - y) on paljon lyhyempi kuin vastaava supistettu. Eräs ilmeinen päämäärä on päästä vertailemaan kahta symbolisesti esitettyä lauseketta: ovatko ne samat vai ei. Esimerkiksi, koska nollalla ei tunnetusti saa jakaa, jakolaskussa on tarkistettava, ettei jakaja vaan ole nolla. Lauseke L, esimerkiksi polynomi, voidaan esittää symbolisesti usealla ekvivalentilla tavalla. Merkitään L 1 L 2, jos L 1 ja L 2 ovat samat, esitys vain on erilainen. Jos jokin tietty esitystapa ν(l) on sellainen, että kaikille kyseeseen tuleville lausekkeille L (1) ν(l) L (ts. esitys ei muuta merkitystä), ja (2) jos L 0, niin myös ν(l) =ν(0) (ts. esitys tunnistaa nollan), niin esitystä kutsutaan normaaliksi. Huomaa, että symbolisesti esitys ν on itse asiassa kuvaus sanasta toiseen eli sanojen operaattori. Jos normaali esitys κ on vielä sellainen, että (3) jos L 1 L 2, niin myös κ(l 1 )=κ(l 2 ) (eli esitys tunnistaa merkityksen samuuden), niin kyseessä on kanoninen esitys. Jokainen kanoninen esitys on normaali, mutta ei kääntäen. Lausekkeille voi olla moniakin erityyppisiä normaaleja tai kanonisia esityksiä eri tilanteita varten. Ohjelmistot tukevat konversioita näiden välillä (konversio voi olla jopa automaattinen). Huomaa, että lausekkeella voi olla useita erilaisia samaa tyyppiä olevia olevia normaaleja esityksiä, mutta vain yksi kanoninen esitys. Vaikeudeksi tulee yllättäen kysymys siitä, mitä tarkoittaa, että L 0 tai että L 1 L 2. Lausekkeelle L 0 voisi tarkoittaa sitä, että sen määrittelemä funktio on identtisesti nolla, tai että se sievenee symbolisesti nollaksi. Jälkimmäisestä seuraa edellinen, mutta ei kääntäen. Itse asiassa ei voi olla minkäänlaista algoritmia, joka annetuista kyllin rikkaista elementeistä muodostetusta lausekkeesta päättelisi onko se identtisesti nolla vai ei! Lähdetään liikkeelle hyvin tunnetusta ratkeamattomuustuloksesta: 66
71 LUKU 6. ESITYS JA SIEVENNYS 67 Lause 6.1. (Matijasevits Tshudnovski-lause) On sellainen Z[a, x 1,...,x N ]:n polynomi 1 P (a, x 1,...,x N ), että ei ole algoritmia, joka saatuaan syötteenä kokonaisluvun a päättäisi onko yhtälöllä P (a, x 1,...,x N )=0kokonaislukuratkaisua muuttujien x 1,x 2...,x N suhteen vai ei. Todistus. Todistus on varsin pitkä ja vaikea, ks. esimerkiksi MANIN, Y.I.: A Course in Mathematical Logic. Springer Verlag (1977). Algoritmista ratkeamattomuutta käsitellään (ainakin) kursseilla Formaaliset kielet, Automaattiteoria, Matemaattinen logiikka ja Johdatus tietojenkäsittelyteoriaan. Seuraus. On sellainen Z[a, x 1,...,x N ]:n polynomi 1 P (a, x 1,...,x N ), että ei ole algoritmia, joka saatuaan syötteenä kokonaisluvun a päättäisi onko funktio ( ) N H P (a, x 1,...,x N ) 2 sin 2 πx i, missä H on Heavisiden funktio (ks. Pykälä 2.3), identtisesti nolla vai ei. Todistus. Funktio P (a, x 1,...,x N ) 2 + n=1 N sin 2 πx i on nolla reaaliluvuille x 1,x 2...,x N tarkalleen silloin, kun P (a, x 1,...,x N )=0kokonaisluvuille x 1,x 2...,x N,jailmeisesti arvoiltaan ei-negatiivinen. Symbolisessa muodossa olevana lauseke ( H P (a, x 1,...,x N ) 2 n=1 ) N sin 2 πx i siis funktiomielessä sievenee nollaksi joillekin kokonaislukuparametrin a arvoille, mutta millään algoritmilla ei voi selvittää mille arvoille. Tunnetut polynomit P (a, x 1,...,x N ) ovat mutkikkaita, mutta eivät kovin mutkikkaita ja ko. symbolinen lauseke voitaisiin hyvin kirjoittaa näkyviin. Yllättävää kyllä, vastaava tulos pätee myös yhden reaalimuuttujan funktioille: Lause 6.2. (Richardsonin 2. lause) Jos L on symbolisten lausekkeiden joukko, joka saadaan lähtien (1) rationaaliluvuista m / n sekä irrationaaliluvuista ln(2) ja Pi (eli se tuttu π), (2) muuttujasta x (tulkitaan identiteettifunktioksi), n=1 (3) eksponenttifunktiosta exp sekä sinifunktiosta sin ja (4) jostakin funktiosta a(x), joka on = x, kun x 0 (tällainen lauseke on esimerkiksi sqrt(x ˆ 2), arcosh(cosh(x)) tai itse abs(x)) käyttäen operaatioita +, -, * (funktioiden yhdistäminen), niin ei ole olemassa algoritmia, joka päättäisi annetusta L:n lausekkeesta L onko se (x:n funktiona) identtisesti nolla vai ei. 1 Tällaisia polynomeja tunnetaan lukuisia. Pienin tunnettu kokonaisaste lienee 4, jolloin N on jo hyvin iso.
72 LUKU 6. ESITYS JA SIEVENNYS 68 Todistus. Todistus 2 lähtien vaikkapa Matijasevits Tshudnovskin lauseesta on pitkä, mutta ei kovin vaikea, sivuutetaan kumminkin. Matijasevits Tshudnovski-lauseen Seuraus ja Richardsonin 2. lause ovat varsin ikäviä, sillä ne osoittavat, ettei symbolisesti esitetystä lausekkeesta päästäkään vain suoraan tulkitsemalla reaaliarvoiseen reaalimuuttujan funktioon, jonkalaisia peruskursseilla käsitellään. (Tai paremminkin, ettei tällainen tulkinta ole laskettavissa.) Normaalia esitystä ei siis laskennallisena ole mainituille lausekkeille olemassa lainkaan! Tilanteen pelastaa osittain se, että laskettavuusongelmat näyttäisivät tulevan esille vain varsin erikoisille lausekkeille. Nimenomaan Richardsonin 2. lauseen kohdassa (4) vaadittu itseisarvofunktio (tai vastaavasti Heavisiden funktio) ei aina esiinny tai voidaan kiertää. Usein on tosin niin, että algoritminen ratkeamattomuus näkyy myös yksinkertaisempien ratkeavien tapausten laskennallisena työläytenä. Lause lieneekin syynä siihen, etteivät ohjelmistot yleensä pyrikään tukemaan itseisarvofunktiota (tai muitakaan esimerkiksi Pykälässä 2.3:ssa mainittuja funktioita) kovinkaan täydellisesti. Toinen seuraus näistä tuloksista on, että lausekkeen algebrallisen tulkinnan merkitys korostuu. Jos lauseke voidaan tulkita algebrallisesti, esimerkiksi sopivan kuntalaajennustornin avulla, algoritminen ratkeamattomuus katoaa. Tästä syystä symbolisesti suoraankin esitettävissä olevat algebralliset funktiot pyritään usein esittämään Q:n tai Q(x):n kuntalaajennusten avulla (ks. Pykälä 6.5). Silloin esimerkiksi x 2 ei voi tulla mukaan, sillä se ei ole minkään Q(x)[y]:n jaottoman polynomin juuri. ( x 2 on Q(x)[y]:n polynomin y 2 x 2 juuri, mutta Q(x):ssä sen juuret ovat ±x.) Aivan vastaavaa pulmaa ei ole luvuille, mutta silti algebralliset luvut pyritään usein ottamaan mukaan kuntalaajennusten kautta, vaikka ne olisivatkin suoraan juurilausekkeina esitettävissä symbolisesti (vrt. alaviite sivulla 53 ja ks. Pykälä 6.3). 6.2 Polynomien ja rationaalifunktioiden esitykset ja sievennys Yhden muuttujan x polynomin a 0 + a 1 x + + a n x n määrittelyssä Pykälässä 5.1 esiintyvä jonoesitys a 0,a 1,..., a n on kanoninen esitys. Jos termien järjestys ei ole kiinnitetty, niin muotoa a 0 + a 1 x + + a n x n oleva esitys on normaali, mutta ei kanoninen. Jos kuitenkin kiinnitetään termien järjestys, esimerkiksi kasvavien x:n potenssien mukaiseksi, saadaan kanoninen esitys. Muotoa a 0 +a 1 x+ +a n x n olevassa esityksessä jätetään yleensä pois termit, joissa kerroin on nolla. Myös tällöin esitys on kanoninen. Tällainen esitys on myös lyhyempi, jos valtaosa kertoimista on nollia (ns. harva polynomi, vastakohtana ns. tiheä polynomi, jossa valtaosa kertoimista on 0). Kolmas kanoninen esitys on ns. Hornerin esitys, missä polynomi a 0 + a 1 x + + a n x n kirjoitetaan muotoon a 0 + x(a 1 + x(a 2 + x( + x(a n 1 + xa n ) ))). Huomaa, miten polynomin arvon laskeminen Hornerin esityksestä on kätevää, sillä siihen tarvitaan vain n kertolaskua. Sen sijaan arvon laskeminen esityksestä a 0 + a 1 x + + a n x n vaatii x n :n ja alempien potenssien laskemisen sekä vielä n kertolaskua. (Ks. myös Pykälässä 8.2 oleva esitys Pochhammerin symbolien avulla, joka myös on kanoninen.) 2 Artikkeliviite on RICHARDSON, D.: Some Undecidable Problems Involving Elementary Functions of One Variable. The Journal of Symbolic Logic 33 (1968), Artikkelissa ovat myös Richardsonin 1. ja 3. lause (ks. Pykälä 7.1).
73 LUKU 6. ESITYS JA SIEVENNYS 69 Monen muuttujan polynomille p(x 1,x 2,...,x n ) saadaan kanoninen esitys käyttäen rekursiivista esitystä (ks. Pykälä 5.5) ja jotain yhden muuttujan polynomin kanonista esitystyyppiä: Kirjoitetaan p(x 1,x 2,...,x n ) x n :n polynomiksi kanoniseen muotoon. Kertoimet ovat silloin muuttujien x 1,x 2,...,x n 1 polynomeja, jatketaan niistä, jne. Jos p(x 1,x 2,...,x n ) kirjoitetaan tuttuun tapaan monomien ax i 1 1 x i 2 2 x in n summaksi, saadaan normaali esitys. Jos vielä järjestetään monomit jollakin sovitulla tavalla (esimerkiksi leksikograafiseen järjestykseen tai kokonaisastejärjestykseen), saadaan kanoninen esitys. Näin on myös silloin, kun jätetään nollakertoimiset monomit pois. (On vähän makuasia, merkitäänkö monomeihin muuttujien nollapotenssit.) Jälleen vm. esitys on kätevä, jos polynomi on harva. Itse asiassa käytännössä monen muuttujan polynomit ovatkin useimmiten harvoja, sillä täysin tiheässä n muuttujan polynomissa, jonka kokonaisaste on d, on d ( ) ( ) n + i 1 n + d = i d i=0 termiä, mikä on yleensä liian paljon (ks. Pykälä 3.6). (Kaava muuten nähdään soveltamalla toistuvasti Lausetta 3.17 summan binomikertoimiin.) Usein polynomi kuitenkin esiintyy ainakin osittain tekijöihin jaetussa tulomuodossa, esimerkiksi neliöttömiin tekijöihin jaettuna. Tätä päästään käyttämään hyväksi. Jos polynomi on saatu kirjoitetuksi muotoon p(x 1,x 2,...,x n )=p 1 (x 1,x 2,...,x n )p 2 (x 1,x 2,...,x n ) p m (x 1,x 2,...,x n ), on tällainen esitys suoraan normaali, mikäli tekijöillä on normaali esitys (olettaen, että tulo merkitään nollaksi, jos yksikin tulontekijöistä on nolla). Lisäksi voidaan olettaa, että tulontekijät eivät ole itsessään tulomuotoisia ja että niillä on kanoninen esitys. Vastaava kanoninen esitys saadaan, jos tekijät p 1 (x 1,x 2,...,x n ),p 2 (x 1,x 2,...,x n ),...,p m (x 1,x 2,...,x n ) ovat jaottomia yksikkönormaalimuotoisia polynomeja, joille on sovittu tietty kirjoitusjärjestys. Tällöin p(x 1,x 2,...,x n ) on muodossa p(x 1,x 2,...,x n )=up 1 (x 1,x 2,...,x n )p 2 (x 1,x 2,...,x n ) p m (x 1,x 2,...,x n ), missä u on p(x 1,x 2,...,x n ):n yksikköosa. Rationaalifunktion p(x 1,x 2,...,x n ) q(x 1,x 2,...,x n ) esitys ei ole kanoninen, vaikka osoittajan ja nimittäjän esitys sitä olisikin. Tämä johtuu siitä, että samaistetaan, jos p 1 (x 1,x 2,...,x n ) q 1 (x 1,x 2,...,x n ) ja p 2 (x 1,x 2,...,x n ) q 2 (x 1,x 2,...,x n ) p 1 (x 1,x 2,...,x n )q 2 (x 1,x 2,...,x n )=p 2 (x 1,x 2,...,x n )q 1 (x 1,x 2,...,x n ). Esitys on kuitenkin normaali, jos oletetaan, että 0 q(x 1,x 2,...,x n ) aina merkitään nollaksi. Kanoninen esitys saadaan seuraavasti:
74 LUKU 6. ESITYS JA SIEVENNYS Kirjoitetaan rationaalifunktio supistettuun muotoon, ts. supistetaan pois syt(p(x 1,x 2,...,x n ),q(x 1,x 2,...,x n )). 2. Supistetaan pois nimittäjän yksikköosa, jonka jälkeen nimittäjä on yksikkönormaali. 3. Muodostetaan osoittajalle ja nimittäjälle kanoniset esitykset (ei välttämättä samanlaiset!). 6.3 Juurilausekkeiden, algebrallisten lukujen ja algebrallisten funktioiden esitys ja sievennys Algebrallisten lukujen esitys tapahtuu annetun jaottoman polynomin juurena, kuten Pykälässä 5.3 näytettiin. Tällöin saattaa olla tarpeen lisäksi sijoittaa ainakin tietyllä tarkkuudella luku kompleksitasolle, jotta se erottuisi muista polynomin juurista. Q(x 1,x 2,...,x n )[y]:n polynomien juuria kutsutaan algebrallisiksi funktioiksi. Nekin esitetään kuten algebralliset luvut jaottomien Q(x 1,x 2,...,x n )[y]:n polynomien juurina. Tällaisia funktioita ei toisaalta voida algebrallisten lukujen tapaan sijoittaa kompleksitasolle, vaan ne on tarvittaessa eroteltava muulla tavoin, eikä se ole aina helppoa. Ohjelmistot tekevätkin herkästi virheitä ja sekoittavat saman polynomin eri juuret (eri haarat ) keskenään. Tämä näkyy varsinkin symbolisessa integroinnissa. Tuttu tapa esittää algebrallisia lukuja ja algebrallisia funktioita on käyttää juurilausekkeita eli radikaaleja. Esimerkiksi Q(x)[y]:n polynomin juuret ovat algebralliset funktiot 2x x 2 1 y2 y + 3 x 2 +1 x 2 1 4x ( ) 1 ± 1 24x, x 4 1 jotka saadaan koulusta tutulla 2. asteen yhtälön ay 2 + by + c =0ratkaisukaavalla y 1,2 = b ± b 2 4ac. 2a Vastaavanlaiset ratkaisukaavat, ns. Cardanon kaavat, on myös 3. ja 4. asteen yhtälöille, ne ovat tosin huomattavasti mutkikkaammat. Nämä ainakin nyt 3. asteen yhtälön ratkaisukaava ovat yleensä ohjelmistoissa sisäänrakennettuina. Näin ainakin periaatteessa voidaan kirjoittaa algebralliset luvut sekä funktiot, jotka saadaan korkeintaan neljännen asteen polynomien juurina, kerrointen radikaalilausekkeiksi. Sitä korkeammille asteluvuille tämä ei sitten olekaan enää yleisesti edes mahdollista: Lause 6.3. (Abelin lause) On viidennen asteen polynomeja, joiden juuria ei voida kirjoittaa kerrointen radikaalilausekkeina. Todistus. Tämä on varsin hankala todistaa, sivuutetaan. Todistuksessa käytetään muuten ns. Galois n teoriaa, joka on kuntateorian osa, ja se löytyy kutakuinkin kaikista vähääkään pidemmälle menevistä algebran kirjoista.
75 LUKU 6. ESITYS JA SIEVENNYS 71 Näin ollen radikaalilausekkeita käyttäen ei päästä yleisesti kovinkaan pitkälle. Toisaalta myös radikaalilausekkeille on varsin hankala saada mitään normaalia tai kanonista esitystä. Pulmana on erityisesti sisäkkäisten juurenottojen sievennys. Jo reaalisille juurilausekkeille on loputtomasti outoja identiteettejä, esimerkiksi kuuluisa Ramanujanin identiteetti /5 5 27/5 = 5 1/25 ( ( 5 ) 3) 2. Juurilausekkeiden sievennys ja esitys onkin varsin hankalaa. Se on toki algoritmisesti tehtävissä (käyttäen algoritmista Galois n teoriaa), tunnetut algoritmit 3 ovat kuitenkin aivan liian hitaita. Kuntaa, joka saadaan liittämällä Q:hun Q[x]:n jaottoman 2. asteen polynomin juuri, kutsutaan neliökunnaksi. Neliökunnat ovat rakenteeltaan yksinkertaisimpia Q:n algebrallisia laajennuksia, josta syystä ohjelmistot niitä yleensä erikseen tukevat. Lause 6.4. Jokainen neliökunta on muotoa Q( k),missä k on neliötön kokonaisluku (ja 1). (Kokonaisluku on neliötön, jos sillä ei ole tekijänään minkään alkuluvun neliötä.) Todistus. Jos neliökunta saadaan liittämällä Q:hun jaottoman Q[x]:n polynomin ax 2 + bx + c juuri, niin juuri on b ± b 2 4ac. 2a Näin ilmeisesti tulos on sama kuin liitettäessä Q:hun polynomin x 2 (b 2 4ac) juuri (ja tämäkin polynomi on jaoton). Kirjoitetaan b 2 4ac supistettuun muotoon u/v ja edelleen u = u 2 u ja v = v 2 v, missä u ja v ovat neliöttömiä. Silloin b2 4ac = u v v u v ja u v on neliötön. Siispä tulos on edelleen sama kuin liitettäessä Q:hun jaottoman Q[x]:n polynomin x 2 u v juuri. Tuttu esimerkki neliökunnasta on rationaalisten kompleksilukujen kunta Q(i) =Q( 1). Ilmeisesti neliökunnan Q( k) alkiot voidaan esittää muodossa a + b k c + d k, missä a, b, c, d ovat rationaalilukuja. Laventamalla c d k:lla nähdään, että itse asiassa Q( k):n alkiot voidaan esittää muodossa u + v k, missä u ja v ovat rationaalilukuja. Lukua u v k kutsutaan luvun u + v k liittoluvuksi, merkitään (u + v k) (aivan kuten kompleksiluvuillekin). Rationaalilukua (u + v k)(u v k)=u 2 v 2 k kutsutaan luvun u + v k normiksi, ja merkitään u + v k :lla. Huomaa, että normi voi olla arvoltaan negatiivinenkin. Neliökunnan lukua α sanotaan neliökunnan kokonaisluvuksi, jos α ja α + α ovat kokonaislukuja. Erityisesti neliökunnan Q(i) kokonaislukuja kutsutaan Gaussin kokonaisluvuiksi. 3 Hyvä yleisesitys on edelleen artikkeli LANDAU, S.: How to Tangle with a Nested Radical. The Mathematical Intelligencer 16 (1994),
76 LUKU 6. ESITYS JA SIEVENNYS 72 Lause 6.5. (i) Jos k on neliötön ja k 1 mod 4, niin Q( k):n kokonaisluvut muodostavat renkaan Z[ k]. (ii) Jos k on neliötön ja k 1 mod 4, niin Q( k):n kokonaisluvut ovat muotoa n + m 1+ k 2 olevat luvut, missä n ja m ovat kokonaislukuja, eli ne muodostavat renkaan Z[(1 + k)/2]. Todistus. Jos α = a+b k on Q( k):n kokonaisluku, niin α+α on kokonaisluku eli a = u/2, missä u on kokonaisluku. Edelleen α = a 2 b 2 k = u2 4 b2 k on kokonaisluku. Saadaan kaksi tapausta. u =2aon parillinen. Silloin b 2 k on kokonaisluku. Tästä seuraa, että myös b on kokonaisluku, muutoin k ei olisi neliötön (eli b 2 :n nimittäjä ei voi supistua k:ta vastaan). Näin α on renkaan Z[ k] alkio. u =2t +1on pariton. Silloin α = 1 4 (2t +1)2 b 2 k = t 2 + t b2 k ja 1/4 b 2 k on kokonaisluku v eli (2b) 2 k =1 4v. Edelleen b:n täytyy olla muotoa (2l +1)/2,koska k on neliötön (eli (2b) 2 :n nimittäjä ei voi supistua k:ta vastaan ja 2b on pariton). Mutta tällöin (2l +1)2 k = 1 4 l2 k lk 1 4 k on kokonaisluku, mikä onnistuu tarkalleen siinä tapauksessa, että k 1 mod 4. Valitaan nyt n = t l ja m =2l +1. Huomaa vielä, että Q( k):n kokonaisluvut ovat ilmeisesti suljettuja yhteenlaskun suhteen, mutta myös kertolaskun suhteen, sillä ( 1+ k 2 ) 2 = 1+ k 2 + k 1. 4 Seuraus. Neliökuntien kokonaisluvut muodostavat renkaan. Aivan kuten kokonaisluvuilla on tärkeä osuus myös rationaalilukujen käsittelyssä, on neliökuntien kokonaisluvuilla tärkeä osuus neliökuntien alkioiden käsittelyssä. Valitettavasti vain neliökuntien kokonaislukujen renkaat eivät kaikki ole edes UFD:ita. Esimerkiksi Q( 5):n kokonaislukujen rengas ei ole UFD. Toisaalta ei ole kovin vaikea osoittaa, että esimerkiksi k:n arvoille 2, 1, 2 ja 3 normin itseisarvo on Eukleideen arvotus. Näin Gaussin kokonaislukujen rengas Z[i] on ED. On muitakin tapauksia, joissa Q( k):n kokonaislukujen rengas on UFD (tai jopa ED), mutta yleisesti kysymys siitä, mille neliöttömille kokonaisluvuille k näin on, on avoin. Ohjelmistoissa onkin tästä syystä tuettu Z[i]:n lisäksi yleensä vain joitain neliökuntien kokonaislukujen renkaita. Toinen yleinen kuntalaajennustyyppi on ns. ympyräkunta. n:s ympyräkunta saadaan liittämällä Q:hun polynomin x n 1 juuret eli n:nnet yksikönjuuret. Ohjelmistoissa on yleensä jollain tavoin tuettu myös ympyräkunnan konstruktiota.
77 LUKU 6. ESITYS JA SIEVENNYS Transsendenttifunktiot Rationaalifunktioiden ja algebrallisten funktioiden lisäksi alkeisfunktioita ovat monet ns. transsendenttifunktiot, ts. funktiot, jotka eivät ole minkään Q(x 1,x 2,...,x n )[y]:n polynomien juuria. Tällaisia ovat mm. tutut trigonometriset funktiot, arkusfunktiot, eksponenttifunktio ja logaritmi. Trigonometristen funktioiden sini ja kosini peruskaavat ovat yhteenlaskukaavat, joista sitten saadaan ns. summat tuloiksi-kaavat, esimerkiksi sin α + sin β =2sin α + β 2 ja tulot summiksi-kaavat, esimerkiksi cos α β, 2 cos α sin β = 1 (sin(α + β) sin(α β)). 2 Summat tuloiksi-kaavoilla voidaan trigonometrisiä lausekkeita kirjoittaa muotoon, joka on sinien ja kosinien polynomi. Vastaavasti tulot summiksi-kaavoilla saadaan trigonometriset lausekkeet kirjoitetuksi sinien ja kosinien lineaariyhdelmiksi. Toisaalta Eulerin kaavaa e iφ = cos φ + i sin φ käyttäen saadaan sini ja kosini kirjoitetuksi eksponenttimuotoon tai vastaavasti hyperboliseen muotoon, esimerkiksi sin x = 1 2i (eix e ix )= isinh ix Nämä muunnokset ovat yleensä ohjelmistoissa enemmän tai vähemmän täydellisinä. Kuten transsendenttiset alkiot yleensäkin, voidaan transsendenttifunktiot liittää helposti Q(x):ään, ks. Pykälä 5.6. Vaikeudeksi tulee niiden keskinäinen riippuvuus. Esimerkiksi, jos liitetään e ix, niin Eulerin kaavan nojalla mukaan menee myös trigonometrisiä funktioita. Mikäli liitetään muka uutena transsendenttisenä funktiona funktio, joka jo on itse asiassa liitetty aikaisemmin, tulee tehdyksi paha virhe. Seuraava lause kertoo mikä on sallittua: Lause 6.6. (Rischin rakennelause) (i) Eksponenttifunktio on riippumaton aikaisemmin liitetyistä eksponenttifunktioista ja logaritmeista tarkalleen siinä tapauksessa, että sen argumenttilauseketta ei voida ilmaista rationaalikertoimisena jo liitetyistä logaritmeista ja jo liitettyjen eksponenttifunktioiden argumenteista muodostettuna lineaariyhdelmänä. (ii) Logaritmifunktio on riippumaton aikaisemmin liitetyistä eksponenttifunktioista ja logaritmeista tarkalleen siinä tapauksessa, että sen argumenttilauseketta ei voida ilmaista tulona, jossa tulontekijät ovat jo liitettyjä eksponenttifunktioita ja jo liitettyjen logaritmien argumentteja korotettuina rationaaliseen potenssiin. Todistus. Kuten arvata saattaa, todistus on varsin vaikea. Oikeastaan lause pitäisi esittää tarkemmin, jotta se edes voitaisiin kunnolla todistaa. Alkuperäisartikkeli on RISCH, R.H.: Algebraic Properties of the Elementary Functions of Analysis. American Journal of Mathematics 101 (1979), Ks. myös DAVENPORT &SIRET &TOURNIER tai GEDDES &CZABOR &LABAHN. Lause on sovellettavissa myös trigonometrisiin funktioihin (Eulerin kaavan kautta) ja vielä arkusfunktioihin (jotka taas palautuvat kompleksisiin logaritmeihin). Huomattakoon, ettei vastaavaa tulosta algebrallisille luvuille ole saatu todistetuksi (vaikka arvellaan sen olevan tosi). Niinpä esimerkiksi ei vieläkään tiedetä ovatko e = e 1 ja π = 1 ln( 1) riippumattomat! i
78 LUKU 6. ESITYS JA SIEVENNYS 74 Huomattakoon, että liitettäessä esimerkiksi e x Q(x):ään, tulos on algebrallisesti aivan sama kuin liitettäessä mikä tahansa muu transsendenttifunktio (kaikki transsendenttiset laajennukset kun ovat rakenteeltaan samanlaiset eli isomorfiset). Jotta saataisiin erotelluksi ominaisuuksiltaan erilaiset liitetyt funktiot, pitää mukaan ottaa lisärakennetta, esimerkiksi derivaattaoperaattori D, jolloin saadaan ns. differentiaalikunta. (D toteuttaa kuntaoperaatioille +,, ja / ne tavalliset derivointisäännöt.) Silloin eksponenttifunktion rakennetta tulee mukaan, kun vaaditaan, että De x = e x.ks. seuraava luku.
79 Luku 7 SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 7.1 Yleistä Funktion (symbolisen lausekkeen) f(x) symbolisella integroinnilla etsitään sellainen lauseke F (x), että symbolisesti derivoitaessa F (x):stä saadaan f(x). (Mahdollisesti sievennyksen jälkeen.) Kaikkien alkeisfunktioiden integraalit eivät ole alkeisfunktioita, esimerkiksi sin x x dx ei ole alkeisfunktio, vaan paljon käytetty erikoisfunktio Si(x) (ns. sini-integraali). Näin symbolisessa integroinnissa on osana myös sen päättäminen onko kysytty integraali lainkaan lausuttavissa tuttujen alkeisfunktioiden avulla. Usein integraali, jota ei voida lausua alkeisfunktioiden avulla, on kuitenkin lausuttavissa erikoisfunktioiden avulla. Ohjelmistot tukevatkin suurta määrää erilaisia erikoisfunktioita, ja osaavat myös integroida näitäkin. (Ks. Pykälä 7.4.) Valitettavasti Richardsonin algoritmisen ratkeamattomuuden tulokset (ks. Pykälä 6.1) koskevat myös sen päättämistä onko alkeisfunktion integraali alkeisfunktio vai ei. Richardsonin 2. lauseesta nimittäin seuraa helposti Lause 7.1. (Richardsonin 3. lause) Jos L on Richardsonin 2. lauseessa (ks. Pykälä 6.1) mainittu symbolisten lausekkeiden joukko, niin ei ole olemassa algoritmia, joka päättäisi annetusta L:n lausekkeesta onko sen integraali (x:n funktiona) alkeisfunktio vai ei. Jälleen vaikeudet johtuvat puhtaan symbolisesta rakenteesta ja siitä, että mukana on itseisarvofunktio (tai jokin muu vastaava). Jos probleema esitetään algebrallisesti (esimerkiksi kuntalaajennustornin avulla), algoritminen ratkeamattomuus katoaa. Lause on ilmeisesti syynä siihen, että ohjelmistot ovat vasta viime aikoina ja vastahakoisesti alkaneet integroida myös itseisarvoja, maksimeja jms. sisältäviä lausekkeita. Huomautus. Moninkertaisia integrointeja voidaan laskea symbolisesti yleensä vain silloin, kun ne on kirjoitettu iteroituun muotoon. Vektorilaskennan integraalilauseita (Greenin, Gaussin ja Stokesin lauseet) ohjelmistot eivät yleensä suoraan osaa. 7.2 Rationaalifunktioiden integrointi Peruskursseilla opittu tapa Q(x):n rationaalifunktion p(x) q(x) 75
80 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 76 integroimiseksi on jakaa ensin osoittaja nimittäjällä, jonka jälkeen voidaan olettaa, että deg(p(x)) < deg(q(x)), jasen jälkeen hajoittaa saatu rationaalifunktio reaalisiin tai kompleksisiin osamurtoihin, ks. Pykälä 5.4. Tämä menettely on kuitenkin usein kovin työläs, sillä se edellyttää Q:n algebrallisten laajennusten konstruktioita. Vastaavasti voitaisiin käyttää symbolisia osamurtokehitelmiä. Se on periaatteessa suoraviivaista, mutta johtaa usein hyvin työläisiin laskuihin. Tämä kaikki kuitenkin osoittaa, että Q(x):n rationaalifunktion integraali voidaan kirjoittaa kompleksisten logaritmien ja muotoa 1/(x a) i olevien rationaalifunktioiden kompleksisena lineaarisena yhdelmänä. (Siirryttäessä reaalisiin funktioihin korvautuu osa logaritmeista arkustangenteilla.) Nämä kaksi osaa, logaritminen ja rationaalinen, ovat usein saatavissa erikseen ilman mitään kuntalaajennuskonstruktioita tai raskasta symbolista laskentaa. Jatkossa oletetaan, että p(x) on asteeltaan pienempi kuin q(x) ja että q(x) on pääpolynomi. Rationaalisen osan laskeminen Hermiten menetelmä rationaalisen osan laskemiseksi: 1. Suoritetaan nimittäjän q(x) jako neliöttömiin tekijöihin q(x) =q 1 (x)q 2 (x) 2 q 3 (x) 3 q k (x) k (ks. Pykälä 5.7). 2. Jaetaan p(x)/q(x) osamurtoihin käyttäen q(x):n neliöttömiin tekijöihin jakoa (ks. Pykälä 5.4): p(x) q 1 (x)q 2 (x) 2 q k (x) = a 11(x) k q 1 (x) + a 21(x) q 2 (x) + a 22(x) q 2 (x) a k1(x) q k (x) + a k2(x) q k (x) a kk(x) q k (x) k. Rationaalinen osa tulee silloin summasta ( a 22 (x) q 2 (x) + a32 (x) 2 q 3 (x) + a ) ( 33(x) ak2 (x) q 3 (x) 3 q k (x) + + a ) kk(x). 2 q k (x) k 3. Koska jokainen q i (x) on neliötön, on Lauseen 5.11 mukaisesti syt(q i (x),q i(x)) =1 (i =1, 2,...,k). Etsitään Bezout n muodot 1=c i (x)q i (x)+d i (x)q i(x) (i =2, 3,...,k). 4. Osittaisintegroidaan: aij (x) q i (x) dx = aij (x)(c i (x)q i (x)+d i (x)q i(x)) dx j q i (x) j aij (x)c i (x) aij (x)d i (x)q = dx + i(x) dx q i (x) j 1 q i (x) j aij (x)c i (x) = dx a ij(x)d i (x) q i (x) j 1 (j 1)q i (x) + j 1 = D(aij (x)d i (x)) dx (j 1)q i (x) j 1 aij (x)c i (x)+d(a ij (x)d i (x))/(j 1) q i (x) j 1 dx a ij(x)d i (x) (j 1)q i (x) j 1.
81 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 77 Koska q i (x):n eksponentti on laskenut yhdellä, voidaan näin jatkaa, kunnes se on =1. Silloin loput integraalit siirtyvätkin logaritmiseen osaan. Hermiten menetelmää voidaan terästää hieman, kunhan muistetaan sen tavoite: Kirjoitetaan p(x)/q(x):n integraali muotoon p(x) q(x) dx = r 1(x) s 1 (x) + r2 (x) s 2 (x) dx, missä jälkimmäisestä integraalista tulee logaritminen osa. Nyt ilmeisesti s 1 (x):llä on samat neliöttömät tekijät kuin q(x):llä, mutta yhtä pienemmässä potenssissa. s 2 (x):llä taas ei ole moninkertaisia neliöttömiä tekijöitä. Näin päätellään, että s 1 (x) =syt(q(x),q (x)) ja s 2 (x) = q(x) s 1 (x) (ks. myös neliöttömän tekijöihinjaon algoritmia Pykälässä 5.7). Koska nyt ( ) p(x) q(x) =D r1 (x) + r 2(x) s 1 (x) s 2 (x) = r 1(x) s 1 (x) r 1(x)s 1(x) + r 2(x) s 1 (x) 2 s 2 (x) = r 1(x)s 2 (x) r 1 (x)s 1(x)s 2 (x)/s 1 (x)+r 2 (x)s 1 (x) q(x) (huomaa, että osoittajassa oleva jako menee tasan), palautuu probleema polynomiyhtälön p(x) =r 1(x)s 2 (x) r 1 (x)s 1(x)s 2 (x)/s 1 (x)+r 2 (x)s 1 (x) ratkaisemiseksi, mikä taas johtaa tuntemattomien kertoimien lineaariseen yhtälöryhmään (vain polynomit r 1 (x) ja r 2 (x) ovat tässä tuntemattomia). Näin saadaan Horowitzin menetelmä rationaalisen osan laskemiseksi: 1. Lasketaan s 1 (x) =syt(q(x),q (x)) ja s 2 (x) =q(x)/s 1 (x). 2. Etsitään sellaiset polynomit r 1 (x) ja r 2 (x), että p(x) =r 1(x)s 2 (x) r 1 (x)s 1(x)s 2 (x)/s 1 (x)+r 2 (x)s 1 (x) ja deg(r 1 (x)) < deg(s 1 (x)) sekä deg(r 2 (x)) < deg(s 2 (x)). 3. Kysytty rationaalinen osa on r 1 (x)/s 1 (x) ja logaritminen osa saadaan integroimalla r 2 (x)/s 2 (x). Yleensä Horowitzin menetelmä on nopeampi kuin Hermiten menetelmä sellaisenaan. Useita muitakin menetelmiä on, ks. esimerkiksi GEDDES &CZABOR &LABAHN. Logaritmisen osan laskeminen Logaritmisen osan laskeminen on vaikeampaa kuin rationaalisen osan. Lopputulos on muotoa r(x) l s(x) dx = c i ln v i (x), i=1
82 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 78 missä c 1,c 2,...,c l ovat kompleksivakioita ja v 1 (x),v 2 (x),...,v l (x) ovat polynomeja. Tämä ei ole yksikäsitteinen esitys, logaritmeja kun voidaan yhdistää/hajottaa tutuilla kaavoilla ln a + ln b = ln(ab) ja ln a n = n ln a. Niinpä voidaan lisäksi olettaa, että polynomit v 1 (x),v 2 (x),...,v l (x) ovat keskenään jaottomia ja neliöttömiä ja että kertoimet c 1,c 2,...,c l ovat kaikki eri lukuja. Tähän päästään seuraavalla menettelyllä: 1. Tehdään v i (x):lle jako neliöttömiin tekijöihin ja hajotetaan logaritmit. Esimerkiksi, jos v i (x) =q i1 (x)q i3 (x) 3, niin c i ln v i (x) =c i ln q i1 (x)+3c i ln q i3 (x). 2. Jos syt(v i (x),v j (x)) = d(x) 1, niin kirjoitetaan v i (x) = d(x)w i (x) ja v j (x) = d(x)w j (x) ja hajotetaan logaritmit: c i ln v i (x)+c j ln v j (x) =(c i + c j )lnd(x)+c i ln w i (x)+c j ln w j (x). 3. Jos v i (x) =v j (x), niin yhdistetään termit: c i ln v i (x)+c j ln v j (x) =(c i + c j )lnv i (x). (Tämä on oikeastaan erikoistapaus edellisestä.) 4. Jos c i = c j, niin yhdistetään termit: c i ln v i (x)+c j ln v j (x) =c i ln(v i (x)v j (x)). Huomaa, että tämä ei poista jo saatua polynomien keskinäistä jaottomuutta. Derivoimalla saadaan r(x) s(x) = l i=1 c i v i(x) v i (x). Oikean puolen summassa ei mitään supistu pois kun tehdään nimittäjät samoiksi, joten pitää olla s(x) =v 1 (x)v 2 (x) v l (x). Merkitään nyt jolloin s (x) = u i (x) = s(x) v i (x) (i =1, 2,...,l), l v i(x)u i (x) ja r(x) = i=1 Nyt voidaan laskea ( v j (x) =syt(0,v j (x)) = syt r(x) l c i v i(x)u i (x). i=1 ) l c i v i(x)u i (x),v j (x) i=1 ( = syt(r(x) c j v j(x)u j (x),v j (x)) = syt r(x) c j = syt(r(x) c j s (x),v j (x)) (j =1, 2,...,l). ) l v i(x)u i (x),v j (x) i=1
83 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 79 Toisaalta, jos m j, niin ( l syt(r(x) c j s (x),v m (x)) = syt c i v i(x)u i (x) c j i=1 Niinpä edelleen ( syt(r(x) c j s (x),s(x)) = syt r(x) c j s (x), = ) l v i(x)u i (x),v m (x) i=1 = syt(c m v m(x)u m (x) c j v m(x)u m (x),v m (x)) =1. ) l v i (x) i=1 l syt(r(x) c j s (x),v i (x)) = syt(r(x) c j s (x),v j (x)) i=1 = v j (x) (j =1, 2,...,l). Tästä voi vetää sen (ällistyttävän) johtopäätöksen, että jos tunnetaan kertoimet c 1,c 2,...,c l, niin voidaan laskea polynomit v 1 (x),v 2 (x),...,v l (x). Edelleen, jos kompleksiluku c ei ole mikään kertoimista c 1,c 2,...,c l, niin ( ) l l syt(r(x) cs (x),s(x)) = syt r(x) cs (x), v i (x) = syt(r(x) cs (x),v i (x)) ja i=1 ( l syt(r(x) cs (x),v m (x)) = syt c i v i(x)u i (x) c i=1 Näin kertoimet c 1,c 2,...,c l määräytyvät ehdosta i=1 ) l v i(x)u i (x),v m (x) i=1 = syt(c m v m(x)u m (x) cv m(x)u m (x),v m (x)) =1. syt(r(x) c j s (x),s(x)) 1 (j =1, 2,...,l). Probleemaksi jää näin ollen epäyhtälön syt(r(x) c j s (x),s(x)) 1kaikkien kompleksiratkaisujen c löytäminen. Tähän sopiva työkalu on polynomien ns. resultantti. Polynomien f(x) =a 0 + a 1 x + + a n x n ja g(x) =b 0 + b 1 x + + b m x m ns. Sylvesterin matriisi on (n + m) (n + m)-matriisi a n a n 1 a 1 a a n a n 1 a 1 a a n a n 1 a 1 a a n a n 1 a 1 a 0 = Sylvester(f(x),g(x)), b m b m 1 b 1 b b m b m 1 b 1 b b m b m 1 b 1 b b m b m 1 b 1 b 0
84 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 80 olettaen, että n>0 tai m>0. Alalohkossa on n riviä ja ylälohkossa m riviä. (Jos n =0, jää matriisista alalohko kokonaan pois, ja jos m =0, niin ylälohko jää pois.) Resultantti on Sylvesterin matriisin determinantti res(f(x),g(x)) = Sylvester(f(x),g(x)). Jos n = m = 0 ja kumpikaan polynomeista ei ole nollapolynomi, niin resultantin arvoksi sovitaan 1. Jos taas ainakin toinen polynomeista on nollapolynomi, sovitaan resultantin arvoksi 0. Kammottavasta näöstään huolimatta resultantti on yhtä helppo laskea kuin s.y.t. ja liittyykin polynomien yhteisiin tekijöihin. Lause 7.2. Resultantilla on Bezout n muoto res(f(x),g(x)) = c 1 (x)f(x)+c 2 (x)g(x). Todistus. Asia on selvä, jos ainakin toinen polynomeista on nollapolynomi. Jos esimerkiksi f(x) on nollapolynomi, valitaan vain c 1 (x) = c 2 (x) = 0. Myös tapaukset, joissa (ainakin) toinen polynomeista on vakiopolynomi toisen ollessa 0, ovat selviä. Jos esimerkiksi f(x) = a 0 0(vakio) ja g(x) 0, niin a a 0 0 res(a 0,g(x)) =..... = a m a 0 ja valitaan c 1 (x) =a m 1 0 ja c 2 (x) =0. Determinantin ominaisuuksista seuraa myös, että res(f(x),g(x)) =( 1) nm res(g(x),f(x)), sillä jälkimmäinen resultantti saadaan edellisestä tekemällä nm rivinvaihtoa ja jokainen niistä vaihtaa determinantin merkin. Bezout n muodon laskee yleisesti seuraava versio Eukleideen algoritmista, missä merkitään RES(f(x),g(x)) = (res(f(x),g(x)),c 1 (x),c 2 (x)): Eukleideen algoritmi polynomien resultantille: 1. Jos f(x) on nollapolynomi, tulostetaan RES(f(x),g(x)) = (0, 0, 0) ja lopetetaan. Jos f(x) ei ole nollapolynomi, mutta g(x) on, tulostetaan RES(f(x),g(x)) = (0, 0, 0) ja lopetetaan. 2. Asetetaan n deg(f(x)) ja m deg(g(x)). 3. Jos n>m, lasketaan RES(g(x),f(x)) =(R, e 1 (x),e 2 (x)), tulostetaan ja lopetetaan. RES(f(x),g(x)) =(( 1) nm R, ( 1) nm e 2 (x), ( 1) nm e 1 (x)) 4. Asetetaan a f(x):n johtava kerroin. 5. Jos n =0,tulostetaan RES(f(x),g(x)) =(a m,a m 1, 0) ja lopetetaan. 6. Jaetaan g(x) f(x):llä: g(x) =q(x)f(x)+r(x), missä r(x) =0tai deg(r(x)) <n. Asetetaan k deg(r(x)).(sovitaan vaikkapa, että deg(0) = 1.)
85 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT Lasketaan RES(f(x),r(x)) =(R, e 1 (x),e 2 (x)), tulostetaan ja lopetetaan. RES(f(x),g(x)) =(a m k R, a m k (e 1 (x) e 2 (x)q(x)),a m k e 2 (x)) Huomaa, että kohdassa 7. todellakin sillä deg(q(x)) = m n ja res(f(x),g(x)) = a m k res(f(x),r(x)), x i g(x) =q(x)x i f(x)+x i r(x) (i =0, 1,...,n 1). Jos r(x) on nollapolynomi, ovat ilmeisesti matriisin Sylvester(f(x),g(x)) rivit näin lineaarisesti riippuvia ja siten res(f(x),g(x)) = 0 (asteluvun valinta 1:ksi ei silloin vaikuta mitään). Jos taas r(x) ei ole nollapolynomi, matriisista Sylvester(f(x),g(x)) saadaan muotoa a 0 a a O Sylvester(f(x),r(x)) oleva matriisi sellaisilla rivioperaatioilla, jotka eivät muuta sen determinantin arvoa. (Ajattele vain rivioperaatioita polynomien yhteenlaskuina.) Näin res(f(x),g(x)) = Sylvester(f(x),g(x)) = a m k Sylvester(f(x),r(x)) = a m k res(f(x),r(x)). Verrattaessa s.y.t.:n Eukleideen algoritmiin saadaan seurauksena 1 välittömästi Seuraus. (Sylvesterin kriteeri) syt(f(x),g(x)) 1 tarkalleen siinä tapauksessa, että res(f(x),g(x)) = 0 (paitsi kun toinen polynomeista f(x) ja g(x) on nolla ja toinen vakio). Palataan sitten s.y.t.:hen syt(r(x) cs (x),s(x)), josta lähdettiin. Tehtävänä oli etsiä ne c:n arvot, joille tämä s.y.t. on 1, eli ne c:n arvot, joille res(r(x) cs (x),s(x)) =0. Tämä on polynomiyhtälö c:lle. S.y.t.:n arvoa ei voi laskea suoraan Eukleideen algoritmilla parametristä c johtuen. Samoin ei voida laskea suoraan resultantin arvoa Eukleideen algoritmilla. Determinanttina resultantti voidaan kuitenkin laskea muilla tavoin, usein vaikkapa peruskursseilla esitetyllä eliminaatiomenetelmällä. Kaiken kaikkiaan saadaan seuraava menetelmä integraalin logaritmisen osan laskemiseksi: 1 Samantapaisella todistuksella saadaan monia muitakin mielenkiintoisia resultantin ominaisuuksia. Jos polynomien f(x) ja g(x) juuret (monikerrat mukaan lukien) ovat α 1,α 2,...,α n ja β 1,β 2,...,β m, niin res(f(x),g(x)) = a m n n m n m g(α i )=( 1) nm b n m f(β j )=a m n b n m (α i β j ). i=1 j=1 i=1 j=1
86 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 82 Rothstein Trager-algoritmi logaritmisen osan laskemiseksi: 1. Lasketaan res(r(x) cs (x),s(x)) = R(c). 2. Etsitään R(c):n eri juuret c 1,c 2,...,c l. 3. Lasketaan polynomit v j (x) =syt(r(x) c j s (x),s(x)) (j =1, 2,...,l). 4. Tulostetaan r(x) s(x) dx = l c i ln v i (x). i=1 Edellä esitetty menettely sopii sellaisenaan myös silloin, kun vakioina esiintyy muitakin kuin rationaalilukuja. Tällöin ns. vakiokunta on Q:n sijasta jokin sen laajennus K, jossa on liitetty Q:hun sopivasti algebrallisia ja transsendenttisia lukuja (tavallisesti ainakin esimerkiksi π ja e). Integroitavana on silloin K(x):n rationaalifunktio. 7.3 Irrationaalisten alkeisfunktioiden integrointi Symbolisen integroinnin ohjelmistot aloittavat yleensä integroinnin yrittämällä käyttää peruskursseilta tuttuja temppuja integraalin laskemiseksi. Elleivät nämä onnistu, ohjelmistot käynnistävät yleisen integrointialgoritmin, ns. Rischin integroinnin. Pykälän 2.1:n symbolisista derivointisäännöistä saadaan (enemmän tai vähemmän) tutut symbolisen integroinnin säännöt. Järjestys on sama kuin Pykälässä 2.1: (f(x) ± g(x))dx = f(x)dx ± g(x)dx f(x)dg(x)dx = f(x)g(x) g(x)df(x)dx (osittaisintegrointi) Df(x) f(x) f(x)dg(x) dx = g(x) g(x) + dx g(x) 2 (osittaisintegrointi) g(x)f(x) g(x) 1 Df(x)dx = f(x) g(x) f(x) g(x) ln f(x)dg(x)dx (osittaisintegrointi) f(g(x))dg(x)dx = F (g(x)), missä F (y) = f(y)dy (sijoitus) f 1 (x)dx = xf 1 (x) F (f 1 (x)), missä F (y) = f(y)dy (käänteisintegrointi) Vaikeutena näiden ja muiden tällaisten sääntöjen yhteydessä on se, että sievennysten ja muiden operaatioiden jäljiltä integroitavat funktiot ovat muodoltaan kaukana derivoinnin tuottamista lausekkeista. Näin voi olla hyvin työlästä löytää paikkoja, missä sääntöjä voisi käyttää. Kummituksena on taustalla myös Richardsonin kolmas lause. Jotta päästäisiin eteenpäin, on funktiot esitettävä muutoin kuin pelkästään symbolisesti. Tähän tarvitaan ns. differentiaalikunnan käsite, ks. Pykälä 6.4. Pohjana on jokin ns. vakiokunta, eli kuntien Q ja C välissä oleva lukukunta K. K saadaan yleensä liittämällä Q:hun tietty määrä tarvittavia algebrallisia lukuja ja transsendenttisia lukuja. K:n rationaalifunktioiden kunta K(x)
87 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 83 laajennetaan edelleen liittämällä siihen joko algebrallisia alkioita (funktioita) tai transsendenttisia alkioita (funktioita). Koska kaikki transsendenttiset laajennukset ovat rakenteeltaan samanlaisia, pitää ne erottaa toisistaan jollain tavalla. Tätä varten otetaan käyttöön derivaattaoperaattori D, joka toteuttaa K(x):ssä (ja sen laajennuksissa) tavalliset derivointisäännöt kunnan laskuoperaatioiden suhteen: Huomaa erityisesti, että jos niin myös ( ) f(x) D g(x) Dx =1, Da =0, jos a on vakio (eli vakiokunnan K alkio), D(f(x)+g(x)) =Df(x)+Dg(x), D(f(x)g(x)) = g(x)df(x) + f(x)dg(x). f(x) g(x) = h(x) k(x) eli =D(f(x)g(x) 1 )= Df(x) g(x) f(x)dg(x) g(x) 2 f(x)k(x) =g(x)h(x), = Dh(x) k(x) h(x)dk(x) ( ) h(x) =D k(x) 2 k(x) (vaatii pientä laskua, jätetään lukijalle). Rationaalifunktioiden samaistus ei siis tuota vaikeuksia. Funktiokuntaa, jossa on tällainen derivaattaoperaattori, kutsutaan differentiaalikunnaksi 2. Jos nyt differentiaalikuntaan F (funktiokunta) liitetään transsendenttinen funktio l(x), niin tulos on algebralliselta kannalta sama olipa l(x) mitä tahansa, kunhan on transsendenttinen. Jos lisätään mukaan jokin l(x):n derivaattaa koskeva ehto, saadaan mukaan rakennetta: Jos asetetaan ehto Dl(x) =l(x)df(x), missä f(x) on F :n funktio, niin liitetty funktio on muotoa l(x) =ce f(x), missä c 0on vakio. l(x) ontällöin F :n suhteen eksponentiaalinen. Jos asetetaan ehto Dl(x) =(Df(x))/f(x), missä f(x) on F :n funktio, niin liitetty funktio on muotoa l(x) =lnf(x)+c,missä c on vakio. l(x)on tällöin F :n suhteen logaritminen. (Tässä itse asiassa sallitaan myös kompleksiset logaritmit.) Koska laajennetun kunnan F (l(x)) alkiot ovat l(x):n rationaalifunktioita ja derivaatta Dl(x) on annettu myös F (l(x)):n alkiona, voidaan F (l(x)):n alkioiden derivaatat laskea tavallisin derivointisäännöin ja näin ollen F (l(x)):kin on differentiaalikunta. Näiden laajennusten lisäksi voidaan tietysti tehdä algebrallisia laajennuksia, ts. liitetään mukaan algebrallisia funktioita, siis F :n polynomirenkaan F [y]:n polynomien juuria (tässä derivaattaoperaattoria ei tarvita). Tällaisenkin laajennuksen jälkeen kunta pysyy differentiaalikuntana. Jos nimittäin algebrallinen alkio l(x) on F [y]:n jaottoman polynomin v(y) =a n (x)y n + a n 1 (x)y n a 1 (x)y + a 0 (x) juuri, niin v(l(x)) =0, josta l(x):n derivaatta saadaan implisiittisellä derivoinnilla: 0=D(v(l(x))) =(Da n (x))l(x) n +(Da n 1 (x))l(x) n 1 + +(Da 1 (x))l(x)+da 0 (x) +(na n (x)l(x) n 1 +(n 1)a n 1 (x)l(x) n a 1 (x))dl(x) 2 Abstraktin differentiaalikunnan määrittelyssä vaaditaan vain summan ja tulon derivointisäännöt. Tämä ei kiinnitä derivaattaa yksikäsitteisesti.
88 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 84 ja Dl(x) = (Da n(x))l(x) n +(Da n 1 (x))l(x) n 1 + +(Da 1 (x))l(x)+da 0 (x). na n (x)l(x) n 1 +(n 1)a n 1 (x)l(x) n a 1 (x) Tässä ei nimittäjä voi olla nolla. Muutoin v(y):llä ja nimittäjän polynomilla w(y) =na n (x)y n 1 +(n 1)a n 1 (x)y n a 1 (x) on yhteinen juuri, joka Bezout n muodon syt(v(y),w(y)) = c 1 (x)v(y)+c 2 (x)w(y) kautta on myös on syt(v(y),w(y)):n juuri. Näin syt(v(y),w(y)) on 1, alempaa astetta kuin v(y) ja jakaa v(y):n. Tämä ei käy, sillä v(y) on jaoton. Näin myös algebrallisessa laajennuksessa Dl(x) on F (l(x)):ssä. Alkeisfunktioiden perustyyppejä voidaan mukavasti vähentää, jos sallitaan kompleksiset eksponenttifunktiot ja logaritmit. Silloin nimittäin esimerkiksi sin x = 1 i sinh ix = 1 2i (eix e ix ), arcsin x = 1 i arsinh ix = 1 i ln( 1 x 2 + ix), arctan x = i 2 ln x + i x i + π 2. Itse asiassa voidaan rajoittua vain eksponentiaalisiin, logaritmisiin ja algebrallisiin laajennuksiin ja silti saadaan kaikki tutut alkeisfunktiot. F :n kuntalaajennusta F (f 1 (x),f 2 (x),...,f m (x)) kutsutaankin alkeiseksi, jos (1) f 1 (x) on F :n suhteen eksponentiaalinen, logaritminen tai algebrallinen ja (2) funktio f i (x) on F (f 1 (x),f 2 (x),...,f i 1 (x)):n suhteen eksponentiaalinen, logaritminen tai algebrallinen (i =2, 3,...,m). Peräkkäiset laajennukset F (f 1 (x),f 2 (x),...,f i (x)) (i =1, 2,...,m) muodostavat kuntalaajennustornin F (f 1 (x),f 2 (x),...,f m (x)) F (f 1 (x),f 2 (x),...,f m 1 (x)). F (f 1 (x)) F Klassisessa mielessä x:n funktio on alkeisfunktio, jos se kuuluu johonkin C(x):n alkeiseen laajennukseen. Symbolisessa analyysissä vakiokuntana ei voi olla C, vaan jokin pienempi Q:n laajennus. On jo kauan ollut tunnettua, minkä muotoinen alkeisfunktion integraali on, jos se vain on alkeisfunktio: Lause 7.3. (Liouvillen periaate) Oletetaan, että F on differentiaalikunta, jonka vakiokunta on K (Q:n laajennus ja F :n alikunta). Jos F :n funktiolla g(x) on integraali G(x) jossain F :n alkeisessa laajennuksessa (ts. tässä laajennuksessa DG(x) =g(x)) jako. alkeisen laajennuksen vakiokunta on myös K,niin g(x) =Dv 0 (x)+ N i=1 c i Dv i (x) v i (x) ja G(x) =v 0 (x)+ N c i ln v i (x), missä v 0 (x),v 1 (x),...,v N (x) ovat F :n funktioita ja c 1,c 2,...,c N ovat K:n vakioita. i=1
89 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 85 Todistus. Todistus on pitkä, mutta ei oikeastaan kovin vaikea, ks. esimerkiksi GEDDES & CZA- BOR &LABAHN. Seperustuu derivaattojen muotojen vertailuun. Huomaa kuitenkin, että edellä esitetty rationaalifunktion integrointi tuottaa juuri Liouvillen periaatteen mukaisen tuloksen. Symbolisen integroinnin kantavana ideana on saada aikaan algoritminen Liouvillen periaate. Jos ajatellaan yo. kuntalaajennustornia, voidaan tornissa edetä ylöspäin askelma kerrallaan liittämällä yksitellen mukaan funktioita f i (x). Rekursiivisesti ajatellen F (f 1 (x),f 2 (x),..., f i (x)):n funktiot voidaan kirjoittaa muotoon p 1 (f i (x)) p 2 (f i (x)), missä p 1 (y) ja p 2 (y) ovat F (f 1 (x),f 2 (x),...,f i 1 (x)):n polynomirenkaan F (f 1 (x),f 2 (x),..., f i 1 (x))[y] polynomeja. Tämä sekä Liouvillen periaatteen antama muoto viittaavat siihen, että integrointi sujuu pääpiirteittäin samoin kuin rationaalifunktioille. Näin onkin, tietysti itse menettely on paljon mutkikkaampi. Alkeisfunktioille, joissa ei esiinny algebrallisia osia, tämän idean toteutti ensimmäisenä R.H. Risch 3 (ks. GEDDES &CZABOR &LABAHN), puhtaasti algebralliselle alkeisfunktioille J.H. Davenport (ks. DAVENPORT) jayleiselle, myös algebrallisia osia sisältävälle alkeisfunktiolle M. Bronstein 3. Huomaa, että mukana on myös sen päättäminen, onko integraali lainkaan lausuttavissa alkeisfunktioiden avulla (jolloin se ei ole Liouvillen periaatteen antamaa muotoa). Saatua symbolista testaus-/integrointi-menettelyä kutsutaan usein Rischin integroinniksi. Sitä ei liene aivan yleisesti implementoituna missään ohjelmistossa. Kutakuinkin kaikki ohjelmistot sekoavat vielä toisinaan algebrallisten osien käsittelyssä (ts, sekoittavat keskenään polynomien juuria), mikä voi johtaa pahasti vääriin tuloksiin. Huomautus. Tärkeä ero puhtaasti symbolisiin manipulaatioihin perustuvan integroinnin sekä Rischin integroinnin välillä on seuraava: Edellinen ei yleisesti ottaen voi onnistua aina (johtuen mm. Richardsonin 3. lauseesta). Rischin integrointi on kuitenkin mahdollista aivan yleisesti, sillä funktiot esitetään kuntalaajennustornin avulla, joka estää Richardsonin ratkeamattomuustuloksen syntymisen. Katsotaan Rischin integrointia vain eräässä erikoistapauksessa, ns. puhtaasti logaritmisen funktion integroinnissa. Tällöin differentiaalikuntaan F tehdään (transsendenttinen) logaritminen laajennus F (l(x)), missä siis Dl(x) = Df(x) ja f(x) on F :n funktio. f(x) Lisäksi oletetaan, että F :n ja laajennuksen vakiokunnat ovat samat (ks. Liouvillen periaate). Vielä oletetaan, että F :ssä voidaan integroida symbolisesti. Kuten todettu, F (l(x)):ssä oleva mielivaltainen integrandi h(x) voidaan (jakolaskulla) kirjoittaa muotoon h(x) = p 1(l(x)) p 2 (l(x)) = q(l(x)) + r(l(x)) p(l(x)), missä p 1 (y),p 2 (y),q(y),r(y),p(y) ovat F :n polynomirenkaan F [y] polynomeja, deg(r(y)) < deg(p(y)) ja syt(r(y),p(y)) = 1 (tai sitten r(y) on nollapolynomi). Koska deg(r(y)) < deg(p(y)), sanotaan, että r(y)/p(y) on aidosti rationaalinen. Ensin tarvitaan 3 Alkuperäisviitteet ovat RISCH, R.H.: The Problem of Integration in Finite Terms. Bulletin of the American Mathematical Society bf 139 (1969), ja BRONSTEIN, M.: Integration of Elementary Functions. Journal of Symbolic Computation 9 (1990), Vanha klassikko on RITT, J.F.: Integration in Finite Terms. Columbia University Press (1948), jossa differentiaalikunnan tärkeys jo todettiin.
90 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 86 Lause 7.4. (Dekompositiolemma) Jos h(x):llä on alkeinen integraali, niin samoin on q(l(x)):llä ja r(l(x))/p(l(x)):llä. Todistus. Jos h(x):llä on alkeinen integraali, niin Liouvillen periaatteen mukaisesti h(x) =q(l(x)) + r(l(x)) p(l(x)) =Dv 0 + N i=1 c i Dv i v i. Tässä voidaan olettaa (tarvittaessa derivoimalla, jakamalla ja indeksoimalla uudelleen), että v i = v i (l(x)) (i =1, 2,...,k), missä v 1 (y),v 2 (y),...,v k (y) ovat F [y]:n pääpolynomeja, ja että v i = v i (x) (i = k +1,k+2,...,N) ovat F :n funktioita. Laskien nimittäin todetaan, että jos v = a(x)u(l(x)) b(x)w(l(x)), missä a(x) sekä b(x) ovat F :ssä ja u(y) sekä w(y) ovat F [y]:n pääpolynomeja, niin Dv v = b(x)w(l(x))d(a(x)u(l(x))) a(x)u(l(x))d(b(x)w(l(x))) b(x) 2 w(l(x)) 2 a(x)u(l(x)) b(x)w(l(x)) = D(a(x)u(l(x))) a(x)u(l(x)) D(b(x)w(l(x))) b(x)w(l(x)) = Da(x) a(x) + D(u(l(x))) D(b(x)) u(l(x)) b(x) D(w(l(x))). w(l(x)) (Tämä on tietysti peruskursseilta tutun logaritmisen derivoinnin suoraan antama tulos, mutta ei sitä tässä noin vain voi käyttää.) Edelleen voidaan olettaa, että v 0 on muotoa v 0 = q 0 (l(x)) + r 0(l(x)) p 0 (l(x)) missä q 0 (y),r 0 (y),p 0 (y) ovat F :n polynomirenkaan F [y] polynomeja, joille r 0 (y)/p 0 (y) on aidosti rationaalinen. Nyt h(x) =Dv 0 + N Dv i N ( ) Dv i r0 (l(x)) c i =D(q 0 (l(x))) + c i +D + v i v i p 0 (l(x)) i=k+1 }{{} polynominen osa i=1 k i=1 c i Dv i v i } {{ } aidosti rationaalinen osa Koska l(x) on transsendenttinen F :n suhteen, on tämä dekompositio polynomi + aidosti rationaalinen funktio yksikäsitteinen (polynomien jakolasku on yksikäsitteinen). Pitää vain tarkistaa, että aidosti rationaalinen osa todella on nimensä mukainen eli että osoittajan aste on pienempi kuin nimittäjän. Yleisesti, jos v(y) =a n (x)y n + a n 1 (x)y n a 1 (x)y + a 0 (x).
91 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 87 on F [y]:n astetta n oleva polynomi, niin v(l(x)):n derivaatta D(v(l(x))) =(Da n (x))l(x) n +(Da n 1 (x))l(x) n 1 + +(Da 1 (x))l(x)+da 0 (x) +(na n (x)l(x) n 1 +(n 1)a n 1 (x)l(x) n a 1 (x))dl(x) on enintään astetta nl(x):n suhteen ja alempaa kuin n:ttä astetta, mikäli v(y) on pääpolynomi (jolloin a n (x) =1). Näin ollen ensiksi ( ) r0 (l(x)) D = p 0(l(x))D(r 0 (l(x)) r 0 (l(x))d(p 0 (l(x))), p 0 (l(x)) p 0 (l(x)) 2 jossa selvästi osoittajan aste l(x):n suhteen on pienempi kuin nimittäjän. Toiseksi, koska polynomit v 1 (y),v 2 (y),...,v k (y) ovat pääpolynomeja, myös osamäärässä Dv i v i = D(v i(l(x))) v i (l(x)) osoittajan aste l(x):n suhteen on pienempi kuin nimittäjän. Kolmanneksi, laskettaessa yhteen aidosti rationaalisia funktioita, saadaan aidosti rationaalinen funktio (totea!). Siispä eli q(l(x)) =D(q 0 (l(x))) + q(l(x))dx = q 0 (l(x)) + N Dv i c i i=k+1 v i N c i ln v i i=k+1 ja ja ( ) r(l(x)) p(l(x)) =D r0 (l(x)) + p 0 (l(x)) r(l(x)) p(l(x)) dx = r 0(l(x)) p 0 (l(x)) + k i=1 c i Dv i v i k c i ln v i. Tärkeänä lisätietona saatiin integraalien muodot. Dekompositiolemma todistuksineen osoittaa, että integrointi voidaan tehdä kahdessa osassa, polynomisessa ja aidosti rationaalisessa. Lisäksi nämä osat ovat muodoltaan tunnetut. Aidosti rationaalisen osan integrointi on hyvin samanlainen kuin rationaalifunktion integrointi edellisessä pykälässä. Katsotaan erikseen polynomisen osan ja aidosti rationaalisen osan integroinnit. Aloitetaan polynomisesta osasta ja merkitään q(y) =b n (x)y n + b n 1 (x)y n b 1 (x)y + b 0 (x) sekä q 0 (y) =d m (x)y m + d m 1 (x)y m d 1 (x)y + d 0 (x), missä b n (x) ja d m (x) eivät ole nollia. (Jos q(y) on nollapolynomi, on tapaus tietysti selvä.) Silloin yhtälöstä N Dv i q(l(x)) =D(q 0 (l(x))) + c i i=k+1 saadaan ( n m ) N b i (x)l(x) i =D d i (x)l(x) i Dv i (x) + c i v i=0 i=0 i (x) i=k+1 m m = (Dd i (x))l(x) i +(Dl(x)) id i (x)l(x) i 1 + i=0 i=1 v i i=1 N Dv i (x) c i v i (x). i=k+1
92 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 88 Nyt, jos Dd m (x) =0eli d m (x) on vakio, on m = n +1(muussa tapauksessa olisi Dd m 1 (x) = D(md m (x)l(x)) ja d m 1 (x) / F ), muuten m = n. Edellisessä tapauksessa merkitään yhdenmukaisuuden vuoksi b m (x) =0.Kun otetaan l(x):n potenssit erikseen, saadaan yhtälöt b m (x) =Dd m (x), b m 1 (x) =Dd m 1 (x)+md m (x)dl(x), b m 2 (x) =Dd m 2 (x)+(m 1)d m 1 (x)dl(x), eli. b 1 (x) =Dd 1 (x)+2d 2 (x)dl(x), b 0 (x) =Dd 0 (x)+d 1 (x)dl(x)+ d m (x) = d m 1 (x) = d m 2 (x) = N Dv i (x) c i v i (x) i=k+1 b m (x)dx, (b m 1 (x) md m (x)dl(x))dx, (b m 2 (x) (m 1)d m 1 (x)dl(x))dx,. d 1 (x) = (b 1 (x) 2d 2 (x)dl(x))dx, d 0 (x) = (b 0 (x) d 1 (x)dl(x))dx N c i ln v i (x). i=k+1 Näistä saadaan kerroinfunktiot d m (x),d m 1 (x),...,d 0 (x) seuraavasti: 1. d m (x) saadaan integroimalla F :n integrointialgoritmilla b m (x).jollei tulos ole F :ssä, niin kuin sen pitäisi, ei polynominen osa integroidu alkeisesti. Muutoin d m (x) määräytyy integrointivakiota C m vaille: d m (x) = ˆd m (x)+c m. 2. d m 1 (x) saadaan integroimalla F :n integrointialgoritmilla: d m 1 (x) = (b m 1 (x) m ˆd m (x)dl(x))dx mc m l(x)+c m 1 = ˆd m 1 (x)+c m 1. Jälleen tulos määräytyy integrointivakiota C m 1 vaille. Jollei nyt b m 1 (x) m ˆd m (x)dl(x) integroidu alkeisesti tällaiseen muotoon, ei polynominen osakaan integroidu alkeisesti. Huomaa, että mukana on jo logaritmi l(x), mikä määrää C m :n valinnan. 3. Näin jatketaan. Aina tulos saadaan integrointivakiota vaille. Lopulta tullaan d 0 (x):ään: d 0 (x) = (b 0 (x) ˆd N 1 (x)dl(x))dx C 1 l(x)+c 0 c i ln v i (x). i=k+1 Jollei b 0 (x) ˆd 1 (x)dl(x) integroidu alkeisesti haluttuun muotoon, päätellään jälleen, että polynominen osa ei integroidu alkeisesti. Tästä integroinnista tulee mukaan muitakin logaritmeja kuin vain l(x). Lisäksi lopputulokseen jää yksi integrointivakio C 0, kuten pitääkin (muut kiinnittyvät matkan varrella ).
93 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 89 Aidosti rationaalinen osa integroidaan aivan samalla tavoin kuin rationaalifunktio Pykälässä 7.2, rationaalinen osa Hermiten menetelmällä ja logaritminen osa Rothstein Trager-algoritmilla. (Horowitzin menetelmä ei oikein tule kysymykseen, keksitkö miksi.) Rothstein Trager-algoritmissa esiintyvät resultanttipolynomin R(c) juuret voivat periaatteessa riippua x:stä. Jos yksikin juurista riippuu x:stä, ei integraali kuitenkaan voi olla alkeinen, sillä se ei silloin ole Liouvillen periaatteen antamaa muotoa. Näissä menetelmissä derivoinnit suoritetaan x:n suhteen, tulokset ovat silti oikeita. Tämän näyttämiseksi pitäisi läpikäydä Pykälän 7.2 (ja Lauseen 5.11) todistukset uudelleen tässä tapauksessa muutamin helpoin muutoksin, ks. esimerkiksi GEDDES &CZABOR &LABAHN. Eksponentiaalinen laajennus on hyvin samankaltainen kuin yllä käsitelty logaritminenkin. Koska eksponentiaaliselle l(x):lle Dl(x) =l(x)df(x), l(x):n polynomin aste l(x):n suhteen pysyy samana derivoitaessa. Tämä muuttaa Dekompositiolemmaa vähän toisen muotoiseksi, mutta ikävä kyllä aiheuttaa myös sen, ettei riitä olettaa, että F :ssä voidaan integroida symbolisesti, vaan pitää voida ratkaista symbolisesti 1. kertaluvun lineaarinen differentiaaliyhtälö, jonka kertoimet ovat F :ssä, tai sitten todeta, ettei sillä ole alkeisia ratkaisuja. Peruskursseilta tuttu ratkaisukaava (ks. Pykälä 7.5) ei muuten auta, sillä siinä tarvittavat integroinnit ovat juuri sellaisia, että ne edellyttävät ko. differentiaaliyhtälön symbolista ratkaisua! Tätä pulmaa käsittelee esimerkiksi GEDDES & CZABOR & LABAHN tai BRONSTEIN. Ratkaisuna on konstruoida omat ratkaisualgoritminsa näille differentiaaliyhtälöille samaan tapaan kuin edellä. Algebrallisen laajennuksen tapaus onkin jo sitten vaikeudeltaan aivan eri luokkaa, ks. esimerkiksi GEDDES &CZABOR &LABAHN. 7.4 Erikoisfunktiot Silloin, kun integraali ei ole alkeinen, se voidaan usein lausua käyttäen tiettyjä perustyyppejä olevia ei-alkeisia integraaleja. Tällaiset integraalit ovat ns. erikoisfunktioita. (Erikoisfunktioksi sanotaan yleisesti ottaen sellaisia funktioita, jotka eivät ole alkeisia C(x):n suhteen.) Tavallisimmat ovat: 1. vajaa gammafunktio Γ(x, y) = 2. vajaa betafunktio β(x, y, z) = 3. errorfunktio erf(x) = 2 π 4. sini-integraali Si(x) = x 0 x 0 y z 0 e t2 dt, sinc tdt= 5. kosini-integraali Ci(x) =γ +lnx + γ = lim n ( n i=1 t x 1 e t dt (gammafunktio on Γ(x) =Γ(x, 0)), t x 1 (1 t) y 1 dt (betafunktio on β(x, y) =β(x, y, 1), x 0 x sin t dt, t cos t 1 dt (tässä γ on ns. Eulerin vakio t 0 ) 1 i ln n = ),
94 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT hyperbolinen sini-integraali Shi(x) = x 0 sinh t dt, t 7. hyperbolinen kosini-integraali Chi(x) =γ +lnx + x 0 cosh t 1 dt, t 8. eksponentti-integraalit Ei(n, x) = 9. Fresnelin sini-integraali FresnelS(x) = 10. Fresnelin kosini-integraali FresnelC(x) = 11. logaritmi-integraali Li(x) = 12. erilaiset elliptiset integraalit. x 0 1 dt ln t dt (n =0, 1,...), t n ext x 0 sin πt2 2 dt, x 0 cos πt2 2 dt, = Ei(1, ln x), Lisätietoa näistä on esimerkiksi viitteissä ABRAMOWITZ &STEGUN ja ANDREWS &ASKEY &ROY. Ohjelmistoissa on yleensä ainakin jossain määrin tuettuina yllä olevat ja muitakin erikoisfunktioita. Differentiaaliyhtälöiden ratkaisuina tulee vielä paljon lisää erikoisfunktioita (Besselin funktiot jne.). Huomautus. Periaatteessa on mahdollista yleistää Liouvillen periaate koskemaan erinäisiä erikoisfunktioitakin, jolloin ne ikäänkuin siirtyvät alkeisfunktioiden joukkoon. 7.5 Differentiaaliyhtälöt Differentiaaliyhtälön (DY:n) symbolisella ratkaisulla tarkoitetaan yleisesti sen kirjoittamista ekvivalenttiin muotoon, jossa ei esiinny derivaattoja eikä integrointeja. Vanhastaan puhutaan DY:n integroinnista, koska menettely vaatii symbolisia integrointeja. Peruskursseilta tutut ratkaisukaavat ovat juuri tällaisia integrointeja: Separoituvan DY:n Dy = f(x)g(y) yleisen ratkaisun antaa integroinnin jälkeen (implisiittisesti) y(x) dv x g(v) = f(u)du. y(x 0 ) (Tällaisella DY:llä voi olla muitakin, ns. singuläärisiä ratkaisuja.) x 0
95 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 91 Lineaarisen 1. kertaluvun differentiaaliyhtälön Dy + a(x)y = b(x) ratkaisukaava taas on y(x) =e x x 0 a(u)du x 0 x v x a(u)du x e 0 b(v)dv + y(x0 )e x 0 a(u)du. Eksaktissa DY:ssä f(x, y)+ g(x, y)dy = h(x) on oltava f(x, y) y = g(x, y). x Symbolisesti on (f(x, y), g(x, y)) tällöin jonkin funktion u(x, y) gradientti ja u(x, y) (ns. potentiaali) määräytyy vakiota vaille yksikäsitteisesti. DY:n ratkaisu on (implisiittisesti) u(x, y(x)) = h(x)dx + C. (Jälleen voi olla muitakin, singuläärisiä ratkaisuja.) Tässä esiintyy yksi integrointi ja u(x, y) voidaan löytää integroimalla (symbolisesti) kaksi kertaa: Ensin u(x, y) u(x, y) = dx + c(y) = f(x, y)dx + c(y) =F (x, y)+c(y), x josta saadaan u(x, y) F(x, y) g(x, y) = = + d y y dy c(y) ja sitten integroimalla y:n suhteen c(y). Näitä tällaisia DY:öiden integrointeja eri tapauksille tunnetaan suuri määrä. Erittäin klassinen viite on KAMKE, E.:Differentialgleichungen: Lösungsmethoden und Lösungen 1. Gewöhnliche Differentialgleichungen. Becker & Erler (1943). Siinä olevia temppuja ja vielä muitakin on ohjelmistoissa valmiina useita. Myös peruskursseilta tuttu DY-tyyppi on vakiokertoiminen lineaarinen DY: a n D n y + a n 1 D n 1 y + + a 1 Dy + a 0 y = f(x), missä a 0,a 1,...,a n ovat vakioita ja a n 0.Vastaavan homogeenisen DY:n ratkaisu on tunnetusti aina muotoa k y 0 (x) = p i (x)e ρix, i=1 missä ρ 1,ρ 2,...,ρ k ovat DY:n karakteristisen polynomin r(ρ) =a n ρ n + a n 1 ρ n a 1 ρ + a 0 eri juuret ja p i (x) on polynomi, jonka aste on enintään juuren ρ i kertaluku vähennettynä yhdellä (i =1, 2,...,k). Ratkaisu y 0 (x) siis saadaan välittömästi, kunhan saadaan konstruoiduksi r(ρ):n hajoamiskunta. Tämä on usein erittäin ison työn takana. Tilanteen pelastaa osittain se, että polynomit p i (x) saadaan kuitenkin lausutuksi eri juurten ρ 1,ρ 2,...,ρ k avulla. Esiintyvät juurten kertaluvut nimittäin saadaan selville r(ρ):n neliöttömiin tekijöihin jaosta (ks. Pykälä 5.7) r(ρ) =a n q 1 (ρ)q 2 (ρ) 2 q 3 (ρ) 3 q m (ρ) m.
96 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 92 Kertalukua j olevat juuret ovat tarkalleen kaikki q j (ρ):n juuret ja niitä on deg(q j (ρ)) kpl. (Jos q j (ρ):lla olisi moninkertainen juuri, se olisi myös sen derivaatan q j(ρ) juuri ja edelleen Bezout n muodon kautta syt(q j (ρ),q j(ρ)):n juuri ja Lauseen 5.11 nojalla q j (ρ) ei olisikaan neliötön. Toisaalta polynomeilla q 1 (ρ),q 2 (ρ),...,q m (ρ) ei ole yhteisiä juuria, koska ne ovat pareittain keskenään jaottomia.) Näin eri juuria ρ 1,ρ 2,...,ρ k voidaan merkitä symboleilla ja kirjoittaa y 0 (x) = k P i (x)e ρix, i=1 missä P i (x):n kertoimet ovat määräämättömät (maksimiaste on pienempi kuin ρ i :n kertaluku, joka tiedetään), ja ratkaista symbolisesti kertoimet alkuehtojen antamista yhtälöistä ( k ) D j P i (x)e ρ ix = y j (j =0, 1,...,n 1), i=1 x=x 0 missä y(x 0 )=y 0, Dy(x 0 )=y 1,...,D n 1 y(x 0 )=y n 1 (lineaarinen yhtälöryhmä, n yhtälöä ja n tuntematonta). Ratkaisu saadaan näin lausutuksi juurten ρ 1,ρ 2,...,ρ k avulla ja niille voidaan etsiä numeeriset likiarvot. Varsinainen yleinen ratkaisu saadaan etsimällä DY:lle yksittäisratkaisu ja lisäämällä se y 0 (x):ään. Yksittäisratkaisun löytämiseksi symbolisesti voi toisinaan käyttää vakioiden variointia. (Ks. kurssi Differentiaaliyhtälöt.) Ns. Kovacicin algoritmi etsii lineaarisen 2. kertalukua olevan homogeenisen DY:n D 2 y + a(x)dy + b(x)y =0, missä a(x) ja b(x) ovat rationaalisia funktioita, yleisen ns. Liouvillen ratkaisun 4 tai sitten osoittaa, ettei sillä ole sellaista (paitsi tietenkin nollafunktio). Algoritmi on erittäin mutkikas, mutta on silti implementoitu useissa ohjelmistoissa käyttökelpoisuutensa takia. Alkuperäisviite on KOVACIC, J.J.: An Algorithm for Solving Second Order Linear Homogeneous Differential Equations. Journal of Symbolic Computation 2 (1986), 3 43 (tulos on kuitenkin alunperin kymmenen vuotta vanhempi). Ks. myös DAVENPORT &SIRET &TOURNIER. Kovacicin algoritmi on yleistetty tapaukseen, jossa kertaluku voi olla korkeampikin ja kertoimina voi olla algebrallisiakin funktioita, ns. Singerin algoritmi, ks. SINGER, M.F.: Liouvillian Solutions of n-th Order Linear Homogeneous Differential Equations. American Journal of Mathematics 103 (1981), Jälleen yksityisratkaisujen etsiminen symbolisesti saattaa onnistua vakioiden varioinnilla. Mainittakoon tässä vielä tunnettu sijoitus, jolla voidaan muuntaa lineaarinen DY vakiokertoimiseksi, mikäli se yleensä ottaen on sijoituksella mahdollista: Lause 7.5. (Jeruginin lause) Jos lineaarinen DY D n y + a n 1 (x)d n 1 y + + a 1 (x)dy + a 0 (x)y = f(x), voidaan muuntaa sijoituksella vakiokertoimiseksi, niin kyseessä on sijoitus t = φ(x), missä n φ(x) = ca0 (x)dx (ns. Jeruginin sijoitus) ja c on vakio. 4 Liouvillen ratkaisu on ratkaisu, joka on kuntalaajennustornissa, missä kukin askel on joko eksponentiaalinen tai algebrallinen tai integraalinen. Vm. askel on sellainen, missä liitetään kuntaan jonkin siinä olevan funktion f(x) integraali. Liitettävä funktio l(x) derivoidaan siis kaavalla Dl(x) =f(x). Huomaa, että Liouvillen periaatteen kautta mukaan tulee logaritmejakin. Toisaalta mukaan tulevat myös kaikki ei-alkeiset integraalitkin, vrt. DY:n ratkaisu integroimalla. Eli tarkoituksena on palauttaa DY:n ratkaiseminen integrointiin.
97 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT 93 Todistus. Merkitään y(x) = z(φ(x)). (Jotta φ(x) olisi käypä sijoitus, pitää sen tietysti olla kääntyvä ja n kertaa derivoituva.) Lasketaan Ketjusäännöllä derivaattoja: Dy(x) =Dz(φ(x))Dφ(x), D 2 y(x) =D 2 z(φ(x))(dφ(x)) 2 +Dz(φ(x))D 2 φ(x),. D n y(x) =D n z(φ(x))(dφ(x)) n +. Jos sijoitus muuntaa DY:n vakiokertoimiseksi, on erityisesti silloin vakio. Valitaan nyt c =1/b. a 0 (x) (Dφ(x)) n = b Lineaarisille DY:öille sopivia sijoituksia tunnetaan lukuisia muitakin ja niitäkin on joitain implementoituina ohjelmistoissa. Usein riittää saada DY:n ratkaisun Taylorin sarja. Lineaarisen alkuarvotehtävän ratkaisun Taylorin sarja a n (x)d n y + a n 1 (x)d n 1 y + + a 1 (x)dy + a 0 (x)y = f(x), y(x 0 )=b 0, Dy(x 0 )=b 1,..., D n 1 y(x 0 )=b n 1 y(x) =b ! b 1 1(x x 0 )+ + (n 1)! b n 1(x x 0 ) n 1 + c n (x x 0 ) n + c n+1 (x x 0 ) n+1 + pisteessä x = x 0 saadaan peräkkäisten approksimaatioiden menetelmällä olettaen, että kerroinfunktioiden a i (x) sekä pakkofunktion f(x):n Taylorin sarjat tässä pisteessä tunnetaan ja että a n (x 0 ) 0(ja usein muulloinkin). Alkupään kertoimet saadaan alkuehdoista ja DY:stä: c i = b i (i =0, 1,...,n 1), i! 1 c n = n!a n (x 0 ) (f(x 0) a n 1 (x 0 )b n 1 a n 2 (x 0 )b n 2 a 0 (x 0 )b 0 ). Menettely on seuraava: Peräkkäisten approksimaatioiden menetelmä lineaariselle DY:lle: 1. Asetetaan r n +1ja y n c 0 + c 1 (x x 0 )+ + c n (x x 0 ) n. 2. Lasketaan kertoimien a i (x) ja pakkofunktion f(x):n Taylorin polynomit P i (x) ja Q(x) pisteessä x = x 0. (Asteluvun pitää olla kyllin korkea.) 3. Ratkaistaan yhtälöstä P n (x)d n y r + P n 1 (x)d n 1 y r + + P 1 (x)dy r + P 0 (x)y r = Q(x) kerroin c r (unohtaen (x x 0 ) r :ää korkeammat x x 0 :n potenssit).
98 LUKU 7. SYMBOLINEN INTEGROINTI JA DIFFERENTIAALIYHTÄLÖT Jos tarvitaan vielä korkeampiasteisia termejä, asetetaan r r +1 sekä y r y r 1 + c r (x x 0 ) r ja mennään kohtaan 3. Muuten tulostetaan y r ja lopetetaan. Menetelmä voidaan toisinaan modifioida myös tapaukseen, jossa a n (x 0 )=0. Esimerkiksi alkuarvotehtävälle xdy + (sin x)y = x 2, y(0) = b saadaan sarjaratkaisu, sillä se on sama kuin Dy +(sinc x)y = x, y(0) = b, ja sinc-funktiolla on Taylorin sarja. Yleensäkin, jos funktioilla a i (x)/a n (x) (i =0, 1,...,n 1) ja f(x)/a n (x) on Taylorin sarjat pisteessä x = x 0, saadaan ratkaisun Taylorin sarja pisteessä x = x 0 Peräkkäisten approksimaatioiden menetelmällä. Huomautus. Myös Frobeniuksen menetelmä, jossa nimenomaan käsitellään tapausta, missä a n (x 0 )=0, voidaan toteuttaa symbolisesti, ks. esimerkiksi DAVENPORT &SIRET &TOUR- NIER ja kurssi Differentiaaliyhtälöt.
99 Fortunately, on 20 April 1977, all of this kludgery was rendered obsolete when I found a decision procedure for this problem. (A discrete analog to the Risch algorithm for indefinite integration.) (R. William Gosper, Jr., Indefinite Hypergeometric Sums in MACSYMA, Proceedings of MACSYMA Users Conference, Berkeley, 1977) Luku 8 SUMMAUS JA KERTOMINEN 8.1 Summat ja differenssit Summaus koskee kokonaisluvuille määriteltyjä funktioita 1 f(n). Funktion arvot voivat olla mitä tahansa lukuja (tai muutakin). Tavallinen summa on muotoa b f(n) =f(a)+f(a +1)+ + f(b). n=a Kyseessä on ns. määrätty summa (vrt. määrätty integraali). Määräämätöntä integraalia vastaa ns. määräämätön summa f(n)δn, missä δn on integraalin differentiaalia dx vastaava merkinnällinen lausekkeen osa. Määräämätön summa määritellään ottamalla käyttöön derivaattaa vastaava operaatio, ns. differenssi: F (n) =F (n +1) F (n). (Kyseessä on ns. etenevä differenssi, takeneva differenssi on F (n) =F (n) F (n 1) ja se olisi yhtä käyttökelpoinen.) Määräämätön summa f(n)δn tarkoittaa kollektiivisesti funktioita F (n),jotka toteuttavat yhtälön F (n) =f(n). Koska ainoat funktiot, joiden differenssi on nollafunktio, ovat vakiofunktiot, on määräämätön summa näin yksikäsitteinen summausvakiota vaille (aivan kuten määräämätön integraali on yksikäsitteinen integrointivakiota vaille). Funktion f(n) summaus tarkoittaa yleisesti sen määräämättömän summan F (n) = f(n)δn (+ C) löytämistä. Jos F (n) tunnetaan saadaan sen avulla laskettua kaikki f(n):n määrätyt summat: Lause 8.1. (Summauslaskennan peruslause) Jos F (n) = f(n)δn, niin b f(n) =F (b +1) F (a) = n=a b+1 / a F (n). 1 Nämä voidaan tarvittaessa jatkaa reaaliluvuille x asettamalla f( x ) tai f( x ). 95
100 LUKU 8. SUMMAUS JA KERTOMINEN 96 Todistus. Ilmeisesti b b F (b +1) F (a) = (F (n +1) F (n)) = F (n) = n=a n=a b f(n). i=a Tämän lauseen mukaisesti on luonnollista merkitä b b 1 f(n)δn = f(n), n=a n=a kun b a ja b f(n)δn = n=a a f(n)δn, kun b a. n=b Summauslaskennan peruslause tulee tällöin tuttuun muotoon Huomaa, että b f(n)δn = F (b) F (a) = n=a n 1 m=a f(m) = / b a n f(m)δm m=a on aina eräs f(n):n määräämätön summa. Derivointisääntöjä vastaten saadaan differointisäännöt F (n). (f(n) ± g(n)) = f(n) ± g(n), c =0 (c on vakio), (f(n)g(n)) = g(n + 1) f(n)+f(n) g(n), ( ) f(n) g(n) f(n) f(n) g(n) = g(n) g(n)g(n +1) (mutta ei kuitenkaan Ketjusääntöä eikä käänteisfunktion differointisääntöä). Näistä saadaan edelleen välittömästi summaussäännöt (f(n) ± g(n))δn = f(n)δn ± g(n)δn, cf(n)δn = c f(n)δn, f(n) g(n)δn = f(n)g(n) g(n + 1) f(n)δn (osittaussummaus). Alkeisfunktioiden joukossa potenssifunktiot, eksponenttifunktio ja logaritmit ovat keskeisiä (esimerkiksi integroinnissa, kuten edellisessä luvussa todettiin). Nämä eivät kuitenkaan käyttäydy differoidessa samoin kuin jatkuvat vastineensa ja korvautuvatkin summauslaskennassa toisilla funktioilla: Potenssifunktion n a vastine p(n, a),missä a on kokonaisluku, toteuttaa differenssiyhtälön p(n, a) =ap(n, a 1)
101 LUKU 8. SUMMAUS JA KERTOMINEN 97 sekä lisäksi ehdot p(n, 0) =1ja p(0,a)=0, jos a>0. Tällainen funktio ei-negatiivisille a:n arvoille on Pykälässä 3.6 jo esiintynyt Pochhammerin symboli p(n, a) =n a = n(n 1) (n a +1). (Erityisesti sovitaan, että n 0 =1ja n 1 = n.) Negatiivisille eksponentin arvoille määrittelyä jatketaan sopivasti: n a 1 = (n + 1)(n +2) (n + a). Tässäkin tapauksessa differointi antaa tutun tuloksen, kuten on helppo havaita. Ja mukavinta on, että tuttu potenssilaskenta pätee sentään jossain muodossa: (Totea!) n a+b = n a (n a) b. Huomautus. On toinenkin Pochhammerin symboli n a = n(n +1) (n + a 1), jolla on oma käyttönsä, ks. Pykälä 8.3. Sitäpaitsi, ilmeisesti n a =((n 1) a ) 1. Eksponenttifunktion e n vastine e(n) toteuttaa differenssiyhtälön e(n) =e(n) ja lisäehdon e(0) =1. Tällainen funktio on tietysti Yleisemmin a n =(a 1)a n. e(n) =2 n. Logaritmin ln n vastine H(n) toteuttaa differenssiyhtälön H(n) = 1 n +1. (Että miksikö 1/(n +1)eikä 1/n? Nosiksi, että logaritmin ln x derivaatta on x 1, joten H(n):n differenssin pitää vastaavasti olla n 1.) Eräs sopiva funktio on tietysti H(n) = ns. harmoninen funktio. H(n) ja ln n ovat asymptoottisesti aika lähellä toisiaan, sillä n m=1 1 m, lim (H(n) ln n) =γ = n (Eulerin vakio). (Ei ole kovin vaikea näyttää, että ko. raja-arvo on äärellisenä olemassa, ks. myös Pykälä 7.4.) Jossain mielessä parempi valinta olisikin H(n) γ =Ψ(n 1), missä Ψ(x) = D(ln Γ(x)) on ns. digammafunktio (ks. Pykälä 8.2). Harmonista funktiota ei muuten saa summatuksi miksikään tutummaksi funktioksi.
102 LUKU 8. SUMMAUS JA KERTOMINEN 98 Näistä määrittelyistä saadaan seuraavat perusdifferoinnit ja -summaukset: n a = an a 1 H(n) =n 1 ja ja n a δn = 1 a +1 na+1 n 1 δn = H(n), (a 1), a n =(a 1)a n ja a n δn = 1 a 1 an (a 1). (Ensimmäisestä muuten saadaan edelleen aritmeettisen sarjan summa, keskimmäisestä harmonisen ja viimeisestä geometrisen.) Huomautus. Summausta koskien saadaan oma Liouvillen periaatteensa, ns. Rosenlichtin lause 2, sekä Rischin integrointia vastaava ns. Karrin algoritmi 2.(Jolloin tarvitaan ns. differenssikunta.) Tämä lähestymistapa vaan ei ole kuitenkaan osoittautunut yleisesti kovinkaan hedelmälliseksi. Poikkeuksena on rationaalifunktioiden summaus di- ja polygammafunktioiksi. Usein parempi menettely on ns. Gosperin summaus, joka taas pohjautuu hypergeometristen termien käyttöön (ks. Pykälä 8.3). 8.2 Rationaalifunktioiden summaus Rationaalifunktioiden summaus polynomeiksi ja ns. polygammafunktioiksi on kauan tunnettu. Ensimmäinen askel rationaalifunktion p 1 (n) p 2 (n) summaamiseksi on jakaa osoittaja nimittäjällä sekä supistaa pois yhteiset tekijät: p 1 (x) p 2 (x) = p(x)+r(x) q(x), missä p(x) on polynomi, deg(r(x)) < deg(q(x)) ja syt(r(x),q(x)) = 1. Lisäksi voidaan olettaa, että q(x) on pääpolynomi. Näin summattavaksi jää polynomi p(n) sekä aito rationaalifunktio r(n)/q(n). Edellisestä tulee tuloksena polynomi ja jälkimmäisestä polygammafunktioiden summa. Katsotaan nämä erikseen. Polynomien summaus Polynomien summauksessa käytetään sitä tietoa, että n a δn = 1 a +1 na+1 (a 0). Näin riittää lausua polynomi p(n) ( 0) Pochhammerin symbolien lineaariyhdelmänä. Tämä on aina mahdollista, koska kiinteälle ei-negatiiviselle a:n arvolle x a on astetta a oleva x:n pääpolynomi. Esityksen Pp(x) antaa seuraava algoritmi: 2 Alkuperäisviitteet ovat ROSENLICHT, M.: Liouville s Theorem on Functions with Elementary Integrals. Pacific Journal of Mathematics 24 (1968), ja KARR, M.: Summation in Finite Terms. Journal of the ACM 28 (1981),
103 LUKU 8. SUMMAUS JA KERTOMINEN 99 Polynomin Pochhammerin esitys: 1. Jos syötepolynomi p(x) on vakio a, asetetaan Pp(x) ax 0,tulostetaan Pp(x) ja lopetetaan. 2. Jos p(x) ei ole vakio, asetetaan Pp(x) a m x m +P(p(x) a m x m ), missä a m on p(x):n johtava kerroin ja m sen aste. Algoritmissa oleva rekursio päättyy, sillä p(x) a m x m :n aste on pienempi kuin p(x):n. Jos nyt p(x):n Pochhammerin esitys on Pp(x) =b m x m + b m 1 x m b 1 x 1 + b 0 x 0, niin ilmeisesti p(n)δn = (bm n m + b m 1 n m b 1 n 1 + b 0 n 0 )δn = b m n m δn + b m 1 n m 1 δn + + b 1 n 1 δn + b 0 n 0 δn = b m m +1 nm+1 + b m 1 m nm + + b 1 2 n2 + b 0 n 1. Näin polynomin summauksen suurimman työn vaatii konversio Pochhammerin esitykseen ja tarvittaessa takaisin summauksen jälkeen. Polygammaosan summaus Polygammaosa tulee summattaessa r(n) q(n), missä deg(r(x)) < deg(q(x)), syt(r(x),q(x)) =1ja q(x) on pääpolynomi. Tällöin jaetaan nimittäjä 1. asteen tekijöihin sopivassa kuntalaajennuksessa (tai neliöttömiin tekijöihin jakoa käyttäen symbolisesti) q(x) =(x b 1 ) k 1 (x b 2 ) k2 (x b m ) km ja kehitetään r(x)/q(x) osamurroiksi kuten Pykälässä 5.4: p(x) q(x) = a 11 a 12 + x b 1 (x b 1 ) + + a 1k1 2 (x b 1 ) k 1 + a 21 a 22 + x b 2 (x b 2 ) + + a 2k2 2 (x b 2 ) k a m1 a m2 + x b m (x b m ) + + a mkm 2 (x b m ). km Näin riittää summata muotoa 1 (n b) k
104 LUKU 8. SUMMAUS JA KERTOMINEN 100 olevat rationaalifunktiot, missä k 1. Näiden summat ovat lausuttavissa polygammafunktioiden avulla. Itse asiassa eräs esimerkki tällaisesta oli jo 1/n:n summaaminen harmonisen funktion tai digammafunktion avulla. Digammafunktio Ψ(x) = D(ln Γ(x)) kun on eräs polygammafunktio. Yleisesti n:s polygammafunktio on Ψ(n, x) =D n+1 (ln Γ(x)) =D n Ψ(x) =DΨ(n 1,x), ja Ψ(x) =Ψ(0,x). Polygammafunktiot ovat paljon käytettyjä erikoisfunktioita ja mm. niiden numeeriset arvot ovat laskettavissa nopeilla algoritmeilla, ks. esimerkiksi ABRAMOWITZ & STEGUN. Alla on Maple-ohjelmiston piirtämät kuvat funktioista Ψ(3, x), Ψ(1, x), Ψ(x), Ψ(2,x) ja Ψ(4,x),tässä järjestyksessä vasemmalla ylhäältä alas y x Koska D(x +1)=1,onKetjusäännön nojalla Ψ(k 1,x+1)=DΨ(k 2,x+1) 1=D(Ψ(k 2,x+ 1)) = =D k (ln Γ(x + 1)) =D k (ln(xγ(x))) =D k (ln x +lnγ(x)) =D k ln x +Ψ(k 1,x) =( 1) k 1 (k 1)! 1 +Ψ(k 1,x). xk Toistamalla tätä saadaan n 1 Ψ(k 1,x+ n) =( 1) k 1 1 (k 1)! +Ψ(k 1,x). (x + i) k (Tämä toimii, jos x ei ole negatiivinen kokonaisluku eikä nolla. Jos x on negatiivinen kokonaisluku tai nolla, pitää summaus aloittaa arvosta i =1 x.) Viimeinen termi Ψ(k 1,x) voidaan tulkita summausvakioksi, jolloin tästä saadaan edelleen summauskaava 1 ( 1)k 1 δn = Ψ(k 1,x+ n). (x + n) k (k 1)! Näin ollen erikoisesti valitsemalla x = b saadaan haluttu summauskaava 1 ( 1)k 1 δn = Ψ(k 1,n b). (n b) k (k 1)! Menettelyn haittapuolena on osamurtoihinjaon hyvin usein vaatima suuri laskenta. i=0
105 LUKU 8. SUMMAUS JA KERTOMINEN 101 Rationaalisen osan summaus Osa polygammafunktioista voi yhdistyä rationaalifunktioksi (ns. rationaalinen osa). Tätä voidaan etsiä suoraankin seuraavanlaisella Hermiten menetelmän muunnelmalla. Yleisesti määritellään funktion f(x) a:s Pochhammerin potenssi seuraavasti: f a (x) =f(x)f(x 1) f(x a +1), jos a 0. (Ei pidä sekoittaa Pochhammerin symboliin f(x) a!) Funktion f(x) Pochhammerin neliö on näin ollen f 2 (x) =f(x)f(x 1). Polynomi on Pochhammer-neliötön, jos sillä ei ole tekijänään (yksiköitä lukuunottamatta) minkään polynomin Pochhammerin neliötä. Lausetta 5.11 vastaava tulos pätee: Lause 8.2. UFD:n polynomirenkaan primitiivinen polynomi p(x) on Pochhammer-neliötön tarkalleen silloin, kun syt(p(x), p(x)) =1. (Huomaa, että syt(p(x), p(x)) = syt(p(x),p(x +1) p(x)) = syt(p(x),p(x + 1)).) Todistus. Jos q(x) 2 (x) jakaa p(x):n, niin p(x) on muotoa ja p(x) =q(x)q(x 1)s(x) p(x) =q(x +1)q(x)s(x +1) q(x)q(x 1)s(x), mistä nähdään, että q(x) jakaa tällöin p(x):n ja siis myös syt(p(x), p(x)):n. Näin ollen, jos q(x) ei ole yksikkö, ei sitä ole myöskään syt(p(x), p(x)). Toisaalta, jos p(x) on Pochhammer-neliötön ja syt(p(x), p(x)) = d(x), niin p(x):n alkutekijöihinjako on muotoa p(x) =q 1 (x)q 2 (x) q k (x), ja ellei d(x) ole yksikkö, niin sen alkutekijät ovat tässä mukana. Asia on selvä, jos d(x) on yksikkö, joten oletetaan, että se ei sitä ole. Ilmeisesti p(x +1):n tekijöihinjako on p(x +1)=q 1 (x +1)q 2 (x +1) q k (x +1) ja jokin näistä alkutekijöistä, sanotaan q i (x +1),onmyös d(x):n tekijä ja näin ollen edelleen p(x):n tekijä. Siispä on sellainen j, että q j (x) =q i (x +1). Näin p(x):llä on tekijänään Pochhammerin neliö q i (x+1)q i (x), josta seuraa ristiriita. (Huomaa, että koska p(x) on primitiivinen, sillä ei ole alkutekijöinään vakiopolynomeja. Näin ollen ei voi olla q i (x) =q j (x) =q i (x +1), koska silloinhan q i (x) olisi vakio.) Ristiriita näyttää, että d(x):n on oltava yksikkö (ja yksikkönormaalina edelleen =1). Seuraava algoritmi laskee polynomin jaon Pochhammer-neliöttömiin tekijöihin: Pochhammer-neliöttömiin tekijöihin jako primitiiviselle polynomille: 1. Asetetaan L NULL (tyhjä jono). 2. Lasketaan syt(p(x),p(x 1)) ja asetetaan d(x) syt(p(x),p(x 1)) ja r(x) p(x) d(x).
106 LUKU 8. SUMMAUS JA KERTOMINEN Jos d(x) on vakio, tulostetaan L,r(x) ja lopetetaan. 4. Jos d(x) ei ole vakio, lasketaan s(x) =syt(d(x +1),r(x)) sekä asetetaan Mennään kohtaan 3. L L,r(x)/s(x), d(x) d(x +1) s(x) ja r(x) s(x). Algoritmi on toiminnaltaan hyvin samantapainen kuin Pykälässä 3.7:ssä oleva. Tuloksena polynomi p(x) on muodossa p(x) =q 1 1(x)q 2 2(x)q 3 3(x) q k k (x) missä q 1 (x),q 2 (x),...,q k (x) ovat Pochhammer-neliöttömiä primitiivisiä polynomeja (mahdollisesti =1). Jos p(x) on neliötön tai neliöttömän polynomin potenssi, tiedetään lisäksi, että q i i (x):t ovat keskenään jaottomia (i =1, 2,...,k). Tällöin p(x):n juuret ovat kaikki samaa kertalukua. q 1 (x):ssä ovat ne p(x):n tekijät x b, joille x ± 1 b ei ole tekijä. q 2 (x):ssä ovat ne tekijät x b, joille myös x 1 b on tekijä, mutta x 2 b ja x +1 b eivät ole. Jne. Edelleen, jos p(x) on neliöttömän polynomin potenssi, tiedetään vielä, että syt(q i (x),q i (x j)) =1 (j =1, 2,...,i 1). Jos nimittäin olisi syt(q i (x),q i (x j)) 1, niin s.y.t.:llä olisi juuri b ja tekijä x b. Näin ollen q i (x):llä olisi tekijät x b ja x + j b. p(x):llä olisi siis tekijänä (x b) i ja (x + j b) i ja näin myös (x + j b) i+j, mikä ei käy. Hermiten summausmenetelmä: 1. Suoritetaan nimittäjän q(x) jako tavallisiin neliöttömiin tekijöihin q(x) =q 1 (x)q 2 (x) 2 q 3 (x) 3 q k (x) k (ks. Pykälä 5.7). Nämä tekijät ovat keskenään jaottomia. 2. Jaetaan kukin neliötön tekijä q i (x) Pochhammer-neliöttömiin tekijöihin eo. algoritmilla. Sama jako pätee potensseille q i (x) i. Yhdistämällä nämä saadaan q(x):n jako keskenään jaottomiin Pochhammerin potenssia oleviin tekijöihin: q(x) =s t 1 1 (x)s t 2 2 (x) s t l l (x). 3. Jaetaan r(x)/q(x) osamurtoihin käyttäen kohdan 2. antamaa q(x):n jakoa (ks. Pykälä 5.4): r(x) s t 1 1 (x)s t 2 2 (x) s t l l (x) = a 1(x) s t 1 1 (x) + a 2(x) s t 2 2 (x) + + a l(x) s t l 1 (x). Rationaalista osaa tulee silloin niistä osamurroista a i (x)/s t i i (x), joissa t i 2. Käydään ne läpi yksi kerrallaan. 4. Kuten yllä todettiin, nyt tiedetään, että syt(s i (x),s i (x j)) = syt(s i (x j),s i (x) s i (x j)) =1 (j =1, 2,...,t i 1). Etsitään Bezout n muoto arvolle j = t i 1 (muita j:n arvoja tarvitaan myöhemmin): 1=c i (x)s i (x t i +1)+d i (x)(s i (x) s i (x t i + 1)).
107 LUKU 8. SUMMAUS JA KERTOMINEN Osittaissummataan: ai (n) s t i i (n)δn = ai (n)(c i (n)s i (n t i +1)+d i (n)(s i (n) s i (n t i + 1))) s t i i (n) δn = ( ) a i (n)c i (n) s t i 1 i (n) δn 1 ai (n)d i (n) s t δn i 1 i (n 1) = a i (n)c i (n) s t i 1 i (n) δn a i(n)d i (n) s t i 1 i (n 1) + (ai (n)d i (n)) s t δn i 1 i (n) = a i (n)c i (n)+ (a i (n)d i (n)) s t δn a i(n)d i (n) i 1 i (n) s t i 1 i (n 1). Koska s i (x):n Pochhammerin eksponentti on laskenut yhdellä, voidaan näin jatkaa, kunnes se on =1. Silloin loput summat siirtyvätkin polygammaosaan. Huomautus. Tämä menetelmä ei yleensä ottaen saa summaa muotoon, jossa on vähiten polygammafunktioita, vaan tähän tarvitaan lisäksi polygammafunktioiden laskusääntöjä. Se kuitenkin löytää keskeisen rationaalisen osan. 8.3 Hypergeometrinen summaus. Gosperin algoritmi Gosperin algoritmi 3 sopii tapauksiin, joissa summattavassa lausekkeessa on Pochhammerin symboleita, kertomia, binomikertoimia ja potensseja. Summaus tapahtuu sangen yleisessä lausekeluokassa, ns. hypergeometrisissa termeissä 4, ts. muotoa ( a1,...,a F m b 1,...,b n z ) k = ak 1 a k mz k b k 1 b k nk! olevissa termeissä, missä on käytössä se toinen Pochhammerin symboli x k = x(x +1) (x + k 1). Tässä on sallittua, että m =0tai/ja n =0(tyhjä tulo). Voit todeta, että esimerkiksi binomikertoimet, Pochhammerin symbolit, kertomat ja potenssit ovat hypergeometrisia termejä: ( ) ( ) ( ) ( ) x x 1, x 1, 1 = F 1, x k = F 1, n!=f 1 k ja k a n = F ( 1 a Hypergeometristen termien summausprobleemaa kutsutaan hypergeometriseksi summaukseksi. Summausmuuttujana on tällöin k, muut esiintyvät suureet ovat parametrejä. Ts. kun on annettu parametrit a 1,...,a m,b 1,...,b n sekä z, onselvitettävä onko 3 Alkuperäisviite on GOSPER, W.R.: Decision Procedure for Indefinite Hypergeometric Summation. Proceedings of the National Academy of Sciences of the USA 73 (1978), Ks. myös mainio PETKOV SEK &WILF &ZEILBERGER, joka on saatavana verkossakin. 4 Nimitys tulee siitä, että näistä termeistä muodostettu potenssisarja on ns. hypergeometrisen funktion Maclaurinin sarja. a 1,...,a m ja b 1,...,b n ovat funktion parametrejä. Sopivasti parametrejä valitsemalla saadaan valtava joukko funktioita, niin alkeis- kuin erikoisfunktioitakin. Lisäksi hypergeometristen funktioiden joukolle on tavattoman paljon laskusääntöjä, ks. esimerkiksi GRAHAM &KNUTH &PATASHNIK. ). n k n
108 LUKU 8. SUMMAUS JA KERTOMINEN 104 ( ) ( ) a1,...,a F m A1,...,A z δk = cf M Z b 1,...,b n B 1,...,B N k joillekin parametrien A 1,...,A N,B 1,...,B M sekä Z arvoille ja jollekin vakion c arvolle, vai ei, ja positiivisessa tapauksessa etsittävä nämä arvot. Merkitään lyhyyden vuoksi ( ) ( ) a1,...,a t(k) =F m A1,...,A z ja T (k) =F M Z. b 1,...,b n B 1,...,B N Jos summaus onnistuu, on Nyt k (ct (k)) = ct (k +1) ct (k) =t(k). t(k +1) t(k) = (k + a 1)(k + a 2 ) (k + a m )z (k + b 1 )(k + b 2 ) (k + b n )(k +1). Algoritmin ensimmäinen tehtävä on kirjoittaa tämä muotoon k k t(k +1) t(k) = p(k +1) p(k) q(k) r(k +1), missä p(x), q(x) ja r(x) ovat polynomeja, ja q(x) ja r(x) toteuttavat seuraavan ehdon: ( ) Jos α on q(x):n juuri ja β on r(x):n juuri, niin β α ei ole positiivinen kokonaisluku. Tämän tarkoitus on vain saada t(k +1)/t(k) kirjoitettua jatkoa ajatellen mukavaan muotoon. Se käy seuraavasti: 1. Asetetaan p(x) 1, q(x) (x + a 1 )(x + a 2 ) (x + a m )z ja r(x) (x + b 1 1)(x + b 2 1) (x + b n 1)x. 2. Jos ehto ( ) toteutuu, on asia selvä ja lopetetaan. 3. Jos ehto ( ) eitoteudu, on q(x):llä tekijä x α ja r(x):llä tekijä x β, joille β α = u on positiivinen kokonaisluku. Asetetaan p(x) p(x)(x α 1) u 1 = p(x)(x α 1)(x α 2) (x β +1), q(x) q(x) x α ja r(x) r(x) x β. Huomaa, että silloin Mennään kohtaan 2. p(x +1) p(x) p(x + 1)(x α) p(x)(x β +1).
109 LUKU 8. SUMMAUS JA KERTOMINEN 105 Menettely pysähtyy, sillä q(x):n ja r(x):n aste laskee aina joka kierroksella yhdellä. Seuraavaksi kirjoitetaan tentatiivisesti ct (k) muotoon ct (k) = r(k)s(k)t(k) p(k) Tämähän on aina mahdollista, valitsemalla s(k) sopivasti. ct (k) toteuttaa (jos se vain on olemassa!) rekursiokaavan ct (k +1) ct (k) =t(k) eli s(k) toteuttaa rekursiokaavan p(k) =q(k)s(k +1) r(k)s(k). Nyt riittää löytää sellainen s(x),joka toteuttaa vastaavan jatkuvan rekursiokaavan p(x) =q(x)s(x +1) r(x)s(x). T (k +1)/T (k) on k:n rationaalifunktio, joten samoin on T (k) T (k +1) T (k) = r(k)s(k) p(k) ja edelleen s(k).kirjoitetaan (edelleen tentatiivisesti) s(x) = f(x) g(x) missä f(x) ja g(x) ovat polynomeja ja syt(f(x),g(x)) = 1. Mutta itse asiassa s(x) on polynomi. Asia on selvä, jos g(x) on vakio. Tehdään vastaoletus: g(x) ei ole vakio. Valitaan suurin sellainen positiivinen kokonaisluku v, että β ja β v +1ovat molemmat g(x):n juuria jollekin luvulle β. (Tällainen v on tietysti olemassa, jossei muuten, niin v =1.) Kirjoitetaan nyt s(x):n rekursiokaava muotoon p(x)g(x +1)g(x) =q(x)f(x +1)g(x) r(x)g(x +1)f(x). Kun asetetaan x = β ja x = β v,saadaan r(β)g(β +1)f(β) =0 ja q(β v)f(β v +1)g(β v) =0. Tässä f(β) 0ja f(β v +1) 0, sillä g(x):llä ja f(x):llä ei ole yhteisiä juuria (muutoin niiden s.y.t. ei olisi =1). Toisaalta myös g(β +1) 0ja g(β v) 0,sillä muussa tapauksessa g(x):llä olisi juurena joko β +1tai β v. Tämä ei ole mahdollista, sillä v valittiin suurimmaksi mahdolliseksi. Edelleen r(β) =q(β v) =0 on ristiriidassa ehdon ( ) kanssa, joten r(β) 0tai q(β v) 0. Ristiriita osoittaa vastaoletuksen vääräksi, joten, jos s(x) on olemassa, se on polynomi. Näin tehtävänä on etsiä polynomi s(x) tai todeta, ettei sellaista ole olemassa. Asia olisi helppo, jos s(x):n enimmäisaste vain tunnettaisiin: Sijoitetaan määräämättömin kertoimin varustettu s(x) rekursiokaavaan p(x) =q(x)s(x +1) r(x)s(x) ja ratkaistaan kertoimet. (Jollei kertoimia löydy, ei hypergeometrinen summaus onnistu.)
110 LUKU 8. SUMMAUS JA KERTOMINEN 106 Jotta saataisiin s(x), pitää sen aste siis ensin selvittää. Kirjoitetaan tätä varten s(x):n rekursiokaava vielä muotoon missä 2p(x) =Q(x)(s(x +1)+s(x)) + R(x)(s(x +1) s(x)), Q(x) =q(x) r(x) ja R(x) =q(x) +r(x). Nyt, jos s(x):n aste on d, niin summan s(x +1)+s(x) aste on myös d, kun taas differenssin s(x +1) s(x) aste on d 1. (Oletetaan nollapolynomin asteeksi 1.) Kaksi mahdollisuutta: deg(q(x)) deg(r(x)). Silloin deg(p(x)) = deg(q(x)) + d, josta saadaan kysytty aste: d = deg(p(x)) deg(q(x) r(x)). deg(q(x)) < deg(r(x)) = δ. Silloin voidaan kirjoittaa Q(x) =αx δ 1 +, R(x) =βx δ + ja s(x) =γx d +, missä β,γ 0, jolloin (muista binomikaava) ja s(x +1)+s(x) =2γx d + ja s(x +1) s(x) =dγx d 1 + Taas kaksi mahdollisuutta: 2α + βd 0.Silloin 2p(x) =(2γα + βdγ)x d+δ 1 +. deg(p(x)) = d + δ 1 eli d = deg(p(x)) deg(q(x)+r(x)) α + βd =0eli d = 2α/β. Silloin deg(p(x)) <d+ δ 1 eli d>deg(p(x)) deg(q(x)+r(x)) + 1. Tämä tapaus luonnollisesti ei tule kysymykseen, ellei 2α/β ole kokonaisluku ja vähintään deg(p(x)) deg(q(x) +r(x)) + 2. Varsinainen algoritmi on sitten seuraava: Gosperin summausalgoritmi: 1. Kirjoitetaan t(k +1)/t(k) muotoon t(k +1) t(k) = p(k +1) p(k) q(k) r(k +1), missä ehto ( ) toteutuu, edellä esitetyllä menetelmällä. 2. Jos deg(q(x) r(x)) deg(q(x) +r(x)), niin asetetaan d deg(p(x)) deg(q(x) r(x)).
111 LUKU 8. SUMMAUS JA KERTOMINEN Jos deg(q(x) r(x)) < deg(q(x) +r(x)), niin etsitään q(x) r(x):n johtava kerroin α sekä q(x)+r(x):n johtava kerroin β. 3.1 Jos 2α/β ei ole vähintään deg(p(x)) deg(q(x)+r(x))+2oleva kokonaisluku, asetetaan d deg(p(x)) deg(q(x)+r(x)) Jos 2α/β on vähintään deg(p(x)) deg(q(x) +r(x)) +2oleva kokonaisluku, asetetaan d 2α/β. 4. Sijoitetaan määräämättömin kertoimin varustettu tarkalleen d-asteinen polynomi s(x) rekursiokaavaan p(x) =q(x)s(x +1) r(x)s(x) ja ratkaistaan sen kertoimet. Ellei ratkaisua ole, tulostetaan EI HYPERGEOMETRISTA SUMMAA ja lopetetaan. Muutoin tulostetaan ja lopetetaan. r(k)s(k)t(k) p(k) 8.4 Tulo Kuten summaus, myös tulo koskee kokonaisluvuille määriteltyjä funktioita f(n). Tavallinen tulo on muotoa b f(n) =f(a)f(a +1) f(b). n=a Kyseessä on ns. määrätty tulo (vrt. määrätty integraali tai määrätty summa). Määräämätöntä summaa/integraalia 5 vastaa ns. määräämätön tulo f(n)ρn, missä ρn on integraalin differentiaalia dx tai summan differenssiä δn vastaava merkinnällinen lausekkeen osa. Määräämätön tulo määritellään ottamalla käyttöön derivaattaa/differenssiä vastaava operaatio, ns. suhde: F (n +1) RF (n) =. F (n) (Kyseessä on ns. etenevä suhde, takeneva suhde on F (n)/f (n 1) ja se olisi yhtä käyttökelpoinen.) Määräämätön tulo f(n)ρn tarkoittaa kollektiivisesti funktioita F (n), jotka toteuttavat yhtälön RF (n) =f(n). Koska ainoat funktiot, joiden suhde on yksi, ovat vakiofunktiot, on määräämätön tulo näin yksikäsitteinen vakiokertojaa vaille (aivan kuten määräämätön integraali on yksikäsitteinen integrointivakiota vaille ja määräämätön summa on yksikäsitteinen summausvakiota vaille). 5 On olemassa myös tuloa tarkasti vastaava integraali, ns. tulointegraali, ks. esimerkiksi DOLLARD, J.D.& FRIEDMAN, C.N.: Product Integration with Applications to Differential Equations. Addison Wesley (1979).
112 LUKU 8. SUMMAUS JA KERTOMINEN 108 Funktion f(n) kertominen tarkoittaa yleisesti sen määräämättömän tulon F (n) =(C) f(n)ρn löytämistä. Jos F (n) tunnetaan, saadaan sen avulla laskettua kaikki f(n):n määrätyt tulot: Lause 8.3. (Kertolaskennan peruslause) Jos F (n) = f(n)ρn, niin Todistus. Ilmeisesti F (b +1) F (a) b f(n) = n=a = b n=a F (n +1) F (n) F (b +1) F (a) = = b+1 a F (n) b RF (n) = n=a b f(n). n=a Tämän lauseen mukaisesti on luonnollista merkitä ja b b 1 f(n)ρn = f(n), n=a n=a kun b a ( b a 1 f(n)ρn = f(n)ρn), kun b a. n=a n=b Kertolaskennan peruslause tulee tällöin tuttuun muotoon Huomaa, että b n=a f(n)ρn = F (b) F (a) = n 1 m=a on aina eräs f(n):n määräämätön tulo. Kaksi tavallisinta tulokaavaa ovat f(m) = b a F (n). n f(m)ρm m=a aρn= a n ja (n + a)ρn =Γ(n + a) (a on vakio). Edellinen on ilmeinen ja jälkimmäinen seuraa gammafunktion laskukaavasta Γ(n + a +1)=(n + a)γ(n + a) eli RΓ(n + a) =n + a. Derivointisääntöjä ja differointisääntöjä vastaten saadaan suhdesäännöt: R(f(n)g(n) ±1 )=(Rf(n))(Rg(n)) ±1, Rc =1 (c 0on vakio), R(f(n) c )=(Rf(n)) c (c on vakio), R(f(n) g(n) )=(Rf(n)) g(n+1) f(n) g(n),
113 LUKU 8. SUMMAUS JA KERTOMINEN 109 ja näistä edelleen kertosäännöt f(n)g(n) ±1 ρn = ( ) ±1 f(n)ρn g(n)ρn, ( ) c f(n) c ρn = f(n)ρn, f(n) g(n) ρn = f(n) g(n) (Rf(n)) g(n+1) ρn (osittaiskertominen). Lisäksi saadaan kertosäännöt, jotka liittävät summan ja tulon toisiinsa: a f(n) ρn = a f(n)δn, loga f(n)δn = log a ( f(n)ρn ) (jälkimmäinen on ilmeinen, edellinen saadaan vaikkapa osittaiskertomisella). Huomautus. Varsinaisia vahvoja kertoalgoritmeja ei oikeastaan tunneta. Periaatteessa kertominen voidaan aina palauttaa summaukseen yo. kaavoilla, mutta se johtaa usein hankaliin summauksiin. Huomaa kuitenkin, että rationaalifunktioiden tulo on aina periaatteessa helppo muodostaa yo. säännöillä jakamalla sen osoittaja ja nimittäjä 1. asteen tekijöihin (kuntalaajennuksilla tai neliöttömiin tekijöihin jaon jälkeen symbolisesti). Tämä tietysti voi olla suuritöinen tehtävä.
114 Luku 9 LINEAARISET REKURSIOKAAVAT 9.1 Yleistä Rekursiokaavoja käytetään määrittelemään (luku)jonoja lähtien tietyistä jonon alkupään termeistä, ns. alkuarvoista. Lineaarinen rekursiokaava on muotoa f(n + k) =c 1 (n)f(n + k 1) + c 2 (n)f(n + k 2) + + c k (n)f(n)+g(n) oleva rekursiokaava. Se määrittelee jonon f(0),f(1),f(2),, kun kerroinfunktiot c 1 (n),, c k (n) ja pakkofunktio g(n) tunnetaan ja alkuarvot f(0),...,f(k 1) on annettu. k on rekursiokaavan kertaluku. Jonon f(0), f(1),f(2), sanotaan toteuttavan rekursiokaavan. Jos g(n) on nollafunktio, sanotaan rekursiokaavaa homogeeniseksi, muuten epähomogeeniseksi. Välittömästi nähdään lineaaristen rekursiokaavojen kolme perusominaisuutta, jotka vastaavat lineaaristen differentiaaliyhtälöiden ominaisuuksia: Jos jonot f 1 (0),f 1 (1),... ja f 2 (0),f 2 (1),... toteuttavat saman lineaarisen homogeenisen rekursiokaavan, niin myös summajono f 1 (0) + f 2 (0),f 1 (1) + f 2 (1),... toteuttaa tämän rekursiokaavan. Jos jono f(0), f(1), f(2), toteuttaa tietyn lineaarisen homogeenisen rekursiokaavan ja C on vakio, niin myös C:llä kerrottu jono Cf(0),Cf(1),... toteuttaa tämän rekursiokaavan. Jos jonot f 1 (0),f 1 (1),... ja f 2 (0),f 2 (1),... toteuttavat tietyn lineaarisen rekursiokaavan, niin erotusjono f 1 (0) f 2 (0),f 1 (1) f 2 (1),... toteuttaa vastaavan homogeenisen rekursiokaavan. Rekursiokaava, joka ei ole lineaarinen, on epälineaarinen. Epälineaaristen rekursiokaavojen (+ alkuarvojen) ratkaiseminen siinä mielessä, että saataisiin lauseke f(n):lle, on vaikeaa ja usein mahdotonta. Ratkaisu vaatii yleensä onnistuessaan tehtävälle ominaisia erikoismenetelmiä. Ks. GREENE & KNUTH ja GRAHAM & KNUTH & PATASHNIK. Myöskään yleisen lineaarisen rekursiokaavan ratkaisu tässä mielessä ei ole helppoa. Toisaalta usein on tarpeen esimerkiksi vain saada lasketuksi nopeasti f(n) jo(i)llekin n:n arvo(i)lle. Jatkossa rajoitutaankin lineaarisiin rekursiokaavoihin, jotka voidaan ratkaista, ainakin jossain mielessä. Monia epälineaaristen ja muunkinlaisten rekursiokaavojen ratkaisumenetelmiä löytyy ym. viitteistä. 110
115 LUKU 9. LINEAARISET REKURSIOKAAVAT Ensimmäisen kertaluvun lineaarinen rekursiokaava Tällainen rekursiokaava on muotoa f(n +1)=c(n)f(n)+g(n), missä c(n) ja g(n) ovat annettuja funktioita. Oletetaan, että c(n) 0ja merkitään ( n 1 1 M(n) = c(n)) = c(n)c(n 1) c(0). i=0 M(n) on ns. summaava tekijä 1.Kerrotaan rekursiokaava puolittain M(n):llä ja merkitään h(n) =M(n 1)f(n) ja h(0) = f(0). Silloin h(n +1)=h(n)+M(n)g(n) eli h(n) =M(n)g(n) ja saadaan ratkaisukaava h(n) = M(n)g(n)δn eli f(n) = n 1 f(0) + M(i)g(i) i=0 M(n 1) (n =0, 1,...), joka muistuttaa 1. kertaluvun lineaarisen differentiaaliyhtälön ratkaisukaavaa (ks. Pykälä 7.5). Vaikeutena ratkaisukaavan käytössä on siinä esiintyvän summan summaaminen suljettuun muotoon, mikäli mahdollista; aivan kuten vastaavassa differentiaaliyhtälön ratkaisukaavassa vaikeutena on saada siinä esiintyvä integraali lasketuksi. Tietysti myös M(n):ssä oleva tulo pitäisi myös saada kerrotuksi suljettuun muotoon. Ns. hajoita ja hallitse-rekursiokaavat f(n) =a(n)f(n/k)+b(n), f(c) =f 0, missä k 2 on kokonaisluku, palautuvat eo. muotoon, kun merkitään n = ck m. Silloin saadaan lineaarinen rekursiokaava jonolle F (0),F(1),..., missä F (m) =f(ck m ): F (m +1)=a(ck m+1 )F (m)+b(ck m+1 ), F(0) = f 0. Tällainen on esimerkiksi Lauseen 3.19 rekursiokaava. 9.3 Vakiokertoiminen lineaarinen rekursiokaava Kertalukua k oleva vakiokertoiminen lineaarinen homogeeninen rekursiokaava (lyhyesti LHVR) on muotoa f(n + k) =c 1 f(n + k 1) + c 2 f(n + k 2) + + c k f(n) oleva rekursiokaava, missä c 1,,c k ovat vakiokertoimet. Lisäksi oletetaan, että c k 0(muutoin ensimmäinen alkuarvo f(0) ei vaikuttaisi seuraaviin jonon termeihin). Alkuarvot ovat f(0),...,f(k 1). Tällainen rekursiokaava voidaan muodostaa missä tahansa renkaassa. 1 Vrt. 1. kertaluvun differentiaaliyhtälöiden integroiva tekijä, ks. peruskurssit. Mainittu oletus c(n) 0 on varsin luonnollinen. Jos nimittäin esimerkiksi c(100) = 0, niin f(101) ei riipukaan lainkaan sitä jonossa edeltävistä termeistä, vaan on aina = g(100).
116 LUKU 9. LINEAARISET REKURSIOKAAVAT 112 Yo. rekursiokaavan ns. karakteristinen yhtälö on r k c 1 r k 1 c k 1 r c k =0 ja yhtälön vasemmalla puolella oleva r:n polynomi on ns. karakteristinen polynomi. (Vrt. vakiokertoimisen lineaarisen differentiaaliyhtälön karakteristinen polynomi pykälässä 7.5.) Vakiokertoimisia lineaarisia rekursiokaavoja käsitellään tavallisesti käyttäen joko ns. generoivia funktioita 2 ja osamurtokehitelmiä, eksponentiaalipolynomeja tai matriisiesitystä. Katsotaan ensin viimeinen tapa Matriisiesitys Tässä tarkastellaan rekursiokaavoja kunnassa K. Rekursiokaavan f(n + k) =c 1 f(n + k 1) + c 2 f(n + k 2) + + c k f(n) ns. oheismatriisi on k k-matriisi C = c 1 c 2 c k 1 c k Koska c k 0, C on ei-singuläärinen matriisi. Kehittämällä determinantti c 1 λ c 2 c k 1 c k 1 λ 0 0 C λi k = λ viimeisen sarakkeensa mukaan nähdään, että oheismatriisin karakteristinen yhtälö on sama kuin rekursiokaavan karakteristinen yhtälö. Kertolasku osoittaa, että f(n + k) f(n + k 1) f(n + k 1) f(n + k 2) Näin ollen, jos merkitään niin. f(n +1) p = 2 Oleellisesti sama kuin z-muunnos. = C f(k 1) f(k 2). f(0) f(n + k 1) f(n + k 2). f(n). f(n) ja e = (n =0, 1,...)., = Cn p (n =0, 1,...)
117 LUKU 9. LINEAARISET REKURSIOKAAVAT 113 ja saadaan jonon f(0),f(1),... ns. matriisiesitys Käänteinenkin tulos pätee: f(n) =e T C n p (n =0, 1,...). Lause 9.1. Jos d ja q ovat k-vektoreita ja M ei-singuläärinen k k-matriisi, niin jono toteuttaa LHVR:n, jonka kertaluku on k. g(n) =d T M n q (n =0, 1,...) Todistus. Asia on selvä, jos q = 0, joten siirrytään tapaukseen q 0. Tällöin myös M n q 0. Koska vektoreita q, Mq, M 2 q,...,m k q on k +1kpl, ne ovat lineaarisesti riippuvia. Valitaan pienin sellainen luku m 1, ettäm m q voidaan kirjoittaa vektorien q, Mq, M 2 q,...,m m 1 q lineaariyhdelmänä: M m q = a m 1 M m 1 q + + a 1 Mq + a 0 q. Silloin a 0 0,koska muussa tapauksessa m ei olisi pienin mahdollinen (miksei?). Kertomalla yhtälö vasemmalta d T M n :llä saadaan haluttu rekursiokaava: g(n + m) =a m 1 g(n + m 1) + + a 1 g(n +1)+a 0 g(n). Koska m k, rekursiokaavan kertaluku ei ylitä k:ta. Huomautus. Yllä olevassa todistuksessa saatu rekursiokaava riippuu myös alkuvektorista q, ei pelkästään matriisista M. Ottamalla käyttöön vahvempi tulos saadaan rekursiokaava, joka ei riipu alkuvektorista q. Ns. Cayley Hamilton-lauseen mukaan nimittäin matriisi M toteuttaa oman karakteristisen yhtälönsä (ks. kurssit Matriisilaskenta 1&2). Ts. jos matriisin M karakteristinen yhtälö on λ k c 1 λ k 1 c k 1 λ c k =0, niin M k c 1 M k 1 c k 1 M c k I k = O k. Kertomalla tämä yhtälö puolittain vasemmalta d T :llä ja oikealta M n q:lla nähdään, että g(n) toteuttaa myös kertalukua k olevan rekursiokaavan g(n + k) =c 1 g(n + k 1) + + c k 1 g(n +1)+c k g(n), joka ei riipu alkuvektorista q. (Huomaa, että c k = ± M 0.) Matriisiesitystä käyttäen saadaan enemmän tai vähemmän helposti useita käyttökelpoisia tuloksia. Seuraavassa eräitä tällaisia. Matriisiesityksen avulla voidaan laskea jonon termi f(n) nopeasti. Kyseessähän on oikeastaan vain matriisipotenssin C n (n>0) laskeminen ja se sujuu nopeasti Venäläisten talonpoikien menetelmällä (ks. Pykälä 3.7). Matriisien lohkomista käyttäen saadaan näytetyksi eräitä rekursiokaavojen ominaisuuksia. Esitellään lohkomatriisien kertolasku, esimerkkinä 2 2-lohkojen tapaus: Jos matriisit ( ) ( ) A11 A A = 12 B11 B ja B = 12 A 21 A 22 B 21 B 22
118 LUKU 9. LINEAARISET REKURSIOKAAVAT 114 on lohkottu siten, että lävistäjälohkot A 11 ja B 11 ovat kerrottavissa ja samoin A 22 sekä B 22 ovat kerrottavissa, niin matriisitulon AB lohkoesitys on seuraava: ( ) A11 B AB = 11 + A 12 B 21 A 11 B 12 + A 12 B 22. A 21 B 11 + A 22 B 21 A 21 B 12 + A 22 B 22 Vastaava kaava pätee yleisestikin. Kertolaskukaavaa tarvitaan mm. tapauksessa, jossa A = B, lohkot A 11 sekä A 22 ovat neliömatriiseja ja lohko A 21 on nollamatriisi O 21. Tällöin ( ) A A 2 2 = 11 A 11 A 12 + A 12 A 22 O 21 A 2 22 ja jos vielä erikoisesti myös lohko A 12 on nollamatriisi O 12, niin ( ) A A 2 2 = 11 O 12 O 21 A 2 22 ja yleisesti ( A A n n = 11 O 12 O 21 A n 22 Vielä voidaan todeta, että jos vektorit ( ) e1 e = ja p = e 2 ). ( p1 p 2 ) on lohkottu kahteen osaan vastaten A:n lohkomista, niin e T A = ( ) ( ) e T 1 e T A 11 A 12 2 = ( ) e O 21 A T 1 A 11 e T 1 A 12 + e T 2 A sekä ( A11 A Ap = 12 O 21 A 22 ja erikoisesti (jos myös A 12 = O 12 ) )( p1 p 2 ) ( A11 p = 1 + A 12 p 2 A 22 p 2 e T A = ( e T 1 A 11 e T 2 A 22 ) ) sekä ( A11 p Ap = 1 A 22 p 2 ). Lause 9.2. Jos jono f 1 (0),f 1 (1),... toteuttaa kertalukua k 1 olevan LHVR:n ja jono f 2 (0), f 2 (1),... kertalukua k 2 olevan LHVR:n, niin summajono f 1 (0) + f 2 (0),f 1 (1) + f 2 (1),... toteuttaa enintään kertalukua k 1 +k 2 olevan LHVR:n ja tulojono f 1 (0)f 2 (0),f 1 (1)f 2 (1),... enintään kertalukua k 1 k 2 olevan LHVR:n. Todistus. Muodostetaan jonoille matriisiesitykset: f 1 (n) =e T 1 C n 1p 1 ja f 2 (n) =e T 2 C n 2p 2. Silloin summajonolle f 1 (0) + f 2 (0),f 1 (1) + f 2 (1),... saadaan matriisesitys f 1 (n)+f 2 (n) = ( ) ( ) n ( ) e T 1 e T C 1 O 1 p1 2 O 2 C 2 p 2
119 LUKU 9. LINEAARISET REKURSIOKAAVAT 115 ja sitä vastaavan LHVR:n kertaluku on Lauseen 9.1 mukaan enintään k 1 + k 2. Tulojonoa koskeva tulos todistetaan matriisien ns. Kroneckerin tuloa käyttämällä. Yleisesti n 1 m 1 -matriisin A = a 11 a 1m a n1 1 a n1 m 1 ja n 2 m 2 -matriisin B Kroneckerin tulo on n 1 n 2 m 1 m 2 -matriisi a 11 B a 1m1 B A B =..... a n1 1B a n1 m 1 B (lohkomuoto). Lohkomatriisien kertolaskukaavasta seuraa melko välittömästi, että mikäli matriisitulot AC ja BD ovat määritellyt, niin (A B)(C D) =(AC) (BD), ja lohkomatriisin transponointikaavasta puolestaan, että Edelleen, jos AB on määritelty, niin Tulojonolle saadaan nyt matriisiesitys (A B) T = A T B T. (A B) n = A n B n. f 1 (n)f 2 (n) =(e T 1 C n 1p 1 ) (e T 2 C n 2p 2 )=((e T 1 C n 1) (e T 2 C n 2))(p 1 p 2 ) =(e T 1 e T 2 )(C n 1 C n 2)(p 1 p 2 ) =(e 1 e 2 ) T (C 1 C 2 ) n (p 1 p 2 ) ja sitä vastaavan LHVR:n kertaluku on Lauseen 9.1 mukaan enintään k 1 k 2. Huomautus. Itse asiassa, kuten edelläkin, eo. lauseessa olevalle summajonolle saadaan myös nimenomaan kertalukua k 1 + k 2 oleva LHVR, jonka karakteristinen yhtälö on matriisin ( ) C1 O 1 O 2 C 2 karakteristinen yhtälö. Näin ollen silloin vastaava karakteristinen polynomi on C 1 :n karakteristisen polynomin ja C 2 :n karakteristisen polynomin tulo. Vastaavasti tulojonolle saadaan myös nimenomaan kertalukua k 1 k 2 oleva LHVR, jonka karakteristinen yhtälö on matriisin C 1 C 2 karakteristinen yhtälö. Toinen lohkomistekniikan antama tulos koskee tiettyjä epähomogeenisia lineaarisia vakiokertoimisia rekursiokaavoja f(n + k) =c 1 f(n + k 1) + c 2 f(n + k 2) + + c k f(n)+g(n), nimittäin sellaisia, missä jono g(0),g(1),... toteuttaa jonkin LHVR:n.
120 LUKU 9. LINEAARISET REKURSIOKAAVAT 116 Lause 9.3. Jos jono f(0),f(1),... toteuttaa rekursiokaavan f(n + k 1 )=c 1 f(n + k 1 1) + c 2 f(n + k 1 2) + + c k1 f(n)+g(n), (missä c k1 0)jajono g(0),g(1),... puolestaan toteuttaa kertalukua k 2 olevan LHVR:n, niin f(0),f(1),... toteuttaa myös enintään kertalukua k 1 + k 2 olevan LHVR:n. Todistus. Muodostetaan jonolle g(0),g(1),... matriisiesitys g(n) =e T 2 C n 2p 2 ja merkitään c 1 c 2 c k1 1 c k f(k 1 1) C 1 = f(k 1 2) sekä p 1 = f(0) Lohkomatriisiin ei nyt kelpaakaan oikeaksi ylälohkoksi nollamatriisi, vaan siksi pitää valita k 1 k 2 -matriisi D = Kertolaskulla havaitaan silloin, että f(n + k 1 ) f(n + k 1 1). ( ) f(n +1) C1 D = g(n + k 2 ) O C 2 g(n + k 2 1). g(n +1) Jos otetaan käyttöön k 1 + k 2 -vektorit 0. 0 e = 1 k 1 :s alkio sekä p = 0. 0 niin saadaan jonolle f(0),f(1),... matriisiesitys f(n + k 1 1) f(n + k 1 2). f(n) g(n + k 2 1) g(n + k 2 2). g(n) f(k 1 1) f(k 1 2). f(0) g(k 2 1) g(k 2 2). g(0)., ( f(n) =e T C1 D O C 2 ) n p. Lauseen 9.1 mukaan f(0),f(1),... toteuttaa silloin enintään kertalukua k 1 + k 2 LHVR:n. olevan
121 LUKU 9. LINEAARISET REKURSIOKAAVAT 117 Huomautus. Jälleen eo. lauseessa olevalle jonolle f(0),f(1),... saadaan myös nimenomaan kertalukua k 1 + k 2 oleva LHVR, jonka karakteristinen yhtälö on matriisin ( ) C1 D O C 2 karakteristinen yhtälö. Näin ollen vastaava karakteristinen polynomi on C 1 :n karakteristisen polynomin ja C 2 :n karakteristisen polynomin tulo Generoiva funktio Jonon f(0),f(1),... generoiva funktio on x:n potenssisarja f(n)x n. n=0 (Vaihtamalla x:n tilalle z 1 saadaan tavanomainen ns. z-muunnos.) Potenssisarja voidaan käsittää formaaliseksi, ts. sen suppenemista ei tarkastella ja sarjoilla lasketaan formaalisesti käyttäen tavallisia potenssisarjojen laskuoperaatioita: f(n)x n ± g(n)x n = (f(n ± g(n)))x n ja n=0 n=0 n=0 ( )( ) ( ) f(n)x n g(n)x n = f(i)g(j) x n (Cauchyn tulo). n=0 n=0 n=0 i+j=n On helppoa (mutta vähän työlästä) todeta, että minkä tahansa renkaan R formaaliset potenssisarjat muodostavat yo. laskuoperaatioiden suhteen myös renkaan, ns. R:n formaalisten potenssisarjojen renkaan R x. R:n ominaisuudet periytyvät R x :lle aivan samoin kuin polynomirenkaalle R[x]. Lisäksi R x voidaan myös ajatella R:n rengaslaajennukseksi samaistamalla R:n alkio a jonon a, 0, 0,... potenssisarjaan. R x voidaan myös ajatella R[x]:n rengaslaajennukseksi ilmeisellä tavalla. Symbolisen laskennan ohjelmistot tukevat myös formaalisia potenssisarjoja (tai erikseen z-muunnoksia). Toisaalta, jos kyse on luvuista ja sarjan suppenemissäde on 0,voidaan generoiva funktio käsittää tavalliseksi suppenevaksi potenssisarjaksi, jolloin yo. laskuoperaatiot ovat sallittuja. Cauchyn tuloa vastaava operaatio jonoille on ns. konvoluutio. Jonojen f(0),f(1),... ja g(0),g(1),... konvoluutio on siis jono f(0)g(0), f(i)g(j), f(i)g(j),... i+j=1 i+j=2 Lause 9.4. Jos kunnan jono f(0),f(1),... toteuttaa kertalukua k olevan LHVR:n, jonka karakteristinen polynomi on P (r), niin sen generoiva funktio on x:n rationaalifunktio Q(x)/R(x), missä nimittäjä R(x) = x k P (1/x) ja Q(x):n aste on korkeintaan k 1. (Lukukunnan tapauksessa sarja n=0 f(n)xn on itse asiassa Q(x)/R(x):n Maclaurinin sarja.) Todistus. Käytetään jonon f(0),f(1),... matriisiesitystä f(n) =d T M n q, jolloin ±P (λ) on M:n karakteristinen polynomi. Matriisijonon I, M, M 2,... alkiojonot toteuttavat Lauseen 9.1 nojalla eräät LHVR:t. Mainittujen alkiojonojen generoivat funktiot muodostavat potenssisarjaalkioisen k k-matriisin n=0 Mn x n.koska (formaalisesti) (I xm) M n x n = M n x n M n+1 x n+1 = I, n=0 n=0 n=0
122 LUKU 9. LINEAARISET REKURSIOKAAVAT 118 on Näin ollen M n x n =(I xm) 1. n=0 f(n)x n = d T M n qx n = d T n=0 n=0 n=0 M n qx n = d T (I xm) 1 q. Cramerin säännön (ks. peruskurssit) nojalla d T (I xm) 1 q on x:n rationaalifunktio, jonka nimittäjä on ( ) I xm = x k 1 x I M 1 = xk P x ja jonka osoittaja on asteeltaan enintään k 1. Yo. todistus antaa erään menetelmän LHVR:n toteuttavan jonon generoivan funktion etsimiseksi matriisiesityksen f(n) =d T M n q kautta. (Tässä käy mikä tahansa matriisiesitys.) Generoivan funktion laskeminen matriisiesityksestä: 1. Lasketaan matriisi (I xm) 1. Matriisin alkiot ovat x:n rationaalifunktioita. 2. Tulostetaan rationaalifunktio d T (I xm) 1 q. Toinen tapa on seuraava: Generoivan funktion laskeminen rekursiokaavasta + alkuarvoista: 1. Kerrotaan rekursiokaava puolittain x n+k :lla: f(n + k) =c 1 f(n + k 1) + c 2 f(n + k 2) + + c k f(n) f(n + k)x n+k = c 1 xf(n + k 1)x n+k 1 + c 2 x 2 f(n + k 2)x n+k c k x k f(n)x n. 2. Summataan yli arvojen n =0, 1, 2,... ja ratkaistaan saadusta yhtälöstä ( ) k 1 k 2 G(x) f(n)x n = c 1 x G(x) f(n)x n n=0 generoiva funktio G(x). n=0 ) k 3 + c 2 x (G(x) 2 f(n)x n + + c k x k G(x) n=0 Lauseelle 9.4 käänteinenkin tulos pätee lukukunnissa: Lause 9.5. Jos Q(x)/R(x) on lukukunnan rationaalifunktio, jonka osoittajan Q(x) aste on pienempi kuin nimittäjän R(x) aste k ja jonka nimittäjän R(x) vakiotermi a 0 on 0, niin Q(x)/R(x) on erään kertalukua k olevan LHVR:n toteuttavan jonon generoiva funktio (Maclaurinin sarjana). Lisäksi ko. LHVR:n karakteristinen polynomi on 1/a 0 x k R(1/x).
123 LUKU 9. LINEAARISET REKURSIOKAAVAT 119 Todistus. Tarvittaessa supistamalla a 0 :lla voidaan olettaa, että R(x):n vakiotermi on 1. Näin ollen R(x) on muotoa 1+a 1 x + + a k x k, missä a k 0.Kehitetään Q(x)/R(x) Maclaurinin sarjaksi: Q(x) R(x) = f(n)x n n=0 (onnistuu, sillä R(0) =1 0). Silloin R(x) f(n)x n = R(x)f(n)x n = n=0 = n=0 f(n)x n + n=0 (1 + a 1 x + + a k x k )f(n)x n n=0 a 1 f(n)x n n=0 a k f(n)x n+k n=0 k 1 k 2 = f(n)x n + a 1 f(n)x n a k 1 f(0)x k 1 n=0 + n=0 (f(n + k)+a 1 f(n + k 1) + + a k f(n))x n+k n=0 = Q(x). Koska Q(x) on enintään astetta k 1 oleva polynomi, pitää olla f(n + k)+a 1 f(n + k 1) + + a k f(n) =0. Seuraus. Jos kaksi jonoa toteuttavat LHVR:t, joiden karakteristiset polynomit ovat P 1 (r) ja P 2 (r), niin niiden konvoluutio toteuttaa LHVR:n, jonka karakteristinen polynomi on P 1 (r)p 2 (r). Todistus. Mainittujen jonojen konvoluution generoiva funktio on jonojen generoivien funktioiden tulo. Seuraus. Jos jono f(0),f(1),... toteuttaa LHVR:n, jonka karakteristinen polynomi on P (r), niin sen summa f(n)δn (jonona) toteuttaa LHVR:n, jonka karakteristinen polynomi on P (r)(r 1). Todistus. Vakiojono 1, 1,... eli g(n) =1toteuttaa 1. kertaluvun LHVR:n g(n +1)=g(n), jonka karakteristinen polynomi on r 1, ja i+j=n 1 n 1 f(i)g(i) = f(i). Näin ollen n 1 i=0 f(i) toteuttaa (jonona) LHVR:n, jonka karakteristinen polynomi on P (r)(r 1). Vakiojono C, C,... toteuttaa myös LHVR:n jonka karakteristinen polynomi on P (r)(r 1) (totea!). Näin ollen edelleen myös summa toteuttaa sen (jonona). i=0 n 1 f(n)δn = f(i)+c Näin summa f(n)δn saadaan summatuksi funktioksi F (n), jota vastaava jono toteuttaa tunnetun LHVR:n. Itse asiassa, jos ajatellaan seuraavan pykälän eksponentiaalipolynomiesitystä eksplisiittisenä lausekkeena, saadaan f(n)δn summatuksi suljettuun muotoon. i=0
124 LUKU 9. LINEAARISET REKURSIOKAAVAT Eksponentiaalipolynomi Lukukunnan tapauksessa generoiva funktio Q(x)/R(x) voidaan Pykälässä 5.4 esitetyllä tavalla jakaa osamurtoihin: m Q(x) R(x) = i=1 k i j=1 a ij (x b i ) = m j i=1 k i j=1 a ij (x 1/ρ i ) j. Lauseen 9.5 nojalla ρ i =1/b i on Q(x)/R(x):tä vastaavan LHVR:n karakteristisen polynomin juuri. Muotoa a/(x 1/ρ) j oleva osamurto on siinä määrin yksinkertainen, että sen Maclaurinin sarja (binomisarja) saadaan helposti: D n a (x 1/ρ) =( j)( j 1) ( j n +1) a j (x 1/ρ), j+n joten Maclaurinin sarjan kerroin on 1 n! ( j)( j 1) ( j n +1) a ( 1/ρ) ( ) j+n ( ) j a n + j 1 = = a( 1)j ρ j+n. n ( 1/ρ) j+n n (ks. Pykälä 3.6). Näin saadaan f(n):lle eksplisiittinen lauseke, ns. eksponentiaalipolynomi: f(n) = m i=1 ( ki ( ) ) n + j 1 m a ij ( 1) j ρ j i ρ n i = p i (n)ρ n i, j 1 j=1 i=1 missä p i (x) on enintään k i 1-asteinen polynomi (i =1, 2,...,m). Yo. menettely tarjoaa algoritmin eksponentiaalipolynomin etsimiseksi lähtien generoivasta funktiosta. Toinen tapa on käyttää määräämättömiä kertoimia lähtien suoraan LHVR:stä f(n + k) =c 1 f(n + k 1) + c 2 f(n + k 2) + + c k f(n) ja alkuarvoista f(0),f(1),...,f(k 1): Eksponentiaalipolynomin etsiminen määräämättömien kerrointen menetelmällä: 1. Etsitään karakteristisen polynomin r k c 1 r k 1 c k 1 r c k eri juuret ρ 1,ρ 2,...,ρ m sekä näiden kertaluvut k 1,k 2,...,k m. 2. Muodostetaan enintään k i 1 asteinen polynomi p i (x), jossa on määräämättömät kertoimet (k i kpl; i =1, 2,...,m). 3. Ratkaistaan kertoimet yhtälöistä m f(j) = p i (j)ρ j i (j =0, 1,...,k 1) i=1 (lineaarinen yhtälöryhmä, k yhtälöä ja k 1 + k k m = k tuntematonta). Eksponentiaalipolynomin saaminen edellyttää karakteristisen polynomin juurten liittämistä kerroinkuntaan ja voi näin olla sangen suuritöinen operaatio. Kuten lineaaristen vakiokertoimisten differentiaaliyhtälöiden tapauksessakin (ks. Pykälä 7.6), voidaan kuitenkin ensin etsiä eri juurten kertaluvut k 1,k 2,...,k m käyttäen karakteristisen polynomin neliöttömiin tekijöihin jakoa, merkitä eri juuria symboleilla ja ratkaista polynomit p 1 (x),p 2 (x),...,p m (x) kuten yllä.
125 Kirjallisuus 1. ABRAMOWITZ, M.& STEGUN, I.A. (toim.): Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. Dover (1974) 2. AKRITAS, A.G.: Elements of Computer Algebra. Wiley (1989) 3. ANDREWS, G.F.& ASKEY, R.& ROY, R.: Special Functions. Cambridge University Press (1999) 4. BECKER, T.&WEISPFENNING, V.:Gröbner Bases: A Computational Approach to Commutative Algebra. Springer Verlag (1993) 5. BRONSTEIN, M.: Symbolic Integration I. Transcendental Functions. Springer Verlag (1996) 6. BUCHBERGER, B.& COLLINS, G.E. & LOOS S.R. (toim.): Computer Algebra. Symbolic and Algebraic Computation. Springer Verlag (1983) 7. COHEN, H.: A Course in Computational Algebraic Number Theory. Springer Verlag (1993) 8. COX, D.& LITTLE, J.& O SHEA, D.: Ideals, Varietes, and Algorithms. An Introduction to Computational Algebraic Geometry and Commutative Algebra. Springer Verlag (1994) 9. CRANDALL, R.& POMERANCE, C.: Prime Numbers. A Computational Perspective. Springer Verlag (2001) 10. DAVENPORT, J.H.& SIRET, Y.& TOURNIER, E.: Computer Algebra. Systems and Algorithms for Algebraic Computation. Academic Press (1993) 11. DAVENPORT, J.H.: On the Integration of Algebraic Functions. Lecture Notes in Computer Science 102. Springer Verlag (1981) 12. ENNS, R.& MCGUIRE, G.: Computer Algebra Recipes. A Gourmet s Guide to the Mathematical Models of Science. Springer Verlag (2001) 13. GEDDES, K.O. & CZABOR, S.R. & LABAHN, G.: Algorithms for Computer Algebra. Kluwer (1992) 14. GRABMEIER, J.& KALTOFEN, E.& WEISPFENNING, V.(toim.): Computer Algebra Handbook. Springer Verlag (2003) 15. GRAHAM, R.L. & KNUTH, D.E. & PATASHNIK, O.: Concrete Mathematics. Addison Wesley (1994) 121
126 16. GREENE, D.H. & KNUTH, D.E.: Mathematics for the Analysis of Algorithms. Birkhäuser (1990) 17. GREGORY, R.T.& KRISHNAMURTHY, E.V.: Methods and Applications of Error-Free Computation. Springer Verlag (1984) 18. KNUTH, D.E.: The Art of Computer Programming Vol. 2: Seminumerical Algorithms. Addison Wesley (1998) 19. KRISHNAMURTHY, E.V.: Error-Free Polynomial Matrix Computations. Springer Verlag (1985) 20. KROMMER, A.R.&UEBERHUBER, C.W.: Computational Integration. SIAM (1998) 21. LIPSON, J.D.: Elements of Algebra and Algebraic Computing. Addison Wesley (1981) 22. MIGNOTTE, M.: Mathematics for Computer Algebra. Springer Verlag (1991) 23. MIGNOTTE, M.& ŞTEFĂNESCU, D.: Polynomials: An Algorithmic Approach. Springer Verlag (1999) 24. PETKOV SEK, M.&WILF, H.S.&ZEILBERGER, D.: A = B. A.K. Peters (1996) 25. POHST, M.& ZASSENHAUS, H.: Algorithmic Algebraic Number Theory. Cambridge University Press (1990) 26. RALL, L.B.: Automatic Differentiation: Techniques and Applications. Lecture Notes in Computer Science 120. Springer Verlag (1981) 27. RIESEL, H.: Prime Numbers and Computer Methods for Factorization. Birkhäuser (1994) 28. VON ZUR GATHEN, J.& GERHARD, J.: Modern Computer Algebra. Cambridge University Press (1999) 122
127 123 Hakemisto 1-jaksoinen deltafunktio 13 1-rengas 39 aakkosto 1 Abelin lause 70 Adleman Pomerance Rumely-testi 30 aidosti rationaalinen 85 algebra 4,38 algebrallinen funktio 70 algebrallinen laajennus 53,83,89 algebrallinen luku 51 Algebran peruslause 51 alikunta 41 alirengas 41 alkeisfunktio 84 alkualkio 45 alkukunta 40 alkuluku 15 Alkulukulause 16 alkulukutestaus 29 alkutekijä 15 analyysi 4 argumentti 2 asetelma 5 aste 47,58 automaattinen derivointi 7 Berlekampin algoritmi 63 betafunktio 28,89 Bezout n kertoimet 17 Bezout n lause 18,21 Bezout n muoto 17,20,21,80 binomikaava 28 binomikerroin 26 binääriesitys 16 binäärinen 2 Buchbergerin algoritmi 58 Cardanon kaavat 70 Cauchyn tulo 117 Cayley Hamilton-lause 113 Dekompositiolemma 86 deltafunktio 8 deltafunktiokampa 13 deltafunktiosarja 13 derivaatta 6,63 derivaattaoperaattori 83 desimaaliesitys 16 differenssi 4,95 differenssiyhtälö 4,90 differentiaali- ja integraalilaskenta 4 differentiaalikunta 74,82 differentiaaliyhtälö 4 differointi 96 digammafunktio 97 ED 46 ei-triviaali tekijä 14 eksakti differentiaaliyhtälö 91 eksponentiaalinen laajennus 83,89 eksponentiaalipolynomi 120 eksponentti-integraali 90 eksponenttimuoto 73 elliptinen integraali 90 epähomogeeninen 110 epälineaarinen rekursiokaava 110 Eratostheneen seula 29,62 errorfunktio 89 esitys 66 etenevä differenssi 95 etenevä suhde 107 Eukleideen algoritmi 17,80 Eukleideen alue 45 Eukleideen arvotus 46,48 Eulerin vakio 89,97 Fermat n pieni lause 23 FFT 33,59 Fibonaccin luku 19 formaalinen derivaatta 63 formaalinen potenssisarja 117 formaalisten potenssisarjojen rengas 117 Fresnelin kosini-integraali 90 Fresnelin sini-integraali 90 funktio 2 Galois n teoria 70 gammafunktio 24,89 Gaussin kokonaisluku 71 Gaussin lemma 62 generoiva funktio 117 Gosperin algoritmi 103,106 Gröbnerin kanta 58 hajoamiskunta 53 hajoita ja hallitse-rekursiokaava 111 harmoninen funktio 97 harva polynomi 68 Heavisiden funktio 9 Heikko Stirlingin kaava 25 heikko derivaatta 9 heksadesimaaliesitys 16 Hermiten menetelmä 76,89,102 homogeeninen 110 Hornerin esitys 68 Horowitzin menetelmä 77,89 hyperbolinen kosini-integraali 90 hyperbolinen muoto 73 hyperbolinen sini-integraali 90
128 124 hypergeometrinen funktio 103 hypergeometrinen summaus 103 hypergeometrinen termi 103 ideaali 41 ideaalinen näytteenottofunktio 13 ihanne 41 infiksimerkintä 2 integraalimuunnos 4 integrointi 90 interpolaatio 59 inverssi 23 jaettava 14 jakaja 14 jakojäännös 14,46 jakolasku 14,33,40,59 jakorengas 40 jaollisuus 14,43 jaoton 15 Jeruginin lause 92 johtava kerroin 47,58 johtava monomi 58 johtava termi 47,58 jono 5 joukko 5 joukko-oppi 4 juuri 49 juurilauseke 70 jäännös 22 jäännösluokka 22,41 jäännössysteemi 22 kanoninen esitys 66 kanta 16 kantaesitys 16 karakteristika 64 karakteristinen polynomi 91,112 karakteristinen yhtälö 112 kardinaalisini 8 Karatsuban algoritmi 32,34,59 Karrin algoritmi 98 katenaatio 1,5 katto 11 kerroin 47,110 kertaluku 2,49,110 Kertolaskennan peruslause 108 kertolasku 31,59 kertoma 24 kertominen 108 Kiinalainen jäännöslause 24,59 kokonaisalue 39 kokonaisaste 58 kokonaisastejärjestys 58 kokonaisluku 4,14 kommutatiivinen rengas 39 kompleksiluku 4,40 kompleksinen rationaaliluku 53 kongruenssilaskenta 22 kongruentti 22,41 konvoluutio 117 kosini-integraali 89 Kovacicin algoritmi 92 Kroneckerin algoritmi 61 Kroneckerin tulo 115 kunta 4,40 kuntalaajennus 41 kuntalaajennustorni 53,84 kvadraattinen algoritmi 33 kvaternionirengas 41 käänteisalkio 39 käänteisintegrointi 82 käänteisleksikograafinen järjestys 58 Lagrangen interpolaatiokaava 61 Lamén lause 19 leksikograafinen järjestys 58 liittoluku 71 normi 71 liitännäinen 43 liitännäisyys 2 lineaarialgebra 4 lineaarinen differentiaaliyhtälö 91 lineaarinen rekursiokaava 110 Liouvillen periaate 84 lista 5 logaritmi-integraali 90 logaritminen laajennus 83 logaritminen osa 77 logiikka 4 lukukunta 40 lukuteoria 4,14 luonnollinen luku 14 Matijasevits Tshudnovski-lause 67 matriisi 5 matriisiesitys 112 McEliecen lemma 12 metaoperaatio 4 Miller Rabin-testi 29 moduli 22 modulo 22,41 moduläärilaskenta 22 monen muuttujan polynomi 57 monikerta 39,43 moninkertainen juuri 49 monoidi 1 monomi 57 Multinomikaava 28 multinomikerroin 28
129 125 multiplikatiivinen 44 murtokunta 42 määrätty summa 95 määrätty tulo 107 määräämättömien kerrointen menetelmä 57,120 määräämätön summa 95 määräämätön tulo 107 nablaus 7 negatiivinen jäännössysteemi 22 neliökunnan kokonaisluku 71 neliökunta 71 neliöttömiin tekijöihin jako neliötön 63 Newtonin interpolaatiokaava 61 Newtonin menetelmä 33 nimittäjien tekeminen erinimisiksi 54 nolla-alkio 38 nollanjakaja 39 nollapolunomi 47 nopea Fourier n muunnos 33,59 normaaliesitys 66 normaaliosa 44 numeerinen laskenta 4 numeraali 1 O-notaatio 7,26 oheismatriisi 36,112 oikea sulutus 2 oktaaliesitys 16 operaattori 2 osamurtokehitelmä 56 osamäärä 14,46 osamääräkunta 42 osittaisintegrointi 9,82 osittaiskertominen 109 osittaussummaus 96 osittelulaki 38 p.y.j 21 pakkofunktio 110 Pascalin kolmio 27 perussymboli 1 peräkkäisten approksimaatioiden menetelmä 7,93 PID 46 pienin yhteinen jaettava 21,43 pituus 1.17 Pochhammer-neliöttömiin tekijöihin jako 101 Pochhammer-neliötön 101 Pochhammerin esitys 26,99 Pochhammerin potenssi 101 Pochhammerin symboli 26,68,97 pohja 11 Pollardin ρ-menetelmä 31 polygammafunktio 100 polygammaosa 99 polynomi 4,47,57 polynominen osa 88 polynomirengas 40,47,57 positiivinen jäännössysteemi 22 potenssi 39 potenssiin korotus 35 potentiaali 91 prefiksimerkintä 2 primitiivinen polynomi 49,62 probabilistinen 29 puhtaasti logaritminen laajennus 85 puolalainen merkintä 2 pääihanne 52 pääihannealue 45 pääpolynomi 48 radikaali 70 rationaalifunktio 41,53,58,75,98 rationaalifunktioiden kunta 53 rationaaliluku 40 rationaalinen osa 76,101 reaalikertoiminen 57 reaaliluku 4,40 reaalinen osamurtokehitelmä 57 rekursiivinen esitys 57 rekursiokaava 32 rekursiokaava 110 rengas 38 rengaslaajennus 41 resultantti 80 Richardsonin 2. lause 67 Richardsonin 3. lause 75 Rischin integrointi 85 Rischin rakennelause 73 Rosenlichtin lause 98 Rothstein Trager-algoritmi 82 s.y.t. 17 sana 1 satunnaisluvun generointi 35 separoituva differentiaaliyhtälö 90 signumfunktio 10 siirtorekisteri 35 sijoitus 82 sinc-funktio 8 Singerin algoritmi 92 sini-integraali 75,89 sisältö 48 Stirlingin approksimaatio 25 suffiksimerkintä 2 suhde 107 suhdesäännöt 108 summa 4,95 summaava tekijä 111
130 126 summaus 95 Summauslaskennan peruslause 95 summauslaskenta 4,95 suurin yhteinen tekijä 17,43 Sylvesterin kriteeri Sylvesterin matriisi 79 symboli 1 symbolinen integrointi 75 symbolinen osamurtokehitelmä 57 symmetrinen jäännössysteemi 22 takeneva differenssi 95 takeneva suhde 107 taulu 5 Taylorin kehitelmä 7 Taylorin polynomi 7 Taylorin sarja 7,93 tekijä 14,43 tekijärengas 41 tekijöihinjako 31,61 tiheä polynomi 68 Tragerin algoritmi 63 transsendenttifunktio 73 transsendenttinen alkio 58 transsendenttinen laajennus 59 transsendenttinen luku 51 triviaali tekijä 14 tulkinta 4 tulo 107 tulointegraali 107 tyhjä jono 5 tyhjä sana 1 UFD 45 unäärinen 2 vahva valealkuluku 30 vaihdannainen rengas 39 vaihdannaisuus 3 vajaa betafunktio 89 vajaa gammafunktio 89 vakiokertoiminen lineaarinen differentiaaliyhtälö 91 vakiokertoinen lineaarinen rekursiokaava 111 vakiokunta 82 vakiopolunomi 47 vasta-alkio 38 vektori 5 Venäläisten talonpoikien menetelmä 35 vinokunta 40 virhetermi 7 vähennyslasku 31,39,59 Wilsonin lause 26,50 yhdistetty luku 15 yhteenlasku 31,59 yhtälö 5 ykkösalkio 39 ykkösrengas 39 yksikkö 39 yksikkönormaali 44 yksikköosa 44 yksikäsitteisen tekijöihinjaon alue 45 yleistetty funktio 9 ylikunta 41 ylirengas 41 ympyräkunta 72
a b 1 c b n c n
Algebra Syksy 2007 Harjoitukset 1. Olkoon a Z. Totea, että aina a 0, 1 a, a a ja a a. 2. Olkoot a, b, c, d Z. Todista implikaatiot: a) a b ja c d ac bd, b) a b ja b c a c. 3. Olkoon a b i kaikilla i =
Tekijä Pitkä Matematiikka 11 ratkaisut luku 2
Tekijä Pitkä matematiikka 11 0..017 170 a) Koska 8 = 4 7, luku 8 on jaollinen luvulla 4. b) Koska 104 = 4 6, luku 104 on jaollinen luvulla 4. c) Koska 4 0 = 80 < 8 ja 4 1 = 84 > 8, luku 8 ei ole jaollinen
7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi
7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi Z p [x]/(m), missä m on polynomirenkaan Z p [x] jaoton polynomi (ks. määritelmä 3.19).
Matematiikan peruskurssi 2
Matematiikan peruskurssi Tentti, 9..06 Tentin kesto: h. Sallitut apuvälineet: kaavakokoelma ja laskin, joka ei kykene graaseen/symboliseen laskentaan Vastaa seuraavista viidestä tehtävästä neljään. Saat
1 Lukujen jaollisuudesta
Matematiikan mestariluokka, syksy 2009 1 1 Lukujen jaollisuudesta Lukujoukoille käytetään seuraavia merkintöjä: N = {1, 2, 3, 4,... } Luonnolliset luvut Z = {..., 2, 1, 0, 1, 2,... } Kokonaisluvut Kun
Mitään muita operaatioita symbolille ei ole määritelty! < a kaikilla kokonaisluvuilla a, + a = kaikilla kokonaisluvuilla a.
Polynomit Tarkastelemme polynomirenkaiden teoriaa ja polynomiyhtälöiden ratkaisemista. Algebrassa on tapana pitää erillään polynomin ja polynomifunktion käsitteet. Polynomit Tarkastelemme polynomirenkaiden
R 1 = Q 2 R 2 + R 3,. (2.1) R l 2 = Q l 1 R l 1 + R l,
2. Laajennettu Eukleideen algoritmi Määritelmä 2.1. Olkoot F kunta ja A, B, C, D F [x]. Sanotaan, että C jakaa A:n (tai C on A:n jakaja), jos on olemassa K F [x] siten, että A = K C; tällöin merkitään
Matematiikan mestariluokka, syksy 2009 7
Matematiikan mestariluokka, syksy 2009 7 2 Alkuluvuista 2.1 Alkuluvut Määritelmä 2.1 Positiivinen luku a 2 on alkuluku, jos sen ainoat positiiviset tekijät ovat 1 ja a. Jos a 2 ei ole alkuluku, se on yhdistetty
LUKUTEORIA johdantoa
LUKUTEORIA johdantoa LUKUTEORIA JA TODISTAMINEN, MAA11 Lukuteorian tehtävä: Lukuteoria tutkii kokonaislukuja, niiden ominaisuuksia ja niiden välisiä suhteita. Kokonaislukujen maailma näyttää yksinkertaiselta,
Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista
Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen
802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO
8038A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 016 Sisältö 1 Irrationaaliluvuista Antiikin lukuja 6.1 Kolmio- neliö- ja tetraedriluvut...................
2017 = = = = = = 26 1
JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 2, MALLIRATKAISUT Tehtävä 1. Sovella Eukleiden algoritmia ja (i) etsi s.y.t(2017, 753) (ii) etsi kaikki kokonaislukuratkaisut yhtälölle 405x + 141y = 12. Ratkaisu
Lukuteorian kertausta
Lukuteorian kertausta Jakoalgoritmi Jos a, b Z ja b 0, niin on olemassa sellaiset yksikäsitteiset kokonaisluvut q ja r, että a = qb+r, missä 0 r < b. Esimerkki 1: Jos a = 60 ja b = 11, niin 60 = 5 11 +
1 Lineaariavaruus eli Vektoriavaruus
1 Lineaariavaruus eli Vektoriavaruus 1.1 Määritelmä ja esimerkkejä Olkoon K kunta, jonka nolla-alkio on 0 ja ykkösalkio on 1 sekä V epätyhjä joukko. Oletetaan, että joukossa V on määritelty laskutoimitus
1 sup- ja inf-esimerkkejä
Alla olevat kohdat (erityisesti todistukset) ovat lähinnä oheislukemista reaaliluvuista, mutta joihinkin niistä palataan myöhemmin kurssilla. 1 sup- ja inf-esimerkkejä Nollakohdan olemassaolo. Kaikki tuntevat
Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)
Lukuteoria Lukuteoria on eräs vanhimmista matematiikan aloista. On sanottu, että siinä missä matematiikka on tieteiden kuningatar, on lukuteoria matematiikan kuningatar. Perehdymme seuraavassa luonnollisten
Alkulukujen harmoninen sarja
Alkulukujen harmoninen sarja LuK-tutkielma Markus Horneman Oiskelijanumero:2434548 Matemaattisten tieteiden laitos Oulun ylioisto Syksy 207 Sisältö Johdanto 2 Hyödyllisiä tuloksia ja määritelmiä 3. Alkuluvuista............................
Suurin yhteinen tekijä (s.y.t.) ja pienin yhteinen monikerta (p.y.m.)
Suurin yhteinen tekijä (s.y.t.) ja pienin yhteinen monikerta (p.y.m.) LUKUTEORIA JA TODISTAMINEN, MAA11 Määritelmä, yhteinen tekijä ja suurin yhteinen tekijä: Annettujen lukujen a ja b yhteinen tekijä
802320A LINEAARIALGEBRA OSA I
802320A LINEAARIALGEBRA OSA I Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 2016 LINEAARIALGEBRA 1 / 72 Määritelmä ja esimerkkejä Olkoon K kunta, jonka nolla-alkio on 0 ja ykkösalkio on 1 sekä
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 4: Derivaatta
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 4: Derivaatta Pekka Alestalo, Jarmo Malinen Aalto-yliopisto, Matematiikan ja systeemianalyysin laitos 21.9.2016 Pekka Alestalo, Jarmo
H5 Malliratkaisut - Tehtävä 1
H5 Malliratkaisut - Tehtävä Eelis Mielonen 30. syyskuuta 07 a) 3a (ax + b)3/ + C b) a cos(ax + b) + C a) Tässä tehtävässä päästään harjoittelemaan lukiosta tuttua integrointimenetelmää. Ensimmäisessä kohdassa
MS-A0102 Differentiaali- ja integraalilaskenta 1
MS-A0102 Differentiaali- ja integraalilaskenta 1 Riikka Korte (Pekka Alestalon kalvojen pohjalta) Aalto-yliopisto 24.10.2016 Sisältö Derivaatta 1.1 Derivaatta Erilaisia lähestymistapoja: I geometrinen
802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III
802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 2016 LUKUTEORIA 1 / 77 Irrationaaliluvuista Määritelmä 1 Luku α C \ Q on
Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara
Kuvauksista ja relaatioista Jonna Makkonen Ilari Vallivaara 20. lokakuuta 2004 Sisältö 1 Esipuhe 2 2 Kuvauksista 3 3 Relaatioista 8 Lähdeluettelo 12 1 1 Esipuhe Joukot ja relaatiot ovat periaatteessa äärimmäisen
Diskreetti derivaatta
Diskreetti derivaatta LuK-tutkielma Saara Sadinmaa 43571 Matemaattisten tieteiden koulutusohjelma Oulun yliopisto Syksy 017 Sisältö Johdanto 1 Peruskäsitteitä 3 Ominaisuuksia 4 3 Esimerkkejä 8 4 Potenssifunktioita
ja jäännösluokkien joukkoa
3. Polynomien jäännösluokkarenkaat Olkoon F kunta, ja olkoon m F[x]. Polynomeille f, g F [x] määritellään kongruenssi(-relaatio) asettamalla g f mod m : m g f g = f + m h jollekin h F [x]. Kongruenssi
on Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään
5. Primitiivinen alkio 5.1. Täydennystä lukuteoriaan. Olkoon n Z, n 2. Palautettakoon mieleen, että kokonaislukujen jäännösluokkarenkaan kääntyvien alkioiden muodostama osajoukko Z n := {x Z n x on kääntyvä}
Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma
Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten Ratkaisuehdotelma Tehtävä 1 1. Etsi lukujen 4655 ja 12075 suurin yhteinen tekijä ja lausu se kyseisten lukujen lineaarikombinaationa ilman laskimen
R : renkaan R kääntyvien alkioiden joukko; R kertolaskulla varustettuna on
0. Kertausta ja täydennystä Kurssille Äärelliset kunnat tarvittavat esitiedot löytyvät Algebran kurssista [Alg]. Hyödyksi voivat myös olla (vaikka eivät välttämättömiä) Lukuteorian alkeet [LTA] ja Salakirjoitukset
Juuri 11 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty
Kertaus K1. a) 72 = 2 36 = 2 2 18 = 2 2 2 9 = 2 2 2 3 3 = 2 3 3 2 252 = 2 126 = 2 2 63 = 2 2 3 21 = 2 2 3 3 7 = 2 2 3 2 7 syt(72, 252) = 2 2 3 2 = 36 b) 252 = 72 3 + 36 72 = 36 2 syt(72, 252) = 36 c) pym(72,
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 2 Lisää osamurtoja Tutkitaan jälleen rationaalifunktion P(x)/Q(x) integrointia. Aiemmin käsittelimme tapauksen, jossa nimittäjä voidaan esittää muodossa Q(x) = a(x x
Matematiikan tukikurssi, kurssikerta 3
Matematiikan tukikurssi, kurssikerta 3 1 Epäyhtälöitä Aivan aluksi lienee syytä esittää luvun itseisarvon määritelmä: { x kun x 0 x = x kun x < 0 Siispä esimerkiksi 10 = 10 ja 10 = 10. Seuraavaksi listaus
Muuttujan vaihto. Viikon aiheet. Muuttujan vaihto. Muuttujan vaihto. ) pitää muistaa lausua t:n avulla. Integroimisen työkalut: Kun integraali
Viikon aiheet Integroimisen työkalut: Rationaalifunktioiden jako osamurtoihin Rekursio integraaleissa CDH: Luku 4, Prujut206: Luvut 4-4.2.5, Prujut2008: s. 89-6 Kun integraali h(x) ei näytä alkeisfunktioiden
rm + sn = d. Siispä Proposition 9.5(4) nojalla e d.
9. Renkaat Z ja Z/qZ Tarkastelemme tässä luvussa jaollisuutta kokonaislukujen renkaassa Z ja todistamme tuloksia, joita käytetään jäännösluokkarenkaan Z/qZ ominaisuuksien tarkastelussa. Jos a, b, c Z ovat
Salausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)
Salausmenetelmät Veikko Keränen, Jouko Teeriaho (RAMK, 2006) LUKUTEORIAA JA ALGORITMEJA 3. Kongruenssit à 3.1 Jakojäännös ja kongruenssi Määritelmä 3.1 Kaksi lukua a ja b ovat keskenään kongruentteja (tai
6*. MURTOFUNKTION INTEGROINTI
MAA0 6*. MURTOFUNKTION INTEGROINTI Murtofunktio tarkoittaa kahden polynomin osamäärää, ja sen yleinen muoto on P() R : R(). Q() Mikäli osoittajapolynomin asteluku on nimittäjäpolynomin astelukua korkeampi
Teema 4. Homomorfismeista Ihanne ja tekijärengas. Teema 4 1 / 32
1 / 32 Esimerkki 4A.1 Esimerkki 4A.2 Esimerkki 4B.1 Esimerkki 4B.2 Esimerkki 4B.3 Esimerkki 4C.1 Esimerkki 4C.2 Esimerkki 4C.3 2 / 32 Esimerkki 4A.1 Esimerkki 4A.1 Esimerkki 4A.2 Esimerkki 4B.1 Esimerkki
Oletetaan, että funktio f on määritelty jollakin välillä ]x 0 δ, x 0 + δ[. Sen derivaatta pisteessä x 0 on
Derivaatta Erilaisia lähestymistapoja: geometrinen (käyrän tangentti sekanttien raja-asentona) fysikaalinen (ajasta riippuvan funktion hetkellinen muutosnopeus) 1 / 19 Derivaatan määritelmä Määritelmä
811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 6. Alkeislukuteoria 6.1 Jaollisuus Käsitellään kokonaislukujen perusominaisuuksia: erityisesti jaollisuutta Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,...
k=1 b kx k K-kertoimisia polynomeja, P (X)+Q(X) = (a k + b k )X k n+m a i b j X k. i+j=k k=0
1. Polynomit Tässä luvussa tarkastelemme polynomien muodostamia renkaita polynomien ollisuutta käsitteleviä perustuloksia. Teemme luvun alkuun kaksi sopimusta: Tässä luvussa X on muodollinen symboli, jota
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 9 1 Implisiittinen derivointi Tarkastellaan nyt yhtälöä F(x, y) = c, jossa x ja y ovat muuttujia ja c on vakio Esimerkki tällaisesta yhtälöstä on x 2 y 5 + 5xy = 14
Johdatus reaalifunktioihin P, 5op
Johdatus reaalifunktioihin 802161P, 5op Osa 2 Pekka Salmi 1. lokakuuta 2015 Pekka Salmi FUNK 1. lokakuuta 2015 1 / 55 Jatkuvuus ja raja-arvo Tavoitteet: ymmärtää raja-arvon ja jatkuvuuden määritelmät intuitiivisesti
Reaalilukuvälit, leikkaus ja unioni (1/2)
Luvut Luonnolliset luvut N = {0, 1, 2, 3,... } Kokonaisluvut Z = {..., 2, 1, 0, 1, 2,... } Rationaaliluvut (jaksolliset desimaaliluvut) Q = {m/n m, n Z, n 0} Irrationaaliluvut eli jaksottomat desimaaliluvut
1 Algebralliset perusteet
1 Algebralliset perusteet 1.1 Renkaat Tämän luvun jälkeen opiskelijoiden odotetaan muistavan, mitä ovat renkaat, vaihdannaiset renkaat, alirenkaat, homomorfismit, ideaalit, tekijärenkaat, maksimaaliset
BM20A0900, Matematiikka KoTiB3
BM20A0900, Matematiikka KoTiB3 Luennot: Matti Alatalo Oppikirja: Kreyszig, E.: Advanced Engineering Mathematics, 8th Edition, John Wiley & Sons, 1999, luvut 1 4. 1 Sisältö Ensimmäisen kertaluvun differentiaaliyhtälöt
Lineaarialgebra ja matriisilaskenta II. LM2, Kesä /141
Lineaarialgebra ja matriisilaskenta II LM2, Kesä 2012 1/141 Kertausta: avaruuden R n vektorit Määritelmä Oletetaan, että n {1, 2, 3,...}. Avaruuden R n alkiot ovat jonoja, joissa on n kappaletta reaalilukuja.
(iv) Ratkaisu 1. Sovelletaan Eukleideen algoritmia osoittajaan ja nimittäjään. (i) 7 = , 7 6 = = =
JOHDATUS LUKUTEORIAAN (syksy 07) HARJOITUS 7, MALLIRATKAISUT Tehtävä Etsi seuraavien rationaalilukujen ketjumurtokehitelmät: (i) 7 6 (ii) 4 7 (iii) 65 74 (iv) 63 74 Ratkaisu Sovelletaan Eukleideen algoritmia
Todistusmenetelmiä Miksi pitää todistaa?
Todistusmenetelmiä Miksi pitää todistaa? LUKUTEORIA JA TO- DISTAMINEN, MAA11 Todistus on looginen päättelyketju, jossa oletuksista, määritelmistä, aksioomeista sekä aiemmin todistetuista tuloksista lähtien
Sivu 1 / 8. A31C00100 Mikrotaloustieteen perusteet: matematiikan tukimoniste. Olli Kauppi
Sivu 1 / 8 A31C00100 Mikrotaloustieteen perusteet: matematiikan tukimoniste Olli Kauppi Monisteen ensimmäinen luku käsittelee derivointia hieman yleisemmästä näkökulmasta. Monisteen lopussa on kurssilla
3. Kongruenssit. 3.1 Jakojäännös ja kongruenssi
3. Kongruenssit 3.1 Jakojäännös ja kongruenssi Tässä kappaleessa esitellään kokonaislukujen modulaarinen aritmetiikka (ns. kellotauluaritmetiikka), jossa luvut tyypillisesti korvataan niillä jakojäännöksillä,
k=0 saanto jokaisen kolmannen asteen polynomin. Tukipisteet on talloin valittu
LIS AYKSI A kirjaan Reaalimuuttujan analyysi 1.6. Numeerinen integrointi: Gaussin kaavat Edella kasitellyt numeerisen integroinnin kaavat eli kvadratuurikaavat Riemannin summa, puolisuunnikassaanto ja
Testaa taitosi 1: Lauseen totuusarvo
Testaa taitosi 1: Lauseen totuusarvo 1. a) Laadi lauseen A (B A) totuustaulu. b) Millä lauseiden A ja B totuusarvoilla a-kohdan lause on tosi? c) Suomenna a-kohdan lause, kun lause A on olen vihainen ja
TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Liisa Ilonen. Primitiiviset juuret
TAMPEREEN YLIOPISTO Pro gradu -tutkielma Liisa Ilonen Primitiiviset juuret Matematiikan ja tilastotieteen laitos Matematiikka Joulukuu 2009 Tampereen yliopisto Matematiikan ja tilastotieteen laitos ILONEN,
3. Reaalifunktioiden määräämätön integraali
50 3. Reaalifunktioiden määräämätön integraali Integraalifunktio Derivoinnin käänteistoimituksena on vastata kysymykseen "Mikä on se funktio, jonka derivaatta on f?" Koska vakion derivaatta 0, havaitaan
Diofantoksen yhtälön ratkaisut
Diofantoksen yhtälön ratkaisut Matias Mäkelä Matemaattisten tieteiden tutkinto-ohjelma Oulun yliopisto Kevät 2017 Sisältö Johdanto 2 1 Suurin yhteinen tekijä 2 2 Eukleideen algoritmi 4 3 Diofantoksen yhtälön
1 sup- ja inf-esimerkkejä
Alla olevat kohdat (erityisesti todistukset) ovat lähinnä oheislukemista reaaliluvuista, mutta joihinkin niistä palataan myöhemmin kurssilla. 1 sup- ja inf-esimerkkejä Kaarenpituus. Olkoon r: [a, b] R
Tehtävänanto oli ratkaista seuraavat määrätyt integraalit: b) 0 e x + 1
Tehtävä : Tehtävänanto oli ratkaista seuraavat määrätyt integraalit: a) a) x b) e x + Integraali voisi ratketa muuttujanvaihdolla. Integroitava on muotoa (a x ) n joten sopiva muuttujanvaihto voisi olla
Analyysi III. Jari Taskinen. 28. syyskuuta Luku 1
Analyysi III Jari Taskinen 28. syyskuuta 2002 Luku Sisältö Sarjat 2. Lukujonoista........................... 2.2 Rekursiivisesti määritellyt lukujonot.............. 8.3 Sarja ja sen suppenminen....................
w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1.
Kotitehtävät, tammikuu 2011 Vaikeampi sarja 1. Ratkaise yhtälöryhmä w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1. Ratkaisu. Yhtälöryhmän ratkaisut (w, x, y, z)
Rationaaliluvun desimaaliesitys algebrallisesta ja lukuteoreettisesta näkökulmasta
TAMPEREEN YLIOPISTO Pro gradu -tutkielma Liisa Lampinen Rationaaliluvun desimaaliesitys algebrallisesta ja lukuteoreettisesta näkökulmasta Informaatiotieteiden yksikkö Matematiikka Kesäkuu 2016 Tampereen
PERUSASIOITA ALGEBRASTA
PERUSASIOITA ALGEBRASTA Matti Lehtinen Tässä luetellut lauseet ja käsitteet kattavat suunnilleen sen mitä algebrallisissa kilpatehtävissä edellytetään. Ns. algebrallisia struktuureja jotka ovat nykyaikaisen
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 1 1 Matemaattisesta päättelystä Matemaattisen analyysin kurssin (kuten minkä tahansa matematiikan kurssin) seuraamista helpottaa huomattavasti, jos opiskelija ymmärtää
2. Eukleideen algoritmi
2. Eukleideen algoritmi 2.1 Suurimman yhteisen tekijän tehokas laskutapa Tässä luvussa tarkastellaan annettujen lukujen suurimman yhteisen tekijän etsimistä tehokkaalla tavalla. Erinomaisen käyttökelpoinen
Primitiiviset juuret: teoriaa ja sovelluksia
TAMPEREEN YLIOPISTO Pro gradu -tutkielma Outi Sutinen Primitiiviset juuret: teoriaa ja sovelluksia Matematiikan, tilastotieteen ja filosofian laitos Matematiikka Huhtikuu 2006 Tampereen yliopisto Matematiikan,
Osa IX. Z muunnos. Johdanto Diskreetit funktiot
Osa IX Z muunnos A.Rasila, J.v.Pfaler () Mat-.33 Matematiikan peruskurssi KP3-i 9. lokakuuta 2007 298 / 322 A.Rasila, J.v.Pfaler () Mat-.33 Matematiikan peruskurssi KP3-i 9. lokakuuta 2007 299 / 322 Johdanto
8 Potenssisarjoista. 8.1 Määritelmä. Olkoot a 0, a 1, a 2,... reaalisia vakioita ja c R. Määritelmä 8.1. Muotoa
8 Potenssisarjoista 8. Määritelmä Olkoot a 0, a, a 2,... reaalisia vakioita ja c R. Määritelmä 8.. Muotoa a 0 + a (x c) + a 2 (x c) 2 + olevaa sarjaa sanotaan c-keskiseksi potenssisarjaksi. Selvästi jokainen
2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)
Approbatur 3, demo, ratkaisut Sovitaan, että 0 ei ole luonnollinen luku. Tällöin oletusta n 0 ei tarvitse toistaa alla olevissa ratkaisuissa. Se, pidetäänkö nollaa luonnollisena lukuna vai ei, vaihtelee
Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )
Injektio (1/3) Määritelmä Funktio f on injektio, joss f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f ) Seurauksia: Jatkuva injektio on siis aina joko aidosti kasvava tai aidosti vähenevä Injektiolla on enintään
Numeerinen integrointi ja derivointi
Numeerinen integrointi ja derivointi Keijo Ruotsalainen Division of Mathematics Interpolaatiokaavat Approksimoitava integraali I = b a f(x)dx. Tasavälinen hila: x i = a+ (b a)i n, i = 0,...,n Funktion
1 Kompleksiluvut. Kompleksiluvut 10. syyskuuta 2005 sivu 1 / 7
Kompleksiluvut 10. syyskuuta 2005 sivu 1 / 7 1 Kompleksiluvut Lukualueiden laajennuksia voi lähestyä polynomiyhtälöiden ratkaisemisen kautta. Yhtälön x+1 = 0 ratkaisemiseksi tarvitaan negatiivisia lukuja.
y z = (x, y) Kuva 1: Euklidinen taso R 2
Kompleksiluvut. Määritelmä Tarkastellaan euklidista tasoa R = {(, y), y R}. y y z = (, y) R Kuva : Euklidinen taso R Suorakulmaisessa koordinaatistossa on -akseli ja y-akseli. Luvut ja y ovat pisteen z
Vektoreiden A = (A1, A 2, A 3 ) ja B = (B1, B 2, B 3 ) pistetulo on. Edellisestä seuraa
Viikon aiheet Pistetulo (skalaaritulo Vektorien tulot Pistetulo Ristitulo Skalaari- ja vektorikolmitulo Integraalifunktio, alkeisfunktioiden integrointi, yhdistetyn funktion derivaatan integrointi Vektoreiden
Algebra I, harjoitus 5,
Algebra I, harjoitus 5, 7.-8.10.2014. 1. 2 Osoita väitteet oikeiksi tai vääriksi. a) (R, ) on ryhmä, kun asetetaan a b = 2(a + b) aina, kun a, b R. (Tässä + on reaalilukujen tavallinen yhteenlasku.) b)
IV. TASAINEN SUPPENEMINEN. f(x) = lim. jokaista ε > 0 ja x A kohti n ε,x N s.e. n n
IV. TASAINEN SUPPENEMINEN IV.. Funktiojonon tasainen suppeneminen Olkoon A R joukko ja f n : A R funktio, n =, 2, 3,..., jolloin jokaisella x A muodostuu lukujono f x, f 2 x,.... Jos tämä jono suppenee
Luvun π irrationaalisuus. Ilari Vallivaara
Luvun π irrationaalisuus Ilari Vallivaara 27. marraskuuta 24 Sisältö 1 Esipuhe 2 2 Todistuksen pääpiirteinen kulku 3 3 Todistus 4 Lähdeluettelo 9 1 1 Esipuhe Luvun π irrationaalisuus seuraa suoraan sen
Rollen lause polynomeille
Rollen lause polynomeille LuK-tutkielma Anna-Helena Hietamäki 7193766 Matemaattisten tieteiden tutkinto-ohjelma Oulun yliopisto Kevät 015 Sisältö 1 Johdanto 1.1 Rollen lause analyysissä.......................
MAT-41150 Algebra I (s) periodilla IV 2012 Esko Turunen
MAT-41150 Algebra I (s) periodilla IV 2012 Esko Turunen Tehtävä 1. Onko joukon X potenssijoukon P(X) laskutoimitus distributiivinen laskutoimituksen suhteen? Onko laskutoimitus distributiivinen laskutoimituksen
MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ
MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ 6.3.09 HYVÄN VASTAUKSEN PIIRTEITÄ Alla oleva vastausten piirteiden, sisältöjen ja pisteitysten luonnehdinta ei sido ylioppilastutkintolautakunnan arvostelua. Lopullisessa
9. Lineaaristen differentiaaliyhtälöiden ratkaisuavaruuksista
29 9 Lineaaristen differentiaaliyhtälöiden ratkaisuavaruuksista Tarkastelemme kertalukua n olevia lineaarisia differentiaaliyhtälöitä y ( x) + a ( x) y ( x) + + a ( x) y( x) + a ( x) y= b( x) ( n) ( n
Lukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)
Lukuteoria Lukuteoria on eräs vanhimmista matematiikan aloista. On sanottu, että siinä missä matematiikka on tieteiden kuningatar, on lukuteoria matematiikan kuningatar. Perehdymme seuraavassa luonnollisten
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 5: Taylor-polynomi ja sarja
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 5: Taylor-polynomi ja sarja Pekka Alestalo, Jarmo Malinen Aalto-yliopisto, Matematiikan ja systeemianalyysin laitos 26.9.2016 Pekka Alestalo,
x j x k Tällöin L j (x k ) = 0, kun k j, ja L j (x j ) = 1. Alkuperäiselle interpolaatio-ongelmalle saadaan nyt ratkaisu
2 Interpolointi Olkoon annettuna n+1 eri pistettä x 0, x 1, x n R ja n+1 lukua y 0, y 1,, y n Interpoloinnissa etsitään funktiota P, joka annetuissa pisteissä x 0,, x n saa annetut arvot y 0,, y n, (21)
2.2 Neliöjuuri ja sitä koskevat laskusäännöt
. Neliöjuuri ja sitä koskevat laskusäännöt MÄÄRITELMÄ 3: Lukua b sanotaan luvun a neliöjuureksi, merkitään a b, jos b täyttää kaksi ehtoa: 1o b > 0 o b a Esim.1 Määritä a) 64 b) 0 c) 36 a) Luvun 64 neliöjuuri
Tenttiin valmentavia harjoituksia
Tenttiin valmentavia harjoituksia Alla olevissa harjoituksissa suluissa oleva sivunumero viittaa Juha Partasen kurssimonisteen siihen sivuun, jolta löytyy apua tehtävän ratkaisuun. Funktiot Harjoitus.
Vaihtoehtoinen tapa määritellä funktioita f : N R on
Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: 1 (Alkuarvot) Ilmoitetaan funktion arvot
Matematiikka B3 - Avoin yliopisto
2. heinäkuuta 2009 Opetusjärjestelyt Luennot 9:15-11:30 Harjoitukset 12:30-15:00 Tentti Lisäharjoitustehtävä Kurssin sisältö (1/2) 1. asteen Differentiaali yhtälöt (1.DY) Separoituva Ratkaisukaava Bernoyulli
0 kun x < 0, 1/3 kun 0 x < 1/4, 7/11 kun 1/4 x < 6/7, 1 kun x 1, 1 kun x 6/7,
HY / Matematiikan ja tilastotieteen laitos Todennäköisyyslaskenta II, syksy 07 Harjoitus Ratkaisuehdotuksia Tehtäväsarja I. Mitkä seuraavista funktioista F, F, F ja F 4 ovat kertymäfunktioita? Mitkä niistä
Derivaatta: funktion approksimaatio lineaarikuvauksella.
Viikko 5 Tällä viikolla yleistetään R 2 :n ja R 3 :n vektorialgebran peruskäsitteet n-ulotteiseen avaruuteen R n, ja määritellään lineaarikuvaus. Tarkastellaan funktioita, joiden määrittelyjoukko on n-ulotteisen
Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa
Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa - johdanto - matemaattinen induktiotodistus - matriisien kertolaskun käyttömahdollisuus - käsinlaskuesimerkkejä - kaikki välivaiheet esittävä
Cantorin joukon suoristuvuus tasossa
Cantorin joukon suoristuvuus tasossa LuK-tutkielma Miika Savolainen 2380207 Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2016 Sisältö Johdanto 2 1 Cantorin joukon esittely 2 2 Suoristuvuus ja
Dierentiaaliyhtälöistä
Dierentiaaliyhtälöistä Markus Kettunen 4. maaliskuuta 2009 1 SISÄLTÖ 1 Sisältö 1 Dierentiaaliyhtälöistä 2 1.1 Johdanto................................. 2 1.2 Ratkaisun yksikäsitteisyydestä.....................
y x1 σ t 1 = c y x 1 σ t 1 = y x 2 σ t 2 y x 2 x 1 y = σ(t 2 t 1 ) x 2 x 1 y t 2 t 1
1. Tarkastellaan funktiota missä σ C ja y (y 1,..., y n ) R n. u : R n R C, u(x, t) e i(y x σt), (a) Miksi funktiota u(x, t) voidaan kutsua tasoaalloksi, jonka aaltorintama on kohtisuorassa vektorin y
FUNKTIONAALIANALYYSIN PERUSKURSSI 1. 0. Johdanto
FUNKTIONAALIANALYYSIN PERUSKURSSI 1. Johdanto Funktionaalianalyysissa tutkitaan muun muassa ääretönulotteisten vektoriavaruuksien, ja erityisesti täydellisten normiavaruuksien eli Banach avaruuksien ominaisuuksia.
Luonnollisten lukujen ja kokonaislukujen määritteleminen
Luonnollisten lukujen ja kokonaislukujen määritteleminen LuK-tutkielma Jussi Piippo Matemaattisten tieteiden yksikkö Oulun yliopisto Kevät 2017 Sisältö 1 Johdanto 2 2 Esitietoja 3 2.1 Joukko-opin perusaksioomat...................
4 Yleinen potenssifunktio ja polynomifunktio
4 Yleinen potenssifunktio ja polynomifunktio ENNAKKOTEHTÄVÄT 1. a) Tutkitaan yhtälöiden ratkaisuja piirtämällä funktioiden f(x) = x, f(x) = x 3, f(x) = x 4 ja f(x) = x 5 kuvaajat. Näin nähdään, monessako
Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on
Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: Rekursio Funktio f : N R määritellään yleensä
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 3: Jatkuvuus
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 3: Jatkuvuus Pekka Alestalo, Jarmo Malinen Aalto-yliopisto, Matematiikan ja systeemianalyysin laitos 19.9.2016 Pekka Alestalo, Jarmo
Antti Rasila. Kevät Matematiikan ja systeemianalyysin laitos Aalto-yliopisto. Antti Rasila (Aalto-yliopisto) MS-A0204 Kevät / 16
MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 5: Gradientti ja suunnattu derivaatta. Vektoriarvoiset funktiot. Taylor-approksimaatio. Antti Rasila Matematiikan ja systeemianalyysin laitos
