Многочлен Ньютона

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

Означення

Маючи множину з k + 1 точок

(x0,y0),,(xj,yj),,(xk,yk)

де немає двох однакових xj, інтерполяційний многочлен у формі Ньютона — це лінійна комбінація базових многочленів Ньютона

N(x):=j=0kajnj(x)

де базовий многочлен Ньютона задається так

nj(x):=i=0j1(xxi)

для j > 0 і n0(x)1.

Коефіцієнти задаються як

aj:=[y0,,yj]

де

[y0,,yj]

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

Отже інтерполяційний многочлен Ньютона можна записати як

N(x)=[y0]+[y0,y1](xx0)++[y0,,yk](xx0)(xx1)(xxk1).

Інтерполяційний многочлен Ньютона можна представити у спрощеній формі якщо x0,x1,,xk впорядковані послідовно і з рівними проміжками. Позначаючи h=xi+1xi для кожного i=0,1,,k1 і x=x0+sh, різницю xxi можна записати як (si)h. Так інтерполяційний многочлен Ньютона набуває форми:

N(x)=[y0]+[y0,y1]sh++[y0,,yk]s(s1)(sk+1)hk=i=0ks(s1)(si+1)hi[y0,,yi]=i=0k(si)i!hi[y0,,yi]

така форма називається прямий інтерполяційний многочлен Ньютона.

Якщо вузли пересортувати в зворотньому порядку: xk,xk1,,x0, інтерполяційний многочлен Ньютона стає:

N(x)=[yk]+[yk,yk1](xxk)++[yk,,y0](xxk)(xxk1)(xx1)

Якщо xk,xk1,,x0 на рівних відстанях з x=xk+sh, а xi=xk(ki)h для i = 0, 1, ..., k, тоді,

N(x)=[yk]+[yk,yk1]sh++[yk,,y0]s(s+1)(s+k1)hk=i=0k(1)i(si)i!hi[yk,,yki]

така форма називається зворотній інтерполяційний многочлен Ньютона.

Головна ідея

Розв'язуючи задачу інтерполяції приводить нас до необхідності розв'язання системи лінійних рівнянь. Використовуючи стандартний базис одночленів, {1,x1,x2,,xn}, для інтерполяційного многочлена ми отримуємо дуже складну матрицю Вандермонда. Обираючи інший базис, а саме базис Ньютона, ми отримуємо систему лінійних рівнянь з набагато простішою нижньотрикутною матрицею, яку можна розв'язати швидше.

Для k + 1 точок ми будуємо базис Ньютона так:

nj(x):=i=0j1(xxi)j=0,,k.

Використовуючи ці многочлени як базис для Πk, щоб розв'язати задачу поліноміальної інтерполяції, нам треба розв'язати

[101x1x01x2x0(x2x0)(x2x1)1xkx0j=0k1(xkxj)][a0ak]=[y0yk].


Цю систему можна розв'язати покроково, розв'язуючи

i=0jaini(xj)=yjj=0,,k.

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

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

Приклад

Розділені різниці можна записати у вигляді таблиці. Наприклад, для функції f і точок x0,,xn. Записуємо

x0f(x0)f(x1)f(x0)x1x0x1f(x1)f(x2)f(x1)x2x1f(x1)f(x0)x1x0x2x0f(x2)f(x1)x2x1x2f(x2)xnf(xn)

Тоді інтерполяційний многочлен формується використовуючи горішні елементи кожного стовпчика як коефіцієнти.

Див. також

Посилання

  1. https://web.archive.org/web/20100904060718/http://nptel.iitm.ac.in/courses/Webcourse-contents/IIT-KANPUR/Numerical%20Analysis/numerical-analysis/Rathish-kumar/rathish-oct31/fratnode5.html