Производящая функция — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (rollbackEdits.php mass rollback)
 
(не показаны 32 промежуточные версии 11 участников)
Строка 1: Строка 1:
 
{{Определение  
 
{{Определение  
 +
|id=main
 
|definition=
 
|definition=
'''Производящая функция''' (англ. ''generating function'') — это формальный степенной ряд:
+
'''Производящая функция''' (англ. ''generating function'') — это формальный степенной ряд вида <tex>G(z)=\sum\limits_{n=0}^\infty a_n z^n</tex>, порождающий (производящий) последовательность <tex>(a_0, a_1, a_2, \ldots)</tex>.  
<center>
 
<tex>G(z)=\sum\limits_{n=0}^\infty a_n z^n</tex>,
 
</center>
 
порождающий(производящий) последовательность <tex>(a_0, a_1, a_2, \ldots)</tex>.  
 
 
}}
 
}}
 
Метод производящих функций был разработан Эйлером в 1750-х годах.
 
Метод производящих функций был разработан Эйлером в 1750-х годах.
Строка 19: Строка 16:
 
* Исследования асимптотического поведения последовательности.
 
* Исследования асимптотического поведения последовательности.
 
* Доказательства тождеств с последовательностями.
 
* Доказательства тождеств с последовательностями.
* Решения задачи подсчета объектов в комбинаторике.Например, в доказательстве[[Нахождение количества разбиений числа на слагаемые|пентагональной теоремы]] или в задаче нахождения количества расстановок <tex>m</tex> ладей на доске <tex>n</tex>&nbsp;×&nbsp;<tex>n</tex>.
+
* Решения задачи подсчета объектов в комбинаторике. Например, в доказательстве [[Нахождение количества разбиений числа на слагаемые|пентагональной теоремы]] или в задаче нахождения количества расстановок <tex>m</tex> ладей на доске <tex>n \times n</tex>.
 
* Вычисления бесконечных сумм.
 
* Вычисления бесконечных сумм.
  
Строка 25: Строка 22:
 
Рассмотрим производящие функции для различных комбинаторных последовательностей:
 
Рассмотрим производящие функции для различных комбинаторных последовательностей:
  
* <tex>\prod\limits_{ n = 1}^\infty(1-x^n)</tex> {{---}} производящая функция для разности количества разбиений числа <tex>n</tex> в четное и нечетное число различных слагаемых.Например коэффициент при <tex>x^5</tex> {{---}} <tex>+1</tex>, потому-что существует два разбиение на четное число различных слагаемых <tex>(4+1; 3+2)</tex> и одно на нечетное (<tex>5</tex>). Правильность этого легко осознать, если понять, что каждая скобка представляет какое-то слагаемое и мы можем его взять(второе слагаемое {{---}} <tex>-x^k</tex>) или не взять(первое {{---}} <tex>1</tex>). Эта производящая функция используется в комбинаторном доказательстве пентагональной теоремы.
+
* <tex>\prod\limits_{ n = 1}^\infty(1-x^n)</tex> {{---}} производящая функция для разности количества разбиений числа <tex>n</tex> в четное и нечетное число различных слагаемых. Например, коэффициент при <tex>x^5</tex> равен <tex>+1</tex>, потому что существует два разбиения на четное число различных слагаемых <tex>(4+1; 3+2)</tex> и одно на нечетное (<tex>5</tex>). Правильность этого легко осознать, если понять, что каждая скобка представляет какое-то слагаемое и мы можем его взять (второе слагаемое {{---}} <tex>-x^k</tex>) или не взять (первое {{---}} <tex>1</tex>). Эта производящая функция используется в комбинаторном доказательстве пентагональной теоремы.
 
 
  
 
* <tex> \prod\limits_{n=1}^\infty \dfrac{1}{1-x^n}</tex> {{---}} производящая функция для последовательности <tex>p_n</tex>, где <tex>p_i</tex> {{---}} число разбиений числа <tex>i</tex> на слагаемые.
 
* <tex> \prod\limits_{n=1}^\infty \dfrac{1}{1-x^n}</tex> {{---}} производящая функция для последовательности <tex>p_n</tex>, где <tex>p_i</tex> {{---}} число разбиений числа <tex>i</tex> на слагаемые.
Строка 32: Строка 28:
 
* <tex>\prod\limits_{ n = 1}^\infty(1+x^n)</tex> {{---}} производящая функция для последовательности <tex>d_n</tex>, где <tex>d_i</tex> {{---}} число разбиений на различные слагаемые.
 
* <tex>\prod\limits_{ n = 1}^\infty(1+x^n)</tex> {{---}} производящая функция для последовательности <tex>d_n</tex>, где <tex>d_i</tex> {{---}} число разбиений на различные слагаемые.
  
* <tex>\prod\limits_{n=1}^\infty(1+x^{ 2n - 1})</tex> {{---}} производящая функция для последовательности <tex>l_n</tex>, где <tex>l_i</tex> {{---}} число разбиений на нечётные слагаемые.С помощью метода производящих функций можно доказать, что производящие функции последовательностей равны, соответственно <tex>d_n = l_n </tex>: <tex>\prod\limits_{n=1}^\infty(1+x^{ n})=\prod\limits_{n=1}^\infty \dfrac{1-x^{2n}}{1-x^n}=\dfrac{1-x^2}{1-x}\dfrac{1-x^4}{1-x^2}\dfrac{1-x^6}{1-x^3}\ldots=</tex>
+
* <tex>\prod\limits_{n=1}^\infty(1+x^{ 2n - 1})^{-1}</tex> {{---}} производящая функция для последовательности <tex>l_n</tex>, где <tex>l_i</tex> {{---}} число разбиений на нечётные слагаемые. С помощью метода производящих функций можно доказать, что производящие функции последовательностей равны, соответственно <tex>d_n = l_n </tex>: <tex>\prod\limits_{n=1}^\infty(1+x^{ n})=\prod\limits_{n=1}^\infty \dfrac{1-x^{2n}}{1-x^n}=\dfrac{1-x^2}{1-x}\dfrac{1-x^4}{1-x^2}\dfrac{1-x^6}{1-x^3}\ldots=</tex>
  
  
<tex>=\dfrac{1}{1-x}\dfrac{1}{1-x^3}\dfrac{1}{1-x^5}\ldots=\prod\limits_{n=1}^\infty(1+x^{ 2n - 1})</tex>
+
<tex>=\dfrac{1}{1-x}\dfrac{1}{1-x^3}\dfrac{1}{1-x^5}\ldots=\prod\limits_{n=1}^\infty(1+x^{ 2n - 1})^{-1}</tex>
 
 
  
 
== Примеры решений задач методом производящих функций ==
 
== Примеры решений задач методом производящих функций ==
Строка 43: Строка 38:
 
[[Числа Каталана | числа Каталана]]. Метод производящих функций позволяет получить выражение для <tex>a_n</tex> через номер элемента в последовательности в замкнутом виде, то есть в таком виде, что выражение можно вычислить, предполагая, что <tex>z</tex> достаточно мало.
 
[[Числа Каталана | числа Каталана]]. Метод производящих функций позволяет получить выражение для <tex>a_n</tex> через номер элемента в последовательности в замкнутом виде, то есть в таком виде, что выражение можно вычислить, предполагая, что <tex>z</tex> достаточно мало.
  
 
+
Пусть последовательность <tex>(a_0, a_1, a_2, \ldots)</tex> удовлетворяет некоторому рекуррентному соотношению. Мы хотим получить выражение для <tex>a_n</tex> (при <tex>n \geqslant 0</tex>) в замкнутом виде. Алгоритм получения замкнутого выражения для чисел <tex>a_n</tex>, удовлетворяющих рекуррентному соотношению, с помощью производящих функций состоит из 4 шагов:
Пусть последовательность <tex>(a_0, a_1, a_2, \ldots)</tex> удовлетворяет некоторому рекуррентному соотношению.Мы хотим получить выражение для <tex>a_n</tex> (при <tex>n \geqslant 0</tex>) в замкнутом виде.Алгоритм получения замкнутого выражения для чисел <tex>a_n</tex>, удовлетворяющих рекуррентному соотношению, с помощью производящих функций состоит из 4 шагов:
 
  
 
# Записать рекуррентное соотношение и начальные данные для него в следующем виде (если порядок соотношения равен <tex>k</tex>, то есть количество предшествующих элементов, требуемых для вычисления элемента с номером <tex>n</tex>, равно <tex>k</tex>):
 
# Записать рекуррентное соотношение и начальные данные для него в следующем виде (если порядок соотношения равен <tex>k</tex>, то есть количество предшествующих элементов, требуемых для вычисления элемента с номером <tex>n</tex>, равно <tex>k</tex>):
Строка 104: Строка 98:
  
  
Таким образом наше последнее слагаемое примет вид:
+
Таким образом, наше последнее слагаемое примет вид:
  
  
Строка 123: Строка 117:
  
  
<tex>\dfrac{ 1}{(1-z)^2}=(1-z)^{-2}=\sum\limits_{n=0}^{\infty} {-2\choose n}(-z)^n=</tex>
+
<tex>\dfrac{ 1}{(1-z)^2}=(1-z)^{-2}=\sum\limits_{n=0}^{\infty} {-2\choose n}(-z)^n=\sum\limits_{n=0}^{\infty} (-1)^n{n+1\choose 1}(-z)^n=\sum\limits_{n=0}^{\infty}(n+1)z^n</tex>
  
  
<tex>=\sum\limits_{n=0}^{\infty} (-1)^n{n+1\choose 1}(-z)^n=\sum\limits_{n=0}^{\infty}(n+1)z^n</tex>
+
<tex>G(z)=\dfrac{1/3}{(1-z)^2}+\dfrac{7/9}{1-z}-\dfrac{1/2}{1-2z}+\dfrac{7/18}{1-4z}=\dfrac{1}{3}\sum\limits_{n=0}^{\infty} (n+1)z^n +\dfrac{7}{9}\sum\limits_{n=0}^{\infty} z^n - \dfrac{1}{2}\sum\limits_{n=0}^{\infty} 2^n z^n + \dfrac{7}{18}\sum\limits_{n=0}^{\infty} 4^n z^n</tex>
 
 
 
 
<tex>G(z)=\dfrac{1/3}{(1-z)^2}+\dfrac{7/9}{1-z}-\dfrac{1/2}{1-2z}+\dfrac{7/18}{1-4z}=</tex>
 
 
 
 
 
<tex>=\dfrac{1}{3}\sum\limits_{n=0}^{\infty} (n+1)z^n +\dfrac{7}{9}\sum\limits_{n=0}^{\infty} z^n - \dfrac{1}{2}\sum\limits_{n=0}^{\infty} 2^n z^n + \dfrac{7}{18}\sum\limits_{n=0}^{\infty} 4^n z^n</tex>
 
  
  
Строка 177: Строка 165:
 
<tex>\operatorname{D}(\xi)=\operatorname{E}(\xi^2)-(\operatorname{E}(\xi))^2= \dfrac{2-p}{p^{2}}-\dfrac{1}{p^2}=\dfrac{1-p}{p^2}</tex>
 
<tex>\operatorname{D}(\xi)=\operatorname{E}(\xi^2)-(\operatorname{E}(\xi))^2= \dfrac{2-p}{p^{2}}-\dfrac{1}{p^2}=\dfrac{1-p}{p^2}</tex>
  
== Еще примеры ==
+
=== Пример задачи на нахождение производящей функции ===
 
{{Задача
 
{{Задача
 
| about =  
 
| about =  
| definition = Рассмотрим множество путей на прямой, состоящих из шагов длины <tex>1</tex> вправо и влево. Найдите производящую функцию для числа таких путей из <tex>n</tex> шагов, начинающихся в <tex>0</tex> и оканчивающихся:
+
| definition = Рассмотрим множество путей на прямой, состоящих из шагов длины <tex>1</tex> вправо и влево. Найдите производящую функцию для числа таких путей из <tex>n</tex> шагов, начинающихся в <tex>0</tex> и оканчивающихся в <tex>0</tex>.
 
 
<tex>(a)</tex> в <tex>0</tex>;
 
 
 
<tex>(</tex>б<tex>)</tex> в <tex>0</tex> и не заходящих в отрицательную полупрямую.
 
 
}}
 
}}
=== Решение ===
+
Заметим, что для того, чтобы закончить путь в <tex>0</tex>, необходимо совершить равное число шагов вправо и влево. Тогда задача сводится к тому, чтобы выбрать <tex>\dfrac{n}{2}</tex> позиций для, например, шагов вправо из всего <tex>n</tex> шагов. Тогда ответом будет сумма от нуля до бесконечности по <tex>n</tex> всех <tex>C^{n}_{2n}</tex>. То есть:
<tex>(a)</tex> Заметим, что для того, чтобы закончить путь в 0 необходимо совершить равное число шагов вправо и влево. Тогда задача сводится к тому, чтобы выбрать <tex>\dfrac{n}{2}</tex> позиций для, например, шагов вправо из всего <tex>n</tex> шагов. Тогда ответом будет сумма от нуля до бесконечности по <tex>n</tex> всех <tex>C^{n}_{2n}</tex>. То есть,
 
<center>
 
 
<tex>
 
<tex>
g(x) = \sum\limits_{0}^{\infty} C^{n}_{2n}
+
g(x) = \sum\limits_{0}^{\infty} C^{n}_{2n} x^n
 
</tex>
 
</tex>
</center>
+
Рассмотрим <tex>f(x) = \sum\limits_{0}^{\infty} C_n x^n </tex>, где <tex>C_n</tex> {{---}} [[Числа Каталана | число Каталана]]. Тогда, заметим что <tex>f'(x) = \sum\limits_{0}^{\infty} n C_n x^{n-1} </tex>. Так как <tex>C_n = \dfrac{1}{n+1} C_{2n}^n </tex>, то справедливо равенство:
Рассмотрим <tex>f(x) = \sum\limits_{0}^{\infty} C_n x^n </tex>, где <tex>C_n</tex> {{---}} число Каталана. Тогда, заметим что <tex>f'(x) = \sum\limits_{0}^{\infty} n C_n x^{n-1} </tex>. Т.к. <tex>C_n = \dfrac{1}{n+1} C_{2n}^n </tex>, то справедливо равенство:
 
 
 
<center>
 
 
<tex>
 
<tex>
 
g(x) = (n+1)f(x) = xf'(x) + f(x)
 
g(x) = (n+1)f(x) = xf'(x) + f(x)
 
</tex>
 
</tex>
</center>
 
  
 
Мы знаем, что производящая функция для чисел Каталана равна <tex>f(x) = \dfrac{1-\sqrt{1-4x}}{2x}</tex>. Найдем <tex>f'(x)</tex>.  
 
Мы знаем, что производящая функция для чисел Каталана равна <tex>f(x) = \dfrac{1-\sqrt{1-4x}}{2x}</tex>. Найдем <tex>f'(x)</tex>.  
  
<center>
 
 
<tex>
 
<tex>
 
f'(x) = \dfrac{\dfrac{4x}{\sqrt{1-4x}} - 2 + 2\sqrt{1-4x}}{4x^2} = \dfrac{1 - 2x - \sqrt{1-4x}}{2x^2 \sqrt{1-4x}}
 
f'(x) = \dfrac{\dfrac{4x}{\sqrt{1-4x}} - 2 + 2\sqrt{1-4x}}{4x^2} = \dfrac{1 - 2x - \sqrt{1-4x}}{2x^2 \sqrt{1-4x}}
 
</tex>
 
</tex>
</center>
+
 
 
Соответственно, ответом будет производящая функция вида:
 
Соответственно, ответом будет производящая функция вида:
  
<center>
 
 
<tex>
 
<tex>
g(x) = \dfrac{1 - 2x - \sqrt{1-4x}}{2x \sqrt{1-4x}} + \dfrac{1-\sqrt{1-4x}}{2x}
+
g(x) = \dfrac{1 - 2x - \sqrt{1-4x}}{2x \sqrt{1-4x}} + \dfrac{1-\sqrt{1-4x}}{2x} = \dfrac{1}{\sqrt{1 - 4x}}
 
</tex>
 
</tex>
</center>
 
  
(б) Заметим, что задача аналогична Правильной скобочной последовательности. Тогда производящей функцией для нашей задачи будет производящая функция для ПСП, а именно:
+
{{Задача
 +
| about =
 +
| definition = Рассмотрим множество путей на прямой, состоящих из шагов длины <tex>1</tex> вправо и влево. Найдите производящую функцию для числа таких путей из <tex>n</tex> шагов, начинающихся и оканчивающихся в <tex>0</tex> и не заходящих в отрицательную полупрямую.
 +
}}
 +
 
 +
Заметим, что задача аналогична [[Правильные скобочные последовательности | Правильной скобочной последовательности]]. Тогда производящей функцией для нашей задачи будет производящая функция для правильной скобочной последовательности, а именно:
  
<center>
 
 
<tex>
 
<tex>
 
g(x) = \dfrac{1-\sqrt{1-4x}}{2x}
 
g(x) = \dfrac{1-\sqrt{1-4x}}{2x}
 
</tex>
 
</tex>
</center>
 
  
 
== Приложения ==
 
== Приложения ==
 
=== Примеры простых производящих функций ===
 
=== Примеры простых производящих функций ===
На последнем шаге приведения производящей функции к замкнутому виду требуется разложить полученные слагаемые в ряд. Для этого можно воспользоваться таблицей основных производящих функций <ref>[http://www.genfunc.ru/theory/pril03/ Таблица производящих функций]</ref>.
+
<!--easy биномы увеличить, но так имхо лучше--->На последнем шаге приведения производящей функции к замкнутому виду требуется разложить полученные слагаемые в ряд. Для этого можно воспользоваться таблицей основных производящих функций <ref>[http://www.genfunc.ru/theory/pril03/ Таблица производящих функций]</ref>.
  
 
Все суммы выполняются по переменной <tex>n</tex> от <tex>0</tex> до <tex>\infty</tex>. Элементы последовательности нумеруются от <tex>0</tex>.  
 
Все суммы выполняются по переменной <tex>n</tex> от <tex>0</tex> до <tex>\infty</tex>. Элементы последовательности нумеруются от <tex>0</tex>.  
Строка 246: Строка 224:
 
| <tex>(1, 2, 3, 4,\ldots)</tex> || <tex>\sum\limits (n+1)z^n</tex> || <tex>\dfrac{1}{(1-z)^2}</tex>
 
| <tex>(1, 2, 3, 4,\ldots)</tex> || <tex>\sum\limits (n+1)z^n</tex> || <tex>\dfrac{1}{(1-z)^2}</tex>
 
|-align="left" bgcolor=#FFFFFF
 
|-align="left" bgcolor=#FFFFFF
| <tex>(1, 2, 4, 8, 16,\ldots)</tex> || <tex>\sum\limits 2^nz^n</tex> || <tex>\dfrac{1}{(1-2z)^2}</tex>
+
| <tex>(1, 2, 4, 8, 16,\ldots)</tex> || <tex>\sum\limits 2^nz^n</tex> || <tex>\dfrac{1}{(1-2z)}</tex>
 
|-align="left" bgcolor=#FFFFFF
 
|-align="left" bgcolor=#FFFFFF
| <tex>(1, r, r^2, r^3,\ldots)</tex> || <tex>\sum\limits r^nz^n</tex> || <tex>\dfrac{1}{(1-rz)^2}</tex>
+
| <tex>(1, r, r^2, r^3,\ldots)</tex> || <tex>\sum\limits r^nz^n</tex> || <tex>\dfrac{1}{(1-rz)}</tex>
 
|-align="left" bgcolor=#FFFFFF
 
|-align="left" bgcolor=#FFFFFF
 
| <tex>(</tex><tex>{m\choose 0}, {m\choose 1}, {m\choose 2}, {m\choose 3},\ldots</tex><tex>)</tex> || <tex>\sum\limits {m\choose n}</tex> <tex>z^n</tex> || <tex>(1+z)^m</tex>
 
| <tex>(</tex><tex>{m\choose 0}, {m\choose 1}, {m\choose 2}, {m\choose 3},\ldots</tex><tex>)</tex> || <tex>\sum\limits {m\choose n}</tex> <tex>z^n</tex> || <tex>(1+z)^m</tex>
Строка 264: Строка 242:
 
| <tex>(m, -\dfrac{1}{3!}m^3, \dfrac{1}{5!}m^5, -\dfrac{1}{7!}m^7, \dfrac{1}{9!}m^9,\ldots)</tex> || <tex>\sum\limits \dfrac{1}{(2n-1)!}</tex> <tex>m^{(2n-1)}</tex> || <tex>\sin m</tex>
 
| <tex>(m, -\dfrac{1}{3!}m^3, \dfrac{1}{5!}m^5, -\dfrac{1}{7!}m^7, \dfrac{1}{9!}m^9,\ldots)</tex> || <tex>\sum\limits \dfrac{1}{(2n-1)!}</tex> <tex>m^{(2n-1)}</tex> || <tex>\sin m</tex>
 
|}
 
|}
 +
 +
== См. также ==
 +
 +
* [[Производящая функция Дирихле]]
  
 
== Примечания ==
 
== Примечания ==

Текущая версия на 19:31, 4 сентября 2022

Определение:
Производящая функция (англ. generating function) — это формальный степенной ряд вида [math]G(z)=\sum\limits_{n=0}^\infty a_n z^n[/math], порождающий (производящий) последовательность [math](a_0, a_1, a_2, \ldots)[/math].

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

Применение

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

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

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

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

  • [math]\prod\limits_{ n = 1}^\infty(1-x^n)[/math] — производящая функция для разности количества разбиений числа [math]n[/math] в четное и нечетное число различных слагаемых. Например, коэффициент при [math]x^5[/math] равен [math]+1[/math], потому что существует два разбиения на четное число различных слагаемых [math](4+1; 3+2)[/math] и одно на нечетное ([math]5[/math]). Правильность этого легко осознать, если понять, что каждая скобка представляет какое-то слагаемое и мы можем его взять (второе слагаемое — [math]-x^k[/math]) или не взять (первое — [math]1[/math]). Эта производящая функция используется в комбинаторном доказательстве пентагональной теоремы.
  • [math] \prod\limits_{n=1}^\infty \dfrac{1}{1-x^n}[/math] — производящая функция для последовательности [math]p_n[/math], где [math]p_i[/math] — число разбиений числа [math]i[/math] на слагаемые.
  • [math]\prod\limits_{ n = 1}^\infty(1+x^n)[/math] — производящая функция для последовательности [math]d_n[/math], где [math]d_i[/math] — число разбиений на различные слагаемые.
  • [math]\prod\limits_{n=1}^\infty(1+x^{ 2n - 1})^{-1}[/math] — производящая функция для последовательности [math]l_n[/math], где [math]l_i[/math] — число разбиений на нечётные слагаемые. С помощью метода производящих функций можно доказать, что производящие функции последовательностей равны, соответственно [math]d_n = l_n [/math]: [math]\prod\limits_{n=1}^\infty(1+x^{ n})=\prod\limits_{n=1}^\infty \dfrac{1-x^{2n}}{1-x^n}=\dfrac{1-x^2}{1-x}\dfrac{1-x^4}{1-x^2}\dfrac{1-x^6}{1-x^3}\ldots=[/math]


[math]=\dfrac{1}{1-x}\dfrac{1}{1-x^3}\dfrac{1}{1-x^5}\ldots=\prod\limits_{n=1}^\infty(1+x^{ 2n - 1})^{-1}[/math]

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

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

Существует целый класс последовательностей, задаваемых рекуррентным соотношением, например, [math]f_n[/math] — числа Фибоначчи или [math]C_n[/math] числа Каталана. Метод производящих функций позволяет получить выражение для [math]a_n[/math] через номер элемента в последовательности в замкнутом виде, то есть в таком виде, что выражение можно вычислить, предполагая, что [math]z[/math] достаточно мало.

Пусть последовательность [math](a_0, a_1, a_2, \ldots)[/math] удовлетворяет некоторому рекуррентному соотношению. Мы хотим получить выражение для [math]a_n[/math] (при [math]n \geqslant 0[/math]) в замкнутом виде. Алгоритм получения замкнутого выражения для чисел [math]a_n[/math], удовлетворяющих рекуррентному соотношению, с помощью производящих функций состоит из 4 шагов:

  1. Записать рекуррентное соотношение и начальные данные для него в следующем виде (если порядок соотношения равен [math]k[/math], то есть количество предшествующих элементов, требуемых для вычисления элемента с номером [math]n[/math], равно [math]k[/math]):
    [math]a_0=\ldots,[/math]
    [math]a_1=\ldots,[/math]
    [math]\ldots[/math]
    [math]a_{k-1}=\ldots,[/math]
    [math]a_{n}=\ldots, n \geqslant k.[/math]
  2. Домножить каждую строчку на [math]z[/math] в соответствующей степени и просуммировать строчки для всех [math]n \geqslant 0 [/math].
  3. В полученном уравнении привести все суммы к замкнутому виду. Получить уравнение для производящей функции.
  4. Выразить [math]G(z)[/math] в явном виде (решить уравнение, полученное на предыдущем шаге) и разложить производящую функцию в ряд по степеням [math]z[/math].

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

[math]a_0= 1,[/math]

[math]a_1= 2,[/math]

[math]a_n= 6a_{ n - 1}-8a_{n-2}+n, n \geqslant 2[/math]

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


[math]G(z)=a_0+a_1z+\sum\limits_{n=2}^\infty(6a_{ n - 1}-8a_{n-2}+n) z^n[/math]


[math]G(z)=a_0+a_1z+6\sum\limits_{n=2}^\infty a_ { n-1} z^n - 8\sum\limits_{n=2}^\infty a_ { n-2} z^n+\sum\limits_{n=2}^\infty n z^n[/math]


[math]G(z)=a_0+a_1z+6z\sum\limits_{n=1}^\infty a_ { n } z^n - 8z^2\sum\limits_{n=0}^\infty a_ { n } z^n+\sum\limits_{n=2}^\infty n z^n[/math]


[math]G(z)=a_0+a_1z+6z(G(z)-a_0) - 8z^2G(z)+\sum\limits_{n=2}^\infty n z^n[/math]


[math]G(z)=1-4z+6zG(z) - 8z^2G(z)+\sum\limits_{n=2}^\infty n z^n[/math]


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


[math]zB'(z)=z(\sum\limits_{n=0}^\infty b_n z^n)'=z\sum\limits_{ n = 1}^\infty nb_n z^{n-1}=\sum\limits_{n=0}^\infty nb_n z^n[/math]


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


[math]\sum\limits_{n=2}^\infty n z^n=z \sum\limits_{n=2}^\infty n z^{n-1}= z(\sum\limits_{ n = 2}^\infty z^n)'[/math]


[math]\sum\limits_{n=2}^\infty z^n=\sum\limits_{n=0}^\infty z^n-1-z=\dfrac{1}{1-z}-1-z=\dfrac{z^2}{1-z}[/math]


[math]z(\dfrac{ z ^ 2}{1-z})'=\dfrac{z^2(2-z)}{(1-z)^2}[/math]


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


[math]G(z)=1-4z+6zG(z) - 8z^2G(z)+\dfrac{z^2(2-z)}{(1-z)^2}[/math]


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


[math]G(z)=\dfrac{1-6z+11z^2-5z^3}{(1-6z+8z^2)(1-z)^2}[/math]


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

[math] G(z) =\dfrac{1-6z+11z^2-5z^3}{(1-6z+8z^2)(1-z)^2}=\dfrac{1-6z+11z^2-5z^3}{(1-2z)(1-4z)(1-z)^2}=\dfrac{1/3}{(1-z)^2}+\dfrac{7/9}{1-z}-\dfrac{1/2}{1-2z}+\dfrac{7/18}{1-4z}[/math]

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


[math]\dfrac{ 1}{(1-z)^2}=(1-z)^{-2}=\sum\limits_{n=0}^{\infty} {-2\choose n}(-z)^n=\sum\limits_{n=0}^{\infty} (-1)^n{n+1\choose 1}(-z)^n=\sum\limits_{n=0}^{\infty}(n+1)z^n[/math]


[math]G(z)=\dfrac{1/3}{(1-z)^2}+\dfrac{7/9}{1-z}-\dfrac{1/2}{1-2z}+\dfrac{7/18}{1-4z}=\dfrac{1}{3}\sum\limits_{n=0}^{\infty} (n+1)z^n +\dfrac{7}{9}\sum\limits_{n=0}^{\infty} z^n - \dfrac{1}{2}\sum\limits_{n=0}^{\infty} 2^n z^n + \dfrac{7}{18}\sum\limits_{n=0}^{\infty} 4^n z^n[/math]


[math]a_n=\dfrac{n+1}{3}+\dfrac{7}{9}-\dfrac{2^n}{2}+\dfrac{7 \cdot 4^n}{18}=\dfrac{7 \cdot 4^n+6n+20}{18}-2^{n-1}[/math]

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

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


  • [math]\operatorname{E}(\xi)=\sum\limits_{n=1}^{\infty}n p(1-p)^{n-1} [/math]


  • [math]\operatorname{E}(\xi^2) = \sum\limits_{n=1}^{\infty}n^{2}p(1-p)^{n-1}[/math]


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


  • [math]\operatorname{ E}(\xi)=\sum\limits_{n=1}^{\infty}n p(1-p)^{n-1} = [/math]

[math]= \sum\limits_{n=0}^{\infty}(n+1) p(1-p)^{n} = [/math]

[math]= \sum\limits_{n=0}^{\infty}n p(1-p)^{n} + \sum\limits_{n=1}^{\infty} p(1-p)^{n-1} = [/math]

[math]= (1-p) \operatorname{E}(\xi) +1 \Rightarrow \operatorname{E}(\xi) = \dfrac{1}{p}[/math]


  • [math]\operatorname{E}(\xi^2) = p\sum\limits_{n=1}^{\infty}n^{2}(1-p)^{n-1} =[/math]

[math]=p\sum\limits_{n=1}^{\infty}n(n+1)(1-p)^{n-1} - p\sum\limits_{n=1}^{\infty}n(1-p)^{n-1} =[/math]

[math]= p\dfrac{\operatorname{d}^{2}}{\operatorname{d}p^{2}}\sum\limits_{n=1}^{\infty}(1-p)^{n+1} + p\dfrac{\operatorname{d}}{\operatorname{d}p}\sum\limits_{n=1}^{\infty}(1-p)^{n} =[/math]

[math]= p\dfrac{\operatorname{d}^{2}}{\operatorname{d}p^{2}}\left(\sum\limits_{ n = 0}^{\infty}(1-p)^{n} \cdot(1-p)^2\right) +p\dfrac{\operatorname{d}}{\operatorname{d}p}\left(\sum\limits_{ n = 0}^{\infty}(1-p)^{n}\cdot(1-p)\right) =[/math]

[math]= p\dfrac{\operatorname{d}^{2}}{\operatorname{d}p^{2}}\left(\dfrac{ 1}{1-(1-p)} \cdot(1-p)^2\right) +p\dfrac{\operatorname{d}}{\operatorname{d}p}\left(\dfrac{ 1}{1-(1-p)}\cdot(1-p)\right) =[/math]

[math]= p\dfrac{\operatorname{d}^{2}}{\operatorname{d}p^{2}}\left(\dfrac{ (1 - p) ^ 2}{p}\right) +p\dfrac{\operatorname{d}}{\operatorname{d}p}\left(\dfrac{ 1 - p}{p}\right) =[/math]

[math]= p\cdot\dfrac{2}{p^3} - p\cdot\dfrac{1}{p^2} = \dfrac{2}{p^{2}} - \dfrac{1}{p} = \dfrac{2-p}{p^{2}}[/math].

Тогда:

[math]\operatorname{D}(\xi)=\operatorname{E}(\xi^2)-(\operatorname{E}(\xi))^2= \dfrac{2-p}{p^{2}}-\dfrac{1}{p^2}=\dfrac{1-p}{p^2}[/math]

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

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

Заметим, что для того, чтобы закончить путь в [math]0[/math], необходимо совершить равное число шагов вправо и влево. Тогда задача сводится к тому, чтобы выбрать [math]\dfrac{n}{2}[/math] позиций для, например, шагов вправо из всего [math]n[/math] шагов. Тогда ответом будет сумма от нуля до бесконечности по [math]n[/math] всех [math]C^{n}_{2n}[/math]. То есть: [math] g(x) = \sum\limits_{0}^{\infty} C^{n}_{2n} x^n [/math] Рассмотрим [math]f(x) = \sum\limits_{0}^{\infty} C_n x^n [/math], где [math]C_n[/math] число Каталана. Тогда, заметим что [math]f'(x) = \sum\limits_{0}^{\infty} n C_n x^{n-1} [/math]. Так как [math]C_n = \dfrac{1}{n+1} C_{2n}^n [/math], то справедливо равенство: [math] g(x) = (n+1)f(x) = xf'(x) + f(x) [/math]

Мы знаем, что производящая функция для чисел Каталана равна [math]f(x) = \dfrac{1-\sqrt{1-4x}}{2x}[/math]. Найдем [math]f'(x)[/math].

[math] f'(x) = \dfrac{\dfrac{4x}{\sqrt{1-4x}} - 2 + 2\sqrt{1-4x}}{4x^2} = \dfrac{1 - 2x - \sqrt{1-4x}}{2x^2 \sqrt{1-4x}} [/math]

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

[math] g(x) = \dfrac{1 - 2x - \sqrt{1-4x}}{2x \sqrt{1-4x}} + \dfrac{1-\sqrt{1-4x}}{2x} = \dfrac{1}{\sqrt{1 - 4x}} [/math]


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


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

[math] g(x) = \dfrac{1-\sqrt{1-4x}}{2x} [/math]

Приложения

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

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

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

Последовательность Производящая функция в виде ряда Производящая функция в замкнутом виде
[math](1, 0, 0,\ldots)[/math] [math]1[/math] [math]1[/math]
[math](0, 0, \ldots, 0, 1, 0, 0\ldots)[/math] ([math]m[/math] нулей в начале) [math]z^m[/math] [math]z^m[/math]
[math](1, 1, 1,\ldots)[/math] [math]\sum\limits z^n[/math] [math]\dfrac{1}{1-z}[/math]
[math](1, 0, 0, \ldots, 0, 1, 0, 0, \ldots 0, 1, 0, 0\ldots)[/math] (повторяется через [math]m[/math]) [math]\sum\limits z^{nm}[/math] [math]\dfrac{1}{1-z^m}[/math]
[math](1, -1, 1, -1,\ldots)[/math] [math]\sum\limits (-1)^nz^n[/math] [math]\dfrac{1}{1+z}[/math]
[math](1, 2, 3, 4,\ldots)[/math] [math]\sum\limits (n+1)z^n[/math] [math]\dfrac{1}{(1-z)^2}[/math]
[math](1, 2, 4, 8, 16,\ldots)[/math] [math]\sum\limits 2^nz^n[/math] [math]\dfrac{1}{(1-2z)}[/math]
[math](1, r, r^2, r^3,\ldots)[/math] [math]\sum\limits r^nz^n[/math] [math]\dfrac{1}{(1-rz)}[/math]
[math]([/math][math]{m\choose 0}, {m\choose 1}, {m\choose 2}, {m\choose 3},\ldots[/math][math])[/math] [math]\sum\limits {m\choose n}[/math] [math]z^n[/math] [math](1+z)^m[/math]
[math]([/math][math]1, {{m}\choose m}, {{m+1}\choose m}, {{m+2}\choose m},\ldots[/math][math])[/math] [math]\sum\limits {{m+n-1}\choose n}[/math] [math]z^n[/math] [math]\dfrac{1}{(1-z)^m}[/math]
[math]([/math][math]1, {{m+1}\choose m}, {{m+2}\choose m}, {{m+3}\choose m},\ldots[/math][math])[/math] [math]\sum\limits {{m+n}\choose n}[/math] [math]z^n[/math] [math]\dfrac{1}{(1-z)^{m+1}}[/math]
[math](0, 1, -\dfrac{1}{2}, \dfrac{1}{3}, -\dfrac{1}{4},\ldots)[/math] [math]\sum\limits \dfrac{(-1)^{n+1}}{n}[/math] [math]z^n[/math] [math]\ln(1+z)[/math]
[math](1, 1, \dfrac{1}{2}, \dfrac{1}{6}, \dfrac{1}{24},\ldots)[/math] [math]\sum\limits \dfrac{1}{n!}[/math] [math]z^n[/math] [math]e^z[/math]
[math](1, -\dfrac{1}{2!}m^2, \dfrac{1}{4!}m^4, -\dfrac{1}{6!}m^6, \dfrac{1}{8!}m^8,\ldots)[/math] [math]\sum\limits \dfrac{1}{(2n)!}[/math] [math]m^{(2n)}[/math] [math]\cos m[/math]
[math](m, -\dfrac{1}{3!}m^3, \dfrac{1}{5!}m^5, -\dfrac{1}{7!}m^7, \dfrac{1}{9!}m^9,\ldots)[/math] [math]\sum\limits \dfrac{1}{(2n-1)!}[/math] [math]m^{(2n-1)}[/math] [math]\sin m[/math]

См. также

Примечания

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