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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2015 рік

Реферат

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

У роботі використовується комп'ютер типу 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 Інструкція програміста і оператора
  • Висновки
  • Список посилань
  • Блок-схема програми
  • Текст програми

Вступ

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

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

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

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

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

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

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

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

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

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

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

(1.1)

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

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

(1.2)

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

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

(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.4 -- Інтерпретація інтегрування методом Сімпсона

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

(1.13)

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

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

(1.4)

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

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

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

(1.6)

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

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

(1.7)

Приклад 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 с.

Додаток А

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

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

Додаток Б

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

#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

  • Використання мови програмуванння Java при виконанні "задачі лінійного програмування": її лексична структура і типи даних. Методи розв’язання задачі. Особливості логічної структури програми, побудова її зручного інтерфейсу за допомогою симплекс методу.

    курсовая работа [437,9 K], добавлен 24.01.2011

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

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

  • Загальний вид двовимірного завдання лінійного програмування. Алгоритм рішення задач графічним методом. Максимізація (мінімізація) цільової функції. Послідовність рішення завдань лінійного програмування симплексом-методом. Принцип перетворення Гауса.

    контрольная работа [149,8 K], добавлен 24.11.2010

  • Розв’язання системи рівняння методом Гауса за схемою з частковим вибором головного елементу. Рішення задачі Коші методом Рунге-Кутта. Знаходження моментів кубічних сплайнів методом прогонки. Розв’язування системи нелінійних рівнянь методом Ньютона.

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

  • Огляд та аналіз методів розв’язання системи диференціальних рівнянь та вибір методів рішення. Алгоритми методів Ейлера. Вибір методу рішення задачі Коші. Рішення диференціальних рівнянь. Отримання практичних навиків програмування на мові Паскаль.

    курсовая работа [174,3 K], добавлен 06.03.2010

  • Характеристика середовища програмування Microsoft Visual C++ та бібліотеки класів MFC. Знаходження коефіцієнтів при невідомих за допомогою методу найменших квадратів. Створення програми для вирішення задачі обраним методом, її алгоритм та інтерфейс.

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

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

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

  • Алгоритм покриття за методом "мінімальній стовпець - максимальний рядок". Підпрограми основного алгоритму. Розробка програми сортування методом простих включень (бульбашковим методом). Словесний опис алгоритму, його контрольний приклад та ефективність.

    курсовая работа [36,4 K], добавлен 06.03.2013

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

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

  • Задача лінійного програмування. Розв’язання задачі геометричним методом. Приведення системи рівнянь до канонічного вигляду. Розв’язання симплекс-методом. Розв’язок двоїстої задачі. Задача цілочислового програмування і дробово-лінійного програм.

    контрольная работа [385,2 K], добавлен 04.06.2009

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

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

  • Основні розрахунки резисторів мікросхеми. Розробка алгоритму рішення задачі методом блок-схем. Характеристика та розробка програми на мові С++ з використанням принципів модульного і структурного програмування. План тестування і налагоджування програми.

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

  • Застосування симплекс-методу для розв’язання оптимізаційних задач лінійного програмування, що містять три змінні. Функції ітераційної обчислювальної процедури, що виконують приведення до зручного для розв’язання оптимального вигляду ЗЛП за кілька кроків.

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

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

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

  • Загальні відомості та геометричний зміст розв'язання задачі Коші. Використання методу Ейлера для розв'язання звичайних диференціальних рівнянь першого порядку. Розробка блок-схеми та реалізація алгоритму в середовищі програмування Borland Delphi 7.0.

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

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

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

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

    презентация [824,2 K], добавлен 26.11.2014

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

    курсовая работа [326,6 K], добавлен 09.01.2009

  • Загальне поняття про метод Якобі. Мова програмування C++ Builder, її призначення. Оператор do-while, його використання. Динамічний розподіл пам’яті. Загальний вигляд інтерфейсу програми, інформація про метод. Реалізація програми, модуль мain.cpp та dfm.

    курсовая работа [320,6 K], добавлен 17.06.2012

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