Johdatus diskreettiin matematiikkaan Harjoitus 5, 14.10.2015 1. Ratkaise rekursioyhtälö x n+4 2x n+2 + x n 16( 1) n, n N, alkuarvoilla x 1 2, x 2 14, x 3 18 ja x 4 42. Ratkaisu. Vastaavan homogeenisen yhtälön karakteristinen polynomi on r 4 2r 2 + 1 (r 1) 2 (r+1) 2 eli nollakohdan 1 ja 1 ovat kaksinkertaisia. Täten homogeenisen yhtälön ratkaisut ovat muotoa z n λ + λ 2 n + λ 3 ( 1) n + λ 4 n( 1) n, n N. Koska 1 on karakteristisen polynomin juuri, sopiva yrite epähomogeenisen yhtälön yksittäisratkaisuksi on y n λ 5 n 2 ( 1) n, n N. Sijoittamalla tämä rekursioyhtälöön nähdään, että 16( 1) n y n+1 2y n+2 + y n 8λ 5 ( 1) n kaikilla n N. Tästä saadaan λ 5 2, joten yksittäisratkaisu on y n 2n 2 ( 1) n kaikilla n N. Ratkaistaan vielä jono z n alkuarvolla z 1 x 1 y 1 2 ( 2) 0, z 2 x 2 y 2 14 8 6, z 3 x 3 y 3 18 ( 18) 0 ja z 4 x 4 y 4 42 32 10. Näistä saadaan siis yhtälöryhmä: 0 z 1 λ 1 + λ 2 λ 3 λ 4 6 z 2 λ 1 + 2λ 2 + λ 3 + 2λ 4 0 z 3 λ 1 + 3λ 2 λ 3 3λ 4 10 z 4 λ 1 + 4λ 2 + λ 3 + 4λ 4 mistä saadaan λ 1 λ 2 λ 3 λ 4 1, joten tehtävän ratkaisu on x n z n + y n (2n 2 + n + 1)( 1) n + n + 1, n N. 2. Ratkaise rekursioyhtälö alkuarvoilla x 1 1, x 2 2. 1 x n+2 x n 2x 2 n+1, n N, Ratkaisu. Induktiolla nähdään helposti että jos x 1, x 2 > 0, niin x n > 0 kaikilla n N. Siten voidaan ottaa puolittain 2-kantaiset logaritmit, ja saadaan ekvivalentti yhtälö: y n+2 2y n+1 + y n 1, n N, alkuarvoilla y 1 log 2 1 0 ja y 2 log 2 2 1. Tässä siis y n log 2 x n kakilla n N. Ratkaistaan tämä nyt luennolla esitetyllä tavalla: Havaitaan että voidaan kirjoittaa edellinen yhtälö yhtäpitävästi 1 logaritmi voi auttaa y n+3 2y n+2 + y n+1 1, n N,
2 alkuarvoilla y 1 0, y 2 1, y 3 2y 2 y 1 + 1 3. Vähentämällä jälkimmäisestä ensimmäinen saadaan homogeeninen yhtälö y n+3 3y n+2 + 3y n+1 y n 0, n N, alkuarvoilla y 1 0, y 2 1, y 3 3. Tämän ratkaisu on sitten myös alkuperäisen yhtälön ratkaisu. Tälle yhtälölle karakteristinen polynomi on (r 1) 3, joten sen ratkaisut ovat muotoa y n λ 1 + λ 2 n + λ 3 n 2, n N. Alkuarvojen määräämästä yhtälöryhmästä 0 y 1 λ 1 + λ 2 + λ 3 1 y 2 λ 1 + 2λ 2 + 4λ 3 3 y 3 λ 1 + 3λ 2 + 9λ 3 saadaan λ 1 0, λ 2 1/2, λ 3 1/2, joten y n 1 2 n + 1 2 n2. Koska x n 2 yn kaikilla n N, niin tehtävän ratkaisu on siis x n 2 (n2 n)/2, n N. 3. Jatka lukujonoa termiin n saakka 2 1, 1, 2, 4, 7, 11, 16, Ratkaisu. Koetetaan vinkin mukaan muotoa x n+2 c 1 x n+1 +c 2 x n +v olevaa rekursiota, missä c 1, c 2 ja v ovat vakioita. Saadaan yhtälöryhmä 2 c 1 1 + c 2 1 + v 4 c 1 2 + c 2 1 + v 7 c 1 4 + c 2 2 + v, mitä voitaisiin toki jatkaakin seuraavien termien osalta, mutta se on tarpeetonta jos vinkki on oikea. (Jos jatkettaisiin, saataisi siis 3 tuntematonta sisältävä yhtälöryhmä jossa on yli kolme yhtälöä. Jos tehtävän laatija on antanut väärän vinkin ei tälle silloi olisi välttämättä ratkaisua.) Näistä ratkaisemalla saadaan c 2 1, c 1 2 ja v 1, joten rekursioyhtälö on x n+2 2x n+1 x n +1 alkuarvoilla x 1 1 ja x 2 1. Tämä osataan ratkaista. Karakteristisen polynomin nollakohta on 1 ja se on kaksinkertainen joten yrite on y n n 2 λ. Sijoittamalla tämä rekursioon saadaan toimivaksi yksittäisratkaisuksi y n 1 2 n2. Ratkaistaan sitten homogeeninen tehtävä alkuarvoilla x 1 y 1 1 1/2 1/2 ja x 2 y 2 1 2 1. Ratkaisu on siis z n λ 1 + nλ 2 ja alkuarvoista saadaan λ 1 2 ja λ 2 11/2. Koko tehtävän ratkaisu on siten x n y n + z n 1 2 n2 + 2 1 1 2n, minkä oikeellisuuden voi helposti tarkastaa. 2 Kannattaa veikata toisen kertaluvun lineaarista rekursiota jonka epähomogeeninen termi on vakio.
Huomautetaan vielä että itseasiassa yllä saadun rekursioyhtälön voi luennolla esitetyllä tavalla palauttaa ensimmäisen kertaluvun rekursioksi: x n + 1 x n + n 1, minkä voi myös ratkaista luennolla esitetyllä tavalla. Myös alkuarvot täsmäävät, joten tästä tulee sama ratkaisu. 3 4. Jatka lukujonoa termiin n saakka 3 1, 2, 2, 2, 3, 5, 7, 8, Ratkaisu. Toimitaan kuten edellisessä tehtävässä ja koetetaan siis rekursiota x n+2 c 1 x n+1 + c 2 x n + n. Nyt tarvitaan vain kahden ensimmäisen yhtälön ryhmä: 2 c 1 2 + c 2 1 + 1 2 c 1 2 + c 2 2 + 2, minkä ratkaisu on c 2 1 ja c 1 1. Ratkaisu on siis rekursioyhtälö x n+2 x n+1 x n +n kaikilla n. Karakteristisen polynomin juuret ovat r 1 3/4i + 1/2 ja r 2 3/4i + 1/2. Yksittäisratkaisuksi sopii yrittää siis y n λ 0 + λ 1 n, mikä sijoittamalla rekursioon saadaan y n 1 + n. Seuraavaksi homogeenisen yhtälön ratkaisu alkuarvoilla x 1 y 1 1 0 1 ja x 2 y 2 2 1 1: Ratkaisu on siis muotoa z n (α 2 + β 2 ) n/2 (λ 5 cos(nθ) + λ 6 sin(nθ), missä r 1 α + iβ ja r 2 α iβ sekä θ arctan( 3) π/3. Alkuarvoista ratkaisemalla saadaan λ 5 0 ja λ 6 2/ 3. Siispä kokonaisratkaisu jonoksi on x n y n + z n 1 + n + 2 sin(n π 3 3 ), n N 5. Osoita, että Fibonaccin luvuille 4 pätee (a) n i1 F 2i F 2n+1 1, (b) n i1 F i 2 F n F n+1 kaikilla n N. Ratkaisu. (a) Induktio: Koska F 2 1 F 3 1 niin väite on tosi kun n 1. Oletetaan sitten että väite pätee jollain n N. Tällöin n+1 n F 21 F 2n+2 + F 2i F 2n+2 + (F 2n+1 1) F 2(n+1)+1 1 i1 i1 i1 Fibonaccin lukujen määritelmän ja induktio-oletuksen mukaan. Induktio on siis saatu loppuun ja väite pätee kaikilla n N. (b) Induktio: Koska F1 2 1 F 1F 2, niin väite pätee kun n 1. Tehdään sitten induktio-oletus: väitetty yhtälö pätee jollakin n N. Tällöin n+1 n Fi 2 Fn+1 2 + Fi 2 Fn+1 2 + F k F k+1 F k+1 (F k+1 + F k ) F k+1 F k+2 i1 3 Kannattaa veikata toisen kertaluvun lineaarista rekursiota jonka epähomogeeninen termi on n. 4 Fibonaccin luvut määriteltiin harjoituksissa 4
4 Fibonaccin lukujen määritelmän ja induktio-oletuksen mukaan. Siten induktio on saatu loppuun ja väitetty yhtälö siis pätee kaikilla n N. 6. Olkoon A ( 1 1 1 0 (a) Määritä A n (Eli A A n kertaa) kaikille n N ja osoita tämän avulla harjoitusten 7 tehtävä 4 5. (Korjaus: Osoita että F n+2 F n Fn+1 2 ( 1)n+1 kaikilla n N. Viite tehtävään on väärin!!) (b) Osoita, että F 2n Fn+1 2 F n 1 2 kaikilla n N \ {1}. Ratkaisu. (a) Huomataan että A 2 2 1, A 1 1 3 Näyttää siis siltä että 3 2, A 2 1 4 A n ) Fn+1 F n F n F n 1 5 3, A 3 2 5 8 5. 5 3 kaikilla n N \ {1}. Osoitetaan tämä induktiolla. Edellä siis nähtiin jo että väite pätee kun n 2. Oletetaan sitten että väite pätee jollakin n N. Tällöin A k+1 AA k 1 1 Fn+1 F n Fn+1 + F n F n + F n 1 Fn+2 F n+1 1 0 F n F n 1 F n+1 F n F n+1 F n Fibonaccin lukujen määritelmän mukaan. Siten väite pätee myös tilanteessa n + 1 ja induktio on saatu loppuun ja siis väite todistettua kaikilla n N. Koska tehtävänanto oli päin honkia, siis viite tehtävään oli täysin väärä, kerrotaan nyt tässä mitä determinantista saadaan irti: Koska det(a) 1 0 1 1 1, niin det(a n+1 ) ( 1) n+1 kaikilla n N. Toisaalta (a) kohdan nojalla det(a n+1 ) F n+2 F n F 2 n+1 kaikilla n N. Siis F n+2f n F 2 n+1 ( 1)n+1 kaikilla n N. Väite voidaan todistaa myös ilman (a) -kohtaa suoraan induktiolla. (b) Jos n N \ {1}, niin (a) kohdan nojalla A 2n A n A n Fn+1 F n Fn+1 F n F n F n 1 F n F n 1 ( F n+1 2 + F n 2 ) F n+1 F n + F n F n 1 F n+1 F n + F n F n 1 Fn 2 + Fn 1 2 ja toisaalta myös 5 Vinkki: determinantti A 2n F2n+1 F 2n. F 2n F 2n 1
5 Siten kaikilla n N. F 2n F n+1 F n + F n F n 1 F n (F n+1 + F n 1 ) (F n+1 F n 1 )(F n+1 + F n 1 ) F 2 n+1 F 2 n 1 7. Määritellään lukujono (x n ) rekursiivisesti x n+2 x n+1 + x n, x 1 1, x 2 1 (Fibonaccin luvut). Laiska koodaaja ei halua ratkaista jonon alkioita vaan kirjoittaa yksinkertaisimman mahdollisen toteutuksen lukujen ratkaisemiseksi. Alla on pseudokoodi laske-alkio nimisestä funktiosta (lyhennetty LA, joka ottaa siis sisäänsä indeksin n joka kertoo mikä alkio tuosta lukujonosta pitää laskea. function LA(n) {if (n > 2) return (LA(n 1) + LA(n 2)); else return 1;}; Työnjohtaja laskee tämän rekursiivisen toteutuksen tarvitseman + laskujen määrän ja antaa potkut koodaajalle. Selitä miksi? Ratkaisu. Selitys on tietysti että työnjohtaja on psykoottinen hullu; ei ketään saa potkia ulos tuollaisen perusteella. Jos haluaa selittää mitä työnjohtaja on ajatellut, voi laskea tuota yhteenlaskujen määrää. Jos merkitään y n :llä laskettujen yhteenlaskujen määrää kun kutsutaan funktiota LA(n) saadaan rekursioyhtälö y n y n 1 + y n 2 + 1 joka siis kuvaa tuon annetun algoritmin tekemien yhteenlaskujen määrää. Alkuarvoina siis y 1 0 ja y 2 0, koska näissä tuo algoritmi ei laske yhteen vaan palauttaa tunnetut arvot, eli ykkösen. Kaiken kaikkiaan siis yhteenlaskuja on paljon, tuon yhtälön voi halutessaan ratkaista ja saada luvun joka on vain yhtä vähemmän kuin itse Fibonaccin luku. Se mikä on huomionarvoista, on että tässä tehdään paljon turhaa työtä: Jos nuo aiemmat Fibonaccin luvut talletettaisiin muistiin ja laskettaisiin aina seuraava, päästäisiin yhteenlaskuissa lukumäärään n, mikä on PALJON vähemmän kuin F n 1. Siis toteutus function LA(n) {tmp1 1, tmp21, lukutmp1; for (i in 3,...,n) {luku tmp1 + tmp2; tmp2tmp1; tmp1luku} return luku ;}; Ja tietysti voisi myös ratkaista tuon alkuperäisen Fibonaccin rekursion niinkuin tehtiin aiemmissa demoissa ja päästä vielä vähemmällä...
Johdatus diskreettiin matematiikkaan Ohjaus 5, 14.10.2015 1. Osoita että Fibonaccin luvuille pätee (a) n i1 F i F n+2 1, (b) n i1 F 2i 1 F 2n 2. Ratkaise rekursioyhtälö alkuarvolla x 1 1. 3. Ratkaise rekursioyhtälö alkuarvoilla x 1 3, x 2 1. Ratkaisu. x n+1 2x n + 4 n, n N, 9x n+2 6x n+1 + x n 0, n N, 4. Ratkaise rekursioyhtälö x n+4 2x n+2 + x n 0, n N, alkuarvoilla x 1 0, x 2 6, x 3 0 ja x 4 10. 5. Ratkaise rekursioyhtälö x n+3 2x n+2 x n+1 + 2x n 6 2 n, n N, alkuarvoilla x 1 4, x 2 14 ja x 3 32.