Рекуррентные соотношения и уравнения
В этом разделе вы найдете бесплатные примеры решений рекуррентных соотношений методом характеристического уравнения и подбора частного решения по правой части. Также приведены краткие алгоритмы решения для двух методов и пример их использования для последовательности Фибоначчи.
Как решать рекуррентные соотношения?
Для решения рекуррентных соотношений применяют один из двух основных способов:
- Метод производящих функций
- Метод характеристического уравнения
В следующем разделе мы сравним, как выглядит процесс решения для одной и той же последовательности двумя методами.
Метод производящих функций
- Записать рекуррентное соотношение и начальные данные для него в следующем виде (если порядок соотношения равен k) a0=…,a1=…,ak−1=…,…an=…,n⩾k
- Домножить каждую строчку на z в соответствующей степени zk⋅ak и сложить все выражения для n≥0. В левой части получится сумма ∞∑n=0anzn — это производящая функция, назовем ее G(z). Правую часть преобразовать так, чтобы она превратилась в выражение, включающее G(z).
- Решить полученное уравнение относительно G(z).
- Разложить G(z) в степенной ряд, тогда коэффициент при zn будет искомым выражением для an.
Метод характеристических функций
Этот метод практически полностью аналогичен методу решения линейных неоднородных дифференциальных уравнений с постоянными коэффициентами, кратко алгоритм выглядит так:
- Записать соответствующее однородное рекуррентное уравнение (РУ): pn+kan+k+pn+k−1an+k−1+...+pnan=f→→pn+kan+k+pn+k−1an+k−1+...+pnan=0.
- Выписать для него характеристическое уравнение и найти его корни λi pn+kλk+pn+k−1λk−1+...+pn−1λ+pn=0.
- Выписать согласно полученным корням λ1,...,λk общее решение однородного рекуррентного соотношения (подробнее теорию см. по ссылке [1] ниже). C1λn1+...+Ckλnk для случая различных простых корней, C1λn1+C2nλn1+...+Cmnmλn1+...+Ckλnk для случая корня λ1кратностиm.
- Подобрать частное решение неоднородного рекуррентного соотношения по виду правой части (особенно удобно для правых частей вида μn∗P(n), P(n) - многочлен от n).
- Представить общее решение неоднородного РУ как сумму общего решения соответствующего однородного РУ и частного решения неоднородного РУ.
- Подставить начальные условия a0,a1,...,ak−1 и получить значения констант C1,...,Ck.
Решение для последовательности чисел Фибоначчи
Последовательность чисел Фибоначи - это последовательность, каждый элемент которой (кроме нулевого и первого) равен сумме двух предыдущих:
0,1,1,2,3,5,8,13,21,34,...Числа Фибоначчи растут быстро: f10=55, f20=6765, а f100=354224848179261915075.
Общая формула данной рекуррентной последовательности имеет вид6
f0=0,f1=1,fn=fn−1+fn−2,n≥2.Способ 1. Производящяя функция
Начинаем с второго шага алгоритма, домножаем на zn:
1⋅f0=0⋅1,z⋅f1=1⋅z,z⋅fn=(fn−1+fn−2)⋅zn,n≥2.Складываем все строчки:
f0+f1z+∞∑n=2fnzn=z+∞∑n=2fn−1zn+∞∑n=2fn−2zn.На третьем шаге алгоритма приводим все суммы к замкнутому виду:
G(z)=z+z∑∞n=2fn−1zn−1+z2∑∞n=2fn−2zn−2,G(z)=z+z∑∞n=1fnzn+z2∑∞n=0fnzn,G(z)=z+z(G(z)−f0)+z2G(z),G(z)=z+zG(z)+z2G(z),откуда выводим искомое выражение для производящей функции:
G(z)=z1−z−z2.Теперь разложим ее в степенной ряд. Для этого сначала разложим знаменатель на множители. Найдем корни уравнения:
1−z−z2=0,z1=−1−√52,z2=−1+√52.Таким образом,
G(z)=z1−z−z2=−z(z1−z)(z2−z)=z1/(z1−z2)z1−z+z2/(z2−z1)z2−z.Чтобы разложить данные дроби в ряды, используем известное разложение для дроби:
11−z=∞∑n=0zn=1+z+z2+z3+⋯.Рассмотрим первую дробь и поделим в ней числитель и знаменатель на z1:
z1/(z1−z2)z1−z=1z1−z211−zz1=1z1−z2∞∑n=0znzn1.Аналогично (но с делением на z2) действуем со второй дробью:
z2/(z2−z1)z2−z=1z2−z111−zz2=1z2−z1∞∑n=0znzn2.Таким образом,
G(z)=∞∑n=0fnzn=∞∑n=0(1z1−z21zn1+1z2−z11zn2)zn,и, следовательно,
fn=1z1−z21zn1+1z2−z11zn2.Преобразуем данное выражение, используя то, что
1/z1=−z2,1/z2=−z1,z1−z2=√5 fn=1√5((1+√52)n−(1−√52)n).И окончательно,
fn=12n√5((1+√5)n−(1−√5)n).Способ 2. Характеристическое уравнение
Запишем характеристический многочлен для fn=fn−1+fn−2, и найдем его корни:
x2=x+1,D=1+4=5,x1,2=1±√52.Тогда общее решение однородного рекуррентного уравнения имеет вид:
fn=C1(1−√52)n+C2(1+√52)n.Осталось найти значения произвольных постоянных C1,C2 из начальных условий f0=0,f1=1.
f0=C1+C2=0,f1=C1(1−√52)+C2(1+√52)=1.Решая систему, найдем
C1=−1/√5,C2=1/√5.Итоговое выражение для последовательности чисел Фибоначчи:
fn=−1√5(1−√52)n+1√5(1+√52)n==12n√5((1+√5)n−(1−√5)n).Результаты обоих методов совпали, решение вторым методом оказалось проще и короче.
Примеры решений
Задача 1. Решить рекуррентное соотношение f(n+2)=−6f(n+1)+7f(n)+n−3 с начальными условиями f(0)=2 и f(1)=4, сделать проверку
Задача 2. Решить рекуррентное соотношение f(n+2)=−2f(n+1)+3f(n)−3n с начальными условиями f(0)=1, f(1)=3 и сделать проверку
Задача 3. 1. Решить рекуррентное соотношение f(n+2)=−5f(n+1)−4f(n)+3n2
с начальными условиями f(0)=2, f(1)=3.
2. Проверить, удовлетворяет ли найденное решение начальным условиям и обращает ли оно рекуррентное соотношение в справедливое тождество.
Задача 4. Найти последовательность an, удовлетворяющую рекуррентному соотношению an+2+4an+1+3an=0 и начальным условиям a1=2, a2=4.
Полезные ссылки
- Рекуррентные последовательности, ЛОРУ, ЛНРУ Краткое изложений лекций по ДМ для 1 курса МГУ
- Решение рекуррентных соотношений Краткая теория и примеры, метод производящих функций
- Разностное уравнение и рекуррентная последовательность Более продвинутый материал
- Примеры: примитивно-рекурсивные функции
- Примеры: разностные уравнения