Обчислення визначених інтегралів

Аналіз існуючих методів обчислення визначених інтегралів. Обчислення визначених інтегралів методом прямокутників, методом трапецій та методом Сімпсона. Вибір методу обчислення. Програмна реалізація методу рішення. Інструкція програміста і оператора.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 13.12.2015
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МІНІСТЕРСТВО ОСВІТИ Й НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

КАФЕДРА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ

КУРСОВИЙ ПРОЕКТ

з дисципліни «Алгоритми та методи обчислень»

на тему: Обчислення визначених інтегралів

Студента 1 курсу 1зКСМ групи

напряму підготовки 6.050102

«Комп'ютерна інженерія»

2015 рік

РЕФЕРАТ

Пояснювальна записка містить 31 сторінку, 4 рисунки, 6 таблиць, 6 посилань і 2 додатки.

Мета роботи: дослідження основних методів обчислення визначених інтегралів та визначення такого методу, який найбільше підходить для реалізації на ЕОМ.

У роботі використовується комп'ютер типу IBM-PC з операційною системою Microsoft Windows 7. У якості інтегрованого середовища програмування використовується Code::Blocks версії 13.12 з компілятором GNU GCC Compiler версії 4.81. Програма, яка реалізує обраний метод обчислення визначеного інтегралу написана мовою програмування С.

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

Ключові слова: ВИЗНАЧЕНИЙ ІНТЕГРАЛ, МЕТОД ПРЯМОКУТНИКІВ, МЕТОД ТРАПЕЦІЙ, МЕТОД СІМПСОНА.

ЗМІСТ

Вступ

1. Постановка завдання

1.1 Основні поняття та визначення

1.2 Аналіз існуючих методів обчислення визначених інтегралів

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

1.2.2 Обчислення визначених інтегралів методом трапецій

1.2.3 Обчислення визначених інтегралів методом Сімпсона

1.3 Обґрунтування вибору методу обчислення

2. Опис системи програмування для реалізації методу рішення задачі

3. Програмна реалізація методу рішення

3.1 Опис програми

3.2 Контрольний приклад

3.3 Інструкція програміста і оператора

Висновки

Список посилань

Додаток А Блок-схема програми

Додаток Б Текст програми

Вступ

Чисельне інтегрування -- одна з найбільш важливих тем обчислювальної математики. При розв'язуванні математичних, інженерних, фізичних задач досить часто виникає потреба обчислювати визначені інтеграли. Далеко не завжди для їх обчислення можна отримати аналітичні вирази для первісних підінтегральних функцій. Тому в більшості випадків користуються чисельними методами інтегрування. В даному курсовому проекті розглядаються наступні наближені методи чисельного інтегрування: метод прямокутників; метод трапецій; метод парабол (метод Сімпсона).

Актуальність теми курсового проекту полягає в тому, що при розв'язанні низки математичних, фізичних або технічних задач застосовуються визначені інтеграли від функцій, первісні функції яких не виражаються через елементарні функції. Крім того, в окремих задачах доводиться мати справу з визначеними інтегралами, у яких самі підінтегральні функції не являються елементарними. Це призводить до необхідності розробки наближених методів обчислення визначених інтегралів. Предметом дослідження є методи наближеного обчислення визначених інтегралів, первісна яких не може бути представлена у вигляді комплексу елементарних функцій.

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

1. ПОСТАНОВКА ЗАВДАННЯ

1.1 Основні поняття та визначення

Якщо для деякої функції в усіх точках заданого інтервалу її похідна дорівнює Тоді функція називається первісною функції та записується як:.

Так як для будь-якої сталої , то можна говорити про множину первісних -- множину функцій виду . Множина первісних функції називається невизначеним інтегралом функції і позначається .

Нехай функція визначена і неперервна на відрізку . Якщо розбити відрізок на довільних частин точками

і в кожній частині вибрати точку , то тоді площа деякого -го сегменту (рис.1.1) дорівнює:

(1.1)

Рисунок 1.1 -- Геометричний смисл визначеного інтегралу

Сума площ усіх сегментів називається інтегральною сумою.

Якщо існує границя інтегральної суми не залежна ні від способу розбиття відрізку ні від вибору точок , то така границя називається визначеним інтегралом функції на відрізку [1]:

(1.2)

Якщо для неперервної на проміжку підінтегральної функції можна віднайти первісну функцію , то визначений інтеграл легко обчислити за формулою Ньютона - Лейбніца:

(1.3)

Проте цією формулою важко і навіть практично неможливо скористатися тоді, коли первісну не можна виразити в елементарних функціях, як, наприклад, у таких інтегралах , ; підінтегральну функцію задано таблично або графічно і її аналітичний вираз невідомий; аналітичний вираз первісної доволі складний і незручний для обчислень. Якщо ж первісна не може бути знайдена або якщо функція задана графічно чи таблично, то для обчислення інтеграла використовують наближені формули, точність яких може бути як завгодно великою[2].

1.2 Аналіз існуючих методів обчислення визначених інтегралів

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

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

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

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

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

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

Рисунок 1.2 -- Інтерпретація інтегрування методом прямокутників

Суть методу прямокутників зводиться до знаходження визначеного інтегралу як суми площ прямокутників (з висотою та основою ), отриманих шляхом розбиття відрізка інтегрування на рівних частин. Чим більше число прямокутників взято, тим більшою буде точність обчислення.

За умови, що всі прямокутники рівні, тоді довжина кожного прямокутника дорівнює , і називається кроком інтегрування.

Площу одного такого прямокутника можна обчислити за формулою:

(1.4)

Тоді загальна площа прямокутників і, відповідно, значення інтегралу наближено дорівнює сумі площ усіх прямокутників.

В залежності від вибору розрізняють формули лівих, правих й середніх прямокутників

Якщо за брати значення лівих границь прямокутників, то значення інтегралу знаходять за формулою лівих прямокутників:

(1.5)

Якщо за брати значення правих границь прямокутників, то значення інтегралу знаходять за формулою правих прямокутників:

(1.6)

Якщо за брати значення деяких точок (де ) -- середин сторін прямокутників, то значення інтегралу знаходять за формулою середніх прямокутників:

(1.7)

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

Похибки методу оцінюються за наступними формулами [2]:

для методів лівих і правих прямокутників:

(1.8)

де

для методу середніх прямокутників:

(1.9)

де

Приклад 1. Обчислити значення визначеного інтегралу за допомогою методу прямокутників, розбивши відрізок інтегрування на 10 частин, з точністю до 5 знаків після коми.

Розв'язання

-- крок інтегрування

1. Методом лівих прямокутників

Для обчислення необхідно розрахувати значення функції у точках (де ). Результати обчислень наведені у таблиці 1.1

Таблиця 1.1 -- Дані для обчислення прикладу методом прямокутників

0

1

2

3

4

5

6

7

8

9

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

0,99010

0,96154

0,91743

0,86207

0,80000

0,73529

0,67114

0,60976

0,55249

Тоді за формулою лівих прямокутників (1.5):

2. Методом правих прямокутників

Для обчислення необхідно розрахувати значення функції у точках (де ). Результати обчислень наведені у таблиці 1.2

Таблиця 1.2 -- Дані для обчислення прикладу методом прямокутників

1

2

3

4

5

6

7

8

9

10

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1,0

0,99010

0,96154

0,91743

0,86207

0,80000

0,73529

0,67114

0,60976

0,55249

0,50000

Тоді за формулою правих прямокутників (1.6):

3. Методом середніх прямокутників

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

Таблиця 1.3 -- Дані для обчислення прикладу методом прямокутників

1

2

3

4

5

6

7

8

9

10

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1,0

0,05

0,15

0,25

0,35

0,45

0,55

0,65

0,75

0,85

0,95

0,99751

0,97800

0,94118

0,89087

0,83160

0,76775

0,70299

0,64000

0,58055

0,52562

Тоді за формулою середніх прямокутників (1.7):

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

1.2.2 Обчислення визначених інтегралів методом трапецій

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

Рисунок 1.3 -- Інтерпретація інтегрування методом трапецій

Площу однієї такої трапеції можна обчислити за формулою:

(1.10)

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

Враховуючи, що кожен доданок у формулі, крім першого і останнього, повторюється двічі, формулу можна привести до наступного вигляду:

(1.11)

Формула (1.11) називається формулою трапецій.

Абсолютна похибка методу трапецій оцінюється як [2]:

(1.12)

де

Приклад 2. Обчислити значення визначеного інтегралу за допомогою методу трапецій, розбивши відрізок інтегрування на 10 частин, з точністю до 5 знаків після коми.

Розв'язання

-- крок інтегрування

Для обчислення необхідно розрахувати значення функції у точках (де ). Результати обчислень наведені у таблиці 1.4

Таблиця 1.4 -- Дані для обчислення прикладу методом трапецій

0

1

2

3

4

5

6

7

8

9

10

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1,0

1

0,99010

0,96154

0,91743

0,86207

0,80000

0,73529

0,67114

0,60976

0,55249

0,50000

За формулою трапецій (1.11):

1.2.3 Обчислення визначених інтегралів методом Сімпсона

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

Якщо у визначеному інтегралі замість функції взяти квадратний тричлен , графік, якого проходить через три точки , що належать кривій (рис 1.4), то площу криволінійної трапеції обмеженої графіком можна наближено прирівняти до площі криволінійної трапеції обмеженої параболою . Таку параболу можна провести через три точки, причому тільки одну [3].

Визначений інтеграл від апроксимуючої функції можна розрахувати за формулою Ньютона--Лейбніца:

(1.13)

Рисунок 1.4 -- Інтерпретація інтегрування методом Сімпсона

Оскільки графік квадратного тричлена проходить через точки , , і , то:

Використовуючи ці рівняння, вираз, що стоїть у правій частині формули (1.13), можна замінити рівним йому виразом

Після цього формула (1.13) приймає наступний вигляд:

(1.14)

Для того щоб визначений інтеграл обчислити з більшою точністю, відрізок треба поділити на парне число рівних відрізків, довжиною за допомогою розбиття

і застосувати формулу (1.13) до кожного здвоєного відрізку , який складається з двох менших відрізків і , , можна вивести наступну формулу:

Враховуючи що довжина одного відрізку складає , тоді . Беручи до уваги, що , вираз можна замінити виразом , тоді формула (1.15) приймає вигляд:

Остаточно:

(1.16)

де

Формула (1.16) називається параболічною формулою або формулою Сімпсона.

Оцінка абсолютної похибки чисельного інтегрування за формулою Сімпсона[2]:

(1.17)

де

Приклад 3. Обчислити значення визначеного інтегралу за допомогою методу Сімпсона, розбивши відрізок інтегрування на 10 частин, з точністю до 5 знаків після коми.

Розв'язання

, -- крок інтегрування

Для обчислення необхідно розрахувати значення функції у точках (де ). Результати обчислень наведені у таблиці 1.5

Таблиця 1.5 -- Дані для обчислення прикладу методом Сімпсона

0

1

2

3

4

5

6

7

8

9

10

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1,0

1

0,99010

0,96154

0,91743

0,86207

0,80000

0,73529

0,67114

0,60976

0,55249

0,50000

За формулою Сімпсона (1.16):

1.3 Обґрунтування вибору методу обчислення

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

Точність квадратурної формули характеризується порядком залишкового члена стосовно степеня кроку інтегрування . З формул (4.13) , (4.14), (4.21) і (4.23) видно, що залишковий член квадратурних формул залежить від кроку інтегрування і при . Кажуть, що залишковий член має порядок ( -- натуральне число) відносно , якщо існує скінченна границя[4]:

і записують це так: .

Отже, залишкові члени формул лівих і правих прямокутників відносно мають перший порядок: , середніх прямокутників і трапецій -- другий: , а Сімпсона -- четвертий: . Квадратурну формулу вважають тим точнішою, чим більший порядок її залишкового члена . З розглянутих раніше квадратурних формул найточнішою є формула Сімпсона, а найменш точними -- формули лівих і правих прямокутників. Точність формул середніх прямокутників і трапецій однакова. У цьому можна переконатися порівнявши результати обчислення контрольного прикладу різними методами із результатом, отриманим за допомогою формули Ньютона -- Лейбніца (табл.1.6).

Таблиця 1.6 -- Порівняння методів обчислень

Розрахунки за досліджуваними квадратурними формулами

Розрахунок за формулою Ньютона -- Лейбніца

Похибка

Методом лівих прямокутників

0,80998

0,78540

0,02458

Методом правих прямокутників

0,75998

0,02542

Методом середніх прямокутників

0,78561

0,00021

Методом трапецій

0,78498

0,00042

Методом Сімпсона

0,78532

0,00008

Отже для реалізації на ЕОМ програми обчислення визначених інтегралів доцільно обрати метод Сімпсона як такий, що дає найбільшу точність при обчисленні.

2. Опис системи програмування для реалізації методу рішення задачі

Обраний метод розв'язання поставленої задачі реалізований мовою програмування С у середовищі програмування Code::Blocks версії 13.12 з компілятором GNU GCC Compiler версії 4.81.

Code::Blocks -- це вільне кросплатформенне середовище розробки програмного забезпечення. Code::Blocks написана на C++ і використовує бібліотеку wxWidgets. Маючи відкриту архітектуру, може масштабуватись за рахунок додаткових модулів. Підтримує мови програмування С, С++, D.

Набір компіляторів GNU (GNU Compiler Collection, GCC) -- набір компіляторів для різних мов програмування. GCC -- вільне програмне забезпечення, розроблене Фондом Вільних Програм під ліцензією GNU GPL та GNU LGPL. Підтримує кілька мов програмування серед яких C, C++, Fortran, Java, Ada, та інші.

GCC може створювати код для багатьох процесорних архітектур, таких як ARM, x86 та AMD64, PowerPC, MIPS та інші.

Головним інструментом для налагодження програм, скомпільованих за допомогою GCC, є GNU Debugger (gdb), який також використовується у середовищі Code::Blocks.

Версія GCC під Microsoft Windows забезпечується проектами MinGW та Cygwin.

3. Програмна реалізація методу рішення

3.1 Опис програми

Програма має назву «definite_integral.exe», і призначена для обчислення значень визначених інтегралів від п'яти заданих функцій на вибір користувача. Розрахунок проводиться методом Сімпсона. Проміжок інтегрування та кількість відрізків, на які розбиватиметься інтервал задаються користувачем. Програма складається з одного файлу definite_integral.exe, який має розмір 33 675 байт. Програма призначена для роботи в операційних системах сімейства Microsoft Windows на комп'ютерах типу IBM-PC. Дана програма є консольною програмою. Для запуску цієї програми необхідно ввести у командному рядку повне ім'я файлу definite_integral.exe.

Блок схема програми наведена у додатку А, вихідний код -- у додатку Б.

Код програми містить 10 функцій і 3 глобальні змінні, за допомогою яких функції обмінюються параметрами.

За стандартом мови програмування С програма починається із виконання головної функції main (), з якої викликаються всі інші функції.

Функції func1(double), func2(double), func3(double), func4(double), func5(double), мають тип double (число з плаваючою точкою подвійної точності). Ці функції приймають на вхід змінну типу double, розраховують значення описаного в них математичного виразу, що залежить від змінної, і повертають значення цього виразу, яке залежить від вхідного параметру.

Для скорочення кількості рядків коду і уникнення повторювань використовується покажчик на функцію double (*func_pntr) (double), який вказує на одну з попередньо описаних функцій, в залежності від вибору користувача.

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

Функція int error () перевіряє чи не є інтервал інтегрування від'ємним, тобто чи не є початок інтервалу більшим за його кінець, і якщо це так виводить на екран повідомлення «Error: Negative or empty interval!» (від'ємний або порожній інтервал) і повертає значення 1. Також ця функція перевіряє число відрізків розбиття на парність, і якщо число непарне виводить на екран повідомлення «Error: Odd number!» і повертає значення 2. Якщо жодне з попередніх умов не виконується функція повертає значення 0. У разі, якщо значення, яке повернула функція, відмінне від нуля, виконання програми припиняється.

Функція void calc () виконує безпосереднє обчислення визначеного інтегралу за формулою Сімпсона. Спочатку функція обчислює крок інтегрування h, потім обчислює значення заданого виразу на проміжку інтегрування із кроком h, і заносить результати у масив. Наступним кроком є додавання усіх непарних елементів масиву і запис суми у змінну summ_odd, та всіх парних елементів масиву і запис суми у змінну summ_even. Останньою дією є обчислення значення визначеного інтегралу за формулою Сімпсона і виведення результату на екран.

3.2 Контрольний приклад

Програма розраховує значення визначеного інтегралу на проміжку, заданому користувачем, для наступних функцій:

1)

2)

3)

4)

5)

На початку роботи користувач обирає функцію, для якої необхідно обчислити значення визначеного інтегралу.

Початковими даними програми є межі інтегрування і кількість відрізків розбиття, які вводяться з клавіатури користувачем. При цьому початок інтервалу інтегрування має бути меншим за його кінець, а кількість відрізків розбиття має бути парним.

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

Рисунок 3.1 -- Результат роботи програми

3.3 Інструкція програміста і оператора

обчислення інтеграл прямокутник симпсон

Програма призначена для обчислення значення визначеного інтегралу на проміжку, заданому користувачем, для однієї з п'яти заздалегідь визначених функцій. Програма є консольною і виконується у командному рядку операційної системи Microsoft Windows. Для запуску програми необхідно у командному рядку ввести повне ім'я файлу definite_integral.exe.

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

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

Початок інтегралу має бути меншим за його кінець, інакше програма виведе на екран повідомлення «Error: Negative or empty interval!» (від'ємний або порожній інтервал) і припинить виконання. Кількість відрізків розбиття, відповідно до методу Сімпсона, має бути парною, інакше програма виведе на екран повідомлення «Error: Odd number!» (непарне число) і припинить виконання.

Якщо дані введені правильно, програма розрахує значення визначеного інтегралу відповідно до вхідних даних і виведе на екран повідомлення «Approximate value of the definite integral is: x», де замість x буде відповідне число -- значення визначеного інтегралу.

Після завершення обчислення і виведення результату на екран виводиться запит «Continue? Y/N:» із запрошенням ввести символ з клавіатури. Для продовження роботи з програмою необхідно ввести символ «Y» або «y» для виходу з програми -- будь який інший символ.

Висновки

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

Дані методи інтегрування пов'язані з використанням наближених формул, тому результати не є точними. Щоб максимально наблизитися до достовірного значення інтеграла потрібно правильно обрати метод і формулу, по якій будуть вестися обчислення.

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

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

Хоча чисельні методи й не дають точного значення інтеграла, але вони дуже важливі, тому що не завжди можна вирішити задачу інтегрування аналітичним способом.

Список посилань

1. Бардачов Ю.М., Крючковський В.В., Цибуленко О.В., Матвієнко А.М., Вигоднер І.В. Практикум з вищої математики. Частина 1. - Херсон: Олді-плюс, 2010. - 390 с.

2. Шаповаленко В.А., Буката Л.М., Трофименко О. Г. Чисельні методи та моделювання на ЕОМ. Навчальний посібник - Одеса: ВЦ ОНАЗ, 2010. - 88 с.

3. Шнейдер В. Е. Слуцкий А.И. Шумов А.С. Краткий курс высшей математики. Учеб. пособие для втузов. М:, Высш. школа, 1972. - 640 с.

4. Демидович Б.П. , Марон И.А. Основы вычислительной математики. -М.: Наука, 1970. - 450 с.

5. Боглаев Ю.П. Вычислительная математика и программирование. - М.: Высшая школа, 1990. - 352 с.

6. http://posibnyky.vntu.edu.ua/met/lek7.htm

7. Боглаев Ю.П. Вычислительная математика и программирование. -М.: Высшая школа, 1990, 352 с.

8. Воробьева Г.Н. , Данилова А.Н. Практикум по вычислительной математике. -М. : Высшая школа, 1990, 208 с.

9. Гаврилюк І.П., Макаров В.Л. Методи обчислень: Підручник: У 2ч. - К.: Вищашк., 1995..-4.1.,367 с.

10. Методи обчислень: Практикум на ЕОМ: Навч. посібник / В.Л. Бурковська, С.О. Войцехівський, І.П. Гаврилюк та ін. - К.: Вища шк., 1995, 303 с.

Додаток А

Блок-схема програми

Додаток Б

Текст програми

#include <stdio.h>

#include <math.h>

double a,b;

int n;

double (*func_pntr) (double);

double func1 (double);

double func2 (double);

double func3 (double);

double func4 (double);

double func5 (double);

int error ();

void enter ();

void calc ();

void clear_b ();

main () {

start:;

printf("\n____________________\n");

printf ("\n1. 1/(1+x^2)\n");

printf ("2. x*sin(x)\n");

printf ("3. ln(x)\n");

printf ("4. x*cos(x)\n");

printf ("5. e^x\n");

printf("\nEnter (1-5) to select function or enter 0 to exit: ");

switch (getchar()) {

case '0':

return 0;

case '1':

func_pntr=&func1;

break;

Додаток Б.1

case '2':

func_pntr=&func2;

break;

case '3':

func_pntr=&func3;

break;

case '4':

func_pntr=&func4;

break;

case '5':

func_pntr=&func5;

break;

default:

printf("\nWrong number!");

clear_b();

goto start;

break;

}

enter();

if (error()==0)

calc();

printf("\n\nContinue? Y/N:");

clear_b();

int cont=getchar();

if (cont=='Y'||cont=='y'){

clear_b();

goto start;

}

return 0;

}

Додаток Б.2

/*опис функцій*/

void enter () {

printf("\nEnter a - start of interval: ");

scanf ("%lf", &a);

printf("\nEnter b - end of interval: ");

scanf ("%lf", &b);

printf("\nEnter n - number of subintervals (must be even number): ");

scanf("%d", &n);

}

double func1(double x){

return x=1/(1+pow(x,2));

}

double func2 (double x){

return x=x*sin(x);

}

double func3 (double x){

return x=log(x);

}

double func4 (double x){

return x=x*cos(x);

}

double func5 (double x){

return x=exp(x);

}

void calc(){

double h; /*крок інтегрування*/

double i, summ_even=0, summ_odd=0, val_array[n];

h=(b-a)/n;

int p=0;

for (i=a; i<b; i+=h) {

val_array[p]=(*func_pntr)(i); /*введення у масив значень функціїї при різних h*/

p++; }

Додаток Б.3

for (p=1; p<n; p+=2)

summ_odd+=val_array[p]; /*підрахунок суми значень функції від непарних аргументів*/

for (p=2; p<n; p+=2)

summ_even+=val_array[p]; /*підрахунок суми значень функції від парних аргументів*/

printf("\nApproximate value of the definite integral is: "); /*Обчислення за формулою Сімпсона*/

printf("%lf", (h/3)*((*func_pntr)(a)+(4*summ_odd)+(2*summ_even)+(*func_pntr)(b)));

}

int error() {

if (a>=b) {

printf("\nError: Negative or empty interval!\n");

return 1;

}

if (n%2!=0){

printf("Error: Odd number!\n");

return 2;

}

if ((func_pntr==&func3)&&(a<=0||b<=0)) {

printf("\nError: Logarithm of a negative number or of 0 does not exist!\n");

return 3;}

return 0;

}

void clear_b(){

while (getchar() !='\n'); /*Очищення буферу введення*/

}

Размещено на Allbest.ru

...

Подобные документы

  • Розробка програми для спрощення та автоматизації обчислення інтегралів методом трапецій у визначених межах інтегрування із заданою точністю. Елементи програми "Інтеграл", алгоритм, способи логічної структуризації, засоби обміну даними, мова програмування.

    курсовая работа [234,5 K], добавлен 12.12.2013

  • Блок-схема алгоритму та функціональні ряди. Код програми обчислення визначених інтегралів. Операції з масивами та значення накопичення функціональної суми. Діапазон зміни аргументу і обчислення функціональної суми у режимі відображення формул та графіки.

    отчет по практике [2,7 M], добавлен 30.11.2011

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

    реферат [127,2 K], добавлен 13.06.2010

  • Значення функції, типи елементів масиву та їх кількість. Побудова інтерполяційного багаточлена Лагранжа. Апроксимування залежності багаточленом другого ступеня і обчислення коефіцієнту варіації. Обчислення рівняння за методом Рунге-Кути, лістинг програми.

    контрольная работа [222,4 K], добавлен 17.02.2011

  • Обчислення оптимальних показників на основі математичних розрахунків. Спрощена математична модель. Перебір варіантів булевих змінних і вибір оптимального за цільовою функцією. Теоретичні положення методу гілок та меж. Кінцева множина допустимих рішень.

    курсовая работа [1,8 M], добавлен 19.09.2012

  • Знаходження площі фігури методом трапеції. Обчислення площ криволінійних трапецій. Геометричний сенс чисельника. Розробка програми для демонстрації нижчезазначеної математичної функції. Використання базових бібліотек класів, написаних на мові С++.

    курсовая работа [1,0 M], добавлен 24.12.2013

  • Лінійна програма на C++. Арифметичні вирази. Обчислення значень функції. Значення логічних виразів і логічних операцій. Види циклів, обчислення нескінченної суми з заданою точністю. Створення файлу цілих чисел з N компонент, виведення їх на екран.

    контрольная работа [12,7 K], добавлен 09.09.2011

  • Опис методів обчислення формули Ньютона-Котеса та поліномів Лежандра. Розгляд програмування процедур вводу меж інтегрування, ініціації елементів квадратурних формул Гауса та Чебишева. обчислення визначеного інтеграла і виводу результатів на екран.

    курсовая работа [82,1 K], добавлен 23.04.2010

  • Дослідження застосування різницевого методу для розв’язання крайової задачі. Дослідження проводиться на прикладі заданого диференційного рівняння. Дається опис методу та задачі в цілому. Застосування при обчисленні формули Чебишева і формули Гаусса.

    курсовая работа [157,2 K], добавлен 03.12.2009

  • Розробка інформаційної системи зберігання, обробки та моделювання алгоритмів обчислення статистичних даних для змагань з плавання і з інших видів спорту. Зміст бази даних, реалізація БД засобами MySQL, створення клієнтського додатка в середовищі PHP.

    дипломная работа [4,5 M], добавлен 17.09.2011

  • Стандарти OpenMP i MPI як основні засоби програмування для багатопроцесорних систем. Розробка програми паралельного розрахунку інтеграла для функції з певним кроком дискретизації, паралельної програми множення квадратної матриці на квадратну матрицю.

    курсовая работа [2,5 M], добавлен 11.12.2013

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

    контрольная работа [170,3 K], добавлен 29.06.2010

  • Мобільність. Міграційні програми (migratory applications). Теорія агентної взаємодії. Переваги мобільних агентів. Структура управління мобільного агента. Мобільні обчислення – Obliq. Новий жанр в індустрії програмного забезпечення.

    реферат [17,5 K], добавлен 08.08.2007

  • Розробка програмних модулів базових операцій обробки на підставі розрядно-логарифмічного кодування. Дослідження алгоритму розв'язку системи лінійних алгебраїчних рівнянь. Реалізація алгоритму Гауса. Покращення точності розрахунків за допомогою рл-чисел.

    курсовая работа [427,2 K], добавлен 20.11.2013

  • Визначення кількості інформації на символ повідомлення, обчислення диференційної ентропії системи. Розрахунок послаблення сигналу у децибелах, знаходження граничної його міцності. Суть обчислення ймовірності помилкового приймання кодової комбінації.

    контрольная работа [165,4 K], добавлен 10.05.2013

  • Розробка програмного продукту на мові С++ з використанням об’єктноорієнтованого підходу для математичних обрахувань задач з геометричними фігурами коло та кільце. Можливості швидкого обчислення виведених даних, їх графічне зображення у вікні програми.

    курсовая работа [778,8 K], добавлен 06.05.2014

  • Зародження системи Matlab. Високоефективна мова інженерних і наукових обчислень. Інтерактивна система, основним об'єктом якої є масив. Обчислення мінімумів, нулів функцій. Апроксимація й інтерполяція даних. Обчислення кінцевих різниць, перетворення Фур'є.

    лабораторная работа [146,4 K], добавлен 18.01.2013

  • Блок-схема та програма обчислення значення функції y=f(x) у точці x0. Обчислення двох значень поліному з використанням схеми Горнера. Програма табуляції функції Y на проміжку [a,b] з шагом h. Програма визначення нульових елементів квадратної матриці.

    контрольная работа [63,3 K], добавлен 23.09.2010

  • Використання ітерацій для обчислення приблизних значень величин. Розробка ітераційних алгоритмів з перевіркою правильності введення даних. Побудова блок-схеми і програмування мовою Turbo Pascal обчислення значення функції, розкладеної в степеневий ряд.

    лабораторная работа [197,2 K], добавлен 16.12.2010

  • Обґрунтування переваги чисельного диференціювання функції з використанням інтерполяційної формули Стірлінга по відношенню до формул Ньютона, Гауса та Бесселя. Розробка оптимального алгоритму обчислення другої похідної. Лістинг, опис і тестування програми.

    курсовая работа [483,2 K], добавлен 21.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.