130 likes | 483 Views
Сьогодні на уроці Рекурентні послідовності. 10 клас 27.01.2014. Послідовність чисел або функцій, в якій кожен наступний член виражається через попередній, називається рекуррентно ю , а формули, що встановлюють цей зв'язок, - рекурентними співвідношеннями.
E N D
Сьогодні на уроціРекурентні послідовності 10 клас 27.01.2014
Послідовність чисел або функцій, в якій кожен наступний член виражається через попередній, називається рекуррентною, а формули, що встановлюють цей зв'язок, - рекурентними співвідношеннями. Рекурентні співвідношення зручно використовувати при складанні алгоритмів обчислення величин, при цьому немає необхідності зберігати всі проміжні значення. У виразі наступного значення деякої величини через її попередні значення і полягає суть методу рекурентних співвідношень.
Якщопослідовність чисел абофункційскінчена, то для знаходженнязначеньфункцій (наприклад, суми, добуткуабо N-ого члена) використовуєтьсяарифметичний цикл, тобто цикл, в якомузаздалегідьвідомо число повторень. Труднощі при вирішенні таких завданьпредставляєзнаходженнясамоїрекурентнойформули. Для пошукурекурентноїформули, будемоспиратися на метод математичноїіндукції.
Приклад 5. Для заданого натурального N і дійсного х (х> 0) обчислити значення виразу: У цьому випадку рекурентність не настільки очевидна. Спробуємо знайти її методом індукції. Будемо вважати, що шуканезначення виразу є N-й елемент послідовності наступного вигляду: Звідси видно зв'язок:
uses crt; Vara,x: Real; i,n: Integer; Begin clrscr; Write('X='); ReadLn(X); Write(‘n='); ReadLn(n); a:= Sqrt(X); For i:=1 To n Do begin WriteLn(i,‘ ‘,a:6:2); a:=Sqrt(x+a); end; End.
Приклад: Числа Фібоначі. а1=1, а2=1, аn+2=an+an+1маємо a3=a1+a2=1+1=2; a4=a2+a3=1+2=3; a5=a3+a4=2+3=5; a6=a4+a5=3+5=8; a7=a5+a6=5+8=13; a8=a6+a7=8+13=21;
У підсумку отримуємо послідовність 1, 1, 2, 3, 5, 8, 13, 21, 34, ... Кожен її член, крім перших двох, дорівнює сумі двох попередніх йому членів. Приклад програми виведення 50 перших членів послідовності Фібоначі: uses crt; Var an,anp1, anp2,i: integer; begin An:=1; Anp1:=1; Writeln ('Chislafibonachi'); writeln(1,' ',1); writeln(2,' ',1); For i:=3 to 10 do begin Anp2:=an+anp1; Writeln(i, ' ',anp2); An:=anp1; Anp1:=anp2; End; End.
№3. Обчислити суму ряду чисел 1/12 + 1/22 + 1/32 + ... + 1/n2, де n визначається користувачем. uses crt; var n, i: integer; a, sum: real; Begin write ('n = '); readln (n); sum := 0; for i := 1 to n do begin a:= 1/(i*i); writeln(i,' ',a:5:2); sum := sum +a;end; writeln ('s= ', sum:6:5); readln end.
2. Серед чисел Фібоначчізнайти та вивести на екрантількипарні, аботількикратні 3, скориставшисьвластивостями чисел Фібоначчі 2)кожнетретє число Фібоначчі парне (F3 = 2, F6 = 8, F9 = 34); 3)кожнечетвертеділиться на три (F4 = 3, F8 = 21, F12 = 144); 4)кожнеп'ятнадцятезакінчується нулем (F15 = 610); 5)два сусідніх числа Фібоначчівзаємнопрості;
Введемо значення змінних: а - поточний (k-ий елемент послідовності), х - значення першого, k - кількість елементів, d - різниця. Алгоритм має циклічну структуру, так як повторюватися будуть команди обчислення k-ого елемента послідовності і додавання його до суми. Відповідна програма:
http://pascal-cycles.blogspot.com/search/label/ http://algmet.narod.ru/prog.htm http://pas1.ru/taskcycle