- Решение рекуррентных соотношений
- Содержание
- Определения [ править ]
- Метод производящих функций [ править ]
- Примеры [ править ]
- [math]1[/math] пример [ править ]
- [math]2[/math] пример: числа Фибоначчи [ править ]
- [math]3[/math] пример [ править ]
- [math]4[/math] пример [ править ]
- Выведение рекуррентной формулы
- Решение
Решение рекуррентных соотношений
Содержание
Определения [ править ]
Определение: |
Рекуррентная формула (англ. recurrence relation) — формула вида [math]a_n=f(n, a_ |
Для рекуррентного соотношения, которому удовлетворяет последовательность [math] \ < a_n \>[/math] мы часто хотим получить выражение для [math]a_n[/math] . Например, для рекуррентного соотношения, задающего числа Фибоначчи:
[math] F_0 = 0,\qquad F_1 = 1,\qquad F_
[math]a_n[/math] член может быть записан следующим образом: [math]a_n=\dfrac<1><\sqrt<5>>\left( \biggl( \dfrac<1+\sqrt<5>> <2>\biggr)^n — \biggl( \dfrac<1-\sqrt<5>> <2>\biggr)^n \right).[/math]
Для этого можно использовать метод производящих функций (англ. generating function method).
Метод производящих функций [ править ]
Алгоритм получения выражения для чисел [math]a_
- Записать рекуррентное соотношение и начальные данные для него в следующем виде (если порядок соотношения равен [math]k[/math] ): [math]a_ <0>= …, \\ a_ <1>= …, \\ a_
= …, \\ … \\ a_ = …, n\geqslant k[/math] - Домножить каждую строчку на [math]z[/math] в соответствующей степени ( [math]z^
\cdot a_ = … \cdot z^ [/math] ) и сложить все выражения, многоточие надо рассматривать как множество из выражений, где [math]n \in [k, +\infty)[/math] . В левой части получится сумма [math]\displaystyle\sum_ ^ <\infty>a_nz^n[/math] — это производящая функция, назовем ее [math]G(z)[/math] . Правую часть преобразовать так, чтобы она превратилась в выражение, включающее [math]G(z)[/math] . - Решить полученное уравнение, получив для [math]G(z)[/math] выражение в замкнутом виде.
- Разложить [math]G(z)[/math] в степенной ряд, коэффициент при [math]z_n[/math] будет искомым выражением для [math]a_n[/math] .
Примеры [ править ]
[math]1[/math] пример [ править ]
Производящие функции позволяют решать рекуррентные соотношение механически по одному и тому же алгоритму. Рассмотрим общую схему на простом примере, который позволит продемонстрировать базовые приёмы работы.
Задано линейное однородное рекуррентное соотношение порядка [math]2[/math] с постоянными коэффициентами:
[math]\begin
Порядок соотношения — это его «глубина», то есть количество предшествующих элементов, требуемых для вычисления элемента с номером [math]n[/math] . В данном случае порядок равен [math]2[/math] , так как для вычисления [math]a_n[/math] требуется знать [math]a_
Будем искать производящую функцию последовательности в виде
[math] G(z)=\displaystyle\sum_
с этой целью умножим верхнюю строчку в записи рекуррентного соотношения на [math]z^0[/math] , следующую — на [math]z^1[/math] и последнюю — на [math]z^n[/math] :
[math]\begin
Теперь сложим все уравнения для всех значений [math]n[/math] :
[math] \underbrace
Левая часть уравнения в точности равна [math]G(z)[/math] , а в правой части есть суммы, очень похожие на функцию [math]G(z)[/math] , но не равные ей. Эти суммы нужно привести к виду [math]G(z)[/math] . Начнём с первой:
[math] \displaystyle\sum_
Равенство [math](1)[/math] получатся вынесением [math]z[/math] в первой степени за знак суммы, это необходимо, чтобы уровнять степень переменной [math]z[/math] и индекс переменной a внутри суммы. Действие [math](2)[/math] — изменение индекса суммирования, которое позволяет избавиться от [math]n-1[/math] . Равенство [math](3)[/math] получается, если прибавить и снова отнять значение [math]a_0[/math] , чтобы получить полную сумму от [math]n=0[/math] до [math]∞[/math] . Равенство [math](4)[/math] справедливо в силу того, что [math]a_0=0[/math] .
Аналогичные манипуляции со второй суммой дают нам выражение
[math] \displaystyle\sum_
Теперь наше исходное уравнение для производящей функции принимает вид:
[math] G(z) = z + 5zG(z) -6z^2G(z), [/math]
откуда получаем производящую функцию последовательности в замкнутом виде:
[math] G(z) = \dfrac
Отыскав производящую функцию в замкнутом виде, её нужно снова разложить в ряд. Это можно сделать разными способами, но самый простой из них — разбить всю дробь на простые дроби и применить формулу для разложения [math]\dfrac<1><1-z>[/math] . Итак, разложим знаменатель функции на множители:
[math] G(z) = \dfrac
Теперь разобьём дробь на сумму простых дробей:
[math] \dfrac
Из этого разложения следует, что
[math] \dfrac<1><1-3z>= \displaystyle\sum_
Таким образом,
[math] G(z) = \displaystyle\sum_
С другой стороны, мы искали [math]G(z)[/math] в виде
[math] G(z)=\displaystyle\sum_
поэтому, в силу равенства рядов, [math]a_n=3^n-2^n[/math] (для [math]n\geqslant 0[/math] ).
[math]2[/math] пример: числа Фибоначчи [ править ]
Рассмотрим рекуррентное соотношение для чисел Фибоначчи:
[math]\begin
Первый шаг алгоритма мы уже выполнили, записав рекуррентное соотношение. Выполним второй шаг:
[math]\begin
Складываем все строчки:
[math] f_0 + f_1 z + \displaystyle\sum_
Третий шаг алгоритма требует привести все суммы к замкнутому виду:
[math]\begin
откуда получаем замкнутое выражение для производящей функции:
[math] G(z) = \dfrac
Осталось разложить её в ряд (чего требует четвёртый шаг алгоритма). С этой целью нужно разложить знаменатель на множители. Найдем корни уравнения:
[math]\displaylines< 1-z-z^2 = 0 \cr z_1=-\dfrac<1-\sqrt<5>><2>, z_2=-\dfrac<1+\sqrt<5>><2>. > [/math]
Нам известно разложение следующей рациональной функции:
[math] \dfrac<1> <1-z>= \displaystyle\sum_
Рассмотрим первую дробь и поделим в ней числитель и знаменатель на [math]z_1[/math] :
[math] \dfrac
Аналогично (но с делением на [math]z_2[/math] ) поступим со второй дробью:
[math] \dfrac
Данное выражение можно упростить, если обратить внимание на то, что [math]1/z_1=-z_2[/math] , [math]1/z_2=-z_1[/math] и [math]z_1-z_2=√5[/math] . Подставим [math]z_1[/math] и [math]z_2[/math] в предыдущее выражение:
[math] f_n=\dfrac<1><\sqrt<5>>\left( \biggl( \dfrac<1+\sqrt<5>> <2>\biggr)^n — \biggl( \dfrac<1-\sqrt<5>> <2>\biggr)^n \right). [/math]
[math]3[/math] пример [ править ]
Найдём производящую функцию для последовательности квадратов чисел Фибоначчи: $1, 1, 4, 9, 25, \ldots, f_k^2,\ldots$.
По определению последовательности Фибоначчи выполняется:
[math] \left\< \begin
Возведя в квадрат и сложив, получим:
[math] \begin
Обозначим рассматриваемую последовательность [math]A[/math] , а её члены [math]a_n[/math] , тогда:
[math]a_n = 2a_
Рекуррентное соотношение:
[math] \begin
Приведём суммы к замкнутому виду:
[math] \begin
откуда получаем замкнутое выражение для производящей функции:
[math]G(z) = \dfrac<1 - z><1 - 2z 2z^2 + z^3>.[/math]
[math]4[/math] пример [ править ]
Рассмотрим следующее рекуррентное соотношение:
[math]\begin
Следующие действия аналогичны тем, которые мы делали для чисел Фибоначчи:
[math]\begin
Вспомним, что
[math] (z^n)’ = nz^
поэтому
[math] \displaystyle\sum_
Последняя сумма может быть свёрнута:
[math] \displaystyle\sum_
Подставив свёрнутое выражение обратно, имеем,
[math] z\biggl(\displaystyle\sum_
Таким образом, наше последнее уравнение примет вид
[math] G(z) = 1 -4z + 6zG(z)-8z^2G(z) + \dfrac
Это уравнение для производящей функции. Из него выражаем [math]G(z)[/math] :
[math] G(z) = \dfrac<1-6z+11z^2-5z^3><(1-6z+8z^2)(1-z)^2>. [/math]
Дальше мы знаем что делать со всеми этими дробями, кроме, разве лишь, первой. Рассмотрим её (без множителя) подробнее:
[math] \dfrac<1> <(1-z)^2>=(1-z)^ <-2>=\displaystyle\sum_
Источник
Выведение рекуррентной формулы
помогите вывести рекуррентную формулу и посчитать сумму членов ряда, больших заданного числа e. Предусмотреть ввод х и е. Не совсем понимаю, как выводить эту рекуррентную формулу. все какая-то ерунда получается..
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Выведение рекуррентной формулы
Помогите вывести рекуррентную формулу для ряда на фотографии. Если можно, с объяснением.
Использование рекуррентной формулы
Ребят, я в с++ новичок. Помогите пожалуйста с решением: Получить (25)^1/5 и (72)^1/5, пользуясь.
Вывод рекуррентной формулы для вычисления члена ряда
Здравствуйте, можете пожалуйста помочь: Вычислить с точностью ε сумму бесконечного ряда: .
Выделение рекуррентной формулы
http://s004.***********/i207/1103/c9/df69645c848c.jpg Как бы тут извернуться?
Рекуррентная формула — это когда каждый элемент выражен с помощью предыдущего (кроме самого первого). То есть нужно найти:
Исходя из предоставленной суммы выводим:
Исходя из этого находим :
Решение
Составление рекуррентной формулы.
Здравствуйте. Можете объяснить, как составлять рекуррентную формулу в данном случае.
Вывод рекуррентной формулы
Приветствую, помогите пожалуйста вывести рекуррентную формулу
Алгоритм вычисления числа сочетаний с использованием рекуррентной формулы
Заданием было(дословно): Запрограммировать рекурсивный алгоритм вычисления числа сочетаний.
Где найти доказательство рекуррентной формулы для подходящих дробей?
Подскажите, пожалуйста, где можно найти доказательство рекуррентной формулы для подходящих дробей.
Источник