Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
26.02.2023
Размер:
523.81 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ "ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ"

ПРОИЗВОДЯЩИЕ ФУНКЦИИ

Учебное пособие для вузов

Составители: Л.Ю. Кабанцова, Т.К. Кацаран

Воронеж Издательский дом ВГУ 2014

Утверждено научно-методическим советом факультета прикладной математики, информатики и механики 24.04.2014 г., протокол № 8

Рецензент д-р техн. наук, профессор кафедры вычислительной математики и прикладных информационных технологий ВГУ Т.М. Леденева

Учебное пособие подготовлено на кафедре нелинейных колебаний факультета прикладной математики, информатики и механики Воронежского государственного университета.

Рекомендовано для студентов 1-го курса факультета прикладной математики, информатики и механики Воронежского государственного университета всех форм обучения.

Для специальностей: 010400 – Прикладная математика и информатика, 010701 – Фундаментальная математика и механика

В математике можно выделить два направления: одно изучает непрерывные объекты, другое – дискретные. Часто к изучению одного и того же явления можно подойти с разных точек зрения. Производящие функции, изучению которых посвящено данное учебное пособие, являются примером плодотворной связи между дискретными и непрерывными объектами. Метод производящих функций особенно продуктивен при решении рекуррентных соотношений и комбинаторных задач.

§1. Определение и примеры производящих функций

Идея производящих функций достаточно проста. Числовой последовательности (a0, a1, . . . , an, . . .) (дискретному объекту) поставим в со-

ответствие степенной ряд (непрерывный объект)

 

a0 + a1x + . . . + anxn + . . . , x R,

(1)

для исследования которого можно применить мощный аппарат математического анализа, в частности, ряды Маклорена, см. [1]. Степенные ряды вида (1) можно складывать, вычитать, умножать, дифференцировать.

Определение. Функция G(x) называется производящей функцией последовательности (a0, a1, a2, . . .) , если для всех x из некоторого

открытого множества выполняется равенство

 

G(x) = a0 + a1x + a2x2 + . . . .

(2)

Говорят, что функция G(x) "производит" или "генерирует" последовательность (a0, a1, . . . , an, . . .) , поскольку в разложении функции G(x) в ряд по степеням x , коэффициенты при xn равны an . Обознача-

ется этот факт с помощью записи

 

[xn]G(x) = an.

(3)

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

1. Самым известным примером производящей функции является би-

ном Ньютона

 

 

(1 + x)n = Cn0 + Cn1x + . . . + Cnkxk + . . . + Cnnxn,

(4)

 

n!

 

где Ck =

 

– биномиальные коэффициенты (число сочетаний

 

n

k!(n − k)!

 

 

 

без повторений из n элементов по k , т.е. число подмножеств мощности k множества мощности n , n ≥ k ).

3

2. Другой пример производящей функции дает нам сумма членов бесконечно убывающей геометрической прогрессии

(1 − x)1 = 1 + x + x2 + . . . .

Здесь функция (1 − x)1 является производящей для последовательности (1, 1, . . . , 1, . . .) .

3. Для числовой последовательности (1, −2, 3, −4, . . .) производящей функцией будет функция G(x) = (1+x)2 . В этом легко убедиться, проверив равенство

(1 + x)2(1 2x + 3x2 4x3 + . . .) = 1, x ≠ −1.

4. Найдем производящую функцию Ga;r(x) последовательности

(a, ar, ar2, ar3, . . .)

Ga;r(x) = a + arx + ar2x2 + ar3x3 + . . . = a(1 + rx + (rx)2 + (rx)3 + . . .).

Из последнего равенства получаем

rxGa;r(x) = Ga;r(x) − a,

 

откуда следует

a

 

 

 

Ga;r(x) =

 

.

(5)

1 − rx

В приведенных здесь примерах производящие функции являются элементарными. Естественно предположить, что они могут быть представлены более сложными выражениями, которые зависят от свойств последовательности (a0, a1, a2, . . .) . С этой точки зрения полезной является следующая теорема, приведенная в статье [2].

Теорема. Пусть последовательность {an} задается рекуррентным соотношением порядка k с постоянными c1, c2, . . . , ck , т.е.

 

 

an+k = c1an+k−1 + c2an+k−2 + . . . + ckan,

 

 

 

(6)

а числа

a

, a

, . . . , a

k−1

заданы. Тогда производящая

 

функция

 

0

1

 

+ . . . рациональна, G(x) =

P (x)

,

причем

G(x) =

a0 + a1x + a2x2

 

 

Q(x)

степень многочлена P не превосходит k − 1 , а степень многочлена Q равна k . Многочлен Q имеет вид

Q(x) = 1 − c1x − c2x2 − . . . − ckxk.

4

С использованными здесь определением рекуррентного соотношения и методами его решения можно познакомиться в работе [3].

Постановка задачи. Имеется некоторая информация о последовательности (a0, a1, a2, . . .) , используя которую нужно найти производящую функцию G(x) . Далее, пользуясь методами математического анализа, найти зависимость коэффициентов an от n , используя найденную на первом этапе производящую функцию.

При этом можно использовать различные методы преобразования степенных рядов вида (1), которые следует рассматривать как формальные, т.е. нет необходимости думать, что x – число и пытаться строгость рассуждений привязать к доказательству сходимости степенных рядов.

Следует учитывать, что справедлива теорема единственности: если при некотором c > 0 функция f(x) представима в виде степенного ряда a0 + a1x + a2x2 + . . . на интервале (−c, c) , то коэффициенты ai , i = 0, 1, . . . определяются однозначно.

§2. Преобразование производящей функции

1)Сложение производящих функций.

Рассмотрим две производящие функции

G(x) = anxn = a0 + a1x + a2x2 + . . . ,

(7)

n=0

H(x) = bnxn = b0 + b1x + b2x2 + . . . .

n=0

Имеем

[xn](G(x) + H(x)) = an + bn.

2) Умножение на константу.

Результат умножения функции или переменной на константу выражен равенствами:

[xn](αG(x)) = αan,

(8)

[xn](G(rx)) = rnan.

 

3) Дифференцирование и интегрирование производящих функций. Пусть G(x) = a0 + a1x + a2x2 + . . . – производящая функция. Дадим формальные определения производной и интеграла производящих

функций. Производной этой функции называется функция

G(x) = a1 + 2a2x + 3a3x2 + . . . + nanxn−1 + . . . ,

5

интегралом G(x) – функция

 

x2

 

x3

 

xn+1

G(x)dx = a0x + a1

 

+ a2

 

+ . . . + an

 

+ . . . .

2

3

n + 1

Операция дифференцирования обратна операции интегрирования:

(∫ )

G(x)dx = G(x).

Операция же интегрирования производной приводит к функции с нулевым свободным членом, и поэтому результат, вообще говоря, отличается от исходной функции.

Замечание. Нетрудно видеть, что для функций, представимых степенными рядами, формула для производной соответствует обычной. Формула для интеграла соответствует значению интеграла с переменным верхним пределом

x

G(x)dx = G(s)ds.

0

4) Сдвиг.

Умножим левую и правую части равенства (7) на xm :

xmG(x) = xm anxn = a0xm + a1xm+1 + a2xm+2 + . . . .

n=0

Полученная функция генерирует новую последовательность

(0, . . . , 0, a0, a1, . . .),

которая является сдвигом исходной последовательности на m элементов

вправо, то есть

 

 

0,

n < m,

 

[xn](xmG(x)) = { an−m,

n ≥ m.

(9)

5) Полиномиальный множитель и делитель.

Полиномиальный множитель " n "возникает при умножении производной производящей функции на x . Появление делителя в генерируемой производящей функцией последовательности возникает в результате

интегрирования. Проведем преобразования:

 

 

 

xG(x) = x

(

anxn)= x

(

nanxn−1)

=

nanxn.

 

 

 

 

 

 

n=0

 

n=0

 

 

n=0

 

6

Таким образом,

 

 

[xn](xG(x)) = nan.

(10)

Аналогично,

 

 

 

 

 

 

x

 

x

a

 

 

 

G(t) − a0

dt =

(n=1 antn−1) dt = n=1

n

xn.

t

n

0

0

 

x

 

 

 

 

 

 

 

 

 

 

G(t) − a0

dt

 

a

 

[xn]

 

=

 

n

,

 

t

n

 

0

 

x

 

 

 

 

 

[xn]

G(t) dt

=

ann1

,

 

 

 

0

 

 

 

 

 

 

 

n ≥ 1.

(11)

n ≥ 1.

(12)

6) Произведение производящих функций.

Перемножим производящие функции G(x) и H(x) (см. (7)):

F (x) = G(x) · H(x) = a0b0 + (a0b1 + a1b0)x + (a0b2 + a1b1 + a2b0)x2 + . . . =

(n )

=

akbn−k xn.

(13)

n=0

k=0

 

Сумму, взятую в скобки, принято называть сверткой производящих функций G(x) и H(x) (обозначим ее через cn ):

 

 

 

 

 

n

 

 

 

 

 

 

 

cn =

akbn−k.

 

 

 

 

 

 

 

 

=0

 

 

 

 

 

 

 

 

k

 

 

 

 

Рассмотрим частный случай. Пусть bn = 1 , тогда (так как

 

1

 

 

 

 

производящая функция последовательности (1, 1, . . .) )

1

− x

F (x) = G(x)

 

1

= a0

+ (a0

+ a1)x + (a0 + a1 + a2)x2 + . . . =

 

 

 

 

1

− x

( n

ak) xn.

 

 

 

 

 

=

 

(14)

 

 

 

 

n=0

=0

 

 

 

 

 

 

 

 

∑ ∑k

 

 

 

 

Мы получаем, что функция G(x)/(1−x) генерирует последовательность

частичных сумм исходной последовательности an .

 

Теперь мы

можем получить разложение

в ряд дробей

вида

1/(1 − x)m, m

= 1, 2, 3, . . . . Полагая в левой

части равенства

(14)

7

G(x) = 1 , а в правой части соответствующую этой функции генерирующую последовательность (1, 0, 0, . . .) , получим:

F1(x) =

 

1

 

(1, 1, 1, . . .) = (1)n≥0.

(15)

 

 

 

1

x

 

 

 

 

 

Используя найденную функцию F1(x) в качестве G(x) в равенстве (14), находим

F2(x) =

 

1

(1, 2, 3, 4, . . .) = (n + 1)n≥0.

(16)

 

(1 − x)2

Продолжая этот процесс дальше, находим:

 

 

 

 

1

 

 

(1, 3, 6, 10, . . .) = (

(n + 1)(n + 2)

)n≥0 .

 

F3(x) =

 

 

 

 

(17)

(1 − x)3

2

 

В приведенных выражениях символ обозначает взаимно-однозначное соответствие между производящей функцией, стоящей слева, и "генерируемой" ею последовательностью, стоящей справа.

Для того чтобы найти для производящей функции 1/(1 − x)m генерирующую ее последовательность, нужно использовать равенство (14) и найденный на (m − 1) -ом шаге результат.

Легко доказать, что общий член генерирующей последовательности

для функции 1/(1 − x)m равен

 

 

Fm

(x) =

1

 

(n + 1) . . . (n + m − 1)

= Cn

. (18)

(1 − x)m

(m − 1)!

 

n+m−1

 

Для доказательства этого равенства можно использовать метод математической индукции или формулу разложения в ряд Маклорена функции

1/(1 − x)m .

§3. Рациональные производящие функции

Найденные в предыдущем параграфе производящие функции относятся к классу элементарных рациональных функций. Рациональные производящие функции образуют большой класс производящих функций. Производящие функции, встречающиеся на практике, очень часто принадлежат к этому классу. Кроме того, теория рациональных производящих функций совпадает, по существу, с теорией обыкновенных дифференциальных уравнений с постоянными коэффициентами.

Легко убедиться, что производящая функция последовательности Фибоначчи

1, 1, 2, 3, 5, 8, . . . ,

8

в которой каждый последующий член, начиная с третьего, является суммой двух предыдущих, является рациональной. Рекуррентное соотношение

fn = fn−1 + fn−2, f0 = f1 = 1, n ≥ 2,

(19)

впервые было опубликовано в 1202 г. в книге Леонардо Пизанского (Фибоначчи) "Liber abaci"при решении задачи о размножении кроликов. Нужно было ответить на вопрос "Сколько пар кроликов в один год рождаются от одной пары?"

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

φ(x) = 1 + x + 2x2 + 3x3 + 5x4 + . . .

(20)

умножим обе части равенства (20) на (x + x2) . Получим

(x + x2)φ(x) = x + x2 + 2x3 + 3x4 + . . . + x2 + x3 + 2x4 + 3x5 + . . . =

= x + 2x2 + 3x3 + 5x4 + . . .

или

(x + x2)φ(x) = φ(x) 1,

откуда следует представление

1

φ(x) = 1 − x − x2 .

Полученную формулу можно понимать как композицию двух производящих функций, а именно (1 − x)1 и x + x2 :

φ(x) = 1 + (x + x2) + (x + x2)2 + (x + x2)3 + . . . .

Оказывается, что рациональные производящие функции точно совпадают с рациональными функциями последовательностей, задаваемых линейными рекуррентными соотношениями. Точнее, справедлива следующая теорема, обратная приведенной в параграфе 1.

Теорема. Если производящая функция G(x) = a0 + a1x+ a2x2 + . . .

рациональна, G(x) = P (x) , где многочлены P (x) и Q(x) взаимно

Q(x)

просты, то, начиная с некоторого номера n , последовательность a0, a1, a2, . . . задается линейным рекуррентным соотношением

an+k = c1an+k−1 + c2an+k−2 + . . . + ckan,

где k - степень многочлена Q , а c1, c2, . . . , ck некоторые постоянные.

9

§4. Производящие функции и решение рекуррентных соотношений

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

Пусть последовательность (a0, a1, a2, . . .) удовлетворяет некоторому рекуррентному соотношению.

Опишем алгоритм нахождения решений рекуррентных соотношений с помощью производящих функций.

1.Записать рекуррентное соотношение и начальные данные для него

вследующем виде (если порядок соотношения равен k ):

a0 = . . . , a1 = . . . ,

· · · · · · · · ·

ak−1 = . . . ,

an = f(an−k+1, an−k, . . .), n ≥ k.

2. Умножить каждую строку на x в соответствующей номеру строки

степени и просуммировать строки для всех n ≥ 0 .

 

3. В полученном уравнении привести все суммы

к замкнутому

1

функции, обозначим ее

виду . Получить уравнения для производящей

 

G(x) .

4. Выразить G(x) в явном виде (решить уравнение, полученное на предыдущем шаге) и разложить производящую функцию в ряд по степеням x .

Пример 1. Решить рекуррентное соотношение a0 = 0 , a1 = 1 , an = 5an−1 6an−2 (n ≥ 2) с помощью производящей функции.

Шаг 1. Запишем заданное рекуррентное соотношение в виде:

a0 = 0, a1 = 1,

an = 5an−1 6an−2, n ≥ 2.

Шаг 2. Умножим верхнюю строку записи на x0 , следующую на x1 и последнюю на xn :

1 · a0 = 0 · 1,

x · a1 = 1 · x,

xn · an = (5an−1 6an−2)xn, n ≥ 2.

1Нужно образовать суммы с пределами суммирования от 0 до

10

Соседние файлы в папке новая папка 1