y4 + ... + yn - 2, а h = (b - a)/n.
Завдання. Нехай потрібно проінтегрувати функцію f (x) = x Ві (x - 5) ВІ на відрізку [0, 6] (рис. 2). На цьому відрізку функція неперервна і приймає тільки невід'ємні значення, тобто знакопостоянна. br/>В
рис. 2
Для виконання поставленої завдання складена нижчеописаного програма, наближено обчислює визначений інтеграл за допомогою формули Сімпсона. Програма складається з трьох функцій main, f і integral. Функція main викликає функцію integral для обчислення інтеграла і роздруковує на екрані результат. Функція f приймає аргумент x типу float і повертає значення интегрируемой функції в цій точці. Integral - основна функція програми: вона виконує всі обчислення, пов'язані з перебуванням певного інтеграла. Integral приймає чотири параметри: межі інтегрування типу float, допустиму відносну помилку типу float і покажчик на інтегруються функцію. Обчислення виконуються до тих пір, поки відносна помилка, яка обчислюється за формулою
В
| (In/2 - In)/In |,
де In інтеграл при числі разбиений n, що не буде менше необхідної. Наприклад, допустима відносна помилка e = 0.02 це значить, що максимальна похибка в обчисленнях буде не більше, ніж In * e = 0.02 * In. Функція реалізована з економією обчислень, тобто враховується, що Yкр постійна, а Yнеч = Yнеч + yчета, тому ці значення обчислюються одного разу. Висока точність і швидкість обчислення роблять використання програми на основі формули Сімпсона більш бажаним за наближеному обчисленні інтегралів, ніж використання програм на основі формули трапеції або методу прямокутників.
Нижче пропонується блок - схема, специфікації, лістинг і ручної рахунок програми на прикладі поставленої вище завдання. Блок - схема дозволяє відстежити і зрозуміти особливості алгоритму програми, специфікації дають уявлення про призначення кожної змінної в основної функції integral, лістинг - вихідний код працюючої програми з коментарями, а ручний рахунок надає можливість проаналізувати результати виконання програми. p> 2. Блок - схема програми
В
ТАК
В
НІ
В
В
3. Специфікації
Ім'я змінної
Тип
Призначення
n
int
Число розбиття відрізка [a, b]
i
int
Лічильник циклів
...