1   2   3   4   5
Ім'я файлу: КУРСОВА.doc
Розширення: doc
Розмір: 1136кб.
Дата: 29.05.2020

1.9 Програмна реалізація

1.9.1 Призначення програми

Дану програму було розроблено з метою надання можливості за допомогою ЕОМ обчислювати наближені значення функції у випадку, коли функція задана таблично, використовуючи для цього інтерполяційні формули для рівновіддалених вузлів (1. 2. 7), (1. 2. 11), (1. 3. 4), (1. 3. 6), (1. 4. 3), (1. 5. 1) та інтерполяційну формулу (1. 7. 5)- для нерівновіддалених вузлів. Крім того, враховано можливість отримання загального вигляду відповідного інтерполяційного поліному наближення з метою подальшого використання при, наприклад, плануванні експериментів в біології, фізиці, хімії, географії, медицині та ін. галузях науки.

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

1.9.2 Основні процедури

Програмну реалізацію було здійснено в інтегрованому середовищі розробки Microsoft Visual Studio 2008 Team System у проекті типу Visual C# з використанням мови програмування С# на базі технології .NET Framework 2.0. Програма має назву «InterPolation».

Розглянемо основні процедури і функції програми та їх призначення:

DeltaCount – функція для побудови таблиці кінцевих різниць по заданим данним (вхідними даними є введені користувачем значення функції типу double);

Fact – функція для обчислення факторіалів, необхідних для застосування формул (5), (9), (12), (13), (15), (16). Вхідними даними для цієї функції слугує степінь полінома n, введеного користувачем, яка має тип integer;

EvalNewtonNerivni – функція, яка перевіряє, чи вузли інтерполяції є рівновіддаленими, чи нерівновіддаленим. У випадку нерівновіддалених вузлів обчислює наближене значення функції за формулою (20). Дана функція використовує вже написану функцію DeltaCount, для отримання необхідних для формули данних.

EvalFFNewton – функція, яка застосовує першу інтерполяційну формулу Ньютона згідно з введеними даними і використовуючи функцію DeltaCount та функцію Fact. Результатом її виконання буде наближене значення функції згідно формули (5) типу double;

FFNewton– функція, що виводить формулу (5) і обчислене згідно функції EvalFFNewton наближення функції;

EvalSFNewton - функція, яка застосовує другу інтерполяційну формулу Ньютона згідно з введеними даними і використовуючи функцію DeltaCount та функцію Fact. Результатом її виконання буде наближене значення функції згідно формули (9) типу double;

FFNewton – функція, що виводить формулу (9) і обчислене згідно функції EvalSFNewton наближення функції;

Аналогіно відповідно працють функції EvalFFGauss і FFGauss для першої формули Гауса, EvalSFGauss і SFGauss для другої формули Гауса, EvalFStirling і FStirling для формули Стірлінга та EvalFBessel і FBessel для формули Бесселя.

GetX0 – функція для визначення умовного нуля відповідно до формул, які застосовуються, тобто тут також використовується функція DeltaCount;

PaintPlot – функція для побудови графіку. В даному випадку сам графік будується в електронній таблиці Excel, результат імпортується в С# і відбувається вивід у вікно програми;

WhereIsX – функція, яка визначає, де знаходиться х у таблиці кінцевих різниць (ближче до початку, кінця чи до середени) і відповідно до того як написано вище в теоретичній частині у випадку, коли користувач забуде обрати формулу для обчислень, сама обирає, яку формулу краще застосовувати;

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

1.9.3 Інструкція по використанню програми

Для запуску програми «InterPolation» потрібно відкрити папку Release і запустити InterPolation.ехе. В результаті з’явиться вікно програми (мал. 2).



Мал. 2. Інтерфейс основної форми програми

У полі «х» вводиться значення аргументу, для якого необхідно наближено обчислити значення функції, заданої відповідною таблицею. У полі «степінь многочлена» користувачеві необхідно ввести степінь многочленна для наближення функції. У поле «крок» потрібно ввести крок h, а в полі «Розміри таблиці» вводиться кількість даних фіксованих значень функції. Потім у відповідному віконці обирається формула, яка застосовується для наближення. Після цього натискаємо кнопку «Застосувати» і у вікні ще з’являється табличка для вводу хі, уі. Після заповнення таблиці потрібно натиснути кнопку «Інтерполяція» для того, щоб програма виконала необхідні обчислення і видала результат. Крім того, з правого боку є випадаючий список «Варіант», де користувач може обрати один із 30-ти варіантів вихідних даних, що містяться в [7], потім знову ж таки обрати степінь полінома, х, формули, які хоче застосовувати. В меню «Файл» користувач може обрати «Тестовий варіант». В результаті програма виведе всі результати обчислень згідно прикладу 1 (пункт 1.8.1) (мал. 3):



Мал. 3. Тестовий варіант

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



Мал. 4. Лістинг результатів

1.9.4 Перевірка працездатності програми

Покажемо працездатність програми на прикладі 1 (пункт 1.8.1). Для цього можна самостійно ввести всі необхідні дані або обрати в меню файл, як зазначалося вище, пункт «тестовий варіант». Як видно з результатів, отриманих при застосуванні програми (мал. 3), всі формули дають майже однакове наближення, окрім формули Бесселя (дану формулу краще використовувати при ). Особливо добре це видно з графіка. Тепер порівняємо отриманий результат із розрахунками, отриманими за допомогою електронної таблиці Excel (див. мал. 5).


Мал. 5. Результати обчислень в електронній таблиці Excel

Тобто бачимо, що отримані результати дещо відрізняються (на 0,01). Це пов’язано з тим, що в електронній таблиці менша точність обчислень, ніж у програмі. Однак, збільшуючи степінь полінома отримаємо практично однакові результати.

Код програми в додатку 1.

ВИСНОВКИ

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

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

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. Ильин В.А., Позняк Э. Г., Основы математического анализа, ч. II.- М.: Наука, 1980г., с.50

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

3. http://miest.narod.ru

4. Копченова Н.В., Марон И.А. – Вычислительная математика в примерах и задачах. «Наука» Москва, 1972г.

5. Турчак Л.И. – Основы численных методов. «Наука» Москва, 1987г.

6. Вержбицкий В. М., Численные методы. Математический анализ и обыкновенные дифференциальные уравнения. «Высшая школа» Москва, 2001г.

7. Воробьева Г. Н., Данилова А. Н. Практикум по вычислительной матиматике, изд.-II, «Высшая школа», Москва, 1990г.

8. Калиткин Н. П., Численные методы. - М.: Наука, 1978г.

9. Полия Г., Сеге Г. Теория функций (специальная часть).- М., 1978г.

10. Буслов В.А., Яковлев С.Л. Численные методы ІІ. Решение уравнений. Курс лекций. Санкт-Петербург, 2001г.

11. Бахвалов Н.С., Жидков Н.П., Кобельников Г.М. - Численные методы, М., Наука, 1987г.

12. Хаусхолдер А. С., Основы численного анализа.-М., 1953г.



1   2   3   4   5

скачати

© Усі права захищені
написати до нас