Кубічні сплайни Ерміта

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Базис для кубічних ермітових сплайнів.

Кубічні сплайни Ерміта — кубічні сплайни, що використовують інтерполювання поліномами методом Ерміта. Даний метод інтерполювання використовує дві контрольні точки та два вектора напрямків.

Названі на честь французького математика Шарля Ерміта.

Зміст

[ред.] Інтерполяція на інтервалі

Інтерполяція Ерміта.

[ред.] Інтерполяція на інтервалі (0,1)

Задано стартову точку p0 при t=0 та кінцеву точку p1 при t=1 з початковим вектором m0 при t=0 та кінцевим вектором m1 при t=1, тоді поліном визначається як

\mathbf{p}(t) = h_{00}(t)\mathbf{p_0} + h_{10}(t)\mathbf{m_0} + h_{01}(t)\mathbf{p_1} + h_{11}(t)\mathbf{m_1}, \qquad t \in [0, 1]


Чотири базові ермітові поліноми визначаються як

\begin{matrix}
h_{00}(t) & = & 2t^3-3t^2+1 & = &( 1 - t)^2 (1 + 2 t) \\
h_{01}(t) & = & -2t^3+3t^2 & = & t^2 (3 - 2 t) \\
h_{10}(t) & = & t^3-2t^2+t  & = & t ( 1 - t)^2 \\
h_{11}(t) & = & t^3-t^2 & = & t^2 (t - 1) \\
\end{matrix}
f(t) f(0) f(1) f'(0) f'(1)
\ h_{00}(t) 1 0 0 0
\ h_{01}(t) 0 1 0 0
\ h_{10}(t) 0 0 1 0
\ h_{11}(t) 0 0 0 1
\mathbf{p}(t) \mathbf{p_0} \mathbf{p_1} \mathbf{m_0} \mathbf{m_1}

Існують такі властивості симетрії:

\ h_{00}(t) + h_{01}(t) = 1 — симетрія відносно осі y=1/2,
\ h_{00}(t) = h_{01}(1-t) — симетрія відносно осі x=1/2,
\ h_{10}(t) = -h_{11}(1-t) — симетрія відносно точки (0, 1/2).

[ред.] Інтерполяція на інтервалі (x_k \,, \; x_{k+1})

Інтерполяція на цьому інтервалі задається формулою

\mathbf{p}(x) = h_{00}(t)\mathbf{p_0} + h_{10}(t)h\mathbf{m_0} + h_{01}(t)\mathbf{p_1} + h_{11}(t)h\mathbf{m_1},
\qquad h = x_{k+1}-x_k, \qquad t = (x-x_k)/h.

[ред.] Зв'язок з кривими Без'є

Чотири базові ермітові поліноми легко виразити через поліноми Бернштейна, що є базисними для кривих Без'є

\begin{matrix}
h_{00}(t) & = & ( 1 - t)^2 (1 + 2 t) & = & ( 1 - t)^3  + 3t( 1 - t)^2 & = & \mathbf{b}_{0,3}(t) + \mathbf{b}_{1,3}(t) \\
h_{01}(t) & = & t^2 (3 - 2 t) & = &  t^3 + 3t^2 (1 - t) & = & \mathbf{b}_{3,3}(t) + \mathbf{b}_{2,3}(t) \\
h_{10}(t) & = & t ( 1 - t)^2 & = & & & \mathbf{b}_{1,3}(t) / 3 \\
h_{11}(t) & = & t^2 (t - 1) & = &  & & -\mathbf{b}_{2,3}(t) / 3\\
\end{matrix}

Тому кубічний сплайн Ерміта з параметрами

\mathbf{\left( p_0, p_1, m_0, m_1 \right)}

аналогічний кубічній кривій Без'є з опорними вершинами

\mathbf{\left( p_0, p_1, p_0+\frac{m_0}3, p_1-\frac{m_1}3 \right)}.

[ред.] Інтерполяція сплайном

Інтерполяції набору точок (x_k,\boldsymbol{p}_k) для \ k=1,\ldots ,n, здійснюється для кожного інтервалу, і параметри для однієї точки в різних інтервалах вибираються одинаковими. Інтерполяційний сплайн отримується неперервно-диференційовним на \ (x_1, x_n).

Існують декілька способів задання параметрів.

[ред.] Кінцеві різниці

Найпростіший спосіб із застосуванням трьох контрольних точок:

\boldsymbol{m}_k = \frac{\boldsymbol{p}_{k+1}-\boldsymbol{p}_{k}}{2(x_{k+1}-x_{k})} + \frac{\boldsymbol{p}_{k}-\boldsymbol{p}_{k-1}}{2(x_{k}-x_{k-1})}

для індексів k=2,\ldots,n-1, і односторонні різниці на кінцях.

[ред.] Кардинальні сплайни

 \boldsymbol{m}_k = (1-c)\frac{\boldsymbol{p}_{k+1}-\boldsymbol{p}_{k-1}}{2}

Параметр c \in (0,1).

[ред.] Сплайни Кетмал-Рома

\boldsymbol{m}_k = \frac{\boldsymbol{p}_{k+1} - \boldsymbol{p}_{k-1}}{2}
Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Участь
Панель інструментів
Друк/експорт
Іншими мовами