Поліноміальна інтерполяція

Матеріал з testwiki
Версія від 21:27, 28 серпня 2024, створена imported>Olvin (Помилка інтерполяції)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Поліноміальна інтерполяція (Інтерполяція алгебраїчними многочленами) функції f(x) на відрізку [a, b] - побудова многочлена Pn(x) степеня меншого або рівного n, що приймає у вузлах інтерполяції x0, x1, ..., xn значення f(xі):

Pn(xi)=f(xi),i=0,1,...,n

Система рівнянь, що визначають коефіцієнти такого многочлена, має вигляд

Pn(xi)=a0+a1xi+a2xi2+...+anxin=f(xi),i=0,1,...,n

Її визначником є визначник Вандермонда.

=|1x0x02...x0n1x1x12...x1n.......1xnxn2...xnn|=i,j=1,i<jn(xixj)

Він відмінний від нуля при всяких попарно різних значеннях xі, і інтерполяція функції f по її значеннях у вузлах xі за допомогою многочлена Pn(x) завжди можлива і єдина.

Застосування

Отриману інтерполяційну формулу f(x)Pn(x) часто використовують для наближеного обчислення значень функції f при значеннях аргументу x, відмінних від вузлів інтерполяції. При цьому розрізняють інтерполяцію у вузькому значенні, коли x[x0,xn], і екстраполяцію, коли x[a,b], x∉[x0,xn]

Задача інтерполяції

Нехай у просторі задані n точок P1,P2,,Pn, які в деякій системі координат мають радіус-вектори 𝐫1,𝐫2,,𝐫n.

Завдання інтерполяції полягає в побудові кривої, що проходить через зазначені точки у зазначеному порядку.

Розв'язання задачі

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

Будемо будувати криві у вигляді 𝐫(t), де параметр t змінюється на деякому відрізку [a,b]: atb. Введемо на відрізку [a,b] сітку {ti} з n точок: a=t1<t2<t3<<tn=b і зажадаємо, щоб при значенні параметра t=ti крива проходила через точку Pi, так що 𝐫(ti)=𝐫i.

Введення параметризації й сітки може бути виконане різними способами. Звичайно вибирають або рівномірну сітку, вважаючи a=0, b=n1, ti=i1, або, що більш переважно, з'єднують точки відрізками й як різницю значень параметра ti+1ti беруть довжину відрізка 𝐫i+1𝐫i.

Одним з розповсюджених способів інтерполяції є використання кривої у вигляді многочлена від t степеня n1, тобто у вигляді функції

𝐫(t)=𝐩(n1)(t)=k=1n𝐚ktnk

Многочлен має n коефіцієнтів 𝐚k, які можна знайти з умов 𝐫(ti)=𝐫i.

Ці умови приводять до системи лінійних рівнянь для коефіцієнтів 𝐚k

(1t1t12t1n11t2t22t2n11tntn2tnn1)(𝐚n𝐚n1𝐚1)=(𝐫1𝐫2𝐫n)

Звернемо увагу, що потрібно розв'язати три системи рівнянь: для x, y і z координат. Усі вони мають одну матрицю коефіцієнтів, знаходячи обернену до якої, за значеннями радіус- векторів 𝐫i точок обчислюються вектори 𝐚k коефіцієнтів многочлена. Визначник матриці

W(t1,t2,,tn)=|1t1t12t1n11t2t22t2n11tntn2tnn1|=i,j,i>j(titj)

називається визначником Вандермонда. Якщо вузли сітки не збігаються, він відмінний від нуля, так що система рівнянь має розв'язок.

Крім прямого знаходження оберненої матриці, є інші способи обчислення інтерполяційного многочлена. У силу одиничності многочлена мова йде про різні форми його запису.

Похибки інтерполяції

Інтерполюючи певну функцію f поліномом степеня Шаблон:Mvar у точках x0,...,xn ми отримуємо похибку

f(x)pn(x)=f[x0,,xn,x]i=0n(xxi)

де

f[x0,,xn,x]

це розділена різниця.

Якщо f це Шаблон:Math раз неперервно диференційовна на закритому інтервалі I і pn(x) це многочлен степеня не більше Шаблон:Mvar, що інтерполює f у Шаблон:Math відмінних точках {xi} (i=0,1,...,n) у цьому інтервалі. Тоді для кожного x в інтервалі існує Шаблон:Mvar у цьому інтервалі, таке що

f(x)pn(x)=f(n+1)(ξ)(n+1)!i=0n(xxi)

Доведення

Запишемо похибку як

Rn(x)=f(x)pn(x)

і впровадимо допоміжну функцію:

Y(t)=Rn(t)Rn(x)W(x)W(t)

де

W(u)=i=0n(uxi)

Оскільки Шаблон:Math є коренями Шаблон:Math і pn, ми маємо Шаблон:Math, що означає, що Шаблон:Mvar і Шаблон:Math є коренями (тут ми маємо справу з певним x, для якого ми й шукаємо похибку). Із теореми Роля, Y(t) має Шаблон:Math коренів, тоді Y(n+1)(t) має один корінь Шаблон:Mvar, тут Шаблон:Mvar перебуває в інтервалі Шаблон:Mvar.

Отже, ми можемо отримати

Y(n+1)(t)=Rn(n+1)(t)Rn(x)W(x) (n+1)!

Оскільки pn(x) це многочлен степеня не більше ніж Шаблон:Mvar, тоді

Rn(n+1)(t)=f(n+1)(t)

Отже

Y(n+1)(t)=f(n+1)(t)Rn(x)W(x) (n+1)!

Із того, що Шаблон:Mvar є коренем Y(n+1)(t), маємо

Y(n+1)(ξ)=f(n+1)(ξ)Rn(x)W(x) (n+1)!=0

Відтак

Rn(x)=f(x)pn(x)=f(n+1)(ξ)(n+1)!i=0n(xxi).

Отже, залишковий член у формі Лагранжа теореми Тейлора це особливий випадок інтерполяційної похибки, коли інтерполяційні точки Шаблон:Math лежать на однаковій відстані[1].

У випадку рівновіддалених вузлів інтерполяції xi=x0+ih, випливає, що інтерполяційна похибка є O(hn+1). Однак, це має на увазі, що f(n+1)(ξ) домінована hn+1, тобто f(n+1)(ξ)hn+1<<1. У деяких випадках відбувається зростання похибки з Шаблон:Math Шаблон:Докладніше

Наведена помилкаШаблон:Прояснити пропонує вибирати інтерполяційні точки Шаблон:Math так, щоб добуток

|(xxi)|,

був якомога меншим. Таку властивість мають нулі поліномів Чебишова. Саме вони є оптимальними вузлами інтерполяційних схем.

Переваги

  • Для заданого набору точок і сітки параметра крива будується однозначно.
  • Крива є інтерполяційною, тобто проходить через усі задані точки.
  • Крива має безперервні похідні будь-якого порядку.

Недоліки

  • З ростом числа точок порядок многочлена зростає, а разом з ним зростає число операцій, які потрібно виконати для обчислення точки на кривій.
  • З ростом числа точок в інтерполяційної кривої можуть виникнути осциляції (див. приклад нижче).

Приклад осциляції

Інтерполяция на послідовності сіток. Приклад Рунге.

Шаблон:Main Класичним прикладом Рунге, що показує виникнення осциляцій в інтерполяційного многочлена, слугує інтерполяція на рівномірній сітці значень функції

f(x)=11+x2

Введемо на відрізку [5,5] рівномірну сітку xi=5+(i1)h, h=10/(n1), 1in і розглянемо поведінку многочлена

y(x)=i=1naixni

який у точках xi приймає значення yi=1/(1+xi2). На малюнку представлені графіки самої функції (штрих-пунктирна лінія) і трьох інтерполяційних кривих при n=3,5,9:

  • інтерполяція на сітці x1=5,x2=0,x3=5 - квадратична парабола;
  • інтерполяція на сітці x1=5,x2=2.5,x3=0,x4=2.5,x5=5 - многочлен четвертого степеня;
  • інтерполяція на сітці x1=5,x2=3.75,x3=2.5,x4=1.25,x5=0,x6=1.25,x7=2.5,x8=3.75,x9=5 - многочлен восьмого степеня.

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

Див. також

Примітки

Шаблон:Reflist