Сплайн-интерполяция

редактировать
Математический метод

В поле Mathematical в числовом анализе, сплайн-интерполяция - это форма интерполяции, где интерполянт - это особый тип пошагового полинома, называемый сплайн. Сплайн-интерполяция часто предпочтительнее, чем полиномиальная интерполяция , потому что ошибку интерполяции можно сделать небольшой даже при использовании полиномов низкой степени для сплайна. Сплайн-интерполяция позволяет избежать проблемы явления Рунге, при котором колебания могут возникать между точками при интерполяции с использованием многочленов высокой степени.

Содержание
  • 1 Введение
  • 2 Алгоритм для поиска интерполирующего кубического сплайна
  • 3 Пример
  • 4 См. Также
  • 5 Компьютерный код
  • 6 Ссылки
  • 7 Внешние ссылки
Введение

Первоначально сплайн был термином для упругих линейок, которые были изогнуты, чтобы проходить через несколько заранее определенных точек («узлов»). Они использовались для создания технических чертежей для судостроения и строительства вручную, как показано на Рисунке 1.

Рисунок 1: Интерполяция кубическими шлицами между восемью точками. Нарисованные от руки технические чертежи были сделаны для судостроения и т. Д. С использованием гибких линейок, которые были изогнуты в соответствии с заранее заданными точками

Подход к математическому моделированию формы таких упругих линейок, закрепленных n + 1 узлами {(xi, yi): я знак равно 0, 1, ⋯, n} {\ displaystyle \ left \ {(x_ {i}, y_ {i}): i = 0,1, \ cdots, n \ right \}}\ left \ {(x_ {i}, y_ {i}): i = 0,1, \ cdots, n \ right \} - интерполировать между всеми парами узлов (xi - 1, yi - 1) {\ displaystyle (x_ {i-1}, y_ {i-1})}(x_ { {я-1}}, y _ {{i-1}}) и (xi, yi) {\ displaystyle (x_ {i}, y_ {i})}{\ displaystyle (x_ {i}, y_ {i})} с многочленами y = qi (x), i = 1, 2, ⋯, n {\ displaystyle y = q_ {i} (x), i = 1,2, \ cdots, n}y = q_ {i} (x), i = 1,2, \ cdots, n .

кривизна кривой y = f (x) {\ displaystyle y = f (x)}y = f (x) определяется как:

κ = y ″ (1 + y ′ 2) 3/2 {\ displaystyle \ kappa = {\ frac {y ''} {( 1 + y '^ {2}) ^ {3/2}}}}\kappa= \frac{y''}{(1+y'^2)^{3/2}}

Поскольку сплайн примет форму, минимизирующую изгиб (при ограничении прохождения через все узлы), оба y ′ {\ displaystyle y '}y'и y ″ {\ displaystyle y' '}y''будет непрерывным везде и в узлах. Для этого нужно иметь

{qi ′ (xi) = qi + 1 ′ (xi) qi ″ (xi) = qi + 1 ″ (xi) 1 ≤ i ≤ n - 1 {\ displaystyle {\ begin {case} q '_ {i} (x_ {i}) = q' _ {i + 1} (x_ {i}) \\ q '' _ {i} (x_ {i}) = q '' _ {i + 1} (x_ {i}) \ end {cases}} \ qquad 1 \ leq i \ leq n-1}{\begin{cases}q'_{i}(x_{i})=q'_{{i+1}}(x_{i})\\q''_{i}(x_{i})=q''_{{i+1}}(x_{i})\end{cases}}\qquad 1\leq i\leq n-1

Этого можно достичь, только если используются многочлены степени 3 или выше. Классический подход заключается в использовании полиномов степени 3 - случай кубических сплайнов.

Алгоритм поиска интерполирующего кубического сплайна

полином третьего порядка q (x) {\ displaystyle q (x)}q (x) , для которого

q (x 1) = y 1 {\ displaystyle q (x_ {1}) = y_ {1}}q (x_1) = y_1
q (x 2) = y 2 {\ displaystyle q (x_ {2}) = y_ {2}}q (x_2) = y_2
q ′ (x 1) = k 1 {\ displaystyle q '(x_ {1}) = k_ {1}}q'(x_1)=k_1
q ′ (X 2) = k 2 {\ displaystyle q '(x_ {2}) = k_ {2}}q'(x_2)=k_2

можно записать в симметричной форме

q (x) = (1 - t (x)) Y 1 + T (Икс) Y 2 + T (Икс) (1 - T (Икс)) ((1 - T (Икс)) а + T (Икс) б) {\ Displaystyle д (х) = {\ big (} 1-t (x) {\ big)} \, y_ {1} + t (x) \, y_ {2} + t (x) {\ big (} 1-t (x) {\ big)} {\ Big (} {\ big (} 1-t (x) {\ big)} \, a + t (x) \, b {\ Big)}}{\ displaystyle q (x) = {\ big (} 1-t (x) {\ big)} \, y_ { 1} + t (x) \, y_ {2} + t (x) {\ big (} 1-t (x) {\ big)} {\ Big (} {\ big (} 1-t (x) {\ big)} \, a + t (x) \, b {\ Big)}}

(1)

где

t (x) = x - x 1 x 2 - x 1, {\ displaystyle t (x) = {\ frac {x-x_ {1}} {x_ {2} -x_ {1}}}, }{\ displaystyle t (x) = {\ frac {x-x_ {1}} {x_ {2} -x_ {1}}},}

(2)

a = k 1 (x 2 - x 1) - (y 2 - y 1), {\ displaystyle a = k_ {1} (x_ {2} -x_ {1}) - (y_ {2} -y_ {1}),}a = k_ {1} (x_ {2} -x_ {1}) - (y_ {2} -y_ {1}),

(3)

b = - k 2 (x 2 - x 1) + (y 2 - y 1). {\ displaystyle b = -k_ {2} (x_ {2} -x_ {1}) + (y_ {2} -y_ {1}).}b = -k_2 (x_2 - x_1) + (y_2 - y_1).

(4)

As

q ′ = dqdx = dqdtdtdx = dqdt 1 x 2 - x 1 {\ displaystyle q '= {\ frac {dq} {dx}} = {\ frac {dq} {dt}} {\ frac {dt} {dx}} = {\ frac {dq} {dt}} {\ frac {1} {x_ {2} -x_ {1}}}}q'={\frac {dq}{dx}}={\frac {dq}{dt}}{\frac {dt}{dx}}={\frac {dq}{dt}}{\frac {1}{x_{2}-x_{1}}}

получается, что:

q ′ = y 2 - y 1 x 2 - Икс 1 + (1-2 t) a (1 - t) + btx 2 - x 1 + t (1 - t) b - ax 2 - x 1, {\ displaystyle q '= {\ frac {y_ {2} -y_ {1}} {x_ {2} -x_ {1}}} + (1-2t) {\ frac {a (1-t) + bt} {x_ {2} -x_ {1}}} + t (1-t) {\ frac {ba} {x_ {2} -x_ {1}}},}q'={\frac {y_{2}-y_{1}}{x_{2}-x_{1}}}+(1-2t){\frac {a(1-t)+bt}{x_{2}-x_{1}}}+t(1-t){\frac {b-a}{x_{2}-x_{1}}},

(5)

q ″ = 2 b - 2 a + (a - b) 3 т (х 2 - х 1) 2. {\ displaystyle q '' = 2 {\ frac {b-2a + (ab) 3t} {{(x_ {2} -x_ {1})} ^ {2}}}.}q''=2\frac {b-2a+(a-b)3t}{{(x_2-x_1)}^2}.

(6)

Устанавливая t = 0 и t = 1 соответственно в уравнениях (5) и (6), из (2) получаем, что действительно первые производные q ′ (x 1) = k 1 и q ′ (x 2) = k 2, а также вторые производные

q ″ (x 1) = 2 b - 2 a (x 2 - x 1) 2 {\ displaystyle q '' (x_ {1}) = 2 {\ frac {b-2a} {{(x_ {2} -x_ {1})} ^ {2}}}}q''(x_1)=2\frac {b-2a}{{(x_2-x_1)}^2}

(7)

q ″ (x 2) = 2 a - 2 b (x 2 - x 1) 2 {\ displaystyle q '' (x_ {2}) = 2 {\ frac {a-2b} { {(x_ {2} -x_ {1})} ^ {2}}}}q''(x_2)=2\frac {a-2b}{{(x_2-x_1)}^2}

(8)

Если сейчас (x i, y i), i = 0, 1,..., n - это n + 1 точка и

qi = (1 - t) yi - 1 + tyi + t (1 - t) ((1 - t) ai + tbi) {\ Displaystyle д_ {я} = (1-т) \, у_ {я-1} + т \, у_ {я} + т (1-т) {\ большой (} (1-т) \, а_ { i} + t \, b_ {i} {\ big)}}{\ displaystyle q_ {i} = (1-t) \, y_ {i-1} + t \, y_ {i} + t (1-t) {\ big (} (1-t) \, a_ {i} + t \, b_ {i} {\ big)}}

(9)

где i = 1, 2,..., n и t = x - xi - 1 xi - xi - 1 {\ displaystyle t = {\ tfrac {x-x_ {i-1}} {x_ {i} -x_ {i-1}}}}t = {\ tfrac {x-x _ {{i-1}}} {x _ {{i}} - x_ { {i-1}}}} - n многочленов третьей степени, интерполирующих y в интервал x i − 1 ≤ x ≤ x i для i = 1,..., n таких, что q ′ i(xi) = q ′ i + 1 (xi) для i = 1,..., n − 1, тогда n многочленов вместе определяют дифференцируемая функция в интервале x 0 ≤ x ≤ x n и

ai = ki - 1 (xi - xi - 1) - (yi - yi - 1) {\ displaystyle a_ {i} = k_ {i-1} (x_ {i} -x_ {i-1}) - (y_ {i} -y_ {i-1})}a_i = k_ {i-1} (x_i-x_ {i-1}) - (y_i - y_ { i-1})

(10)

bi = - ки (xi - xi - 1) + (yi - yi - 1) {\ displaystyle b_ {i} = - k_ {i} (x_ {i} -x_ {i-1}) + (y_ {i} -y_ {i-1})}b_i = -k_i (x_i-x_ {i- 1}) + (y_i - y_ {i-1})

(11)

для i = 1,..., n, где

k 0 = q 1 ′ (x 0) {\ displaystyle k_ {0} = q_ {1} '(x_ {0})}k_0=q_1'(x_0)

(12)

ki = qi ′ (xi) = qi + 1 ′ (xi) i = 1,…, n - 1 {\ displaystyle k_ { i} = q_ {i} '(x_ {i}) = q_ {i + 1}' (x_ {i}) \ qquad i = 1, \ dotsc, n-1}k_{i}=q_{i}'(x_{i})=q_{{i+1}}'(x_{i})\qquad i=1,\dotsc,n-1

(13)

kn = qn ′ (xn) {\ displaystyle k_ {n} = q_ {n} '(x_ {n})}k_n=q_n'(x_n)

(14)

Если последовательность k 0, k 1,..., k n таково, что, кроме того, q ′ ′ i(xi) = q ′ ′ i + 1 (xi) выполняется для i = 1,..., n-1, то полученная функция будет даже иметь непрерывную вторую производную.

Из (7), (8), (10) и (11) следует, что это так, если и только если

ki - 1 xi - xi - 1 + (1 xi - xi - 1 + 1 xi + 1 - xi) 2 ki + ki + 1 xi + 1 - xi = 3 (yi - yi - 1 (xi - xi - 1) 2 + yi + 1 - yi (xi + 1 - xi) 2) {\ displaystyle {\ frac {k_ {i-1}} {x_ {i} -x_ {i-1}}} + \ left ({\ frac {1} {x_ { i} -x_ {i-1}}} + {\ frac {1} {x_ {i + 1} -x_ {i}}} \ right) 2k_ {i} + {\ frac {k_ {i + 1} } {x_ {i + 1} -x_ {i}}} = 3 \ left ({\ frac {y_ {i} -y_ {i-1}} {(x_ {i} -x_ {i-1}))} ^ {2}}} + {\ frac {y_ {i + 1} -y_ {i}} {{(x_ {i + 1} -x_ {i})} ^ {2}}} \ right) }{\ frac {k _ {{i-1}}}} {x_ { i} -x _ {{i-1}}}} + \ left ({\ frac {1} {x_ {i} -x _ {{i-1}}}}} + {\ frac {1} {{x_ { {i + 1}} - x_ {i}}}} \ right) 2k_ {i} + {\ frac {k _ {{i + 1}}} {{x _ {{i + 1}} - x_ {i} }}} = 3 \ left ({\ frac {y_ {i} -y _ {{i-1}}} {{(x_ {i} -x _ {{i-1}})} ^ {2}}} + {\ frac {y _ {{i + 1}} - y_ {i}} {{(x _ {{i + 1}} - x_ {i})} ^ {2}}} \ right)

(15)

для i = 1,..., n-1. Соотношения (15) представляют собой n - 1 линейных уравнений для n + 1 значений k 0, k 1,..., k n.

Для упругих линейок, находящихся модель для интерполяции сплайном гласит, что слева от самого левого «узла» и справа от самого правого «узла» линейка может свободно перемещаться и, следовательно, принимает форму прямой с q ′ ′ = 0. Поскольку q ′ ′ должен быть непрерывной функцией от x, получается, что для «Естественных сплайнов» одно в дополнение к n - 1 линейным уравнениям (15) должно иметь это

q 1 ″ (x 0) Знак равно 2 3 (y 1 - y 0) - (k 1 + 2 k 0) (x 1 - x 0) (x 1 - x 0) 2 = 0, {\ displaystyle q '' _ {1} (x_ {0}) = 2 {\ frac {3 (y_ {1} -y_ {0}) - (k_ {1} + 2k_ {0}) (x_ {1} -x_ {0})} {{(x_ {1} -x_ {0})} ^ {2}}} = 0,}q''_{1}(x_{0})=2{\frac {3(y_{1}-y_{0})-(k_{1}+2k_{0})(x_{1}-x_{0})}{{(x_{1}-x_{0})}^{2}}}=0,
qn ″ (xn) = - 2 3 (yn - yn - 1) - (2 kn + kn - 1) (xn - xn - 1) (xn - xn - 1) 2 = 0, {\ displaystyle q '' _ {n} (x_ {n}) = - 2 {\ frac {3 (y_ {n} -y_ {n- 1}) - (2k_ {n} + k_ {n-1}) (x_ {n} -x_ {n-1})} {{(x_ {n} -x_ {n-1})} ^ {2 }}} = 0,}q''_{n}(x_{n})=-2{\frac {3(y_{n}-y_{{n-1}})-(2k_{n}+k_{{n-1}})(x_{n}-x_{{n-1}})}{{(x_{n}-x_{{n-1}})}^{2}}}=0,

т.е. что

2 x 1 - x 0 k 0 + 1 x 1 - x 0 k 1 = 3 y 1 - y 0 (x 1 - x 0) 2, {\ displaystyle {\ frac {2} {x_ {1) } -x_ {0}}} k_ {0} + {\ frac {1} {x_ {1} -x_ {0}}} k_ {1} = 3 {\ frac {y_ {1} -y_ {0} } {(x_ {1} -x_ {0}) ^ {2}}},}{\ frac {2} {x_ {1} -x_ {0}}} k_ {0} + {\ frac {1} {x_ {1} -x_ {0 }}} k_ {1} = 3 {\ frac {y_ {1} -y_ {0}} {(x_ {1} -x_ {0}) ^ {2}}},

(16)

1 xn - xn - 1 kn - 1 + 2 xn - xn - 1 kn = 3 yn - yn - 1 (xn - xn - 1) 2. {\ displaystyle {\ frac {1} {x_ {n} -x_ {n-1}}} k_ {n-1} + {\ frac {2} {x_ {n} -x_ {n-1}}} k_ {n} = 3 {\ frac {y_ {n} -y_ {n-1}} {(x_ {n} -x_ {n-1}) ^ {2}}}.}{\ frac {1} {x_ {n} -x _ {{n-1}}}} k _ {{n-1}} + {\ frac {2} {x_ {n} -x _ {{n-1}}}} k_ {n} = 3 {\ frac {y_ {n} -y _ {{n-1}}} {(x_ {n} -x _ {{n-1}})) ^ {2}}}.

(17)

В конечном итоге (15) вместе с (16) и (17) составляют n + 1 линейных уравнений, которые однозначно определяют n + 1 параметров k 0, k 1,..., k n.

Существуют и другие конечные условия: «Фиксированный шлиц», который задает наклон на концах шлицевого соединения, и популярный «шлиц без узлов», который требует, чтобы третья производная также непрерывна в точках x 1 и x N-1. Для сплайна «без узла» дополнительные уравнения будут выглядеть так:

q 1 ‴ (x 1) = q 2 ‴ (x 1) ⇒ 1 Δ x 1 2 k 0 + (1 Δ x 1 2 - 1 Δ Икс 2 2) К 1 - 1 Δ Икс 2 2 К 2 = 2 (Δ Y 1 Δ Икс 1 3 - Δ Y 2 Δ Икс 2 3) {\ Displaystyle q '' '_ {1} (x_ { 1}) = q '' '_ {2} (x_ {1}) \ Rightarrow {\ frac {1} {\ Delta x_ {1} ^ {2}}} k_ {0} + \ left ({\ frac {1} {\ Delta x_ {1} ^ {2}}} - {\ frac {1} {\ Delta x_ {2} ^ {2}}} \ right) k_ {1} - {\ frac {1} {\ Delta x_ {2} ^ {2}}} k_ {2} = 2 \ left ({\ frac {\ Delta y_ {1}} {\ Delta x_ {1} ^ {3}}} - {\ frac {\ Delta y_ {2}} {\ Delta x_ {2} ^ {3}}} \ right)}q'''_1(x_1) =q'''_2(x_1) \Rightarrow \frac{1}{\Delta x_1^2} k_0 + \left( \frac{1}{\Delta x_1^2} - \frac{1}{\Delta x_2^2} \right) k_1 - \frac{1}{\Delta x_2^2} k_2 = 2 \left( \frac{\Delta y_1}{\Delta x_1^3} - \frac{\Delta y_2}{\Delta x_2^3} \right)
qn - 1 ‴ (xn - 1) = qn ‴ (xn - 1) ⇒ 1 Δ xn - 1 2 kn - 2 + (1 Δ xn - 1 2-1 Δ xn 2) kn - 1-1 Δ xn 2 kn = 2 (Δ yn - 1 Δ xn - 1 3 - Δ yn Δ xn 3) {\ displaystyle q '' '_ {n-1} (x_ {n-1}) = q' '' _ {n} (x_ {n-1}) \ Rightarrow {\ frac {1} {\ Delta x_ {n- 1} ^ {2}}} k_ {n-2} + \ left ({\ frac {1} {\ Delta x_ {n-1} ^ {2}}} - {\ frac {1} {\ Delta x_) {n} ^ {2}}} \ right) k_ {n-1} - {\ frac {1} {\ Delta x_ {n} ^ {2}}} k_ {n} = 2 \ left ({\ frac {\ Delta y_ {n-1}} {\ Delta x_ {n-1} ^ {3}}} - {\ frac {\ Delta y_ {n}} {\ Delta x_ {n} ^ {3}}} \ right)}q'''_{n-1}(x_{n-1}) =q'''_n(x_{n-1}) \Rightarrow \frac{1}{\Delta x_{n-1}^2} k_{n-2} + \left( \frac{1}{\Delta x_{n-1}^2} - \frac{1}{\Delta x_n^2} \right) k_{n-1} - \frac{1}{\Delta x_n^2} k_n = 2\left( \frac{\Delta y_{n-1} }{\Delta x_{n-1}^3 }- \frac{ \Delta y_n}{ \Delta x_n^3 } \right)

где Δ xi = xi - xi - 1, Δ yi = yi - yi - 1 {\ displaystyle \ Delta x_ {i} = x_ {i} -x_ {i-1}, \ Delta y_ {i } = y_ {i} -y_ {i-1}}\ Delta x_ {i} = x_ {i} -x _ {{i-1}}, \ Дельта y_ {i} = y_ {i} -y _ {{i-1}} .

Пример
Рисунок 2: Интерполяция кубическими «естественными» сплайнами между тремя точками.

В случае трех точек значения для k 0, k 1, k 2 {\ displaystyle k_ {0}, k_ {1}, k_ {2}}k_0, k_1, k_2 находятся путем решения системы трехдиагональных линейных уравнений

[a 11 a 12 0 a 21 a 22 a 23 0 a 32 a 33] [k 0 k 1 k 2] = [b 1 b 2 b 3] {\ displaystyle {\ begin {bmatrix} a_ {11} a_ {12} 0 \ \ a_ {21} a_ {22} a_ {23} \\ 0 a_ {32} a_ {33} \\\ end {bmatrix}} {\ begin {bmatrix} k_ {0} \\ k_ {1} \\ k_ {2} \\\ end {bmatrix}} = {\ begin {bmatrix} b_ {1} \\ b_ {2} \\ b_ {3} \\\ end {bmatrix}}}\ begin {bmatrix} a_ {11} a_ { 12} 0 \\ a_ {21} a_ {22} a_ {23} \\ 0 a_ {32} a_ {33} \\ \ end {bmatrix} \ begin {bmatrix} k_0 \\ k_1 \ \ k_2 \\ \ end {bmatrix} = \ begin {bmatrix} b_1 \\ b_2 \\ b_3 \\ \ end {bmatrix}

с

a 11 = 2 x 1 - x 0 {\ displaystyle a_ {11} = {\ frac {2} {x_ {1} -x_ {0}}}}a_ {11} = \ frac {2} {x_1-x_0}
a 12 = 1 x 1 - x 0 {\ displaystyle a_ {12} = {\ frac {1} {x_ {1} -x_ {0}}}}a_ {12} = \ frac {1} {x_1-x_0}
a 21 = 1 x 1 - x 0 {\ displaystyle a_ {21} = {\ frac {1 } {x_ {1} -x_ {0}}}}a_ {21} = \ frac {1} {x_1-x_0}
a 22 = 2 (1 x 1 - x 0 + 1 x 2 - x 1) {\ displaystyle a_ {22} = 2 \ \ left ({ \ frac {1} {x_ {1} - x_ {0}}} + {\ frac {1} {x_ {2} -x_ {1}}} \ right)}a_ {22} = 2 \ \ left (\ frac {1} {x_1-x_0} + \ frac {1} {{x_2-x_1}} \ right)
a 23 = 1 x 2 - x 1 {\ displaystyle a_ {23} = { \ frac {1} {x_ {2} -x_ {1}}}}a_ {23} = \ frac {1} {{x_2-x_1}}
a 32 = 1 x 2 - x 1 {\ displaystyle a_ {32} = {\ frac {1} {x_ {2} - x_ {1}}}}a_ {32} = \ frac {1} {x_2-x_1}
a 33 = 2 x 2 - x 1 {\ displaystyle a_ {33} = {\ frac {2} {x_ {2} -x_ {1}}}}a_ {33} = \ frac {2} {x_2-x_1}
b 1 = 3 y 1 - y 0 (x 1 - x 0) 2 {\ displaystyle b_ {1} = 3 \ {\ frac {y_ {1} -y_ {0}} {(x_ {1} -x_ {0) }) ^ {2}}}}b_1 = 3 \ \ frac {y_1-y_0} {(x_1-x_0) ^ 2}
b 2 = 3 (y 1 - y 0 (x 1 - x 0) 2 + y 2 - y 1 (x 2 - x 1) 2) {\ displaystyle b_ { 2} = 3 \ \ left ({\ frac {y_ {1} -y_ {0}} {{(x_ {1} -x_ {0})} ^ {2}}} + {\ frac {y_ {2 } -y_ {1}} {{(x_ {2} -x_ {1})} ^ {2}}} \ right)}b_2 = 3 \ \ left (\ frac {y_1 - y_0} {{(x_1-x_0)} ^ 2} + \ frac {y_2 - y_1} {{(x_2-x_1)} ^ 2} \ right)
b 3 = 3 y 2 - y 1 (x 2 - x 1) 2 {\ displaystyle b_ {3} = 3 \ {\ frac {y_ {2} -y_ {1}} {(x_ {2} -x_ {1}) ^ {2}}}}b_3 = 3 \ \ frac {y_2-y_1} {(x_2-x_1) ^ 2}

Для трех точки

(- 1, 0,5), (0, 0), (3, 3) {\ displaystyle (-1,0,5) \, \ (0,0) \, \ (3,3)}(-1,0.5) \, \ (0,0) \, \ (3,3) ,

получаем, что

k 0 = - 0,6875, k 1 = - 0,1250, k 2 = 1,5625 {\ displaystyle k_ {0} = - 0,6875 \, \ k_ {1} = - 0,1250 \, \ k_ {2} = 1,5625}k_0 = -0,6875 \, \ k_1 = -0,1250 \, \ k_2 = 1,5625

и из (10) и (11), что

a 1 = k 0 (x 1 - x 0) - (y 1 - y 0) = - 0,1875 {\ displaystyle a_ {1} = k_ {0} (x_ {1} -x_ {0}) - (y_ {1} -y_ {0}) = - 0,1875}a_1 = k_0 (x_1-x_0) - (y_1 - y_0) = -0,1875
b 1 = - k 1 ( Икс 1 - Икс 0) + (Y 1 - Y 0) = - 0,3750 {\ displaystyle b_ {1} = - k_ {1} (x_ {1} -x_ {0}) + (y_ {1} -y_ { 0}) = - 0,3750}b_1 = -k_1 (x_1-x_0) + (y_1 - y_0) = - 0,3750
a 2 = k 1 (x 2 - x 1) - (y 2 - y 1) = - 3,3750 {\ displaystyle a_ {2} = k_ {1} (x_ {2} -x_ {1}) - (y_ {2} -y_ {1}) = - 3.3750}a_2 = k_1 (x_2-x_1) - (y_2 - y_1) = - 3,3750
b 2 = - k 2 (x 2 - x 1) + (y 2 - y 1) = - 1.6875 { \ displaystyle b_ {2} = - k_ {2} (x_ {2} -x_ {1}) + (y_ {2} -y_ {1}) = - 1.6875}b_2 = -k_2 (x_2-x_1) + (y_2 - y_1) = - 1.6875

На рисунке 2 сплайн-функция, состоящая из двух кубических многочленов q 1 (x) {\ displaystyle q_ {1} (x)}q_1 (x) и q 2 (x) {\ displaystyle q_ {2} (x)} Отображаетсяq_2 (x) , заданный как (9).

См. Также
Компьютерный код

TinySpline: C-библиотека с открытым исходным кодом для сплайнов, которая реализует кубическую сплайн-интерполяцию

SciPy Spline Interpolation: Python пакет, реализующий интерполяцию

Кубическая интерполяция: библиотека C # с открытым исходным кодом для интерполяции кубическим сплайном

Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-09 03:12:50
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте