Эрмитова интерполяция

Материал из testwiki
Перейти к навигации Перейти к поиску

Эрмитова интерполяция - метод полиномиальной интерполяции, названный в честь французского математика Шарля Эрмита. Многочлены Эрмита тесно связаны с многочленами Ньютона.

В отличие от интерполяции Ньютона, эрмитова интерполяция строит многочлен, значения которого в выбранных точках совпадают со значениями исходной функции в этих точках, и все производные многочлена вплоть до некоторого порядка m в данных точках совпадают со значениями производных функции. Это означает, что n(m + 1) величин

(x0,y0),(x1,y1),,(xn1,yn1),(x0,y0),(x1,y1),,(xn1,yn1),(x0,y0(m)),(x1,y1(m)),,(xn1,yn1(m))

должны быть известны, тогда как для ньютоновской интерполяции необходимы только первые n значений. Полученный многочлен может иметь степень не более, чем n(m + 1) − 1, максимальная степень многочлена Ньютона же равна n − 1. (В общем случае m не обязательно должно быть фиксировано, то есть в одних точках может быть известно значение большего количества производных, чем в других. В этом случае многочлен будет иметь степень N − 1, где N - число известных значений.)

Использование

Простой случай

При использовании разделенных разностей для вычисления многочлена Эрмита, первым шагом является копирование каждой точки m раз. (Здесь мы рассмотрим простой случай, когда для всех точек m=1.) Поэтому, дана n+1 точка x0,x1,x2,,xn, и значения f(x0),f(x1),,f(xn) и f(x0),f(x1),,f(xn) функции f, которую мы хотим интерполировать. Определим новый набор данных

z0,z1,,z2n+1

такой, что

z2i=z2i+1=xi

Теперь определим таблицу разделенных разностей для точек z0,z1,,z2n+1. Однако, для некоторых разделенных разностей

zi=zi+1f[zi,zi+1]=f(zi+1)f(zi)zi+1zi=00

что есть неопределенность! В этом случае заменим эту разделенную разность значением f(zi), а другие вычислим обычным способом.

Общий случай

В общем случае полагаем, что в данных точках xi известны производные функции f до порядка k включительно. Тогда набор данных z0,z1,,zN содержит k копий xi. При создании таблицы разделенных разностей при j=2,3,,k одинаковые значения будут вычислены как

f(j)(xi)j!.

Например,

f[xi,xi,xi]=f(xi)2
f[xi,xi,xi,xi]=f(3)(xi)6

и так далее.

Пример

Рассмотрим функцию f(x)=x8+1. Вычислив значения функции и её первых двух производных в точках x{1,0,1}, получим следующие данные:

x ƒ(x) ƒ'(x) ƒ''(x)
−1 2 −8 56
0 1 0 0
1 2 8 56

Так как мы работаем с двумя производными, строим множество {zi}={1,1,1,0,0,0,1,1,1}. Таблица разделенных разностей тогда имеет вид:

z0=1f[z0]=2f(z0)1=8z1=1f[z1]=2f(z1)2=28f(z1)1=8f[z3,z2,z1,z0]=21z2=1f[z2]=2f[z3,z2,z1]=715f[z3,z2]=1f[z4,z3,z2,z1]=610z3=0f[z3]=1f[z4,z3,z2]=154f(z3)1=0f[z5,z4,z3,z2]=121z4=0f[z4]=1f(z4)2=0121f(z4)1=0f[z6,z5,z4,z3]=121z5=0f[z5]=1f[z6,z5,z4]=154f[z6,z5]=1f[z7,z6,z5,z4]=610z6=1f[z6]=2f[z7,z6,z5]=715f(z7)1=8f[z8,z7,z6,z5]=21z7=1f[z7]=2f(z7)2=28f(z8)1=8z8=1f[z8]=2

и получаем многочлен

P(x)=28(x+1)+28(x+1)221(x+1)3+15x(x+1)310x2(x+1)3+4x3(x+1)31x3(x+1)3(x1)+x3(x+1)3(x1)2=28+28218x+56x63x+15x+28x263x2+45x210x221x3+45x330x3+4x3+x3+x3+15x430x4+12x4+2x4+x410x5+12x52x5+4x52x52x5x6+x6x7+x7+x8=x8+1.

взятием коэффициентов диагонали таблицы разделенных разностей, и умножением коэффициента с номером k на i=0k1(xzi), как при получении многочлена Ньютона.

Погрешность эрмитовой интерполяции

Назовем найденный многочлен H и исходную функцию f. Для точек x[x0,xn], функция ошибки определяется как

f(x)H(x)=f(K)(c)K!i(xxi)ki,

где c неизвестная из диапазона [x0,xN], K - общее число данных значений плюс один, а ki - число производных, известных в каждой точке xi, плюс один.

См. также