Эрмитова интерполяция - метод полиномиальной интерполяции , названный в честь французского математика Шарля Эрмита . Многочлены Эрмита тесно связаны с многочленами Ньютона.
В отличие от интерполяции Ньютона , эрмитова интерполяция строит многочлен , значения которого в выбранных точках совпадают со значениями исходной функции в этих точках, и все производные многочлена вплоть до некоторого порядка m в данных точках совпадают со значениями производных функции. Это означает, что n (m + 1) величин
(
x
0
,
y
0
)
,
(
x
1
,
y
1
)
,
…
,
(
x
n
−
1
,
y
n
−
1
)
,
(
x
0
,
y
0
′
)
,
(
x
1
,
y
1
′
)
,
…
,
(
x
n
−
1
,
y
n
−
1
′
)
,
⋮
⋮
⋮
(
x
0
,
y
0
(
m
)
)
,
(
x
1
,
y
1
(
m
)
)
,
…
,
(
x
n
−
1
,
y
n
−
1
(
m
)
)
{\displaystyle {\begin{matrix}(x_{0},y_{0}),&(x_{1},y_{1}),&\ldots ,&(x_{n-1},y_{n-1}),\\(x_{0},y_{0}'),&(x_{1},y_{1}'),&\ldots ,&(x_{n-1},y_{n-1}'),\\\vdots &\vdots &&\vdots \\(x_{0},y_{0}^{(m)}),&(x_{1},y_{1}^{(m)}),&\ldots ,&(x_{n-1},y_{n-1}^{(m)})\end{matrix}}}
должны быть известны, тогда как для ньютоновской интерполяции необходимы только первые n значений. Полученный многочлен может иметь степень не более, чем n (m + 1) − 1, максимальная степень многочлена Ньютона же равна n − 1. (В общем случае m не обязательно должно быть фиксировано, то есть в одних точках может быть известно значение большего количества производных, чем в других. В этом случае многочлен будет иметь степень N − 1, где N - число известных значений.)
При использовании разделенных разностей для вычисления многочлена Эрмита, первым шагом является копирование каждой точки m раз. (Здесь мы рассмотрим простой случай, когда для всех точек
m
=
1
{\displaystyle m=1}
.) Поэтому, дана
n
+
1
{\displaystyle n+1}
точка
x
0
,
x
1
,
x
2
,
…
,
x
n
{\displaystyle x_{0},x_{1},x_{2},\ldots ,x_{n}}
, и значения
f
(
x
0
)
,
f
(
x
1
)
,
…
,
f
(
x
n
)
{\displaystyle f(x_{0}),f(x_{1}),\ldots ,f(x_{n})}
и
f
′
(
x
0
)
,
f
′
(
x
1
)
,
…
,
f
′
(
x
n
)
{\displaystyle f'(x_{0}),f'(x_{1}),\ldots ,f'(x_{n})}
функции f , которую мы хотим интерполировать. Определим новый набор данных
z
0
,
z
1
,
…
,
z
2
n
+
1
{\displaystyle z_{0},z_{1},\ldots ,z_{2n+1}}
такой, что
z
2
i
=
z
2
i
+
1
=
x
i
{\displaystyle z_{2i}=z_{2i+1}=x_{i}}
Теперь определим таблицу разделенных разностей для точек
z
0
,
z
1
,
…
,
z
2
n
+
1
{\displaystyle z_{0},z_{1},\ldots ,z_{2n+1}}
. Однако, для некоторых разделенных разностей
z
i
=
z
i
+
1
⟹
f
[
z
i
,
z
i
+
1
]
=
f
(
z
i
+
1
)
−
f
(
z
i
)
z
i
+
1
−
z
i
=
0
0
{\displaystyle z_{i}=z_{i+1}\implies f[z_{i},z_{i+1}]={\frac {f(z_{i+1})-f(z_{i})}{z_{i+1}-z_{i}}}={\frac {0}{0}}}
что есть неопределенность!
В этом случае заменим эту разделенную разность значением
f
′
(
z
i
)
{\displaystyle f'(z_{i})}
, а другие вычислим обычным способом.
В общем случае полагаем, что в данных точках
x
i
{\displaystyle x_{i}}
известны производные функции f до порядка k включительно. Тогда набор данных
z
0
,
z
1
,
…
,
z
N
{\displaystyle z_{0},z_{1},\ldots ,z_{N}}
содержит k копий
x
i
{\displaystyle x_{i}}
. При создании таблицы разделенных разностей при
j
=
2
,
3
,
…
,
k
{\displaystyle j=2,3,\ldots ,k}
одинаковые значения будут вычислены как
f
(
j
)
(
x
i
)
j
!
{\displaystyle {\frac {f^{(j)}(x_{i})}{j!}}}
.
Например,
f
[
x
i
,
x
i
,
x
i
]
=
f
″
(
x
i
)
2
{\displaystyle f[x_{i},x_{i},x_{i}]={\frac {f''(x_{i})}{2}}}
f
[
x
i
,
x
i
,
x
i
,
x
i
]
=
f
(
3
)
(
x
i
)
6
{\displaystyle f[x_{i},x_{i},x_{i},x_{i}]={\frac {f^{(3)}(x_{i})}{6}}}
и так далее.
Рассмотрим функцию
f
(
x
)
=
x
8
+
1
{\displaystyle f(x)=x^{8}+1}
. Вычислив значения функции и её первых двух производных в точках
x
∈
{
−
1
,
0
,
1
}
{\displaystyle x\in \{-1,0,1\}}
, получим следующие данные:
x
ƒ (x )
ƒ '(x )
ƒ ''(x )
−1
2
−8
56
0
1
0
0
1
2
8
56
Так как мы работаем с двумя производными, строим множество
{
z
i
}
=
{
−
1
,
−
1
,
−
1
,
0
,
0
,
0
,
1
,
1
,
1
}
{\displaystyle \{z_{i}\}=\{-1,-1,-1,0,0,0,1,1,1\}}
. Таблица разделенных разностей тогда имеет вид:
z
0
=
−
1
f
[
z
0
]
=
2
f
′
(
z
0
)
1
=
−
8
z
1
=
−
1
f
[
z
1
]
=
2
f
″
(
z
1
)
2
=
28
f
′
(
z
1
)
1
=
−
8
f
[
z
3
,
z
2
,
z
1
,
z
0
]
=
−
21
z
2
=
−
1
f
[
z
2
]
=
2
f
[
z
3
,
z
2
,
z
1
]
=
7
15
f
[
z
3
,
z
2
]
=
−
1
f
[
z
4
,
z
3
,
z
2
,
z
1
]
=
−
6
−
10
z
3
=
0
f
[
z
3
]
=
1
f
[
z
4
,
z
3
,
z
2
]
=
1
5
4
f
′
(
z
3
)
1
=
0
f
[
z
5
,
z
4
,
z
3
,
z
2
]
=
−
1
−
2
−
1
z
4
=
0
f
[
z
4
]
=
1
f
″
(
z
4
)
2
=
0
1
2
1
f
′
(
z
4
)
1
=
0
f
[
z
6
,
z
5
,
z
4
,
z
3
]
=
1
2
1
z
5
=
0
f
[
z
5
]
=
1
f
[
z
6
,
z
5
,
z
4
]
=
1
5
4
f
[
z
6
,
z
5
]
=
1
f
[
z
7
,
z
6
,
z
5
,
z
4
]
=
6
10
z
6
=
1
f
[
z
6
]
=
2
f
[
z
7
,
z
6
,
z
5
]
=
7
15
f
′
(
z
7
)
1
=
8
f
[
z
8
,
z
7
,
z
6
,
z
5
]
=
21
z
7
=
1
f
[
z
7
]
=
2
f
″
(
z
7
)
2
=
28
f
′
(
z
8
)
1
=
8
z
8
=
1
f
[
z
8
]
=
2
{\displaystyle {\begin{matrix}z_{0}=-1&f[z_{0}]=2&&&&&&&&\\&&{\frac {f'(z_{0})}{1}}=-8&&&&&&&\\z_{1}=-1&f[z_{1}]=2&&{\frac {f''(z_{1})}{2}}=28&&&&&&\\&&{\frac {f'(z_{1})}{1}}=-8&&f[z_{3},z_{2},z_{1},z_{0}]=-21&&&&&\\z_{2}=-1&f[z_{2}]=2&&f[z_{3},z_{2},z_{1}]=7&&15&&&&\\&&f[z_{3},z_{2}]=-1&&f[z_{4},z_{3},z_{2},z_{1}]=-6&&-10&&&\\z_{3}=0&f[z_{3}]=1&&f[z_{4},z_{3},z_{2}]=1&&5&&4&&\\&&{\frac {f'(z_{3})}{1}}=0&&f[z_{5},z_{4},z_{3},z_{2}]=-1&&-2&&-1&\\z_{4}=0&f[z_{4}]=1&&{\frac {f''(z_{4})}{2}}=0&&1&&2&&1\\&&{\frac {f'(z_{4})}{1}}=0&&f[z_{6},z_{5},z_{4},z_{3}]=1&&2&&1&\\z_{5}=0&f[z_{5}]=1&&f[z_{6},z_{5},z_{4}]=1&&5&&4&&\\&&f[z_{6},z_{5}]=1&&f[z_{7},z_{6},z_{5},z_{4}]=6&&10&&&\\z_{6}=1&f[z_{6}]=2&&f[z_{7},z_{6},z_{5}]=7&&15&&&&\\&&{\frac {f'(z_{7})}{1}}=8&&f[z_{8},z_{7},z_{6},z_{5}]=21&&&&&\\z_{7}=1&f[z_{7}]=2&&{\frac {f''(z_{7})}{2}}=28&&&&&&\\&&{\frac {f'(z_{8})}{1}}=8&&&&&&&\\z_{8}=1&f[z_{8}]=2&&&&&&&&\\\end{matrix}}}
и получаем многочлен
P
(
x
)
=
2
−
8
(
x
+
1
)
+
28
(
x
+
1
)
2
−
21
(
x
+
1
)
3
+
15
x
(
x
+
1
)
3
−
10
x
2
(
x
+
1
)
3
+
4
x
3
(
x
+
1
)
3
−
1
x
3
(
x
+
1
)
3
(
x
−
1
)
+
x
3
(
x
+
1
)
3
(
x
−
1
)
2
=
2
−
8
+
28
−
21
−
8
x
+
56
x
−
63
x
+
15
x
+
28
x
2
−
63
x
2
+
45
x
2
−
10
x
2
−
21
x
3
+
45
x
3
−
30
x
3
+
4
x
3
+
x
3
+
x
3
+
15
x
4
−
30
x
4
+
12
x
4
+
2
x
4
+
x
4
−
10
x
5
+
12
x
5
−
2
x
5
+
4
x
5
−
2
x
5
−
2
x
5
−
x
6
+
x
6
−
x
7
+
x
7
+
x
8
=
x
8
+
1.
{\displaystyle {\begin{aligned}P(x)&=2-8(x+1)+28(x+1)^{2}-21(x+1)^{3}+15x(x+1)^{3}-10x^{2}(x+1)^{3}\\&\quad {}+4x^{3}(x+1)^{3}-1x^{3}(x+1)^{3}(x-1)+x^{3}(x+1)^{3}(x-1)^{2}\\&=2-8+28-21-8x+56x-63x+15x+28x^{2}-63x^{2}+45x^{2}-10x^{2}-21x^{3}\\&\quad {}+45x^{3}-30x^{3}+4x^{3}+x^{3}+x^{3}+15x^{4}-30x^{4}+12x^{4}+2x^{4}+x^{4}\\&\quad {}-10x^{5}+12x^{5}-2x^{5}+4x^{5}-2x^{5}-2x^{5}-x^{6}+x^{6}-x^{7}+x^{7}+x^{8}\\&=x^{8}+1.\end{aligned}}}
взятием коэффициентов диагонали таблицы разделенных разностей, и умножением коэффициента с номером k на
∏
i
=
0
k
−
1
(
x
−
z
i
)
{\displaystyle \prod _{i=0}^{k-1}(x-z_{i})}
, как при получении многочлена Ньютона.