Производящая функция — различия между версиями
Antonkov (обсуждение | вклад) |
Antonkov (обсуждение | вклад) |
||
Строка 71: | Строка 71: | ||
<tex>G(z)=\frac{1-6z+11z^2-5z^3}{(1-6z+8z^2)(1-z)^2}</tex> | <tex>G(z)=\frac{1-6z+11z^2-5z^3}{(1-6z+8z^2)(1-z)^2}</tex> | ||
+ | Теперь формализуем алгоритм, который мы использовали: | ||
+ | |||
+ | 1)Записать рекуррентное соотношение и начальные данные для него в следующем виде (если порядок соотношения равен k): | ||
+ | |||
+ | 2)Домножить каждую строчку на z в соответствующей степени и просуммировать строчки для всех n≥0. | ||
+ | 3)В полученном уравнении привести все суммы ∑ к замкнутому виду. Получить уравнение для производящей функции. | ||
+ | 4)Выразить G(z) в явном виде (решить уравнение, полученное на предыдущем шаге) и разложить производящую функцию в ряд по степеням z. | ||
== Ссылки == | == Ссылки == |
Версия 00:09, 12 декабря 2011
Содержание
Производящая функция
Определение: |
Производя́щая фу́нкция (generating function) — это формальный степенной ряд:
порождающий (производящий) последовательность , . |
Применение
Производящая функция используется для:
- Нахождения зависимости для последовательности , заданной рекуррентным соотношением. Например, для чисел Фибоначчи;
- Исследования асимптотического поведения последовательности;
- Доказательства тождеств с последовательностями;
- Решения задачи подсчета объектов в комбинаторике. Например, в доказательстве пентагональной теоремы или в задаче нахождения количества расстановок m ладей на доске n × n;
- Вычисления бесконечных сумм.
Решение рекуррентных соотношений
Пусть последовательность
удовлетворяет некоторому рекуррентному соотношению. Мы хотим получить выражение для (при ) в замкнутом виде (то есть выразив лишь через номер члена последовательности). Для демонстрации универсальности метода рассмотрим довольно произвольное рекуррентное соотношение:
Запишем производящую функцию для этой последовательности и преобразуем правую часть:
Для того, чтобы замкнуть последнюю сумму воспользуемся очень важным приемом, который используется при преобразовании производящих функций. Фактически мы имеем дело с последовательностью (у нас последовательность -константная единица). Такая последовательность получается путём дифференцирования функции B(z) с последующим умножением результата на z:
Тогда замкнем последнее слагаемое следующим образом:
Таким образом наше последнее слагаемое примет вид:
Это уравнение для производящей функции. Из него выражаем :
Теперь формализуем алгоритм, который мы использовали:
1)Записать рекуррентное соотношение и начальные данные для него в следующем виде (если порядок соотношения равен k):
2)Домножить каждую строчку на z в соответствующей степени и просуммировать строчки для всех n≥0. 3)В полученном уравнении привести все суммы ∑ к замкнутому виду. Получить уравнение для производящей функции. 4)Выразить G(z) в явном виде (решить уравнение, полученное на предыдущем шаге) и разложить производящую функцию в ряд по степеням z.