DMA Přednáška Rekurentní rovnice Rekurentní rovnice či rekurzivní rovnice pro posloupnost {a n } je vztah a n+1 = G(a n, a n 1,..., a n m ), n n 0 + m, kde G je nějaká funkce m + 1 proměnných. Jejím řešením nazveme libovolnou posloupnost {a n } n=n 0 takovou, že po dosazení odpovídajících členů do dané rovnice dostáváme pro všechna n n 0 + m pravdivý výrok. Lineární rekurentní rovnice, popřípadě lineární rekursivní rovnice řádu k N 0 je libovolná rovnice ve tvaru a n+k + c k 1 (n)a n+k 1 + + c 2 (n)a n+2 + c 1 (n)a n+1 + c 0 (n)a n = b n, n n 0, kde n 0 Z, c i (n) pro i = {0,..., k 1} (tzv. koeficienty rovnice) jsou nějaké funkce Z R, přičemž c 0 (n) není identicky nulová funkce, a {b n } n=n 0 (tzv. pravá strana rovnice) je pevně zvolená posloupnost reálných čísel. Jestliže b n = 0 pro všechna n n 0, pak se příslušná rovnice nazývá homogenní. Zápis rovnice pomocí sumačního znaménka: k 1 a n+k + c i (n)a n+i = b n. 1
Nechť je dána lineární rekurentní rovnice řádu k a n+k + c k 1 (n)a n+k 1 +... + c 1 (n)a n+1 + c 0 (n)a n = b n, n n 0. Za počáteční podmínky (initial conditions) pro tuto rovnici považujeme libovolnou soustavu rovnic a n0 = A 0, a n0 +1 = A 1,..., a n0 +k 1 = A k 1, kde A i R jsou pevně zvolená čísla. Uvažujme lineární rekurentní rovnici Pak se lineární rekurentní rovnice a n+k + c k 1 (n)a n+k 1 +... + c 1 (n)a n+1 + c 0 (n)a n = b n, n n 0. nazývá k ní přidružená homogenní rovnice. a n+k + c k 1 (n)a n+k 1 +... + c 1 (n)a n+1 + c 0 (n)a n = 0, n n 0 Věta. (o struktuře řešení lineární rekurentní rovnice) Nechť je dána lineární rekurentní rovnice a n+k + c k 1 (n)a n+k 1 +... + c 1 (n)a n+1 + c 0 (n)a n = b n, n n 0 a nějaké její řešení {a p,n } n=n 0. Posloupnost {a n } n=n 0 je řešením této rovnice právě tehdy, pokud se dá napsat jako {a n } = {a p,n } + {a h,n }, kde {a h,n } n=n 0 je nějaké řešení přidružené homogenní rovnice. Množina všech řešení dané lineární rekurentní rovnice je tedy { {ap,n } + {a h,n }; {a h,n } řeší přidruženou homogenní rovnici }. 2
Věta. (o prostoru řešení homogenní lineární rekurentní rovnice) Množina všech řešení dané homogenní lineární rekurentní rovnice řádu k je vektorový prostor dimenze k. Lineární rekurentní rovnice s konstantními koeficienty je libovolná rovnice ve tvaru a n+k + c k 1 a n+k 1 +... + c 1 a n+1 + c 0 a n = b n, n n 0, kde n 0 Z, c i R pro i = 0,..., k 1 jsou pevně zvolená čísla a {b n } n=n 0 čísel. je pevně zvolená posloupnost reálných Nechť je dána lineární rekurentní rovnice s konstantními koeficienty a n+k + c k 1 a n+k 1 +... + c 1 a n+1 + c 0 a n = b n, n n 0. Její charakteristický polynom je definován jako polynom p(λ) = λ k + c k 1 λ k 1 +... + c 1 λ + c 0. Kořeny charakteristického polynomu se nazývají charakteristická čísla, popřípadě vlastní čísla dané rovnice. Řešené rovnici λ k + c k 1 λ k 1 +... + c 1 λ + c 0 = 0 se také říká charakteristická rovnice. Fakt. Jestliže je λ 0 charakteristickým číslem dané homogenní lineární rekurentní rovnice s konstantními koeficienty, pak je posloupnost {λ n 0 } n=n 0 jejím řešením. 3
Věta. Uvažujme homogenní lineární rekurentní rovnici s konstantními koeficienty. Jestliže jsou λ i různá její charakteristická čísla, pak {λ n i } n=n 0 tvoří lineárně nezávislou množinu řešení této rovnice. Fakt. Nechť je dána homogenní lineární rekurentní rovnice s konstantními koeficienty. Jestliže je λ 0 její charakteristické číslo a má násobnost m jako kořen charakteristického polynomu, pak posloupnosti {λ n 0 }, {nλ n 0 },..., {n m 1 λ n 0 } jsou řešení dané rovnice a tvoří lineárně nezávislou množinu. Věta. Nechť je dána homogenní lineární rekurentní rovnice s konstantními koeficienty řádu k. Nechť jsou λ 1,..., λ M její různá charakteristická čísla, přičemž každé λ i má násobnost m i N. Pak je množina { {λ n 1 }, {nλ n 1 },..., {n m 1 1 λ n 1 }, {λ n 2 }, {nλ n 2 },..., {n m 2 1 λ n 2 },..., {λ n M }, {nλ n M },..., {n m M 1 λ n M } } bází prostoru řešení dané rovnice. 4
Algoritmus pro řešení homogenní lineární rekurentní rovnice a n+k + k 1 1. Sestavte charakteristický polynom p(λ) = λ k + k 1 c i λ i. c i a n+i = 0, n n 0, řádu k. Řešením rovnice p(λ) = 0 najděte všechna charakteristická čísla dané rovnice. 2. Sestavte množinu posloupností B takto: pro každé reálné charakteristické číslo λ přidejte do B posloupnost {λ n } n=n 0 ; pro každé reálné charakteristické číslo λ, jehož násobnost je m > 1, přidejte do B rovněž posloupnosti {nλ n } n=n 0,..., {n m 1 λ n } n=n 0 ; pro každé komplexní charakteristické číslo λ = r[cos(ϕ) + i sin(ϕ)], které není reálné, přidejte do B posloupnosti {r n cos(nϕ)} n=n 0 a {r n sin(nϕ)} n=n 0 ; pro jeho komplexně sdružené číslo λ již do B nic nepřidáváme; pro každé komplexní charakteristické číslo λ = r[cos(ϕ) + i sin(ϕ)], které není reálné a jehož násobnost je m > 1, přidejte do B posloupnosti {nr n cos(nϕ)} n=n 0,..., {n m 1 r n cos(nϕ)} n=n 0 a {nr n sin(nϕ)} n=n 0,..., {n m 1 r n sin(nϕ)} n=n 0 ; pro jeho komplexně sdružené číslo λ již do B nic nepřidáváme. Množina B je bází prostoru řešení. 3. Označíme-li B = { {a 1,n },..., {a k,n } } { k }, pak je obecné řešení dané rovnice určeno vzorcem u i a i,n pro i=1 n=n 0 u 1,..., u k R. 4. Jsou-li dány počáteční podmínky, pak do nich za příslušná a j pro j = n 0,..., n 0 + k 1 dosadíme vzorce a j = k u i a i,j a vyřešíme vzniklých k rovnic pro k neznámých u i. Ty po dosazení do obecného řešení určí příslušné i=1 partikulární řešení. Řekneme, že posloupnost {b n } n=n 0 je kvazipolynom, jestliže existuje λ R a polynom P (n) takový, že b n = P (n)λ n pro všechna n n 0. Věta. Uvažujme rovnici a n+k + c k 1 a n+k 1 + + c 1 a n+1 + c 0 a n = b n, n n 0. Předpokládejme, že existují λ R a polynom P takový, že b n = P (n)λ n pro všechna n n 0. Nechť m je násobnost tohoto čísla λ jako charakteristického čísla přidružené homogenní rovnice, přičemž m = 0 v případě, že toto λ vůbec charakteristickým číslem není. Pak existuje polynom Q(n) stupně stejného jako P takový, že {n m Q(n)λ n } je řešením dané rovnice. 5
a n+2 9a n = [λ = 3, 3] a n+2 3a n+1 + 2a n = [λ = 1, 2] a n+2 4a n+1 + 4a n = [λ = 2 (2 )] L = / = b n = n 2 n [λ = 2] = n 2 ( 1) n [λ = 1] = 2n 5 [λ = 1] = ( 3) n [λ = 3] Algoritmus pro nalezení řešení rovnice a n+k + c k 1 a n+k 1 +... + c 1 a n+1 + c 0 a n = b n, n n 0, kde b n = P (n)λ n, c i R a c 0 0 (tedy řád k). 1. Nejprve řešte přidruženou homogenní rovnici a n+k + c k 1 a n+k 1 +... + c 1 a n+1 + c 0 a n = 0. a) Najděte všechna charakteristická čísla λ j s násobnostmi m j řešením rovnice λ k + c k 1 λ k 1 + + c 1 λ + c 0 = 0. b) Sestavte bázi prostoru řešení B = { {a i,n } n=n 0 ; i = 1,..., k }. { k } c) Obecné řešení přidružené homogenní rovnice je {a h,n } = u i a i,n pro u i R. Pokud byla zadaná rovnice již homogenní, jděte na 3. 2. Pokud nebyla zadaná rovnice homogenní, zkontrolujte, že je pravá strana kvazipolynom, tedy b n = P (n)λ n pro nějaké λ R a polynom P. a) Porovnejte λ s charakteristickými čísly λ j z kroku 1. Pokud se žádnému nerovná, položte m = 0. Pokud pro nějaké j platí λ = λ j, položte m = m j (násobnost dotyčného charakteristického čísla). b) Sestavte obecný polynom Q stupně stejného jako P, tradičně se používá Q(n) = A + Bn +. c) Uhádněte řešení a n = n m Q(n)λ n. Dosaďte jej do dané rovnice a po zkrácení λ zjednodušte levou stranu do tvaru polynomu. Porovnáním koeficientů polynomů na levé a pravé straně získáte tolik rovnic, kolik je neznámých koeficientů v Q. d) Vyřešte tyto rovnice a obdržené konstanty dosaďte zpět do Q. Získáte jedno konkrétní řešení a p,n. e) Obecné řešení dané úlohy je {a p,n + k } u i a i,n či a n = a p,n + k u i a i,n pro n n 0. i=1 n=n 0 i=1 3. Pokud byly s rovnicí zadány také počáteční podmínky, dosaďte za a j v těchto podmínkách vzorce pro a j z obecného řešení, které jste našli. Získáte k rovnic pro k neznámých u 1,..., u k. Vyřešte tuto soustavu, získaná u i dosaďte do vzorce pro obecné řešení a dostanete tak partikulární řešení pro zadanou úlohu. i=1 6
Věta. Nechť k N, uvažujme funkce c 0 (n), c 1 (n),..., c k 1 (n): Z R. Jestliže posloupnost {a n } n=n 0 řeší rovnici a n+k + k 1 c i (n)a n+i = b n, n n 0 a posloupnost {ã n } n=n 0 řeší rovnici a n+k + k 1 c i (n)a n+i = b n, n n 0, pak posloupnost {a n + ã n } n=n 0 řeší rovnici a n+k + k 1 c i (n)a n+i = b n + b n pro všechna n n 0. 7
Fakt. Nechťje funkce f na N dána vzorcem f(n) = a f ( ) n b pro a > 0 a b N, b 2. Pak pro n {b k ; k N} platí f(n) = n log b (a) f(1). Věta. (The Master theorem) Uvažujme neklesající nezápornou funkci f na N. Pro nějaké b N, b 2 označme M = {b k ; k N} a předpokládejme, že f splňuje na M rovnici f(n) = a f ( ) n b + cn d pro konstanty a, c R, d N 0 splňující a 1 a c > 0. Pak platí následující: (i) Jestliže a > b d, tak f(n) = Θ(n log b (a) ). (ii) Jestliže a = b d, tak f(n) = Θ(n d log 2 (n)). (iii) Jestliže a < b d, tak f(n) = Θ(n d ). Důsledek. Uvažujme neklesající nezápornou funkci f na N. Pro nějaké b N, b 2 označme M = {b k ; k N} a předpokládejme, že f splňuje na M rovnici f(n) = a f ( ) n b + cn d pro konstanty a, c R, d N 0 splňující a 1 a c 0. Pak platí následující: (i) Jestliže d < log b (a) nebo c = 0, tak f(n) je Θ(n log b (a) ). (ii) Jestliže d = log b (a), tak f(n) je Θ(n log b (a) log 2 (n)) = Θ(n d log 2 (n)). (iii) Jestliže d > log b (a), tak f(n) je Θ(n d ). 8