Liniowe równania rekurencyjne

advertisement
Algorytmy rekurencyjne w połączeniu ze strukturami grafowymi doskonale nadają się do reprezentacji wielu
problemów, z którymi moŜemy spotkać się na co dzień. Analiza efektywności i poprawności rekurencji wraz
umiejętnością prawidłowego jej wykorzystania jest elementem bardzo istotnym w dzisiejszej sztuce programowania.
Rekurencje liniowe
RozwaŜmy następujące równanie rekurencyjne
f n + k = G ( f n, f n −1,..., f n + k −1)
(1)
gdzie G jest daną funkcją fn, fn+1,…, fn+k-1, przy czym fn jest funkcją niewiadomą, określoną na zbiorze liczb
naturalnych. Liczbę k nazywamy rzędem równania rekurencyjnego.
W przypadku gdy G jest funkcją liniową swych argumentów, tj.
f n + k = a1 f n + k −1 + a 2 f n + l − 2 + ... + a k f n + bn
(2)
równanie jest liniowe, przy czym, gdy współczynniki rzeczywiste ai, bi (i=1, 2,…, k) nie zaleŜą od n, to
równanie (2) jest równaniem rekurencyjnym liniowym o stałych współczynnikach, w p.p. równaniem
rekurencyjnym liniowym o współczynnikach zmiennych.
Ponadto w zaleŜności od tego czy w równaniu (2) bn = 0 lub bn ≠ 0 równanie rekurencyjne (2) jest
jednorodne lub niejednorodne.
Dla jednoznacznego wyznaczenia funkcji fn, określonej przez równanie rekurencyjne, potrzebne są jej
wartości początkowe, przy czym tyle wartości początkowych, ile wynosi rząd równania rekurencyjnego.
Równanie rekurencyjne (1) jest rozwiązane wtedy, gdy dany jest wzór postaci:
f n = ϕ ( n, f1, f 2,..., f k )
(3)
gdzie f1, f 2,..., f k oznaczają warunki początkowe równania (1). ZauwaŜmy, Ŝe rozwiązanie równania w
postaci (3) pozwala obliczyć fn dla dowolnego n, bez konieczności wyznaczania wszystkich fi dla i < n.
Równanie rekurencyjne ma nieskończenie wiele rozwiązań. MoŜemy je zapisać w postaci ogólnej,
obejmującej wszystkie rozwiązania szczególne danego równania (w zaleŜności od warunków początkowych
f1, f 2,..., f k ). Wówczas takie rozwiązanie ogólne równania rekurencyjnego ma tyle stałych dowolnych, ile
wynosi jego rząd.
Podsumowując, rozwiązanie równania rekurencyjnego polega bądź na znalezieniu rozwiązania ogólnego,
bądź w przypadku gdy dane są wartości początkowe równania szukamy rozwiązania szczególnego.
Rozwiązywanie jednorodnych równań rekurencyjnych liniowych o stałych
współczynnikach
Niech będzie dane jednorodne równanie rekurencyjne liniowe rzędu k
f n + k = a1 f n + k −1 + a 2 f n + k − 2 + ... + a k f n
(4)
w którym a1, a 2,..., a k są współczynnikami rzeczywistymi niezaleŜnymi od n, przy czym ak ≠ 0. Jest to
równanie rzędu k, a więc dla jego jednoznacznego rozwiązania potrzeba, aby były dane wartości początkowe
f1, f 2,..., f k.
Dla rozwiązania równania (4) wprowadza się pewną funkcję pomocniczą p(z) zwaną wielomianem
charakterystycznym równania. Funkcja p(z) zmiennej zespolonej z jest określona jako wielomian tego
samego stopnia k co dane równanie (4) jest rzędu, i którego współczynnikami są te same współczynniki ai,
występujące w równaniu (4). Zatem
p ( z ) = z k − a1z k −1 − a 2 z k − 2 − ... − a k −1z − a k
(5)
Równanie
p ( z) = 0
(6)
z kolei nazywamy równaniem charakterystycznym, a jego pierwiastki (rzeczywiste lub zespolone, których
liczba wraz z ich krotnościami wynosi k) – pierwiastkami charakterystycznymi.
Niech z1, z 2,..., z r, r ≤ k oznaczają róŜne pierwiastki charakterystyczne o krotnościach równych
r
odpowiednio v1, v2,..., v r tak, Ŝe
∑ vi = k.
Wówczas
i =1
r
p ( z) = ∏ ( z − zi )
vi
(7)
i =1
Ogólnym rozwiązaniem równania (4) o współczynnikach rzeczywistych a1, a 2,..., a k niezaleŜnych od n oraz
ak ≠ 0 jest
r
vi −1
s =1
m =0
f n = ∑ z sn ∑ C smn m
gdzie zs
(8)
(s = 1, … ,r) jest pierwiastkiem charakterystycznym równania o krotności vi, Csm (s = 1, … ,r;
m = 0,1,…,vi-1) jest dowolną stałą.
W przypadku gdy wszystkie pierwiastki charakterystyczne zi są pojedyncze, tj. równanie (6) ma k
pierwiastków zi o krotnościach vi = 1 (i = 1,…,k), rozwiązanie (8) przyjmuje uproszczoną postać
k
f n = ∑ z snC s
(9)
s =1
gdzie Cs (s = 1,…,k) są dowolnymi stałymi wyznaczanymi z warunków początkowych.
Dla otrzymania rozwiązania szczególnego wzoru (4) o warunkach początkowych f1, f 2,..., f k naleŜy
najpierw rozwiązać równanie charakterystyczne, zapisać postać ogólną rozwiązania (8) bądź (9) zaleŜnie od
pierwiastków, a następnie rozwiązać układ k równań liniowych względem k niewiadomych, którymi są C10,
C11, …, Cr,v-1
v1 −1
∑C
z1
1m
m=0
v1 −1
z12
∑
+ z2
v 2 −1
∑C
2m
m =0
C1m 2 m + z 22
m=0
v 2 −1
∑
+ ... + z r
v r −1
∑C
1m
= f1
m=0
C 2m2 m + ... + z r2
m =0
v r −1
∑C
rm 2
m
= f2
m =0
(10)
.............................................................................
v1 −1
z1k
∑
m =0
C1mk m + z 2k
v 2 −1
∑
m =0
C 2mk m + ... + z rk
v r −1
∑C
rmk
m
= fk
m =0
Obliczone wartości wstawiamy do wzoru (8) uzyskując w ten sposób szukane rozwiązanie szczególne
danego równania.
UWAGA JeŜeli współczynniki równania charakterystycznego p ( z ) = 0 są liczbami rzeczywistymi, to
równanie, jeśli ma pierwiastki zespolone, to są one parami sprzęŜone.
Rozwiązywanie niejednorodnych równań rekurencyjnych liniowych o stałych
współczynnikach
Niech będzie dane niejednorodne równanie rekurencyjne liniowe rzędu k
f n + k = a1 f n + k −1 + a 2 f n + k − 2 + ... + a k f n + b
(11)
W którym a1, a 2,..., a k , b są współczynnikami rzeczywistymi niezaleŜnymi od n, przy czym ak ≠ 0 oraz b ≠ 0.
Jest to równanie rzędu k, a więc dla jego jednoznacznego rozwiązania potrzeba, aby były dane wartości
początkowe f1, f 2,..., f k.
Równanie jednorodne, które otrzymujemy z danego równania (4) przez przyjęcie b = 0, nosi nazwę równania
uzupełniającego to równanie i ma postać
f n + k = a1 f n + k −1 + a 2 f n + k − 2 + ... + a k f n
(12)
Wielomianem charakterystycznym równania uzupełniającego jest
p ( z ) = z k − a1z k −1 − a 2 z k − 2 − ... − a k −1z − a k
(13)
Napiszmy teraz (12) zastępując n → n+1
f n + k +1 = a1 f n + k + a 2 f n + k −1 + ... + a k −1 f n + 2 + a k f n +1 + b
(14)
Odejmując stronami (11) i (14) otrzymamy równanie jednorodne rzędu k+1
f n + k +1 − (1 + a1) f n + k + ( a1 − a 2 ) f n + k −1 + ... + ( a k −1 − a k ) f n +1 + a k f n = 0
(15)
o równaniu charakterystycznym
z k +1 − (1 + a1) z k + ( a1 − a 2 ) z k −1 + ... + ( a k −1 − a k ) z + a k = 0
(16)
Ostatnie równanie moŜna zapisać jako
p ( z )( z − 1) = 0
Z drugiej strony wydzielając czynnik związany z ewentualnym pierwiastkiem z = 1
charakterystycznego
α
p ( z ) = ( z − 1) ϕ ( z )
(17)
i
wielomianu
(18)
gdzie ϕ (1) ≠ 0 otrzymujemy
p ( z )( z − 1) = ( z − 1)
α+1
ϕ ( z)
(19)
Wówczas rozwiązanie ogólne równania (11) jest postaci
α
f n = g n + bn
ϕ (1) α !
(20)
Gdzie gn jest rozwiązaniem ogólnym równania uzupełniającego (12), ϕ ( z ) zaś oraz α jak we wzorze (18).
i
Jeśli wielomian charakterystyczny p(z) ma pierwiastek z = 1, to a jest równe jego krotności.
ĆWICZENIA
1)
Znaleźć rozwiązanie równania rekurencyjnego
f n +3 − 6 f n+ 2 + 11 f n +1 − 6 f n = 0
przy warunkach początkowych f1 = 0, f 2 = 1, f 3 = 0.
ROZWIĄZANIE
Równanie charakterystyczne jest postaci
z 3 − 6z 2 + 11z − 6 = 0
Pierwiastki tego równania moŜna znaleźć korzystając z tw. Bezou’ta zauwaŜając, Ŝe
z−2
dzieli bez reszty wielomian z − 6z + 11z − 6. Stąd otrzymujemy, Ŝe
( z − 1)( z − 2) ( z − 3) = 0
A zatem pierwiastkami charakterystycznymi są z = 1, z = 2, z = 3, wszystkie jednokrotne.
Wobec tego rozwiązaniem ogólnym
danego równania rekurencyjnego według wzoru (9) jest
3
2
f n = C1 + C 22 n + C33 n
Dla znalezienia rozwiązani szczególnego o danych warunkach początkowych trzeba
rozwiązać układ równań liniowych względem C1, C 2, C3 odpowiadający układowi
jeszcze
C1 + 2C 2 + 3C3 = 0
C1 + 4C 2 + 9C3 = 1
C1 + 8C 2 + 27C3 = 0
Stąd otrzymujemy C1 = − 5 , C 2 = 2, C 3 = − 1 . Podstawiając te wartości do wzoru na
2
2
rozwiązanie ogólne uzyskujemy rozwiązanie szczególne postaci
f n = − 5 + 2 n +1 − 1 ⋅ 3 n
2
2
2)
Znaleźć rozwiązanie równania rekurencyjnego
f n +3 = f n+ 2 + f n +1 − f n
przy warunkach początkowych f1 = 1, f 2 = 2, f 3 = 3.
ROZWIĄZANIE
Równanie charakterystyczne jest postaci
z3 − z 2 − z +1 = 0
czyli
( z − 1) 2 ( z + 1) = 0
Stąd pierwiastkami charakterystycznymi są
z1 = 1 o krotności α1 = 2
z 2 = −1 o krotności α 2 = 1
Rozwiązanie ogólne równania rekurencyjnego ma więc postać
n
f n = C10 + C11n + C 20 ( −1)
Współczynniki C10, C11, C 20 wyznaczmy z układu równań
C10 + C11 − C 20 = 1
C10 + 2C11 + C 20 = 2
C10 + 3C11 − C 20 = 3
Dostajemy
C10 = C 20 = 0, C11 = 1,
co prowadzi di rozwiązania szczególnego
f n = n.
3)
Znaleźć rozwiązanie równania rekurencyjnego
f n + 2 + 4 f n+1 + 3 f n = 0
przy warunkach początkowych f1 = −1, f 2 = 5
ROZWIĄZANIE
Równanie charakterystyczne jest postaci
z 2 + 4z + 3 = 0
Stąd pierwiastkami charakterystycznymi są
z1 = −3 o krotności α1 = 1
z 2 = −1 o krotności α 2 = 1
Wobec tego rozwiązaniem ogólnym danego równania rekurencyjnego według wzoru
n
n
f n = ( −3) C1 + ( −1) C 2
(9) jest
Dla znalezienia rozwiązani szczególnego o danych warunkach początkowych trzeba
rozwiązać układ równań liniowych względem C1 oraz C 2 odpowiadający
układowi
jeszcze
−3 C1 − C 2 = −1
9 C1 + C 2 = 5
Stąd otrzymujemy C1 = 2 , C 2 = −1. Podstawiając te wartości do wzoru na
3
rozwiązanie ogólne
uzyskujemy rozwiązanie szczególne postaci
n −1
n +1
f n = 2 ⋅ ( −3) + ( −1)
4)
Znaleźć rozwiązanie równania rekurencyjnego niejednorodnego
f n + 2 + 4 f n+1 + 3 f n = 5
przy warunkach początkowych f1 = −1, f 2 = 5
ROZWIĄZANIE
Rozwiązanie równania uzupełnionego juŜ policzyliśmy
n −1
n +1
g n = 2 ⋅ ( −3) + ( −1)
Pozostało zauwaŜyć, Ŝe wielomian charakterystyczny równania jednorodnego nie
pierwiastka z = 1 zatem α = 0 oraz ϕ ( z ) = p ( z ) i stąd ϕ (1) = 8 oraz b = 5. Podstawiając
wzoru (20)
ma
do
n +1
n −1
f n = 2 ⋅ ( −3) + ( −1) + 5
8
5)
Znaleźć rozwiązanie równania rekurencyjnego niejednorodnego
f n +3 − 3 f n + 2 + 3 f n+1 − f n = 5
przy warunkach początkowych f1 = 1, f 2 = 0, f 3 = −1.
ROZWIĄZANIE
Równanie charakterystyczne równania uzupełniającego jest
( z − 1) 3 = 0
Stąd z1 = 1 o krotności α1 = 3
Wobec tego rozwiązaniem ogólnym danego równania według wzoru (9) przy uwzględnieniu (2)
(ϕ ( z ) = 1 bo p ( z ) = ( z − 1) 3 ⋅1, b = 5) jest
3
f n = C1 + C 2n + C3n 2 + 5n
3!
Dla spełnienia warunków początkowych musi być
C1 + C 2 + C3 = 1
6
C1 + 2C 2 + 4C3 = − 20
3
C1 + 3C 2 + 9C3 = − 47
2
Rozwiązaniem tego układu są C1 = −3, C 2 = 49 , C3 = −5. Zatem rozwiązaniem równania rekurencyjnego
6
niejednorodnego spełniającego podane warunki początkowe jest
f n = −3 + 49 n − 5n 2 + 5 n 3
6
6
ROZWIĄZAĆ
1)
a n = −6a n−1 − 9a n− 2 z warunkami początkowymi
a 0 = 1, a1 = −9.
2)
a n+ 2 = a n +1 + a n z warunkami początkowymi
3)
a n+ 2 = 5a n +1 + 6a n z warunkami początkowymi
a 0 = 1, a1 = −4.
4)
a n = 3a n−1 − 2a n− 2 z warunkami początkowymi
a1 = 2, a 2 = 3.
5)
f n = f n −1 + 6 f n −2 z warunkami początkowymi
f 0 = 3, f1 = 4.
6)
f n = 3 f n −1 + 4 f n− 2 − 12 f n −3 z warunkami początkowymi
7)
f n = 2 f n −2 − f n −4 z warunkami początkowymi
ODPOWIEDZI
n
1)
a n = ( −3) (1 + 2n)
(
) (
4)
5)
f n = ( −2) + 2 ⋅ 3 n
6)
f n = 2 nC1 + ( −2) C 2 + 3 nC3
7)
f n = C10 + C11n + ( −1) (C 20 + C 21n)
3)
f 0 = 1, f1 = 2, f 2 = 3.
f 0 = 1, f1 = 1, f 2 = 2, f 3 = 2.
)
n
n


an = 1  1 + 5 − 1 − 5 

2
2

5
n
a n = ( −1) ⋅ 10 − 3 ⋅ 6 n
7 7
n −1
an = 2 + 1
2)
a 0 = 0, a1 = 1.
n
n
n
n
f n = 3 + 1 n + 1 ⋅ ( −1)
4 2
4
Download