Случай равных корней характеристического многочлена
Если характеристическое уравнение имеет два равных корня, то общее решение имеет вид:
f(n)= a∙r1n+ β∙n∙r1n.
Доказательство. В случае равных корней характеристического уравнения выражение f(n)= a∙r1n+ β∙r1n нельзя считать общим решением, так как в формуле f(n)= a∙r1n+ β∙r1n= r1n∙ (a+β)= δ∙r1n останется только одна постоянная, и выбрать её так, чтобы удовлетворить двум начальным f(0)=a, f(1)=b условиям, невозможно. Найдем второе решение, отличное от r1n .
Если квадратное уравнение r2=С1 r+С2 имеет два совпадающих корня r1= r2 , то по теореме Виета С1=2 r1, а С2= – r12 . Поэтому уравнение записывается так:
r2= 2∙ r1∙r+–r12.
Тогда рекуррентное соотношение имеет вид:
f(n+2)= 2 r1f(n+1)+ – r12f(n).
Докажем, что nr1n является решением данного рекуррентного соотношения.
Подставим nr1n в полученное рекуррентное соотношение, получим верное равенство: (n+2)r1n+2=2r1(n+1)r1n+1–r12 nr1n =2nr1n+2+ 2r1n+2–nr1n+2 =(n+2)r1n+2, значит, nr1n является решением данного рекуррентного соотношения.
Таким образом, имеем два решения рекуррентного соотношения: r1n и nr1n . Общее решение будет иметь вид: f(n)= ar1n+ βnr1n.
Задача. Для последовательности с f(1)=0 и f(2)=8, удовлетворяющей рекуррентному соотношению f(к+2)=4f(к+1)–4f(к), выписать формулу общего члена.
Решение. Характеристическое уравнение имеет вид: r2–4r+4=0, его корни r1=r2=2. Общее решение рекуррентного соотношения: f(к)= a∙2к+ β∙к∙2к. Найдем коэффициенты a и β, пользуясь тем, что f(1)=0 и f(2)=8. Решим систему уравнений:
Получим a=–2 и β=2. Формула общего члена: f(n)=
–2(n+1)+n∙2(n+1).
Линейные рекуррентные соотношения, порядок которых больше 2, решаются аналогично.
Задача. Найдем общее решение рекуррентного соотношения:
f(n+4)=5f(n+3)–6f(n+2)–4f(n+1)+8f(n).
Решение. Характеристическое уравнение имеет вид: r4-5r3+6r2+4r-8=0.
Решая его, получаем корни: r1=2, r2=2, r3=2, r4=-1.
Значит, общее решение имеет вид:
f(n)=2n-1(a+β∙n+γ∙n2)+δ(–1)n-1.
Асимптотики
Асимптотики – это искусство оценивания и сравнения скоростей роста функций.
Нередко в задачах на нахождение общего решения рекуррентного соотношения не требуется точное значение n-го члена, чаще бывает достаточной оценка порядка, а иногда требуется только оценка скорости роста функции f(n). Для описания роста функции используется О-символика (ввел Поль Бахман в 1894 г.).
Запись f(n)=O(g(n)) означает, что существуют положительные константы M и n0, такие, что для всех целых n≥n0.
Пример 1.
Для рекуррентного соотношения f(n)=5f(n–1)–6f(n–2) с начальными членами f(1)=0 и f(2)=13 общее решение имеет вид f(n)=2n+3n. Можно сказать, что f(n)=O(3n).
Докажем это. Здесь M=2, а n0 =1.
Неравенство 2n+3n≤3n +3n верно для всех n≥1
3n +3n =2∙3n , значит, 2n+3n≤2∙3n, следовательно, f(n)=O(3n)
Пример 2.
Для последовательности Фибоначчи, как было доказано выше, формула общего члена имеет вид: . Легко доказать, что fn=O(2n).
Соотношение f(n)=O(g(n)) называют асимптотическим соотношением, оно означает, что функция f(n) растет не быстрее, чем функция g(n). Определены еще два асимптотических отношения.
Определение 1. Функция f(x) асимптотически равна (эквивалентна) g(x) (обозначается f(x)~g(x)) при x®x0, если lim (f(x)/g(x))=1.
Если функция f(x) эквивалентна g(x), то это означает, что f(x) растет с такой же скоростью, как и g(x).
Определение 2. f(x)=o(g(x)) при x®x0, если lim (f(x)/g(x))=0.
Если f(x)=o(g(x)), то это означает, что функция f(x) растет медленнее, чем g(x).
Замечание. В соотношениях, использующих О-символику, левые и правые части не симметричны: правая часть всегда содержит меньше информации, чем левая, и поэтому нельзя в любом контексте заменять левую часть выражения правой. Например, из двух корректных асимптотических равенств х=О(х2) и х2=О(х2) не следует, что х=х2.
Примеры.
1. Полином асимптотически равен своему старшему члену:
при х®¥.
2. Полином f(n)=2n5+6n4+6n2+18 есть О(n5).
3. Функция f(n)=2n есть O(2n+1) и o(5n+1).
4. Для линейного рекуррентного соотношения общее решение имеет вид:
f(n)=С1r 1n+C2r2n+…+Ckrkn. Если нас интересует только асимптотическое поведение последовательности, то достаточно рассмотреть лишь члены Ci(ri )n, у которых ri имеет максимальное абсолютное значение среди тех членов, у которых Ci≠0.
Существуют оценки и асимптотики для комбинаторных чисел. Наиболее известна асимптотика для чисел n!, называемая формулой Стирлинга: n! ~ .
О-символику используют также для оценки сложности алгоритма. Одной из важнейших характеристик алгоритма является его временная сложность в худшем случае.
Пусть некоторая задача имеет размерность n (например, длина массива при сортировке). Обозначим через t(n) максимальное число действий, необходимое для решения задачи. Под действием понимают выполнение «простой» операции – любой арифметической операции, операции сравнения, присваивания и т. п. При этом сложность алгоритма зависит от конкретного вида команд. Поэтому при оценке интересует лишь асимптотическая сложность алгоритма, то есть порядок роста сложности при условии, что размер задачи неограниченно возрастает.
Алгоритм считается достаточно хорошим, если сложность этого алгоритма есть О(nk) при некотором k>0. В таком случае говорят, что задача может быть решена за полиномиальное время, а сам алгоритм называется полиномиальным.