Рекурентне співвідношення

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

Рекурентне співвідношення або рекурентне рівняння — рівняння, що встановлює залежність між членами невідомої послідовності та індексом.

Рекурентні співвідношення мають застосування в аналізі алгоритмів, цифровій обробці сигналів, економіці та біології. У комбінаториці часто виникають задачі, які можна звести до аналогічних задач для меншої кількості об'єктів. У цьому випадку задачу можна розв'язати за допомогою рекурентного співвідношення.

Задача розв'язання рекурентного співвідношення полягає в знаходженні невідомої послідовності. Загалом вона має нескінченно багато розв'язків. Кількість розв'язків обмежується заданням значень початкових членів невідомої послідовності.

Основні поняття і означення

Рекурентним співвідношенням для послідовності {an} називається рівняння, яке виражає an через індекс Шаблон:Mvar та Шаблон:Mvar попередніх членів даної послідовності, а саме: an1,an2,,ank, для всіх цілих чисел Шаблон:Mvar, не менших за Шаблон:Mvar, де Шаблон:Mvar — натуральне число, яке є константою або залежить від Шаблон:Mvar.

Послідовність називається розв'язком рекурентного співвідношення, якщо її члени задовольняють дане рекурентне співвідношення.

Початковими умовами називаються додаткові умови, що накладаються на послідовність, заданням значень її початкових членів.

Розв'язок рекурентного співвідношення, що залежить від довільних сталих, які можуть бути підібраними при будь-яких початкових умовах, називається загальним. Частковим розв'язком рекурентного співвідношення називається будь-який розв'язок, що може бути отриманий із загального, встановленням значень його сталих.

Приклади

an=an1+an2,a0=1,a1=1.
an=an1+d.
an=qan1.
  • Рекурентне співвідношення послідовності n!:
an=nan1,a0=1.
an=i=0n1aiani1,a0=1.
sin(n+1)α=2sinαcosnα+sin(n1)α.

Лінійні рекурентні співвідношення

Лінійні однорідні рекурентні співвідношення зі сталими коефіцієнтами

Лінійним однорідним рекурентним співвідношенням зі сталими коефіцієнтами порядку Шаблон:Math називається рівняння

an+c1an1+c2an2++ckank=0,

де всі коефіцієнти c1,c2,,ck — сталі.

Ці коефіцієнти визначають характеристичний поліном (або допоміжний поліном) цього співвідношення

p(λ)=λk+c1λk1+c2λk2++ck.

Згідно з основною теоремою алгебри рівняння p(λ)=0, яке називається характеристичним, має k коренів. Ці корені відіграють вирішальну роль в знаходженні невідомої послідовності.

Якщо всі корені λ1,λ2,,λk прості, то загальний розв'язок такого рекурентного співвідношення має вигляд:

an=B1λ1n+B2λ2n++Bkλkn,

де Bi — сталі.

У випадку коли характеристичне рівняння має багатократні корені λ1,λ2,,λs загальний розв'язок матиме вигляд:

an=i=1s(Bi1+Bi2n++Bilinli1)λin,

де li — кратність кореня λi, Bij — сталі.

Якщо задані початкові умови для лінійного однорідного рекурентного співвідношення зі сталими коефіцієнтами порядку Шаблон:Math, то коефіцієнти Bi (або Bij) знаходяться за допомогою розв'язання відповідної системи лінійних рівнянь. У іншому випадку ці коефіцієнти можуть мати будь-які значення, тобто рекурентне співвідношення має нескінченну кількість розв'язків. І ці розв'язки утворюють Шаблон:Math-вимірний лінійний простір.

Лінійні неоднорідні рекурентні співвідношення зі сталими коефіцієнтами

Лінійним неоднорідним рекурентним співвідношенням зі сталими коефіцієнтами порядку Шаблон:Math називається рівняння

an+c1an1+c2an2++ckank=dn,

де всі коефіцієнти c1,c2,,ck — сталі, {dn} — деяка відома ненульова послідовність.

Загальний розв'язок такого співвідношення дорівнює сумі його часткового розв'язку і загального розв'язку відповідного лінійного однорідного співвідношення

an+c1an1+c2an2++ckank=0.

Для відшукання часткового розв'язку лінійного неоднорідного рекурентного співвідношення важливу роль відіграє принцип суперпозиції.[1] Його застосування полягає в тому, що вільний член dn подається у вигляді суми, в певному сенсі, простіших функцій dn(1),,dn(m). Далі використовується твердження, що якщо послідовність {an(j)} є розв'язком рекурентного співвідношення

an+c1an1+c2an2++ckank=dn(j),

де Шаблон:Math, то розв'язок початкового лінійного неоднорідного рекурентного співвідношення має наступний вигляд:

an=j=1man(j).

У випадку, коли dn=(elnl+el1nl1++e0)sn, де el,el1,,e0 та Шаблон:Math — сталі, частковий розв'язок неоднорідного рекурентного співвідношення матиме вигляд nr(blnl+bl1nl1++b0)sn, де bl,bl1,,b0 — деякі сталі, r=0, якщо Шаблон:Math не дорівнює жодному кореню характеристичного рівняння відповідного лінійного однорідного співвідношення, інакше Шаблон:Math дорівнює кратності кореня, з яким збігається Шаблон:Math.[2]

Лінійні рекурентні співвідношення з поліноміальними коефіцієнтами

Шаблон:Main Лінійним рекурентним співвідношенням з поліноміальними коефіцієнтами порядку Шаблон:Math називається рівняння

p0(n)an+p1(n)an1+p2(n)an2++pk(n)ank=qn,

де всі коефіцієнти p0,p1,,pk — відомі поліноми, причому Шаблон:Math і Шаблон:Math ненульові, {qn} — деяка відома послідовність.

Методи розв'язання таких рекурентних співвідношень почали з'являтись з пізніх 1980-х. Сергій Абрамов спочатку розробив Шаблон:Нп[3], а потім — раціональних розв'язків.[4] Останній метод отримав назву «Шаблон:Нп». У 1992 Шаблон:Нп знайшов Шаблон:Нп, названий пізніше його ім'ям, для знаходження розв'язків у більш специфічному класі послідовностей.[5]

Нелінійні рекурентні співвідношення

Розв'язки нелінійних рекурентних співвідношень можна знаходити за допомогою генератрис.

Для цього нелінійне рекурентне співвідношення an=R(n,an1,an2,,ank) помножимо на tn, і отриману рівність просумуємо по всіх n0. Після цього у лівій частині рівності отримаємо генератрису

A(t)=n=0antn,

а праву частину перетворимо так, щоб вона стала виразом від A(t). Далі розв'язуємо отримане рівняння відносно A(t).

Потім розкладаємо A(t) у степеневий ряд. Коефіцієнти отриманого ряду утворюють розв'язок початкового нелінійного рекурентного співвідношення.[6]

Застосування

Аналіз алгоритмів

Рекурентні співвідношення мають принципове значення в аналізі алгоритмів.[7][8] Якщо алгоритм влаштований так, що він розбивається на декілька менших підзадач, то можна описати час його роботи з допомогою рекурентного співвідношення.

Простий приклад це час, необхідний алгоритму для пошуку елемента в масиві з n елементів, в найгіршому випадку.

Примітивний алгоритм перебирає масив зліва направо. Найгіршим випадком, буде ситуація в якій потрібний елемент є останнім. В цьому випадку кількість порівнянь дорівнюватиме n.

Найкращим алгоритмом для цієї задачі є бінарний пошук. Однак для нього потрібен відсортований масив. Спочатку він перевіряє, чи знаходиться потрібний елемент в середині масиву. Якщо ні, то перевіряє, чи середній елемент більший або менший за шуканий елемент. Після цього половина масиву може бути відкинута, і алгоритм може працювати знову на половині, що залишилась. Кількість порівнянь при виконанні цього алгоритму описується наступним рекурентним співвідношенням:

c1=1
cn=1+c[n/2].

За допомогою цього співвідношення можна довести, що часова складність бінарного пошуку дорівнює O(log2(n)).

Економіка

Шаблон:Main Рекурентні співвідношення, особливо лінійні рекурентні співвідношення, використовуються як в теоретичній, так і в емпіричній економіці.[9][10] Зокрема, в макроекономіці можна розробити модель різних широких секторів економіки (фінансовий сектор, сектор товарів, ринок праці тощо), в якій дії деяких агентів залежать від лагових змінних. Потім модель розв'язується для поточних значень ключових змінних (відсоткова ставка, реальний ВВП тощо) відносно минулих та поточних значень інших змінних.

Математична біологія

Деякі з найвідоміших рекурентних співвідношень беруть свій початок у спробі моделювання популяційної динаміки. Наприклад, числа Фібоначчі колись використовували як модель зростання популяції кроликів.

Логістичне відображення використовується або безпосередньо для моделювання зростання популяції, або як відправна точка для більш детальних моделей популяційної динаміки. У цьому контексті для моделювання взаємодії двох або більше популяцій часто використовують систему різницевих рівнянь.

Наприклад, Шаблон:Нп для взаємодії «хазяїн-паразит» має вигляд

{Nt+1=λNteaPtPt+1=Nt(1eaPt),

де Шаблон:Math — кількість хазяїв, а Шаблон:Math — кількість паразитів у момент часу Шаблон:Math.

Для просторової екології корисними є інтегрорізницеві рівняння, які є формою рекурентних співвідношень. Ці та інші різницеві рівняння особливо добре підходять для моделювання одновікових популяцій.

Див. також

Шаблон:Wikibooks

Примітки

Шаблон:Reflist

Література

Українською

Іншими мовами

Шаблон:Бібліоінформація Шаблон:Портали