Метою даного моделювання є дослідження функції
при змінному значені k ,
. Отже необхідно вивести таблицю значень функції в залежності від аргументу k. При цьому k слід змінювати з сталим кроком.2.3 Описовий алгоритм головної програми
В розробленій програмі використовується меню, тобто всі функції можуть використовуватись нескінченну кількість разів. Така властивість забезпечується завдяки використанню циклу в головній програмі, вихід з якого здійснюється лише при одній умові : вибір пункту меню „Вихід”.
В операторі вибору умовою є функція меню, яка в залежності від вибраного пункту вона дає певний результат. Кожен пункт меню описаний окремою функцією, що є дуже зручним у даному випадку. За пункт меню «Допомога» відповідає функція HelpAbout(), вона без вхідних параметрів. Для виводу таблиці вихідних данних з змінним коефіцієнтом k методом Сімпсона, Нютона-Котеса та Чебишева служать відповідно функції ResultSimps(d), ResultNuton(d), ResultCheb(d).
2.4 Схема алгоритму головної програми
Блок-схема алгоритму головної програми показана на рисунку 2.1.
2.5 Алгоритми методів (всі схеми алгоритмів для всіх методів, опису вхідних та вихідних даних )
2.5.1 Алгоритм методу Сімпсона
В методі Сімпсона інтегрування проводиться шляхом поділу відрізка інтегрування [A,B] на множину відрізків (N пар відрізків). Однак з метою збільшення точності наближеного інтегрування на кожному відрізку [Xi, Xi+2] підінтегральної функції f(x) замінюється квадратичною параболою j(х). Обчислення визначеного інтегралу зводиться до обчислення суми N криволінійних трапецій Si:
. Площа такої трапеції визначається за формулою Сімпсона:Блок-схема алгоритму методу Сімпсона зображена на рисунку 2.2
Рисунок 2.1.Блок-схема головної програми
2.5.2 Алгоритм методу Нютона-Котеса
Цей метод засновано на апроксимації однієї із сторін криволінійної трапеції, яка отримується поділом відрізка [A,B] на N рівних частин, многочленами вищих порядків, а також використовується лінійна апроксимація.
Основна формула методу:
,де Ні – коефіцієнти Нютона-Котеса. Вони незалежать від вигляду f(x), а є функцією тільки N. Таким чином коефіцієнти Нютона-Котеса можна обчислити раніше для різного числа N і звести в таблицю.
Блок-схема алгоритму методу Нютона-Котеса зображена в на рисунку 2.3.
2.5.3 Алгоритм методу Чебишева.
Метод чебишева грунтується на обчисленні інтеграла за значеннями функції yi=f(xi) у зафіксованих вузлах інтерполяції.
Блок-схема алгоритму методу Чебишева зображена на рисунку 2.4.
Рисунок 2.2. Блок-схема алгоритму методу Сімпсона
2.6 Опис основних функцій
Для спрощення розробки програми в ній було використано ряд стандартних та розроблено декілька власних функцій, а також створено 2 класи. Так наприклад функція FrameW() малює рамку на екрані (типу вікна). Функції cursor_off() та cursor_on() виключають та включають зображення курсора відповідно. VievZavd() виводить завдання, що виконує дана програма.
Клас CD обєднує в собі всі початкові данні (межі, крок), а також деякі процедури для зміни цих данинх, а також їх вивід на екран.
Рисунок 2.3. Блок-схема алгоритму методу Нютона-Котеса.
Рисунок 2.4. Блок-схема алгоритму методу Чебишева.
Більш детально стандартні та власні функції описані в таблицях 2.2 та 2.3 відповідно.
Таблиця 2.2 Список стандартних функцій, які використовуються.
Назва функції | Принадлежність до бібліотеки | Опис |
textcolor() | conio.h | Задає колір тексту |
textbackground() | conio.h | Задає колір фону |
gotoxy() | conio.h | Переміщує курсор в задану позицію |
cprintf() | conio.h | Виводить символи на екран |
window() | conio.h | Встановлює вікно виводу заданного розміру |
clrscr() | conio.h | Очищає текуче вікно виводу |
scanf() | stdio.h | Робить запит на ввод з клавіатури |
gettextinfo() | conio.h | Отримує інформацію про параметри тексту (колір, фон, положення курсору) |
fread() | stdio.h | Читає з файлу певний блок інформації |
fopen() | stdio.h | Відкриває файл для читання |
fclose() | stdio.h | Закриває файл |
sqrt() | math.h | Знаходить корінь квадратний аргументу |
sin() | math.h | Знаходить сінус аргументу |
getch() | conio.h | Затримка роботи програми до натискання клавіші |
Таблиця 2.3 Список власних функцій, які використовуються.
Назва функції | Опис |
FrameW() | Малює рамку на екрані заданого кольору |
cursor_off() | Вимикає зображення курсора |
cursor_on() | Вмикає зображення курсора |
Ramky() | Малює фон робочого столу і рамку навколо нього |
HelpMenu() | Вивід допомоги про кожен пункт меню |
menu() | Зображує головне меню програми |
HelpAbout() | Вивід допомоги про програму |
simp() | Знаходження інтегралу методом Сімпсона |
ResultSimps() | Вивід таблиці значень методом Сімпсона |
nuton() | Знаходження інтегралу методом Нютона |
ResultNuton() | Вивід таблиці значень методом Нютона |
cheb() | Знаходження інтегралу методом Чебишева |
ResultCheb() | Вивід таблиці значень методом Чебишева |
2.7 Структура комплексу програм для дослідження об’єкта на ЕОМ
Поскільки програма написана з використання модульного програмування, то розроблена програма складається з декількох модулів, розроблених самостійно.
Розбивання програми на модулі (бібліотеки) дозволяє згрупувати функції за певним їх призначенням, що призводить до зменшення помилок програмі та легкого їх пошуку.
В даному випадку програма використовує функції шістьох стандартних модулів, та одного, розробленого самостійно. Список модулів приведений у таблиці 2.4.
Таблиця 2.4. Список бібліотек, які використовуються.
Назва модуля | Принадлежність | Опис |
stdio.h | Стандартна бібліотека | Функції вводу-виводу |
conio.h | Стандартна бібліотека | Функції роботи з екраном(консолью) |
io.h | Стандартна бібліотека | Потоки ввод-вивід |
dos.h | Стандартна бібліотека | Спеціальні функції |
math.h | Стандартна бібліотека | Математичні функції |
stdlib.h | Стандартна бібліотека | Допоміжні функції |
window.cpp | Власна бібліотека | Зберігає опис класу CWindows |
Взаємозвязок між бібліотеками та головною програмою можна розглянути на рисунку 2.5.
Рисунок 2.5. Взаємозвязок між бібліотеками та головною програмою
3 Планування експепементальних досліджень об’єкту на ЕОМ
3.1 Класифіквція експерементів
Для впевненості роботи програми проведемо її експерементальне тестування. Але тестування необхідно виконувати в два основних етапи: тестування головної програми, тобто достовірність роботи головного меню програми, та власне і роботи самих пунктів меню - правильність роботи самих методів.
3.2 Опис експерементальних досліджень
Для тестування правильності роботи методів проводиться тестування самих обчислювальних процесів, причому тестування проводиться на нескладних прикладах, для швидшого співставлення результатів.
3.3 Дослідження об’єкту на ЕОМ
Метою даної курсової роботи є знаходження показників вольтметра при То=23о,44о,67о,92оС , за допомогою апарату кубічних сплайнів і ортогональних поліномів Чебишева.
Проведемо дослідження об’єкта на ЕОМ та зведемо отримані данні в таблиці. Результати дослідження приведені в таблиці 3.1
Таблиця 3.1 Результати дослідження об’єкту на ЕОМ
То | Апроксимація по Чебишеву | Апроксимація кубічних сплайнів |
23о | Т=23,00000 | Т=23,00000 |
Q=-0,19203 | Q=-0,17907 | |
е=0,00003 | е=0,01297 | |
44о | Т=44,00000 | Т=44,00000 |
Q=0,25892 | Q=0,48192 | |
е=0,00004 | е=0,22300 | |
67о | Т=67,00000 | Т=67,00000 |
Q=0,76861 | Q=0,87606 | |
е=0,00013 | е=0,10745 | |
92о | Т=92,00000 | Т=92,00000 |
Q=1,33752 | Q=1,30832 | |
е=0,00022 | е=0,02920 |
4 Аналіз результатів дослідження