Производящая функция

Материал из Викиконспекты
Перейти к: навигация, поиск
Определение:
Производящая функция (англ. generating function) — это формальный степенной ряд:

G(z)=n=0anzn,

порождающий (производящий) последовательность (a0,a1,a2,).

Метод производящих функций был разработан Эйлером в 1750-х годах.

Применение

Производящая функция используется для:

  • Компактной записи информации о последовательности.
  • Нахождения зависимости an(n) для последовательности an, заданной рекуррентным соотношением. Например, для чисел Фибоначчи.
  • Нахождения рекуррентного соотношения для последовательности — вид производящей функции может помочь найти формулу.
  • Исследования асимптотического поведения последовательности.
  • Доказательства тождеств с последовательностями.
  • Решения задачи подсчета объектов в комбинаторике. Например, в доказательстве пентагональной теоремы или в задаче нахождения количества расстановок m ладей на доске n×n.
  • Вычисления бесконечных сумм.

Примеры производящих функций

Рассмотрим производящие функции для различных комбинаторных последовательностей:

  • n=1(1xn) — производящая функция для разности количества разбиений числа n в четное и нечетное число различных слагаемых. Например, коэффициент при x5 равен +1, потому что существует два разбиения на четное число различных слагаемых (4+1;3+2) и одно на нечетное (5). Правильность этого легко осознать, если понять, что каждая скобка представляет какое-то слагаемое и мы можем его взять (второе слагаемое — xk) или не взять (первое — 1). Эта производящая функция используется в комбинаторном доказательстве пентагональной теоремы.
  • n=111xn — производящая функция для последовательности pn, где pi — число разбиений числа i на слагаемые.
  • n=1(1+xn) — производящая функция для последовательности dn, где di — число разбиений на различные слагаемые.
  • n=1(1+x2n1) — производящая функция для последовательности ln, где li — число разбиений на нечётные слагаемые. С помощью метода производящих функций можно доказать, что производящие функции последовательностей равны, соответственно dn=ln: n=1(1+xn)=n=11x2n1xn=1x21x1x41x21x61x3=


=11x11x311x5=n=1(1+x2n1)

Примеры решений задач методом производящих функций

Решение рекуррентных соотношений

Существует целый класс последовательностей, задаваемых рекуррентным соотношением, например, fn — числа Фибоначчи или Cn числа Каталана. Метод производящих функций позволяет получить выражение для an через номер элемента в последовательности в замкнутом виде, то есть в таком виде, что выражение можно вычислить, предполагая, что z достаточно мало.

Пусть последовательность (a0,a1,a2,) удовлетворяет некоторому рекуррентному соотношению. Мы хотим получить выражение для an (при n0) в замкнутом виде. Алгоритм получения замкнутого выражения для чисел an, удовлетворяющих рекуррентному соотношению, с помощью производящих функций состоит из 4 шагов:

  1. Записать рекуррентное соотношение и начальные данные для него в следующем виде (если порядок соотношения равен k, то есть количество предшествующих элементов, требуемых для вычисления элемента с номером n, равно k):
    a0=,
    a1=,
    ak1=,
    an=,nk.
  2. Домножить каждую строчку на z в соответствующей степени и просуммировать строчки для всех n0.
  3. В полученном уравнении привести все суммы к замкнутому виду. Получить уравнение для производящей функции.
  4. Выразить G(z) в явном виде (решить уравнение, полученное на предыдущем шаге) и разложить производящую функцию в ряд по степеням z.

Для демонстрации универсальности метода рассмотрим довольно произвольное рекуррентное соотношение:

a0=1,

a1=2,

an=6an18an2+n,n2

Запишем производящую функцию для этой последовательности и преобразуем правую часть:


G(z)=a0+a1z+n=2(6an18an2+n)zn


G(z)=a0+a1z+6n=2an1zn8n=2an2zn+n=2nzn


G(z)=a0+a1z+6zn=1anzn8z2n=0anzn+n=2nzn


G(z)=a0+a1z+6z(G(z)a0)8z2G(z)+n=2nzn


G(z)=14z+6zG(z)8z2G(z)+n=2nzn


Для того, чтобы замкнуть последнюю сумму воспользуемся очень важным приемом, который используется при преобразовании производящих функций. Фактически мы имеем дело с последовательностью nbn (в нашем случае последовательность bn=(1,1,1,)). Такая последовательность получается путём дифференцирования функции B(z), производящей для bn, с последующим умножением результата на z:


zB(z)=z(n=0bnzn)=zn=1nbnzn1=n=0nbnzn


Тогда замкнем последнее слагаемое следующим образом:


n=2nzn=zn=2nzn1=z(n=2zn)


n=2zn=n=0zn1z=11z1z=z21z


z(z21z)=z2(2z)(1z)2


Таким образом, наше последнее слагаемое примет вид:


G(z)=14z+6zG(z)8z2G(z)+z2(2z)(1z)2


Это уравнение для производящей функции. Из него выражаем G(z):


G(z)=16z+11z25z3(16z+8z2)(1z)2


Разложим знаменатель на множители и разобьём дробь на сумму простых дробей [1]:

G(z)=16z+11z25z3(16z+8z2)(1z)2=16z+11z25z3(12z)(14z)(1z)2=1/3(1z)2+7/91z1/212z+7/1814z

Разложим первое слагаемое в ряд, используя расширенные биномиальные коэффициенты [2]:


1(1z)2=(1z)2=n=0(2n)(z)n=n=0(1)n(n+11)(z)n=n=0(n+1)zn


G(z)=1/3(1z)2+7/91z1/212z+7/1814z=13n=0(n+1)zn+79n=0zn12n=02nzn+718n=04nzn


an=n+13+792n2+74n18=74n+6n+20182n1

Расчет дисперсии геометрического распределения

Метод производящих функций также используется для нахождения математического ожидания и дисперсии различных распределений в теории вероятностей. Например, в геометрическом распределении [3] для нахождения дисперсии D(ξ)=E(ξ2)(E(ξ))2 нужно найти два мат. ожидания:


  • E(ξ)=n=1np(1p)n1


  • E(ξ2)=n=1n2p(1p)n1


которые фактически являются производящими функциями последовательностей 1,2,3 и 1,4,9:


  • E(ξ)=n=1np(1p)n1=

=n=0(n+1)p(1p)n=

=n=0np(1p)n+n=1p(1p)n1=

=(1p)E(ξ)+1E(ξ)=1p


  • E(ξ2)=pn=1n2(1p)n1=

=pn=1n(n+1)(1p)n1pn=1n(1p)n1=

=pd2dp2n=1(1p)n+1+pddpn=1(1p)n=

=pd2dp2(n=0(1p)n(1p)2)+pddp(n=0(1p)n(1p))=

=pd2dp2(11(1p)(1p)2)+pddp(11(1p)(1p))=

=pd2dp2((1p)2p)+pddp(1pp)=

=p2p3p1p2=2p21p=2pp2.

Тогда:

D(ξ)=E(ξ2)(E(ξ))2=2pp21p2=1pp2

Пример задачи на нахождение производящей функции

Задача:
Рассмотрим множество путей на прямой, состоящих из шагов длины 1 вправо и влево. Найдите производящую функцию для числа таких путей из n шагов, начинающихся в 0 и оканчивающихся в 0.

Заметим, что для того, чтобы закончить путь в 0, необходимо совершить равное число шагов вправо и влево. Тогда задача сводится к тому, чтобы выбрать n2 позиций для, например, шагов вправо из всего n шагов. Тогда ответом будет сумма от нуля до бесконечности по n всех Cn2n. То есть: g(x)=0Cn2nxn Рассмотрим f(x)=0Cnxn, где Cn число Каталана. Тогда, заметим что f(x)=0nCnxn1. Так как Cn=1n+1Cn2n, то справедливо равенство: g(x)=(n+1)f(x)=xf(x)+f(x)

Мы знаем, что производящая функция для чисел Каталана равна f(x)=114x2x. Найдем f(x).

f(x)=4x14x2+214x4x2=12x14x2x214x

Соответственно, ответом будет производящая функция вида:

g(x)=12x14x2x14x+114x2x


Задача:
Рассмотрим множество путей на прямой, состоящих из шагов длины 1 вправо и влево. Найдите производящую функцию для числа таких путей из n шагов, начинающихся и оканчивающихся в 0 и не заходящих в отрицательную полупрямую.


Заметим, что задача аналогична Правильной скобочной последовательности. Тогда производящей функцией для нашей задачи будет производящая функция для правильной скобочной последовательности, а именно:

g(x)=114x2x

Приложения

Примеры простых производящих функций

На последнем шаге приведения производящей функции к замкнутому виду требуется разложить полученные слагаемые в ряд. Для этого можно воспользоваться таблицей основных производящих функций [4].

Все суммы выполняются по переменной n от 0 до . Элементы последовательности нумеруются от 0.

Последовательность Производящая функция в виде ряда Производящая функция в замкнутом виде
(1,0,0,) 1 1
(0,0,,0,1,0,0) (m нулей в начале) zm zm
(1,1,1,) zn 11z
(1,0,0,,0,1,0,0,0,1,0,0) (повторяется через m) znm 11zm
(1,1,1,1,) (1)nzn 11+z
(1,2,3,4,) (n+1)zn 1(1z)2
(1,2,4,8,16,) 2nzn 1(12z)
(1,r,r2,r3,) rnzn 1(1rz)
((m0),(m1),(m2),(m3),) (mn) zn (1+z)m
(1,(mm),(m+1m),(m+2m),) (m+n1n) zn 1(1z)m
(1,(m+1m),(m+2m),(m+3m),) (m+nn) zn 1(1z)m+1
(0,1,12,13,14,) (1)n+1n zn ln(1+z)
(1,1,12,16,124,) 1n! zn ez
(1,12!m2,14!m4,16!m6,18!m8,) 1(2n)! m(2n) cosm
(m,13!m3,15!m5,17!m7,19!m9,) 1(2n1)! m(2n1) sinm

См. также

Примечания

Источники информации