Курсова Інтерполяція. курсоваінтерполяція. 1. Аналіз теоретичної бази методів інтерполювання функції
![]()
|
Зміст Анотація Вступ 1. Аналіз теоретичної бази методів інтерполювання функції 2. Розробка алгоритмів та вибір оптимального алгоритму 3. Приклад програми інтерполювання функції за допомогою. Інтерполяційного многочлена Лагранжа 3.1 Інструкція користувача .2 Лістинг програми .3 Опис програми .4 Тестування програми Висновки Перелік посилань Анотація Об’єктом дослідження є інтерполяційний многочлен Лагранжа для інтерполювання функцій. Розроблено оптимальний алгоритм та програму в середовищі системи C++ як за розміром пам'яті, необхідної для збереження даних, котрі обчислюються в ході виконаного алгоритму, так і за кількістю арифметичних операцій для обчислення за основною формулою. Програма має зручний та наочний інтерфейс, котрий максимально спрощує роботу з нею, та автоматичну перевірку коректності даних, що вводяться. Вступ Актуальність теми. На практиці часто виникає задача відшукання функції за заданим значенням аргументу. Цю задачу вирішують методами інтерполяції функції. Є декілька прийомів розв’язку такої задачі, а саме: користуючись схемою Ейткіна, за допомого першої та другої формул Ньютона, а також за допомогою формул Гаусса, Стірлінга, Бесселя, але найпростішим є застосування інтерполяційної формули Лагранжа. Формула Лагранжа є досить зручна і використовується не лише у випадку рівновіддалених вузлів, але й у випадку вузлів інтерполяції, заданих довільно, що дає можливість широкого її застосування у порівняні з іншими формулами інтерполювання. Мета дослідження. Метою роботи є дослідження можливості використання інтерполяційного многочлена Лагранжа для інтерполювання функцій. Задача дослідження: · проаналізувати існуючі методи інтерполювання функції та обґрунтувати переваги використання інтерполяційного многочлена Лагранжа по відношенню до існуючих; · розробити алгоритм інтерполювання функції та здійснити вибір найоптимальнішого з них; · розробити програму інтерполюванням функції з використанням інтерполяційного многочлена Лагранжа та провести її тестування. Об’єкт дослідження. Об’єктом дослідження є многочлен Лагранжа для інтерполювання функції. Структура курсової роботи. Курсова робота складається з трьох основних розділів. В першому розділі наведено аналіз теоретичної бази методів інтерполювання функції та приклад застосування за формулою Лагранжа. У другому розділі розроблено оптимальний алгоритм за критерієм комплексної ефективності, що враховує затрати часу та пам'яті для його виконання, за даним методом. Третій розділ містить інструкцію користувача, лістинг програми, опис програми та результати тестування. інтерполювання функція алгоритм многочлен 1. Аналіз теоретичної бази методів інтерполювання функції В обчислювальній практиці часто доводиться мати справу з функціями ![]() ![]() У процесі розв’язування задачі необхідно використовувати значення ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Інтерполяцію доводиться інколи застосовувати і в тому випадку, коли для функції ![]() ![]() ![]() ![]() ![]() ![]() ![]() Нехай на відрізку ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() З геометричного погляду задача інтерполювання полягає в знаходженні кривої ![]() ![]() ![]() ![]() Рисунок 1 - Геометрична інтерпретація інтерполювання функції =Pn(x) y=F(x) 0 a=x0 x1 x2xk xk+1 b=xn Якщо функція ![]() У деяких випадках доцільніше використовувати інші класи інтерполюючих функцій. Якщо, наприклад, функція ![]() ![]() ![]() ![]() Розглядатимемо лише задачу параболічного інтерполювання, яку сформулюємо так: в ![]() ![]() ![]() ![]() степеня ![]() ![]() ![]() Для визначення ![]() ![]() ![]() Ця система має єдиний розв'язок, бо її визначник є визначником Вандермонда, який не дорівнює нулю, бо вузли ![]() ![]() ![]() ![]() ![]() Інтерполяційний многочлен будують тоді, коли: 1) функцію задано табличну для деяких значень аргументу, а треба знайти її значення для значень аргументу, яких у таблиці немає; 2) функцію задано графічно, наприклад за допомогою самописного приладу, а треба знайти її наближений аналітичний вираз; 3) функцію задано аналітично, але її вираз досить складний і незручний для виконання різних математичних операцій (диференціювання, інтегрування тощо) [5]. Тоді залежно від вибору критерію згоди й, зокрема, від кількості, точок узгодження ![]() ![]() ![]() ![]() ![]() Нехай у точках ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Шукатимемо інтерполяційний многочлен ![]() ![]() (4) де коефіцієнти ![]() ![]() ![]() ![]() ![]() ![]() Визначимо коефіцієнти ![]() ![]() ![]() ![]() ![]() Якщо в (4) покласти ![]() ![]() а отже ![]() Аналогічно обчислюємо ![]() Підставивши ці значення коефіцієнтів ![]() ![]() ![]() Многочлен ![]() ![]() - інтерполяційною формулою Лагранжа. Інтерполяційний многочлен Лагранжа можна записати компактніше. Для цього введемо многочлен ![]() ![]() Продиференціювавши по ![]() ![]() Поклавши тут ![]() ![]() ![]() Підставивши (7) і (8) в (5), знайдемо ![]() Вирази ![]() ![]() ![]() Оцінка похибки інтерполяційної формули Лагранжа. Якщо функція ![]() ![]() ![]() ![]() ![]() ![]() ![]() Якщо ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Справедлива така теорема. Теорема. Якщо вузли інтерполювання ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() де ![]() Для кожного нового значення аргументу х або при підвищенні порядку многочлена (а це веде до залучення нових вузлів) всі обчислення виконують заново. А це значно збільшує обсяг обчислювальної роботи. Значно спростити і зменшити її можна тоді, коли скористатись інтерполяційною схемою Ейткіна. У цій схемі в процесі обчислення поступово залучаються все нові й нові вузли ![]() Якщо в ( ![]() ![]() ![]() ![]() ![]() ![]() ![]() де ![]() ![]() ![]() ![]() ![]() ![]() ![]() Таблиця 1
Отже, щоб обчислити в точці х значення інтерполяційного многочлена ![]() ![]() ![]() ![]() ![]() ![]() Часто інтерполювання ведеться для функцій, заданих таблицями з рівновіддаленими значеннями аргументу (тобто такими, що будь-який ![]() ![]() ![]() Для побудови формули Ньютона необхідно ввести поняття кінцевих різниць. Кінцевими різницями називають різниці між значеннями функції в сусідніх вузлах (точках ![]() ![]() де ![]() ![]() ![]() ![]() ![]() Якщо функція, що досліджується, задана значеннями ![]() ![]() Перша інтерполяційна формулу Ньютона (12). ![]() На практиці часто використовують формулу Ньютона в іншому вигляді. Для цього введемо заміну ![]() ![]() Формулу (13) зручно використати для інтерполювання на початку відрізку інтерполяції [a; b] , де q мале за абсолютною величиною. Якщо за число вузлів інтерполяції прийняти n-1, то отримаємо формулу лінійного інтерполювання ![]() При n=2 отримаємо формулу параболічного, або квадратичного інтерполювання ![]() На практиці часто буває необхідно зменшити крок інтерполяції будь-якої таблиці з рівновіддаленими аргументами. В таблиці можна вважати, що кількість вузлів інтерполяції необмежена. Тоді вибирають n так, щоб кінцева різниця ![]() ![]() Часто користуються формулами центральних різниць, до яких відносяться формули Гаусcа, Бесселя, Стірлінга. Інтерполяційна формула Гаусса - формула, яка використовує в якості вузлів інтерполяції найближчі до точки інтерполяції x вузли. Якщо формула написана за вузлами ![]() ![]() А формула написана за вузлами ![]() ![]() В формулах (14) і (15) використані кінцеві різниці, які визначаються в такий спосіб [5]: ![]() ![]() Перевага інтерполяційної формули Гаусса полягає в тому, що зазначений вибір вузлів інтерполяції забезпечує найкращу оцінку залишкового члена в порівнянні з будь-яким іншим вибором, а впорядкованість вузлів у міру їх близькості до точки інтерполяції зменшує обчислювальну похибку інтерполяції. Часто використовується інтерполяційна формула Бесселя, яка служить для знаходження значення функції у міжвузловій точці. Для виведення цієї формули скористаємось другою інтерполяційною формулою Гаусса (14): ![]() у скороченому вигляді (17): ![]() де ![]() Інтерполяційна формула Бесселя застосовується при інтерполяції функцій для значень х , близьких середині а між двома вузлами, тут природно брати парне число вузлів х - до ..., х -1 , x 0 , x 1 ..., x до , x до + 1 , і розташовувати їх симетрично відносно а (x 0 < а < x 1 ). Взявши середнє арифметичне першої та другої інтерполяційних формул Гаусса, отримаємо формулу Стірлінга: ![]() ![]() ![]() ![]() ![]() Легко побачити, що ![]() ![]() Формула Стірлінга використовується для інтерполювання в середині таблиці при значеннях q, близьких до нуля. Практично її використовують при │q│≤ 0,25 [12,13,14]. |