Аналіз теоретичної бази інтерполювання функції
Размещено на /
Міністерство освіти і науки України
Вінницький національний технічний університет
Інститут автоматики, електроніки та комп’ютерних систем управління
Кафедра МПА
Аналіз теоретичної бази інтерполювання функції
Вінниця ВНТУ – 2009
Вступ
Актуальність теми. Задача знаходження значення функції у міжвузловій точці за допомогою інтерполяційної формули Бесселя має важливе значення при вирішенні як наукових, так і практичних задач, оскільки дає можливість знаходження значення функції у будь-якій точці, в якій це потрібно. В багатьох випадках функція не має аналітичного вигляду, тобто він невідомий, а задана лише декількома точками та значеннями функції в цих точках. Тому для отримання значення функції в проміжних точках застосовуються інтерполяційна формули Гауса (1-а та 2-а), інтерполяційна формула Стірлінга та Бесселя. Кожна з цих формул має свої переваги та недоліки, що полягають у кількості обчислювальних операцій та в похибці обчислень.
Мета дослідження. Метою роботи є обчислення значення функції інтерполюванням за інтерполяційною формулою Бесселя.
Задачі дослідження:
● проаналізувати існуючі методи знаходження значення функції та обґрунтувати переваги інтерполюванням за інтерполяційною формулою Бесселя по відношенню до існуючих;
● розробити алгоритми розв’язку інтерполювання функції та здійснити вибір оптимального з них;
● розробити програму розв’язку значення функції інтерполюванням та провести їх тестування.
Об’єкт дослідження. Об’єктом дослідження є інтерполяційна формула Бесселя для інтерполювання функції.
Структура курсової роботи.
Курсова робота складається з трьох основних розділів. В першому розділі наведено аналіз теоретичної бази інтерполювання функції та приклад розв’язання поставленої задачі за формулою Бесселя. У другому розділі розроблено оптимальний алгоритм за критерієм комплексної ефективності, що враховує затрати часу та пам'яті для його виконання, за даним методом. Третій розділ містить інструкція користувача, лістинг та опис програми і результати тестування.
1. Аналіз теоретичної бази інтерполювання функції
Постановка задачі інтерполяції
Якщо задано певну довільну функцію на деякому проміжку , то обчислити її значення непросто. Для полегшення цієї задачі є метод інтерполювання функції. Який полягає у тому, що дана функція замінюється наближеним значенням, причому кінцевий результат залишається незмінним.
Нехай деяка функція у=f(х) задана таблицею (табл.1), тобто при значеннях аргументу х=х0, х1, ... , хn функція f(х) приймає відповідні значення у0, у1,... , уn.
Таблиця 1- Таблиця експериментальних значень
.... | |||||
.... |
Необхідно визначити значення у=f(х), .
Величина потрапляє між двома табличними значеннями, тому для обчислення значення функції необхідно запропонувати деякий характер її зміни між відомими експериментальними даними.
Інтерполяцію можна розглядати як процес визначення для даного аргументу х значення функції у=f(х) по її декількох відомих значеннях. При цьому розрізняють інтерполяцію у вузькому розумінні, коли х знаходиться між і , і екстраполювання, коли х знаходиться поза відрізком інтерполяції .
Задача інтерполяції полягає в наступному. На відрізку задані точки х0, х1, ... , хn, що називаються вузлами інтерполяції, і значення деякої функції f(x) у цих точках.
,
, (1)
...............
.
Потрібно побудувати функцію Рn(х) (інтерполюючу функцію), яка б задовольняла таким умовам:
,
, (2)
.................
,
тобто інтерполююча функція Рn(х) повинна приймати ті ж значення, що і функція f(х), яку ми визначаємо (що інтерполюється), для вузлових значень аргументу х0, х1, ... , хn.
Геометрично це означає, що потрібно знайти криву y=Pn(х) деякого визначеного типу, що проходить через задану систему точок Мi (хi,уi) . Очевидно, можна побудувати множину неперервних функцій, що будуть проходити через задані вузлові точки[1].
Заміна функції f(х) її інтерполяційним многочленом Рn(x) може знадобитися не тільки тоді, коли відома лише таблиця її значень, але і коли аналітичний вираз для f(х) відомо, проте є занадто складним і незручним для подальших математичних перетворень (наприклад, для інтегрування, диференціювання тощо). Іноді розглядаються задачі тригонометричної інтерполяції (інтерполююча функція – тригонометричний поліном). Інтерполюючою може бути також раціональна функція.
У загалі залежність, якій підпорядковується функція, може бути апроксимована многочленом степеня :
. (3)
Таку задачу називають задачею параболічної інтерполяції (або інтерполюванням).
Загалом є багато інтерполяційних формул та методів. До них відносяться такі: інтерполяційні формули Гаусса, Стірлінга та Бесселя (які є похідними від формул Гаусса), Ньютона (перша та друга) та багато інших.
1.2 Параболічна інтерполяція
Для визначення коефіцієнтів многочлена (3) необхідно мати вузлову точку. Аналітичне визначення коефіцієнтів інтерполяційного многочлена для точки зводиться до рішення системи лінійних рівнянь порядку, кожне з яких являє собою вираз (3), записаний для визначеної вузлової точки
, (4)
де .
Даним методом побудови інтерполяційного поліному зручно користуватися, маючи персональний комп’ютер і відповідні програми. Даний метод не є єдиним способом побудови інтерполяційного поліному. Інший підхід, яким часто користуються на практиці, називається методом Лагранжа[2].
1.3 Метод Лагранжа
Нехай при функція приймає відповідно значення . Многочлен степеня не вище , що приймає у вузлових точках задані значення, має вид:
(5)
Цей многочлен (5) називається інтерполяційною формулою Лагранжа і має такі властивості:
При заданій сукупності вузлових точок будова многочлена можлива тільки єдиним способом.
Многочлен Лагранжа може бути побудовано при будь-якому розташуванні вузлів інтерполяції (включаючи і нерівномірне).
У розгорнутому виді форма Лагранжа має вид:
(6)
При формула Лагранжа має вид:
, (7)
і називається формулою лінійної інтерполяції.
При одержимо формулу квадратичної інтерполяції:
(8)
1.4 Обернена інтерполяція
Нехай функція задана таблицею. Задача зворотної інтерполяції полягає в тому, щоб по заданому значенню функції визначити відповідне значення аргументу .
Якщо вузли інтерполяції нерівновіддалені, задача легко вирішується за допомогою інтерполяційної формули Лагранжа (5). Для цього достатньо прийняти за незалежну змінну, а вважати функцією. Тоді отримаємо
, (9)
Розглянемо тепер задачу оберненої інтерполяції для випадку рівновіддалених вузлів інтерполяції. Припустимо, що функція f(х) монотонна і дане значення у знаходиться між і .
Замінюючи функцію першим інтерполяційним многочленом Ньютона, одержимо:
.
Звідси
,
тобто .
Розмір визначаємо методом послідовних наближень як границю послідовності:
,
де
За початкове наближення приймаємо
. (10)
Для -го наближення маємо:
. (11)
На практиці ітераційний процес продовжують доти, поки не установляться значення, що відповідають необхідній точності, причому , де – останнє зі знайдених наближень. Знайдемо , визначаємо по формулі
,
звідки
. (12)
Ми застосували метод ітерації для розв’язку задачі оберненої інтерполяції, користуючись першою інтерполяційною формулою Ньютона. Аналогічно можна застосувати цей спосіб і до другої формули Ньютона:
.
Звідси
Позначимо – початкове наближення.
Для -го наближення маємо:
(13)
Знайдемо
,
визначимо по формулі [2,3]
.
Далі розглянемо запропоновану інтерполяційну формулу Бесселя. Вона подібна до інтерполяційної формули Стірлінга і обидві вони є похідними від першої та другої інтерполяційних формул Гаусса.
1.5 Інтерполяційна формула Бесселя
Часто використовується інтерполяційна формула Бесселя, яка служить для знаходження значення функції у міжвузловій точці. Для виведення цієї формули скористаємось другою інтерполяційною формулою Гаусса:
у скороченому вигляді:
де х=х0+qh.
Візьмемо 2n+2 рівновіддалених вузлів інтерполювання
x-n, x-(n-1),..., x0,..., xn-1, xn, xn+1 ,
з кроком h, і нехай
yi= f(xi), (i =-n,…,n+1),
- задані значення функції y= f(x).
Якщо вибрати за початкові значення x= x0 та y= y0, то, використовуючи вузли xk (k= 0, ±1, …, n), будемо мати:
(14)
Приймемо тепер за початкові значення х=х1 і у=у1 і використаємо вузли х1+к (к=0, 1,...,n). Тоді
причому відповідно індекси всіх різниць в правій частині формули (14) зростуть на одиницю. Замінивши в правій частині формули (14) q на q-1 і збільшивши індекси всіх різниць на 1 , отримаємо допоміжну інтерполяційну формулу
(15)
Взявши середнє арифметичне формул (14) і (15), після простих перетворень отримаємо інтерполяційну формулу Бесселя
інтерполяція функція бессель програма
(16)
Інтерполяційна формула Бесселя (16), як слідує з способу отримання її, представляє собою поліном, що співпадає з даною функцією y= f(x) в 2n+2 точках
x-n , x-(n-1),…, xn , xn+1.
В частинному випадку, при n=1, нехтуючи різницею ∆3y-1, отримаємо формулу квадратичної інтерполяції по Бесселю
,
В формулі Бесселя всі члени, які містять різниці непарного порядку, мають множник q-; тому при формула (16) значно спрощується :
Цей спеціальний випадок формули Бесселя називається формулою інтерполювання на середину. Якщо в формулі Бесселя (3) зробити заміну по формулі то вона приймає більш симетричний вид
Приклад розв’язку задачі:
Значення функції подано у табл. 2. Знайти значення .
Таблиця 2- Таблиця різниць функції
2 | -4.58579 | ||||||||
-11.68216 | |||||||||
3 | -16.26795 | -6.04989 | |||||||
-17.73205 | 0.01801 | ||||||||
4 | -34 | -6.03188 | -0.00878 | ||||||
-23.76393 | 0.00923 | 0.00504 | |||||||
5 | -57.76393 | -6.02265 | -0.00374 | -0.00321 | |||||
-29.78658 | 0.00549 | 0.00183 | 0.00218 | ||||||
6 | -87.55051 | -6.01716 | -0.00191 | -0.00103 | -0.00287 | ||||
-35.80374 | 0.00358 | 0.0008 | 0.00069 | ||||||
7 | -123.35425 | -6.01358 | -0.00111 | -0.00034 | |||||
-41.81732 | 0.00247 | 0.00046 | |||||||
8 | -165.17157 | -6.01111 | -0.00065 | ||||||
-47.82843 | 0.00182 | ||||||||
9 | -213 | -6.00929 | |||||||
-53.83772 | |||||||||
10 | -266.83772 |
Розв’язок:
Приймемо