2. 2Глава 4. Производящие функции.
4.2. Решение рекуррентных соотношений
Рекурентная последовательность – числовая последовательность, в которой
каждый член, кроме нескольких первых, задается с помощью функции некоторых
предыдущих членов.
{ ai = αβi
}i=0..
Рассмотрим, например, уже знакомую нам геометрическую прогрессию
Если функция линейная, то и рекуррентное соотношение называют линейным.
a0 = α
ai+1 = βai , i = 0..
Пусть f(x) – производящая функция последовательности { ai }i=0..
f(x) = a0 + a1x + a2x2
+ a3x3
+ ... = α + βa0x + βa1x2
+ βa2x3
+ ...
= α + βx(a0 + a1x + a2x2
+ ...) = α + βx f(x)
f(x) (1 - βx) = αотсюда
f(x) = α / (1 - βx) – уже знакомая нам формула
3. 3Глава 4. Производящие функции.
Еще несколько примеров
{ ai = α + βi }i=0..
Рассмотрим арифметическую прогрессию
a0 = α
ai+1 = β + ai , i = 0..
Пусть f(x) – производящая функция последовательности { ai }i=0..
f(x) = a0 + a1x + a2x2
+ a3x3
+ ...
= α + (β+a0)x + (β+a1)x2
+ (β+a2)x3
+ ...
= α + β (x + x2
+ x3
+ ...) + x(a0 + a1x + a2x2
+ ...)
= α + βx/(1-x) + xf(x)
f(x) (1 - x) = α + βx/(1-x)отсюда 2
)1(1
)(
x
x
x
xf
−
+
−
=
βα
в частности, для { ai = i }i=0..
2
)1(
)(
x
x
xf
−
=
4. 4Глава 4. Производящие функции.
Последовательность чисел Фибоначчи
Если полученную производящую функцию удается разложить в степенной ряд, то
можно получить явное выражение для членов рекуррентной последовательности.
F0 = F1 = 1
Fi+2 = Fi + Fi+1 , i = 0..
f(x) = F0 + F1x + F2x2
+ F3x3
+ ...
= 1 + x + (F0 + F1)x2
+ (F1 + F2)x3
+ ...
= 1 + x + x2
f(x) + x(f(x) - 1)
f(x) (1 - x - x2
) = 1отсюда 2
1
1
)(
xx
xf
−−
=
Для того, чтобы найти явное выражение для чисел Фибоначчи надо разложить
найденную функцию f(x) в степенной ряд, а для этого мы представим ее в виде суммы
функций, которые являются производящими для известных нам последовательностей.
{ 1, 1, 2, 3, 5, 8, 13, 21,... }
Будем искать выражение для f(x) в виде
x
B
x
A
xf
βα −
+
−
=
11
)(
где α = 1/x1, β = 1/x2, а x1 и x2 – корни квадратного трехчлена 1 – x – x2
5. 5Глава 4. Производящие функции.
Последовательность чисел Фибоначчи
∑∑
∞
=
∞
=
+=
−
+
−
=
−−
=
00
2
111
1
)(
i
ii
i
ii
xBxA
x
B
x
A
xx
xf βα
βα
1)1()1( =−+− xBxA αβ
=+
=+
0
1
αβ BA
BA
откуда следует
βα
β
βα
α
−
−
=
−
= BA ,
откуда получаем Fi = Aαi
+ Bβi
Определим значения A, B, α и β.
Найдем корни квадратного трехчлена 1 – x – x2
. 2
51
2
411
2,1
±−
=
+±−
=x
2
51
)15)(15(
)15(2
15
21
1
+
=
+−
+
=
−
==
x
α
2
51
)15)(15(
)15(2
15
21
2
−
=
+−−−
+−
=
−−
==
x
β
52
15 +
=
−
=
βα
α
A
52
15 −
=
−
−
=
βα
β
B
6. 6Глава 4. Производящие функции.
Последовательность чисел Фибоначчи
Окончательно получаем Fi =
ii
ii
BA
−−
+
++
=+
2
51
52
15
2
51
52
15
βα
F0 = 1
52
52
52
15
52
15
==
−
+
+
F1 = 1
54
54
54
1525
54
1525
2
15
52
15
2
15
52
15
==
+−
−
++
=
−−
−
++
Проверяем подстановкой:
F2 = 2
58
5816
58
5816
4
5521
52
15
4
5521
52
15
=
+−
+
+
=
+−−
+
+++
Число
+
2
51 = φ ≅ 1.618 – знаменитое «золотое сечение»
0
2
51
lim =
−
∞→
i
i
поэтому при больших i 1
5
1 +
≈ i
iF ϕ ϕ=+
∞→
i
i
i F
F 1
limи
7. 7Глава 4. Производящие функции.
Число расстановок скобок
Если нужно перемножить несколько матриц разного размера, то общее число
производимых при этом элементарных операций может быть различным.
A0 (2 x 10) × A1
(10 x 5)
× A2
(5 x 3)
(A0 × A1) × A2 : 2 × 10 × 5 + 2 × 5 × 3 = 130
A0 × (A1 × A2) : 2 × 10 × 3 + 10 × 5 × 3 = 210
A0
p0 × p1
A1
p1 × p2
A2
p2 × p3
… An-1
pn-1 × pn
× × × ×
Сколько всего существует способов расставить скобки в этом выражении?
P1 P2 … Pn
1 1 … P1 × Pn-1 + P2 × Pn-2 + P3 × Pn-3 + … + Pn-1 × P1
8. 8Глава 4. Производящие функции.
Число расстановок скобок
Итак, имеем следующие рекуррентные соотношения:
>=
=
∑
−
=
− 1,
1
1
1
1
nприPPP
P
n
i
inin
Предположим, что последовательность { Pi }I = 0.. имеет
производящую функцию P(x). Тогда:
Можно положить P0=0
P(x) = P1x + P2x2
+ P3x3
+ … + Pnxn
+ …
Выражение для Pn похоже на формулу свертки последовательностей,
поэтому рассмотрим функцию P(x) ⋅ P(x) .
P(x) P(x) = P1P1x2
+ (P1P2 + P2P1)x3
+ (P1P3 + P2P2 + P3P1)x4
+ …
= P2x2
+ P3x3
+ P4x4
+ … = P(x) – x
Отсюда имеет уравнение относительно функции P:
P 2
– P + x = 0
2
411
2,1
x
P
−±
=
Очевидно, что один из корней –
посторонний. Какой? 2
411
)(
x
xP
−−
=
9. 9Глава 4. Производящие функции.
Число расстановок скобок
2
411
)(
x
xP
−−
=
Рассмотрим разложение в ряд для функции 2
1
)41(41 xx −=− ∑
∞
=
−=
0
)4(2
1
n
nnn
xC
!
)1)...(2)(1(
)4()4( 2
1
2
1
2
1
2
1
2
1
n
n
C nnn +−−−
−=−
!
)2)1(4)...(28)(24)(2(
n
n −−−−−
=
)!1(
)64...(10622
−
−⋅⋅
⋅−=
n
n
n !2
2...642
)!1(
)32...(5312
n
n
n
n
n n
n
⋅⋅⋅⋅
⋅
−
−⋅⋅
⋅−=
12)12(!!
)!2( 2
−
−=
−⋅⋅
−=
n
C
nnn
n n
n
∑∑
∞
=
∞
= −
=
−
+=
1
2
0
2
12
1
2
1
12
1
2
1
2
1
)(
n
nn
n
n
nn
n xC
n
xC
n
xP n
nn C
n
P 2
12
1
2
1
−
=
10. 9Глава 4. Производящие функции.
Число расстановок скобок
2
411
)(
x
xP
−−
=
Рассмотрим разложение в ряд для функции 2
1
)41(41 xx −=− ∑
∞
=
−=
0
)4(2
1
n
nnn
xC
!
)1)...(2)(1(
)4()4( 2
1
2
1
2
1
2
1
2
1
n
n
C nnn +−−−
−=−
!
)2)1(4)...(28)(24)(2(
n
n −−−−−
=
)!1(
)64...(10622
−
−⋅⋅
⋅−=
n
n
n !2
2...642
)!1(
)32...(5312
n
n
n
n
n n
n
⋅⋅⋅⋅
⋅
−
−⋅⋅
⋅−=
12)12(!!
)!2( 2
−
−=
−⋅⋅
−=
n
C
nnn
n n
n
∑∑
∞
=
∞
= −
=
−
+=
1
2
0
2
12
1
2
1
12
1
2
1
2
1
)(
n
nn
n
n
nn
n xC
n
xC
n
xP n
nn C
n
P 2
12
1
2
1
−
=