Формула „лівих” прямокутників:
(3)Формула „правих” прямокутників.
Якщо за висоту прямокутника вибрати ординату правого кінця, тобто y
(мал.3), то отримаємо формулу „правих” прямокутників (4).Формула „правих” прямокутників:
(4)Формула трапецій.
Вона полягає в тому, що на відрізку [x
;x +h] до кривої y=f(x) замінюють хордою, яка стягує кінці цієї дуги, тобто використовують лінійну інтерпуляцію функції y=f(x). При цьому площа криволінійної трапеції замінюється площею криволінійної трапеції з основами і висотою h. (5)Розіб'ємо відрізок [a;b] на n рівних частин і замінимо дугу кривої ламаною (мал.1).
Мал.1.Розбиття площі фігури для формули трапецій
Формула трапецій:
(6)Формула Сімпсона (парабол)
Метод Сімпсона найпоширеніший і широко застосовний для програмування. Його суть полягає в наближенні підінтегральної функції відрізками парабол
Отже, розглянемо спочатку інтеграл
, де- парабола; - деякі параметри (або числа).
Розбиваємо відрізок [a;b] на парне число частин n=2m. На кожному з відрізків замінюємо дугу кривої y=f(x) параболою, яка проходить через 3 точки M
(x ;y ), M (x ;y ), M (x ;y ).Отримані фігури називаються параболічними трапеціями.
y=Ax
+Bx+C (7)S
= (8)Формула Сімпсона:
(9)2. Формулювання задачі
Завдання курсової роботи відноситься до класу задач з числових методів. Метою виконання роботи є отримання результатів обчислення визначених інтегралів за формулами прямокутників, трапецій та Сімпсона для подальшого їх використання у різних типах задач.
Вхідними даними для програми є межі інтегрування, а також число розбиття проміжку. Вихідні дані представлені у вигляді значень інтегралів обчисленими чотирма методами.
При обчисленні інтегралу логарифмічної функції розв’язок існує тільки тоді, коли межі інтегрування є додатні. Контроль вводу меж для данаї функції передбачений в програмній реалізації даної задачі.
3. Алгоритми розв’язку задач
Формула „лівих” прямокутників
Формула „правих” прямокутників
Формула трапецій
Формула Сімпсона
4. Опис програми мові Turbo С
Загальна характеристика програми:
Ім’я програми – Kursak.exe
Назва файлу – Kursak.cpp
Мова програмування – Turbo С
Об’єм програми – текстових рядків або байт – 389 текстових рядків або 8497 байт.
Призначення програми:
Ця програма призначена для виконання операцій обчислення визначених інтегралів.
Вхідна інформація:
Вхідні дані вводяться з клавіатури: межі інтегрування(аа,bb) та
крок інтегрування(xx).
Вихідна інформація:
Виводиться у вигляді стрічки з повідомленням про результат
роботи даної програми.
Ідентифікатори програми
Ідентифікатор змінної | Зміст у програмі | Тип змінної | Розмір (байт) | Спосіб формування |
aa,bb | межі інтегрування | int | 2 | вхідна |
vubir1 | номер функції | int | 2 | вхідна |
hh | крок інтегрування | double | 8 | проміжна |
xx | нижня межа інтегрування | double | 8 | проміжна |
5. Інструкція користувачеві
До програми входить файл:
Kursak.exe – програма для DOS.
Для початку роботи потрібно запустити exe-файл. Далі необхідно вибрати необхідну дію, ввівши букву, що вказана в головному меню, яке показано на (мал. 1).
Мал.1
При натисненні клавіші F зявляється меню вибору функції (мал.2).
Мал.2
Після вибору функції відбувається ввід даних. Формат вводу представлений на (мал.3).
Мал.3
При роботі в даній програмі можливе натиснення невірної клавіші. В такому виподку зявляється повідомлення (мал.4).
Мал.4
6. Контрольні приклади та аналіз їх реалізації
Приклад 1: Інтегрування функції exp(x).
Приклад 2: Інтегрування функції sin(2*x)+x.
Приклад 3: Інтегрування функції log(x*x).
Дані методи інтегрування пов’язані з використанням наближених формул.
Тому результати, які ми отримуємо не є точними. Виходячи з геометричного
змісту цих методів найменша похибка буде в методі Сімпсона. Параболічні
трапеції, сумування площ яких використовується в методі парабол, є
найбільш наближеними до фігур, які утворює задана функція.
Висновки
У даній курсовій роботі я закріпив знання з дисципліни “Проблемно-орієнтовані мови програмування” і виконав поставлене в курсовій роботі завдання, а також реалізував програмне забезпечення на мові програмування Turbo C.
Даний програмний продукт при потребі може бути вдосконалений та розширений.
Список використаної літератури
1.Бахвалов Н.Б., Жидков Н.П., Коббельков Г.М. Числові методи.-М.:Наука,1987
2.Даниліна Н.І,, Дубровська Н.С., Кваша О.П. Числові методи.-М.:Вища шк.,1976
3.Рублев А.Н. Линейная алгебра. М.: Высшая школа, 1968.
4.Керниган Б., Ритчи Д. Язык программирования Си. - М.: Финансы и статистика, 1992.
5. Прата С. Язык программирования С. — М., СПб., К.: ДиаСофт, 2002.
6. Брєдлі Л., Ейткен П. Освой самостоятельно С за 21 день.-М.:Изд.дом “Вильямс”,2003.
7.Шпак З. Я. “Програмування мовою С”, 2006.
Додатки
Текст програми на мові Turbo C
#include<stdio.h>
#include<conio.h>
#include<math.h>
//Функція задання кольору фону
void Fon(void)
{
textcolor(15); textbackground(BLUE);
return;
}
//Функція задання кольору букв
void Bykvu(void)
{
textcolor(1);
textbackground(15);
return;
}
//Заголовок
void Poc(void)
{
Fon();
clrscr();
printf("\n\n\n\n\n\n\t\t\t╔══════════════════════════╗");
printf("\n\t\t\t║ ║");
printf("\n\t\t\t║ Курсова робота ║");
printf("\n\t\t\t║ на тему: ║");
printf("\n\t\t\t║ Обчислення інтегралу за ║");
printf("\n\t\t\t║ за допомогою формул прямокутників, ║");
printf("\n\t\t\t║ трапецій, Сімпсона. ║");
printf("\n\t\t\t║ ║");
printf("\n\t\t\t╚════════════════════════════════╝");
getch();
clrscr();
return;
}
//Головне меню
void Menu(void)
{
Fon();
clrscr();
Bykvu(); printf("\a\n\n\n\n\t\t╔════════════════════════════════╗");
printf("\n\t\t║ ║");
printf("\n\t\t║\t\t ");
cprintf(" МЕНЮ ");
printf("\t\t ║");
printf("\n\t\t║ ║");
printf("\n\t\t║ ");
cprintf("*1*");
printf(" ");
cprintf("Інтегрування функції");
printf(" --> ");
cprintf("натисніть");
printf(" ");
cprintf("F");
printf(" ║");
printf("\n\t\t║ ║");
printf("\n\t\t║ ");
cprintf("*2*");