ZLICZANIE cz. II
Równania rekurencyjne Jak związki rekurencyjne wykorzystać jako narzędzie do przeliczania obiektów kombinatorycznych ? Typowa droga postępowania jest następująca: Znajdujemy związek rekurencyjny i obliczamy kilka początkowych wartości Odgadujemy ogólny wzór Udowadniamy go za pomocą indukcji matematycznej Jeśli wzoru nie da się odgadnąć, to za pomocą równania rekurencyjnego można czasem zbudować funkcję tworzącą, której współczynniki po rozwinięciu w szereg potęgowy wyznaczą rozwiązanie. UWAGA: Zależność rekurencyjna Równanie rekurencyjne Wyrazy ciągu zdefiniowane są za pomocą poprzednich wyrazów Określony (-ne) są pewne warunki początkowe
Przykład Na ile spójnych obszarów dzieli płaszczyznę n prostych, z których żadne dwie nie są równoległe i żadne trzy nie przecinają się w jednym punkcie ? Szukaną liczbę oznaczmy przez an Warunki początkowe mamy następujące: a0=1, a1=2 Prowadząc n-tą prostą, przetniemy wszystkie n-1 poprzednich prostych, a to oznacza, że przetniemy na dwie części n obszarów spójnych zwiększając liczbę obszarów o n an=a(n-1)+n Iterując an=a0+1+..+n=1+ Dowód indukcyjny
Przykład Wieże Hanoi – po jakim czasie kapłani przeniosą 64 (ogólnie n) złote krążki z pierwszego palika na trzeci (wspomagając się drugim) przy zachowaniu ograniczeń (przenosimy tylko jeden krążek, nie można położyć większego na mniejszym) Niech an będzie minimalną liczbą koniecznych ruchów. Aby przenieść największy krążek należy przenieść n-1 krążków na palik pomocniczy (a więc rozwiązać problem dla n-1 krążków – czyli a(n-1)). Uwolniwszy największy krążek przenosimy go na trzeci palik (1 ruch) i ustawiamy na nim n-1 krążków (kolejne a(n-1) ruchów), zatem an=2a(n-1)+1 warunkiem początkowym n=1 a1=1 n=2 a2=2*1+1=3 n=3 a3=2*3+1=7 n=4 a4=2*7+1=15 można zauważyć prawidłowość an=2n-1
Liniowe równania rekurencyjne o stałych współczynnikach Dotychczas równania miały „głębokość” równą jeden. Takie równania daje się stosunkowo łatwo rozwiązać. Ogólna postać liniowego równania rekurencyjnego o stałych współczynnikach jest następująca: gdzie ci są stałymi. Podstawmy do postaci tego równania ai=i (dla każdego i od n-r do n) oraz podzielmy wynik podstawienia przez n-r; otrzymamy (jest to tzw. równanie charakterystyczne prezentowanej zależności rekurencyjnej) Równanie to ma r pierwiastków (mogą być zespolone) 1, 2,.., r
Liniowe równania rekurencyjne cd. Podstawienie jest szczególnym rozwiązaniem równania rekurencyjnego Jeśli wszystkie pierwiastki 1, 2,.., r są różne, to dowolna kombinacja rozwiązań szczególnych jest również rozwiązaniem dla równania rekurencyjnego tzn. Jeśli znamy wartości początkowe a0, a1,..,ar-1 to rozwiązując układ równań: dla 0k r-1 wyznaczymy stałe A1,A2,..,Ar uzyskując jawną postać wzoru na an
Szczególny przypadek W szczególnym przypadku, gdy zależność rekurencyjna ma „głębokość” dwa, można sformułować następujące stwierdzenie Stwierdzenie Jeśli 1, 2 są różnymi pierwiastkami równania x2=c1x+c2, to równanie rekurencyjne an=c1an-1+c2an-2 ma rozwiązanie postaci Wartości A1, A2 obliczamy z warunków początkowych rekurencji – rozwiązując odpowiedni układ dwóch równań z dwoma niewiadomymi
Przykład Ciąg Fibonacciego (rok ~1200 Leonardo de Pisa): Problem szybkości wzrostu populacji królików. Warunek początkowy – jedna para Każda para staje się płodna po miesiącu i co miesiąc produkuje potomstwo w postaci kolejnej pary królików. Króliki nie zdychają i reprodukują się w nieskończoność. Definiowaliśmy ten ciąg rekurencyjnie w postaci: F0=1 F1=1 Fn=Fn-1+Fn-2 Stosując poprzednie Stw. do tego ciągu i rozwiązując równanie: x2=x+1 otrzymamy wzór skąd po uwzględnieniu warunków początkowych
Przykład cd. Stąd obliczając współczynniki A1,A2 otrzymujemy ostatecznie UWAGA: Dla równań rekurencyjnych, które nie są liniowe o stałych współczynnikach, nie istnieją ogólne metody rozwiązywania. Ogólne równania rekurencyjne rozwiązywane są metodą prób i błędów ?! Uzyskujemy oszacowanie asymptotyczne.
Funkcje tworzące Niech {ai} będzie ciągiem liczb (w szczególności liczb całkowitych nieujemnych) Wtedy szereg potęgowy nazywamy zwykłą funkcją tworzącą (lub krótko funkcją tworzącą). Dla każdego takiego szeregu istnieje liczba rzeczywista R0 zwana promieniem zbieżności taka, że jeśli |x|<R, to szereg jest absolutnie zbieżny, a ponadto można go różniczkować i całkować wyraz po wyrazie dowolną liczbę razy Zachodzi wtedy wzór Taylora i=0,1,2,.. UWAGA: Gdy ai są duże, wówczas R=0 i zwykłe funkcje tworzące stają się bezużyteczne Np. ai jest liczbą permutacji rzędu i czyli ai=i!
Funkcje tworzące cd. Aby ominąć problem dużych ai wprowadza się wykładniczą funkcję tworzącą: której promień zbieżności jest zwykle dodatni. UWAGA: Wykładnicze funkcje tworzące stosuje się na ogół w przypadkach, o których wiemy lub spodziewamy się, że ai rośnie szybciej niż wykładniczo (np. wariacje, permutacje). Koncepcja wykorzystania funkcji tworzących polega na związaniu z każdym ciągiem liczbowym pewnej funkcji zmiennej rzeczywistej (lub zespolonej) w taki sposób, aby operacje na ciągach odpowiadały prostym operacjom na związanych z nimi funkcjach. Analityczne metody działania na takich funkcjach są często prostsze niż metody kombinatoryczne działające bezpośrednio na ciągach.
Funkcje tworzące wybranych ciągów
Funkcje tworzące wybranych ciągów cd.
Własności Dla dowolnych szeregów definiujemy operacje: dodawania mnożenia przez liczbę iloczynu Cauchy`ego (iloczynu)
Przykład Przykład 1 Ile jest permutacji n-elementowych n! an=n*a(n-1) Niech f będzie wykładniczą funkcją tworzącą tego ciągu, wówczas czyli a zatem możemy obliczyć an=n!
a stąd możemy wyznaczyć an=2n-1 Przykład Przykład 2 Wieże Hanoi an=2*a(n-1)+1 Czyli a stąd możemy wyznaczyć an=2n-1
Oszacowanie liczby n! n!nn Dzięki wzorom Stirlinga mamy trzy przybliżenia silni Wzór ogólny: pierwsze przybliżenie:
Oszacowanie liczby n! źródło Wikipedia