- •Глава I. Азы комбинаторики
- •§ 1. Основные принципы комбинаторики
- •§ 2. Размещения и перестановки без повторений
- •§ 3. Размещения и перестановки с повторениями
- •§ 4. Подмножества конечных множеств и сочетания
- •§ 5. Сочетания с повторениями
- •§ 6. Принцип включения-исключения
- •§ 7. Примеры решения простейших комбинаторных задач
- •§ 8. Примеры других комбинаторных объектов и сводка некоторых результатов
- •Биномиальные коэффициенты
- •Числа Стирлинга
- •Глава II. Рекуррентные соотношения
- •§ 1. Определение и примеры рекуррентных соотношений
- •Основы метода конечных разностей
- •§ 2. Метод производящих функций для нахождения общего решения линейного однородного рекуррентного соотношения второго порядка
- •Алгоритм нахождения общего решения
- •§ 3. Решение линейных неоднородных рекуррентных соотношений с постоянными коэффициентами и специальной правой частью
- •§ 4. Метод производящих функций для решения общего линейного однородного рекуррентного соотношения с постоянными коэффициентами
- •Алгоритм нахождения общего решения
- •§ 5. Частные решения линейных неоднородных рекуррентных соотношений с постоянными коэффициентами и специальной правой частью
- •§ 6. Некоторые примеры применения производящих функций
Основы метода конечных разностей
Как по заданной последовательности {fn} построить рекуррентное соотношение k-го порядка, которому она удовлетворяет ? В некоторых случаях можно применить следующий приём, связанный с рассмотрением конечных разностей последовательности {fn} :
n = fn+1 – fn , n = n+1 – n , … , (m+1)n = (m)n+1 – (m)n , …
Легко получить следующие формулы:
n = n+1 – n = (fn+2 – fn+1) – (fn+1 – fn) = fn+2 – 2fn+1 + fn ,
n = n+1 – n = (fn+3 –2fn+2+fn+1) – (fn+2 –2fn+1+fn) = fn+3 –3fn+2+3fn+1 –fn ,
(m)n = .
Пример: Рассмотрим последовательность квадратов f(n) = n2 (n N0). Вычислим последовательные разности: n = f(n+1) – f(n) = 2n+1. Таким образом, f(n+1) = f(n) + 2n+1 – рекуррентное соотношение первого порядка.
Если вычислить вторые разности n = n+1 – n = (2(n+1)+1) – (2n+1) = = 2, то получим f(n+2) – 2f(n+1) + f(n) = 2, т.е. f(n+2) = 2f(n+1) – f(n) + 2 – рекуррентное соотношение второго порядка. За счёт повышения порядка соотношения упрощается добавка в правой части: вместо 2n + 1 получили 2.
Вычислим n = n+1 – n = 2 – 2 = 0. Таким образом, получаем рекуррентное соотношение третьего порядка: f(n+3) = 3f(n+2) – f(n+1) + f(n).
Оказывается, метод последовательных разностей позволяет задать рекуррентным соотношением любую последовательность натуральных степеней {nk} с фиксированным показателем k N.
Этот метод можно применять и к другим видам последовательностей. Например, если f(n) = , то можно рассмотреть вспомогательную более простую последовательность u(n) = log5 f(n) = n2 найти для неё с помощью метода конечных разностей рекуррентное соотношение, например, соотношение u(n+1) = u(n) + 2n + 1 и вернуться обратно к последовательности f(n):
log5 f(n+1) = log5 f(n) + 2n + 1 f(n+1) = f(n)52n+1.
Если выбрать рекуррентное соотношение u(n+2) = 2u(n+1) – u(n) + 2, то получим log5 f(n+2) = 2log5 f(n+1) – log5 f(n) + 2 f(n+2) = 25 .
5. Числа Фибоначчи. Рассмотрим следующую задачу. Пара кроликов раз в месяц приносит приплод из двух крольчат (самки и самца), которые через два месяца после рождения тоже приносят приплод. Сколько кроликов появится через год, если в начале была одна пара и в течение года кролики не умирают и их воспроизводство не прекращается ?
Пусть f(n) – количество пар кроликов через n месяцев. Ясно, что по условию f(0) = 1, f(1) = 2. Пусть уже прошёл n – 1 месяц и известны числа f(0), f(1), … , f(n – 1). Через месяц размножатся все пары кроме последних f(n – 1) – f(n – 2) пар, т.е. появится f(n – 1) – (f(n – 1) – f(n – 2)) = f(n – 2) новых пар, и всего станет f(n – 1) + f(n – 2) пар кроликов. Таким образом,
.
Полученная последовательность 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, … называется последовательностью чисел Фибоначчи. Она является рекуррентной последовательностью порядка 2.
Рассмотренные примеры показывают, что рекуррентные последовательности встречаются в самых разных математических задачах. В примерах 1, 2, 3 были найдены общие решения рекуррентных соотношений в смысле следующего определения: последовательность (c0 , … , ck–1 , n), зависящая от k независимых параметров c0 , … , ck–1 С , называется общим решением рекуррентного соотношения f(n+k) = F(n, f(n+k–1), f(n+k–2), … , f(n)) (n N0) порядка k , если одновременно выполнены два условия:
(ОР1): при любых значениях c0 , … , ck–1 С (c0 , … , ck–1 , n) является решением рассматриваемого рекуррентного соотношения, т.е. верны равенства
(c0 , … , ck–1 , n+k) = F(n, (c0 , … , ck–1 , n+k–1), … , (c0 , … , ck–1 , n)).
(ОР2): для любого решения a(n) рассматриваемого соотношения найдутся значения параметров c0 , … , ck–1 С , что a(n) = (c0 , … , ck–1 , n) для любого n N0 .
В рассмотренных примерах (с, n) = сn! – общее решение рекуррентного соотношения f(n + 1) = (n + 1)f(n) , (a, n) = aqn – общее решение рекуррентного соотношения f(n + 1) = qf(n), (a, d) = a + dn – общее решение рекуррентного соотношения f(n + 2) = 2f(n + 1) – f(n). Последовательность чисел Фибоначчи, являясь решением рекуррентного соотношения второго порядка f(n+1) = f(n) + f(n – 1), удовлетворяет начальным условиям f(0) = 1, f(1) = 2.
Основная задача теории рекуррентных соотношений может быть сформулирована как задача нахождения общих решений рекуррентных соотношений. При этом выше было показано, что по первым k значениям последовательности-решения однозначно восстанавливаются остальные её члены. Поэтому важен не процесс вычисления решения, а отыскание явной формулы, задающей n-й член общего решения.
Наиболее изучены линейные рекуррентные соотношения с постоянными коэффициентами, т.е. соотношения вида
f(n + k) = a1f(n + k – 1) + … + akf(n) + b(n),
где a1 , … , ak – заданные постоянные комплексные числа – коэффициенты соотношения, ak 0, а b(n) – заданная последовательность – свободный член соотношения. Если b(n) = 0 при любом n N0 , то линейное рекуррентное соотношение называется однородным, в противном случае – неоднородным.
Примеры: В рассмотренных выше примерах линейными с постоянными коэффициентами были соотношения f(n+1) = qf(n), f(n+2) = 2f(n+1) – f(n), f(n+1) = f(n) + 2n+1, f(n+2) = f(n) + f(n–1). Все, кроме третьего, являются однородными.
Теорема (о линейной структуре решений линейного рекуррентного соотношения). (1) Если {un} и {vn} – решения линейного однородного соотношения f(n+k) = a1f(n+k–1)+…+akf(n), то его решениями будут и последовательности {un + vn} , {un – vn} и {un} ( С). Другими словами, множество решений линейного однородного соотношения замкнуто относительно сложения, вычитания и умножения на скаляры.
(2) Общее решение линейного рекуррентного соотношения с постоянными коэффициентами является суммой общего решения соответствующего линейного однородного соотношения и некоторого частного решения исходного неоднородного рекуррентного соотношения.
Доказательство. (1) проверяется непосредственно: если
un+k = a1un+k–1 + … + akun , vn+k = a1vn+k–1 + … + akvn ,
то (un+k ± vn+k) = (a1un+k–1 + … + akun ) ± (a1vn+k–1 + … + akvn ) =
= a1(un+k–1 ± vn+k–1 ) + … + ak(un ± vn ),
т.е. {un ± vn} – снова решение.
Аналогично, (un+k ) = (a1un+k–1 + … + akun ) =
= a1(un+k–1 ) + … + ak(un ),
т.е. {un } – решение линейного однородного соотношения.
(2) Пусть (c0 , … , ck–1 , n) = (с, n), где для краткости введено обозначение c = (c0 , … , ck–1) – общее решение линейного однородного рекуррентного соотношения f(n+k) = a1f(n+k–1)+…+akf(n), а v(n) – произвольное частное решение неоднородного соотношения f(n+k) = a1f(n+k–1)+…+akf(n) + b(n).
Вначале покажем, что (c , n) = (c , n)+v(n) будет решением рассматриваемого неоднородного соотношения. Тогда
(с, n+k) = (с , n+k) + v(n+k) =
= (a1( c, n+k–1)+…+ak(c, n)) + (a1v(n+k–1)+…+akv(n)+b(n)) =
= a1(( c, n+k–1)+v(n+k–1)) + … + ak((c, n) + v(n)) + b(n)=
= a1(c, n+k–1)+…+ak(c, n) + b(n),
что и требовалось. Таким образом, (с, n) = (c0 , … , ck–1 , n) – решение неоднородного соотношения.
Докажем теперь, что (c0 , … , ck–1 , n) – общее решение этого неоднородного рекуррентного соотношения. Для этого нужно понять, что любое решение получается при некоторых значениях параметров c0 , … , ck–1 . Пусть w(n) – любое решение исходного неоднородного соотношения. Тогда w(n) – v(n) будет решением однородного соотношения: (w(n+k) – v(n+k)) =
= (a1w(n+k–1) + … + akw(n) + b(n)) – (a1v(n+k–1) + … + akv(n) + b(n)) =
= a1(w(n+k–1) – v(n+k–1)) + … + ak(w(n) – v(n)).
Поскольку (с, n) – общее решение однородного соотношения, то найдётся такой набор c0 = 0 , … , ck–1 = k–1 , что w(n)–v(n) = (1 , … , k , n) , поэтому w(n) = (1 , … , k , n)+v(n) = (1 , … , k , n), что и требовалось.
Теорема доказана.
Эта теорема сводит задачу нахождения общего решения линейного неоднородного рекуррентного соотношения порядка k c постоянными коэффициентами к нахождению общего решения соответствующего линейного однородного рекуррентного соотношения и поиску частного решения исходного неоднородного соотношения.