Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2Kurs_2Sem_Prakt_Zavdannja.doc
Скачиваний:
2
Добавлен:
21.09.2019
Размер:
414.21 Кб
Скачать

Практична робота № 5

Тема. Наближені обчислення та рекурентні співвідношення

Обчислення суми степеневого ряду.

Мета. 

  • Закріплення знань та навичок з програмування циклічного обчислювального процесу та його застосування для програмування рекурентних співвідношень;

  • Набуття первинних навичок в використанні методів наближених обчислень(обчислень з заданою точністю),

  • Набуття досвіду та знань з розробки програм з підпрограмами та організації рекурсивних підпрограм.

Завдання:

  1. Скласти ітеративну функцію обчислення значення суми ряду.

  2. Скласти рекурсивну функцію обчислення суми ряду.

  3. Порівняти результати отриманих обчислень з результатом роботи стандартної функції мови програмування.

Варіанти завдань

Методичні рекомендації, що до виконання роботи

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

Отриманий результат порівнюється зі значенням, що повертає відповідна бібліотечна функція мови програмування.

Порядок виконання роботи

  1. Розробити математичну постановку задачі та схему алгоритму для обчислення значення заданої в варіанті функції через рекурентне співвідношення, провести тестові розрахунки (не менше трьох прикладів);

  2. Розроблений алгоритм реалізувати як підпрограму-функцію з вхідним параметром х та результатом роботи – отримане значення функції в точці х: f(x)

В роботі необхідно скласти два варіанти цієї підпрограми-функції:

  • перша – ітеративна (обчислення виконуються в циклі),

  • друга –рекурсивна.

  1. Для рекурсивної підпрограми дослідити процес рекурсивного занурення та рекурсивного підйому, схему яких необхідно навести в звіті.

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

Короткі теоретичні відомості

Степеневі ряди є одним з інструментів обчислення значення математичних функцій, який використовується у вбудованих(стандартних) бібліотечних підпрограмах.

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

У загальному випадку це можна визначити так: Ri=F(Ri-1),

де

Ri - наступний член ряду,

Ri-1 - попередній член ряду, )

F(R) –правило, за яким утворюється новий член ряду.

Наближене значення суми ряду можна отримати або обмежуючись сумою перших N членів ряду, або обчислюючи суму з наперед заданою точністю e.

В ідеальному випадку під час обчислення суми ряду буде отриманий член ряду, що дорівнює 0. Враховуючи те, що в обчислювальній техніці при роботі з дійсними числами відбувається втрата точності та, крім того, зазвичай не має сенсу виконувати такі тривалі розрахунки, кожний наступний член ряду порівнюється не з 0, а з заданою припустимою похибкою розрахунків ε. Наприклад, ε можна взяти за 0.0001(майже 0).

Але цей спосіб обчислення можна застосовувати тільки тоді,коли члени ряду утворюють спадну послідовність (наступний член менше ніж попередній).

Отже обчислення суми ряду переривається коли: |Ri|<ε.

Розглянемо обчислення суми такого ряду:

Він буде спадним для ) F(R) .

По-перше, необхідно встановити рекурентне співвідношення для членів ряду. Якщо за R1 взяти тоді для отримання наступного члену необхідно чисельник помножити на - х2,а знаменник збільшити на 2.

Це співвідношення вірне і для R0=1 .

Ітеративний підхід

Якщо прийняти ,

тоді початкове значення a1=1, b1=1, S=0.

(1)

Наступні значення для a та b будуть:

(2)

Обчислення суми ряду переривається коли:

(3)

Рекурсивний підхід

З формули (1) зрозуміло, що S можна подати як функцію від a та b: S(a, b), тоді (1) трансформується в вираз:

(4)

де a’,b’, – наступні значення для a та b, що визначаються за формулою (2).

Враховуючи (3), цю ж саму функцію можна визначити так:

(5)

Перший виклик цієї рекурсивної функції буде S(1,1).

В результаті цього виклику буде отримане значення суми ряду.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]