• Nie Znaleziono Wyników

Materiały pomocnicze do wykładu

N/A
N/A
Protected

Academic year: 2021

Share "Materiały pomocnicze do wykładu"

Copied!
92
0
0

Pełen tekst

(1)

Rekursja 2

wykładowca: dr Magdalena Kacprzak

Materiały pomocnicze do wykładu

(2)

Rozwiązywanie równań

rekurencyjnych

(3)

Jednorodne liniowe

równania rekurencyjne

(4)

Twierdzenie

Niech k będzie ustaloną liczbą naturalną dodatnią i niech (*) oznacza zależność rekurencyjną między wyrazami ciągu {a(n)}:

(*)

gdzie D0, ..., Dk-1 są ustalonymi liczbami

zespolonymi oraz niech a(0), a(1), ...,a(k-1) będą warunkami początkowymi.

a(n) D

1) a(n

D

...

2) - k a(n

D 1)

- k a(n

D k)

a(n

0 1

2 k 1

- k

(5)

Twierdzenie

Każdy ciąg {a(n)} spełniający dla n  0 zależność (*) jest postaci

gdzie m oznacza liczbę różnych pierwiastków wielomianu charakterystycznego

m

1 i

W

i

a(n)

0 1

2 k 2 k 1

k 1 k

k

D x D x ... D x D

x

P(x)  

  

(6)

Twierdzenie

Oznaczmy te pierwiastki przez z1, ... zm zaś ich krotności przez k1, ... km odpowiednio. Wtedy Wi ma postać:

gdzie p=ki-1, zaś C0, ..., Cp-1, Cp są ustalonymi liczbami zespolonymi.

) n C n

C ...

n C (C

) (z

W

i

i n 0

1

 

p1 p1

p p

(7)

Przykład

Rozważmy następujące jednorodne liniowe równanie rekurencyjne

2 a(n) 1) 1

4 a(n 2) 7

a(n 3)

a(n

2, a(2)

1, a(1)

0, a(0)

(8)

Przykład

Wtedy wielomian charakterystyczny tego równania ma postać

2 x 1

4 x 7

x

P(x) 

3

2

 

(9)

Przykład

Ponieważ

to pierwiastkami są

x

1

=-1/2, x

2

=-1/2, x

3

=2

2) 2 (x

x 1 P(x)

2

 

 

  

(10)

Przykład

Zatem

n 3 n

2

1

C 2

2 ) 1

C n

(C

a(n)  

 

 

(11)

Przykład

Brakujące współczynniki wyznaczamy z układu trzech równań liniowych

dla a(0)=0, a(1)=1, a(2)=2





 

 



 

 



a(2) 4C

) C 2 (2C

1

a(1) 2C

) C 2 (C

1

a(0) C

C

3 2

1 2

3 2

1

3 2

(12)

Przykład

Ostatecznie

C

1

=4/5, C

2

=-9/25, C

3

=9/25 a z tego rozwiązaniem rozważanego równania jest

n n

25 2 9 2

) 1 25 n 9

5 ( 4

a(n)  

 

 

(13)

Niejednorodne liniowe

równania rekurencyjne

(14)

Redukcja do równań jednorodnych

Rozważmy następującą zależność rekurencyjną

Zauważmy, że

B a(n)

D 1)

a(n D

...

1) - k a(n

D k)

a(n  

k1

  

1

 

0

B 1)

a(n D

2) a(n

D ...

k) a(n

D 1)

k

a(n    k1    1   0  

(15)

Redukcja do równań jednorodnych

Odejmując stronami oba równania dostajemy

a(n) D

1) )a(n

D - D ( 2)

)a(n D

- D (

...

1) - k )a(n

D - D

( k)

a(n D

k) a(n

- 1) k

a(n

0 1

0 2

1

1 k 2

k 1

k

(16)

Redukcja do równań jednorodnych

Stąd

a(n) D

1) )a(n

D - D ( 2)

)a(n D

- D (

...

1) - k )a(n

D - D

( k)

1)a(n (D

1) k

a(n

0 1

0 2

1

1 k 2

k 1

k

(17)

Redukcja do równań jednorodnych

Zatem niejednorodne liniowe równanie rekurencyjne sprowadziliśmy do

jednorodnego równania rekurencyjnego, którego rozwiązanie opisuje wielomian charakterystyczny

0 1

0 2

2 1

1 - k 1 k 2

k k

1 k 1

k

D )x

D - D ( )x

D - D (

...

)x D

- D

( 1)x

(D x

P(x)

(18)

Przykład

Rozważmy następujące niejednorodne liniowe równanie rekurencyjne

1 2 a(n)

) 1 1 4 a(n

2) 7 a(n

4 a(2) 13

1, a(1)

1, a(0)

(19)

Przykład

Wówczas

Po odjęciu stronami dostajemy

2 a(n) - 1

1) 4 a(n

7 2

) 1 2 a(n

4 1 3) 7

a(n  

 

 

 

 

 

1 1) 2 a(n

) 1 2 4 a(n

3) 7 a(n

1 2 a(n)

) 1 1 4 a(n

2) 7 a(n

(20)

Przykład

Wielomian charakterystyczny tego równania ma postać

2 1 4

x 5 4 x 11

P(x) 

3

2

x

(21)

Przykład

Ponieważ

to pierwiastkami są x=-1/4, x=1, x=2

2) 1)(x

4 (x x 1

P(x)   

 

  

(22)

Przykład

Zatem

n 3 n

2 n

1

C 1 C 2

4 C 1

a(n)   

 

 

(23)

Przykład

Brakujące współczynniki wyznaczamy z układu trzech równań liniowych

dla a(0)=1, a(1)=1, a(2)=13/4





 

 



 

 



a(2) 4C

C 4 C

1

a(1) 2C

C 4 C

1

a(0) C

C C

3 2

1 2

3 2

1

3 2

1

(24)

Przykład

Ostatecznie

C

1

=4/5, C

2

=-4/5, C

3

=1

a z tego rozwiązaniem rozważanego równania jest

n n

5 2 4 4

1 5

a(n) 4   

 

 

(25)

Funkcje tworzące

(26)

Definicja

Rozważmy ciąg liczbowy {a(n)}. Wówczas

nazywamy zwykłą funkcją tworzącą lub krótko funkcją tworzącą.

0 n

a(n)x

n

f(x)

(27)

Uwagi

Funkcje tworzące mają zatem postać szeregów potęgowych.

Dla każdego takiego szeregu istnieje liczba rzeczywista R0, zwana

promieniem zbieżności,

taka że jeśli |x|<R, to jest on absolutnie

zbieżny, a ponadto można go różniczkować

i całkować wyraz po wyrazie dowolną liczbę

razy.

(28)

Wzór Taylora

Zachodzi też wtedy wzór Taylora

0,1,....

n n! ,

(0) a(n) f

(n)

(29)

Uwagi

Niestety, gdy liczby a(n) są zbyt duże,

wówczas R=0 i funkcje tworzące stają się bezużyteczne. Tak jest na przykład, gdy

a(n)=n!.

Nietrudno zauważyć, że szereg

jest rozbieżny dla każdego x>0.

0 n

x

n

n!

(30)

Wykładnicza funkcja tworząca

Aby ominąć ten problem, wprowadza się wykładniczą funkcję tworzącą

której promień zbieżności jest zwykle dodatni.

0 n

n

n!

a(n) x

f(x)

(31)

Uwagi

Na przykład, jeśli a(n) jest liczbą wszystkich funkcji ze zbioru n-elementowego w siebie, czyli a(n)=nn, to szereg

jest rozbieżny dla każdego x>0,

1 n

n n

x

n

(32)

Uwagi

ale szereg

jest zbieżny dla wszystkich x<1/e, ponieważ n

n

<n!e

n.

1 n

n n

n!

n x

(33)

Uwagi

Wykładnicze funkcje tworzące stosuje się na ogół w przypadkach, o których wiemy lub spodziewamy się, że a(n) rośnie

szybciej niż wykładniczo.

Od tej pory będziemy zakładać, że |x|<R.

(34)

Przykład 1

Rozważmy ciąg: 1,2,4,8,16,…

a(n)=2

n

, n=0,1,....

Wówczas funkcja tworząca ciągu {2

n

} dana jest wzorem:

0 n

3 2

n

0 n

n n

2x - 1 ... 1

(2x) (2x)

2x 1

(2x)

x

2

f(x)

(35)

Przykład 2

Rozważmy ciąg: 1,2,3,4,5,…

a(n)=n+1, n=0,1,....

Wówczas funkcja tworząca ciągu {n+1}

dana jest wzorem:

 

2

' '

0 n

1 n 0

n

1 n

0 n

n

x - 1

1 x

1 x x

)' (x

1)x n

( f(x)

 

 

 

 

 

 

(36)

Przykład 3

Rozważmy ciąg:

Funkcja tworząca tego ciągu jest skończoną sumą i ma postać

 

 

k

0 n

n

n

(1 x)

n x f(x) k

0,1,...

n n ,

a(n) k  

 

 

....

3 , , k

2 , k

1 , k

0

k 

 

 

 

 

 

 

 

(37)

Przykład 3

Innymi słowy, dwumian Newtona (1+x)

k

jest zwykłą funkcją tworzącą ciągu

określającego liczbę n-wyrazowych kombinacji zbioru k-elementowego.

 

 

n

k

(38)

Przykład 4

Z drugiej strony

Tak więc (1+x)

k

jest jednocześnie wykładniczą funkcją tworzącą ciągu

określającego liczbę n-wyrazowych wariacji bez powtórzeń ze zbioru k-elementowego.

n!

x n)!

(k x) k!

(1

k n

0 n

k

(39)

Przykład 5

Funkcja

jest wykładniczą funkcją tworzącą dla liczby n-wyrazowych wariacji z

powtórzeniami ze zbioru k-elementowego

nx n

0 n

n

e

n!

k x

f(x)  

(40)

Zastosowania

(41)

Rozwiązywanie równań rekurencyjnych

1.

Postać rekurencyjna ciągu

2.

Funkcja tworząca ciągu

3.

Postać zwarta funkcji tworzącej

4.

Rozwinięcie funkcji tworzącej w szereg Taylora

5.

Postać jawna ciągu (współczynniki

rozwinięcia funkcji tworzącej w szereg to

kolejne wyrazy ciągu)

(42)

Proste na płaszczyźnie

(43)

Proste na płaszczyźnie

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?

(44)

Proste na płaszczyźnie

1. Układamy zależność rekurencyjną

Oznaczmy szukaną liczbę przez a(n).

Mamy a(0)=1 i a(1)=2. Prowadząc n-tą prostą przetniemy wszystkie n-1

poprzednie, a to oznacza, że przetniemy na dwie części n obszarów spójnych,

zwiększając tym samym liczbę obszarów o n.

(45)

Proste na płaszczyźnie

Zatem

a(n)=a(n-1)+n dla n1 2. Określamy funkcję tworzącą

Niech f(x) będzie funkcją tworzącą tego ciągu. Wtedy

n 1

n 0

n 0

n

x n) 1)

(a(n a(0)x

x a(n)

f(x)  

(46)

Proste na płaszczyźnie

3. Znajdujemy postać zwartą

)' x x(

a(n)x x

1

nx x

a(n)x 1

nx 1)x

a(n 1

n)x 1)

(a(n a(0)x

f(x)

0 n

n 0

n

n

1 n

1 - n 0

n

1 n

1 n

n 1

n

n 1 n

n 0

(47)

Proste na płaszczyźnie

Stąd

 

2

0 n

n

x 1 x 1 xf(x)

1

x )' 1

x( 1 xf(x)

1

)' x x(

xf(x) 1

 

 

 

(48)

Proste na płaszczyźnie

Zatem

czyli

1 1 x

2

x xf(x)

1

f(x)    

1 1 x

2

x 1

x) - f(x)(1

 

1 x x

3

x) - (1 f(x) 1

 

(49)

Proste na płaszczyźnie

 

 

  

1 n

n 0

n

n

x

2 1 x n

f(x)

 

 

  

0 n

n 0

n

n

x

2 2 x n

x f(x)

 

 

  

0 n

1 n 0

n

n

x

2 2 x n

f(x)

4. Rozwijamy funkcję tworzącą w szereg

(50)

Proste na płaszczyźnie

 

 

  

 2

1 1 n

a(n)

Ostatecznie

5. Wyznaczamy postać jawną ciągu

(51)

Skorzystaliśmy tutaj z rozwinięcia Taylora

gdzie dla dowolnej liczby rzeczywistej r

Proste na płaszczyźnie

n!

1) n

1)...(r r(r

n

r      

 

 

 

 

0 n

n

r

x

n x) r

(1

(52)

W szczególności

stąd

Proste na płaszczyźnie

 

 

  

 

 

 

 

2 2 1) n

n! (

2) (n

...

4 1) 3

n ( 3

-

n n

       

     

 

 

  

 

 

  

 

 

 

 

0 n

n 0

n

n n n

0 n

n n

3 3

3 3

2 x 2 x n

x 2 1

2 1) n

( x

x n 1

3 x -

x) (

1 x x

1 x x

1 x 1 x

1

x

(53)

Wieża Hanoi

(54)

Wieża Hanoi

Niech a(n) będzie minimalną liczbą ruchów niezbędną do przeniesienia wieży

składającej się z n krążków.

1. Układamy zależność rekurencyjną

a(n)=2a(n-1)+1 oraz a(1)=1

(55)

Wieża Hanoi

2. Określamy funkcję tworzącą

2 n

n n

2 n

n 2

n 1

n 1

n

x 1 x

1) 2a(n

x 1

x 1) 1)

(2a(n a(1)x

x

a(n)

f(x)

(56)

Wieża Hanoi

x 1

2xf(x) x

x x

a(n) 2x

x x

1) a(n

2x x

f(x)

1 n

n n

1 n

2 n

n 1

- n 2

n

 

3. Znajdujemy postać zwartą

(57)

Wieża Hanoi

Stąd

2x) -

x)(1 (1

f(x) x

x 1

2x) x -

f(x)(1

x 1

2xf(x) x f(x)

 

 

 

(58)

Wieża Hanoi

   

 

 

1 n

n n

1 n

n 1

n

n

x 2 1 x

2x

x) (1

x 2x)

- (1

2x

2x) -

x)(1 (1

f(x) x

4. Rozwijamy funkcję tworzącą w szereg

(59)

Wieża Hanoi

5. Wyznaczamy postać jawną ciągu a(n)=2

n

-1

(60)

Podzbiory bez sąsiadów

(61)

Podzbiory bez sąsiadów

Ile podzbiorów zbioru

[n]={1,2,...,n},

wliczając zbiór pusty, nie zawiera

sąsiednich liczb?

(62)

Podzbiory bez sąsiadów

1. Układamy zależność rekurencyjną

Oznaczmy szukaną liczbę przez a(n) i

podzielmy wszystkie podzbiory tego typu na dwie klasy: te do których nie należy liczba 1, i te do których 1 należy.

Tych pierwszych jest tyle, ile podzbiorów bez sąsiadów zbioru {2,...,n}, a więc a(n-1).

Tych drugich jest tyle, ile podzbiorów bez sąsiadów zbioru {3,...,n}, a więc a(n-2).

(63)

Podzbiory bez sąsiadów

Zatem

a(n)=a(n-1)+a(n-2) przy warunkach początkowych

a(0)=1 i a(1)=2

(64)

Podzbiory bez sąsiadów

2. Określamy funkcję tworzącą

Dla a(0)=a(1)=1 funkcja tworząca ciągu Fibonacciego przyjmuje postać

n 2

n

n 2

n 1

n 0

n

x 2)) a(n

1) (a(n

x 1

x 2)) a(n

1) (a(n

a(1)x a(0)

x a(n) f(x)

(65)

Podzbiory bez sąsiadów

f(x) x

xf(x) 1

x a(n) x

x a(n) x

1 x

a(n) x

a(n) 1

x a(n) x

a(n) x

1

x 2) a(n

x 1) a(n

x 1

x 2)) a(n

1) (a(n

x 1 f(x)

2

n 0

n 2 n

0 n 2

n 0

n 1 n 0

n

2 n 0

n 1 n 1

n

n 2

n n 2

n

n 2

n

3. Znajdujemy postać zwartą

(66)

Podzbiory bez sąsiadów

Stąd

gdzie

x a 1

5 a 1

x a 1

5 a 1

x x

1 f(x) 1

2 2

1 1

2

 

 

 

2 5 a 1

2 i 5

a

1

 1 

2

 

(67)

Podzbiory bez sąsiadów

 

 

 

 

  

 

 

  

0 n

n 1

n 1

n

2 x 5 1

5 1 2

5 1

5 f(x) 1

4. Rozwijamy funkcję tworzącą w szereg

5. Wyznaczamy postać jawną ciągu

1 n 1

n

2 5 1

5 1 2

5 1

5 ) 1

n ( a

 

 

  

 

 

  

(68)

Twierdzenie o rekursji

uniwersalnej

(69)

Twierdzenie o rekursji uniwersalnej

Niech a1, b>1 będą stałymi, f:NR

+

{0} pewną funkcją i niech T(n) będzie równaniem

rekurencyjnym postaci

T(n)=aT(n/b)+f(n),

gdzie n/b tratujemy jako n/b albo n/b wtedy

(70)

Twierdzenie o rekursji uniwersalnej

jeżeli f(n)=O(n

log[b]a-

) dla pewnej stałej >0, to T(n)=(n

log[b]a

)

jeżeli f(n)=(n

log[b]a

) dla pewnej stałej >0, to T(n)=(n

log[b]a

lgn)

jeżeli f(n)=(n

log[b]a+

) dla pewnej stałej >0, to T(n)=(f(n))

pod warunkiem, że af(n/b)cf(n) dla pewnej

stałej c<1 i wszystkich dostatecznie dużych n.

(71)

Przykład

Rozważmy równanie

T(n)=3T(n/3)+n

3

+n.

Wówczas a=3, b=3, f(n)=n

3

+n.

Zauważmy, że f(n) = (n

1+

) dla =2.

Zatem

T(n)=(f(n))=(n

3

+n) Przyjmujemy, że c=2/3:

3f(n/3)=n

3

/9+n  2/3(n

3

+n)=2/3f(n).

(72)

Zadania

(73)

Zadanie 1

Wyznaczyć liczbę a(n) ciągów binarnych

długości n, w których żadne dwa zera nie

występują obok siebie.

(74)

Zadanie 1

a(1)=2 – ciągi 1; 0

a(2)=3 – ciągi 01; 10; 11

a(3)=??

(75)

Zadanie 1

a(1)=2 – ciągi 1; 0

a(2)=3 – ciągi 01; 10; 11

a(3)=5 – ciągi 011; 101; 111; 010; 110

a(n)=a(n-1)+a(n-2) dla n>2

(76)

Zadanie 1

Wielomian charakterystyczny tego równania ma postać

Pierwiastkami tego wielomianu są

2 5 x 1

2 oraz 5

x

1

1

2

 

1 x

x

P(x) 

2

 

(77)

Zadanie 1

Zatem

n 2

n

1

2

5 C 1

2 5 C 1

a(n) 

 

  

 

 

  

(78)

Zadanie 1

Brakujące współczynniki wyznaczamy z układu dwóch równań liniowych

dla a(1)=2, a(2)=3





 



  





 

 



  





 

) 2 ( 2 a

5 C 1

2 5 C 1

) 1 ( 2 a

5 C 1

2 5 C 1

2

2 2

1

1

2 1

1

(79)

Zadanie 1

Ostatecznie

a z tego rozwiązaniem rozważanego równania jest

n n

2 5 1

5 2

3 5

2 5 1

5 2

3

a(n) 5 

 

  

 

 

 

 

  

 

 

5 2

3 C 5

5 oraz 2

3

C

1

 5 

2

 

(80)

Zadanie 2

Wyznaczyć liczbę a(n) ciągów ternarnych (złożonych z cyfr 0,1,2) długości n,

w których żadne dwie jedynki nie

występują obok siebie.

(81)

Zadanie 2

a(1)=3 – ciągi 2; 1; 0

a(2)=8 – ciągi 00; 01; 02; 10; 12;

20; 21; 22

a(3)=??

(82)

Zadanie 2

a(1)=3 – ciągi 2; 1; 0

a(2)=8 – ciągi 00; 01; 02; 10; 12;

20; 21; 22 a(3)=22 – ciągi

000; 010; 020; 100; 120; 200; 210; 220;

002; 012; 022; 102; 122; 202; 212; 222;

201; 101; 001; 221; 121; 021

(83)

Zadanie 2

a(n)=2a(n-1)+2a(n-2) dla n>2

(84)

Zadanie 2

Wielomian charakterystyczny tego równania ma postać

Pierwiastkami tego wielomianu są

3 1

x oraz

3 1

x

1

 

2

 

2 x

2 x

P(x) 

2

 

(85)

Zadanie 2

Zatem

 

2

 

n

n

1

1 3 C 1 3

C

a(n)    

(86)

Zadanie 2

Brakujące współczynniki wyznaczamy z układu dwóch równań liniowych

dla a(1)=3, a(2)=8

   

   



 

) 2 ( a 3

1 C 3

1 C

) 1 ( a 3

1 C 3

1 C

2 2

2 1

1 2

1 1

(87)

Zadanie 2

Ostatecznie

a z tego rozwiązaniem rozważanego równania jest

6

3 2 C 3

6 oraz 3 2

C

1

3

2

 

 

n

1 3

n

6

3 2

3 3 6 1

3 2

a(n) 3  

 

  

 

 

  

(88)

Zadanie 3

Znaleźć postać jawną ciągu

(rozwiązanie zagadnienia wieży Hanoi)

a(n)=2a(n-1)+1 oraz a(1)=1, a(2)=3

(89)

Zadanie 3

Wyznaczamy

a(n+1)=2a(n)+1

a(n+2)=2a(n+1)+1

i odejmujemy stronami otrzymując a(n+2)-a(n+1)=2a(n+1)-2a(n)+1-1 czyli

a(n+2) =3a(n+1)-2a(n)

(90)

Zadanie 3

Wielomian charakterystyczny tego równania ma postać

Pierwiastkami tego wielomianu są Zatem x

1

 2 oraz x

2

 1

2 x

3 x

P(x) 

2

 

2 n

1 n

2 n

1

2 C 1 C 2 C

C

a(n)    

(91)

Zadanie 3

Brakujące współczynniki wyznaczamy z układu dwóch równań liniowych

dla a(1)=1, a(2)=3

 

a(2) C

2 C

a(1) C

2 C

2 2

1

2 1

1

(92)

Zadanie 3

Ostatecznie

a z tego rozwiązaniem rozważanego równania jest

1 C

oraz 1

C

1

2

 

1 2

a(n) 

n

Cytaty

Powiązane dokumenty

jeden jest typu double, drugi jest przekształcany do double, lub jeden jest float, drugi jest przekształcany do float,. lub jeden jest long, drugi jest przekształcany do long

Pamiętamy Jego zmagania z nieuleczalną chorobą, pamiętamy Jego uśmiech i poczucie humoru, pamiętamy Jego troskę o każdego znajdującego się w potrzebie, pamiętamy

Żeby sprawdzić, czy słowo jest postaci ww R w można policzyć jego długość (musi to być liczba postaci 3k) a następnie użyć 3 liczników zmieniających się odpowiednio od 1 do

Aksjomaty Peano liczb naturalnych Ax1. Zero jest liczbą naturalną. Zero nie jest następnikiem żadnej liczby naturalnej.. Aksjomaty Peano c.d.. Udowodnimy, że N=A..

spirali, która okrąża łodygę. Krzywa ta nazywa się helisą. Cyklem tej krzywej nazywa się odległość liści osadzonych dokładnie jeden nad drugim, wzdłuż gałęzi

w grafie G nazywamy drogę przechodzącą przez wszystkie wierzchołki grafu i to przez każdy wierzchołek dokładnie raz.. Czy ten graf posiada ścieżkę

{Dane: graf skierowany bez pętli i krawędzi wielokrotnych, którego zbiorem wierzchołków jest {1,...,n}, funkcja W wag krawędzi o wartościach nieujemnych}. {Wynik:

Wynika stąd, że aby policzyć ile różnych relacji równoważności można określić w pewnym zbiorze X, wystarczy zbadać ile jest różnych podziałów tego zbioru...