Смекни!
smekni.com

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

Формула „лівих” прямокутників:

(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("&bsol;n&bsol;n&bsol;n&bsol;n&bsol;n&bsol;n&bsol;t&bsol;t&bsol;t╔══════════════════════════╗");

printf("&bsol;n&bsol;t&bsol;t&bsol;t║ ║");

printf("&bsol;n&bsol;t&bsol;t&bsol;t║ Курсова робота ║");

printf("&bsol;n&bsol;t&bsol;t&bsol;t║ на тему: ║");

printf("&bsol;n&bsol;t&bsol;t&bsol;t║ Обчислення інтегралу за ║");

printf("&bsol;n&bsol;t&bsol;t&bsol;t║ за допомогою формул прямокутників, ║");

printf("&bsol;n&bsol;t&bsol;t&bsol;t║ трапецій, Сімпсона. ║");

printf("&bsol;n&bsol;t&bsol;t&bsol;t║ ║");

printf("&bsol;n&bsol;t&bsol;t&bsol;t╚════════════════════════════════╝");

getch();

clrscr();

return;

}

//Головне меню

void Menu(void)

{

Fon();

clrscr();

Bykvu(); printf("&bsol;a&bsol;n&bsol;n&bsol;n&bsol;n&bsol;t&bsol;t╔════════════════════════════════╗");

printf("&bsol;n&bsol;t&bsol;t║ ║");

printf("&bsol;n&bsol;t&bsol;t║&bsol;t&bsol;t ");

cprintf(" МЕНЮ ");

printf("&bsol;t&bsol;t ║");

printf("&bsol;n&bsol;t&bsol;t║ ║");

printf("&bsol;n&bsol;t&bsol;t║ ");

cprintf("*1*");

printf(" ");

cprintf("Інтегрування функції");

printf(" --> ");

cprintf("натисніть");

printf(" ");

cprintf("F");

printf(" ║");

printf("&bsol;n&bsol;t&bsol;t║ ║");

printf("&bsol;n&bsol;t&bsol;t║ ");

cprintf("*2*");