Semestrální z předmětu MM práce Diferenční rovnice Jméno a příjmení: Osobní číslo: Studijní skupina: Obor: E-mail: Jan Forejt A07026 1. ročník, komb. studium Matematika forejt@cs.mfcr.cz Datum odevzdání: 7.2.2008
Obsah: 1. The Tower of Hanoi 2 2. Lineární diferenční rovnice.... 4 3. Problémy s počáteční podmínkou.. 4 4.Řešení diferenčních rovnic.. 5 5. Řešení prvního řádu lineárních rovnic... 6 6. Literatura 11 1
1. The Tower of Hanoi...v jedné tibetské oblasti, v klášteře uprostřed strmých hor, prý existuje náboženská sekta, která ví, kdy bude konec světa. Mnichové této sekty se zabývají problémem přesouvání 64 zlatých disků navlečených na tři tyče. Cílem je přesunout všechny disky z první tyče na třetí s tím, že mohou používat druhou tyč jako pomocnou. Vždy však mohou přesouvat pouze jeden disk a nikdy nesmíme umístit větší disk na menší. Před mnoha sty lety začali mnišii s přesouváním disků. Až se jim podaří úkol splnit, nastane konec světa. Otázkou je, jestli je tato legenda pravdivá, a přenesení jednoho disku trvá kněžím 1 s, jak dlouho budou kněží disky převádět a kdy nastane konec světa. K řešení ohoto problému nejprve určíme počet požadovaných pohybů k přesunu jednoho, dvou či tří disků. Z tohoto řešení budemee moci odvodit pravidlo pro přenesení libovolného počtu disků. 1 disk (n=1) (P 1 =1) Jeden disk lze přenést z jedné jehly na druhouu v jednom pohybu. 2 disky (n=2) (P 2 =3) Dva disky lze přenést z jedné jehly na druhouu ve třech povolených pohybech. 3 disky (n=3) (P 3 =7) Tři disky lze přenést z jedné jehly na druhou v sedmi povolených pohybech. 2
Nyní známe, jak přenést jeden, dva nebo tři disky z jedné jehly na druhou. Není již těžké odvodit strategii pro přenos libovolného počtu disků. Krok Popis akce Počet kroků 1 Přenesení všech disků kromě největšího disku z 1. jehly na 2. 2 Přenesení zbývajícího disku z 1. jehly na 3. P n-1 1 3 Přenesení disků z 2. jehly na 3. P n-1 Počet pohybů celkem P n = 2*P n-1 + 1 Tabulka ukazuje danou strategii a dle ní lze spočítat požadovaný počet přesunů pro libovolný počet disků. Naším úkolem bylo zjistit, jak dlouho potrvá přesun 64 disků. Výpočet provedeme přesně podle dané strategie: - nejdříve vypočteme počet přenosů pro jeden disk - z něj lze vypočítat počet přenosů pro dva disky - atd., až spočteme hledaný počet pro 64 disků P 64 = 18 446 744 073 709 551 615 [s] > 500 * 10 9 [let] 3
2. Lineární diferenční rovnice Hanojské věže a její řešení je příkladem diferenční rovnice. Diferenční (rekursivní) rovnice jsou takové rovnice, kde hledáme vzorec pro n-tý člen posloupnosti čísel splňující jistý daný vztah. Pokud se v dané rovnici vyskytuje pouze lineární kombinace členů hledané posloupnosti, hovoříme o lineární diferenční rovnici. y n = -a 1 y n-1 - a 2 y n-2 - - a k y n-k + b n Pokud se zpětně podíváme na diferenční rovnici z Hanojských věží (y n = 2y n-1 + 1), tak v případě nezadání tzv. počáteční podmínky (počet nutných přesunů pro nejmenší počet disků), řešením dané rovnice by byla každá posloupnost tvaru: Dosazením dostaneme: y n = d*2 n 1, d 0 d*2 n 1 = 2*(d*2 n-1 1) + 1 = 2*d*2 n-1 2 + 1 = d*2 n 1 Aby bylo její řešení určeno jednoznačně (existovala pouze jediná posloupnost splňující danou rovnici), je nutno ještě zadat tzv. počáteční podmínky, tj. hodnoty prvních k členů dané posloupnosti. Příklady známých lineárních diferenčních rovnic: Fibonacciho rovnice: F n = F n-1 + F n-2 Tower of Hanoi: P n = 2*P n-1 + 1 3. Problémy s počáteční podmínkou Pokud máme dánu diferenční rovnici a její první eventuálně i druhý člen, a úkolem je najít posloupnost čísel dané diferenční rovnice, jedná se o tzv. problém s počáteční hodnotou (initial-value problem). Pro objasnění uvedu několik příkladů: Příklad 1.: Nalezněte prvních šest členů posloupnosti s počáteční podmínkou. y 0 = 1 y n = 3y n-1 + 5 Známe hodnotu y 0 (= 1) a použitím zadané diferenční rovnice spočteme požadovaný počet členů posloupnosti: y 0 = 1 y 1 = 3y 0 + 5 = 3*1 + 5 = 8 y 2 = 3y 1 + 5 = 3*8 + 5 = 29 4
y 3 = 3y 2 + 5 = 3*29 + 5 = 92 y 4 = 3y 3 + 5 = 3*92 + 5 = 281 y 5 = 3y 4 + 5 = 3*281 + 5 = 848 Příklad 2.: Nalezněte prvních šest členů posloupnosti s počáteční podmínkou. y 0 = 1 y n y n-1 = 2n, n 1 Tato diferenční rovnice není zadána ve tvaru, aby člen s nejvyšším indexem byl na levé straně rovnice sám. Tyto rovnice se řeší pro člen s nejvyšším indexem jako funkce členů s nižšími indexy. Tudíž je nutno danou rovnici upravit: y n = y n-1 + 2n, n 1 Nyní již můžeme spočítat prvních šest členů dané posloupnosti: y 0 = 1 y 1 = 1 + 2*1 = 3 y 2 = 3 + 2*2 = 7 y 3 = 7 + 2*3 = 13 y 4 = 13 + 2*4 = 21 y 5 = 21 + 2*5 = 31 Příklad 3.: Nalezněte prvních pět členů posloupnosti s počáteční podmínkou. y 0 = 5 y 1 = 0 y n = (y n-1 ) 2 - y n-2, n 1 Tato diferenční rovnice potřebuje pro své řešení první dva členy dané posloupnosti (počáteční podmínky). Jejich hodnota je známa a není proto problém najít řešení: y 0 = 5 y 1 = 0 y 2 = 0 2 5 = 5 y 3 = ( 5) 2 0 = 25 y 4 = 25 2 ( 5) = 630 4. Řešení diferenčních rovnic Předcházející příklady ukazují fakt, že stačí ovládat základní kroky aritmetiky abychom dokázali najít prvních několik členů řešení úlohy s počáteční podmínkou. Nicméně jak už bylo prezentováno na problému Hanojských věží, bylo by určitě časově a výpočetně ideálnější najít algebraický výraz pro n-tý člen y n posloupnosti. Nazvali bychom ho řešením problému s počáteční podmínkou. Výhoda tohoto výrazu leží ve skutečnosti, že můžeme nalézt hodnotu nějakého členu posloupnosti jednoduše bez nutnosti vyčíslit předchozí členy posloupnosti. 5
Jako příklad si můžeme vzít Hanojské věže: y n = 2y n-1 + 1 y 0 = 1 je řešením problému s počáteční hodnotou y n = 2 n 1 2 n 1 = 2*(2 n-1 1) + 1 = 2*2 n-1 2 + 1 = 2 n 1 Mějme dánu diferenční rovnici: y n = ay n-1 + b,kde a, b jsou reálná čísla. Takovouto rovnici nazveme diferenční rovnicí prvního řádu (first-order linear). Je možné najít n-tý člen y n z posloupnosti, který uspokojí tuto rovnici pro první člen y 0, touto metodou: postupným rozepisováním dané diferenční rovnice nejdříve pro n=1 a dále pro n=2,3,, a nahrazením členů s vyššími indexy členy s indexy nižšími, dostaneme vztah pro výpočet člena y n pomocí člena y 0 (počáteční podmínka). Dostaneme: y 1 = ay 0 + b y 2 = ay 1 + b = a(ay 0 + b) + b = a 2 y 0 + ab + b y 3 = ay 2 + b = a(a 2 y 0 + ab + b) + b = a 3 y 0 + a 2 b + ab + b.. y n = ay n-1 + b = a n y 0 + a n-1 b + a n-2 b + + a 2 b + ab + b Použitím formule na součet konečné geometrické řady: b + ab + a 2 b + + a n-1 = b[(1-a n )/(1-a)], a 1 Takže řešením je: y n = a n y 0 + b[(1-a n )/(1-a)] = a n y 0 + b/(1-a) ba n /(1-a) = b/(1-a) + [y 0 - b/(1-a)]a n 5. Řešení prvního řádu lineárních rovnic Z uvedeného vzorce vyplývá, že problém s počáteční podmínkou: y n = ay n-1 + b, dáno y 0, n 1 má řešení: y n = r + (y 0 r)a n, n 0, kde r = b/(1-a), a 1 6
Pokud je a = 1, diferenční rovnice má řešení y n = y 0 + nb Příklad 4.: Nalezněte řešení problému s počáteční podmínkou. y 0 = 0 y n = 0,8y n-1 + 1, n 1 y 0 = 0 y n = ay n-1 + b, n 1, kde a = 0,8 b = 1 r = b/(1-a) = 1/(1-0,8) = 5, pak y n = r + (y 0 - r)a n = 5 + (0 5)0,8 n = 5 5*0,8 n, n 0 Příklad 5.: Pastevec má populaci 30 horských koz. Jeho stádo se zvětšuje ročně o 12%. Na takto zadané úloze můžeme zkoumat 2 problémy: Jak velká bude populace koz za n let? Za kolik let dosáhne jeho stádo počtu 150 ks? Jak velká bude populace koz za n let? y n - y n-1 = 0,12y n-1 y 0 = 30, y n = 1,12y n-1, n 1, problém s počáteční podmínkou y n = ay n-1 + b, kde a = 1,12 b = 0 r = b/(1-a) = 0 Dostaneme řešení y n = r + (y 0 r)a n = 0 + (30 0)1,12 n = 30*1,12 n, n 0 7
Prvních pár členů je uvedeno v tabulce: Za kolik let dosáhne jeho stádo počtu 150 ks? stanovíme 30*1,12 n = 150, kde potřebujeme určit n, zlogaritmováním dostaneme:, dosazením 1,12 n = 5 n log 1,12 = log 5 log 1,12 0,049218 log 5 0,69897 0,049218n 0,69897 n 14,2 Stádo dosáhne stavu 150ti kusů za přibližně 14 let. 8
180 160 140 120 100 80 60 40 20 0 0 2 4 6 8 10 12 14 16 Tabulka růstu počtu horských koz v závislosti na čase Příklad 6.: Třeboňští rybáři mají ve svém rybníce 100.000 ks třeboňských kaprů. Kapři se ročně rozrostou o 25% a je povolen výlov 30.000 ks kaprů určených na vánoční stůl. Za kolik let bude celé hejno ryb vyloveno? y n - y n-1 = 0,25y n-1 30000, n 1, y 0 = 100000 y n = 1,25y n-1 30000, což je lineární rovnice prvního řádu (y n = ay n-1 + b), kde a = 1,25 b = -30000 r = b/(1-a) = (-30000)/(1-1,25) = 120000 Za kolik let bude celé hejno ryb vyloveno? (y n = 0) Dostaneme řešení y n = r + (y 0 r)a n, n 0 0 = 120000 + (100000 120000)1,25 n 0 = 120000 20000*1,25 n 20000*1,25 n = 120000 0,2*1,25 n = 1,2 1,25 n = 6, zlogaritmováním dostaneme n log 1,25 = log 6 log 1,25 0,09691 log 6 0,778151 9
, dosazením 0,09691n 0,778151 n 8,029 Rybník bude bez kaprů za 9 let. 10
6. Literatura Kopeček, I.; Kučera, J.: Programátorské poklesky, Mladá fronta, 1989 Chval, Z.: The Tower of Hanoi: Diferenční rovnice, ZČU, 2005 Bartsch, H.-J.: Matematické vzorce, Mladá fronta, 1996 www.wikipedia.org 11