B-сплайн — сплайн-функція , що має мінімальний носій для заданого степеня , гладкості та області визначення .
Фундаментальна теорема стверджує, що довільна сплайн-функція заданого степеня, гладкості і області визначення може бути представлена як лінійна комбінація B-сплайнів того ж степеня і гладкості на тій же області визначення.
Термін B-сплайн запровадив Ісак Яков Шонберг у 1978 році і є скороченням від словосполучення «базисний сплайн». B-сплайни є узагальненням кривих Без'є , вони допомагають уникнути феномену Рунге при високих степенях полінома.
B-сплайн степеня n з заданими вузлами :
t
0
≤
t
1
≤
⋯
≤
t
m
{\displaystyle t_{0}\leq t_{1}\leq \cdots \leq t_{m}}
та (m−n) контрольними точками
P
0
…
P
m
−
n
−
1
{\displaystyle \mathbf {P} _{0}\ldots \mathbf {P} _{m-n-1}}
це параметрична крива , що складена з базисних B-сплайнів степеня n
S
(
t
)
=
∑
i
=
0
m
−
n
−
1
P
i
b
i
,
n
(
t
)
,
t
∈
[
t
n
,
t
m
−
n
]
.
{\displaystyle \mathbf {S} (t)=\sum _{i=0}^{m-n-1}\mathbf {P} _{i}b_{i,n}(t),\qquad t\in [t_{n},t_{m-n}].}
Базисні B-сплайни визначаються рекурсивними формулами:
b
j
,
0
(
t
)
:=
1
[
t
j
,
t
j
+
1
)
=
{
1
,
t
∈
[
t
j
,
t
j
+
1
)
0
,
t
∉
[
t
j
,
t
j
+
1
)
.
{\displaystyle b_{j,0}(t):=1_{[t_{j},t_{j+1})}={\begin{cases}1,&\quad t\in [t_{j},t_{j+1})\\0,&\quad t\notin [t_{j},t_{j+1})\end{cases}}.}
b
j
,
n
(
t
)
:=
t
−
t
j
t
j
+
n
−
t
j
b
j
,
n
−
1
(
t
)
+
t
j
+
n
+
1
−
t
t
j
+
n
+
1
−
t
j
+
1
b
j
+
1
,
n
−
1
(
t
)
>
0
{\displaystyle b_{j,n}(t):={\frac {t-t_{j}}{t_{j+n}-t_{j}}}b_{j,n-1}(t)+{\frac {t_{j+n+1}-t}{t_{j+n+1}-t_{j+1}}}b_{j+1,n-1}(t)\;\quad >0}
при
t
∈
[
t
j
,
t
j
+
n
+
1
)
.
{\displaystyle t\in [t_{j},\;t_{j+n+1}).}
При однаковій відстані між сусідніми вузлами B-сплайни називаються однорідними , в протилежному випадку — неоднорідними .
Для однорідних B-сплайнів, базисні B-сплайни однакового степеня є зміщеними екземплярами однієї функції. Нерекурсивним визначенням базисних B-сплайнів є
b
j
,
n
(
t
)
=
b
n
(
t
−
t
j
)
,
j
=
0
,
m
−
n
−
1
¯
,
{\displaystyle b_{j,n}(t)=b_{n}(t-t_{j}),\qquad \;j={\overline {0,m-n-1}},}
де
b
n
(
t
)
:=
n
+
1
n
∑
i
=
0
n
+
1
ω
i
,
n
(
t
−
t
i
)
+
n
,
ω
i
,
n
:=
∏
j
=
0
,
j
≠
i
n
+
1
1
t
j
−
t
i
.
{\displaystyle b_{n}(t):={\frac {n+1}{n}}\sum _{i=0}^{n+1}\omega _{i,n}(t-t_{i})_{+}^{n},\qquad \omega _{i,n}:=\prod _{j=0,j\neq i}^{n+1}{\frac {1}{t_{j}-t_{i}}}.}
Визначимо B 0 як індикаторну функцію відрізку
[
−
1
2
,
1
2
]
{\displaystyle [-{\tfrac {1}{2}},{\tfrac {1}{2}}]}
і B k рекурсивно через згортку
B
k
(
t
)
:=
B
0
(
t
)
∗
B
k
−
1
(
t
)
=
∫
R
B
0
(
t
−
τ
)
B
k
−
1
(
τ
)
d
τ
=
∫
t
−
1
2
t
+
1
2
B
k
−
1
(
τ
)
d
τ
,
k
∈
N
{\displaystyle B_{k}(t):=B_{0}(t)*B_{k-1}(t)=\int _{\mathbb {R} }B_{0}(t-\tau )B_{k-1}(\tau )\,d\tau =\int _{t-{\tfrac {1}{2}}}^{t+{\tfrac {1}{2}}}B_{k-1}(\tau )\,d\tau ,\quad k\in \mathbb {N} }
B k має носій
[
−
k
+
1
2
,
k
+
1
2
]
.
{\displaystyle [-{\tfrac {k+1}{2}},{\tfrac {k+1}{2}}].}
Це найпростіші сплайни. Вони не є навіть неперервними .
b
j
,
0
(
t
)
=
1
[
t
j
,
t
j
+
1
)
B
0
(
t
)
=
1
[
−
1
2
,
1
2
)
.
{\displaystyle b_{j,0}(t)=1_{[t_{j},t_{j+1})}\qquad B_{0}(t)=1_{[-{\tfrac {1}{2}},{\tfrac {1}{2}})}.}
Лінійні B-сплайни є неперервними, але не диференційовними.
b
j
,
1
(
t
)
=
{
t
−
t
j
t
j
+
1
−
t
j
,
t
∈
[
t
j
,
t
j
+
1
)
t
j
+
2
−
t
t
j
+
2
−
t
j
+
1
,
t
∈
[
t
j
+
1
,
t
j
+
2
)
B
1
(
t
)
=
{
t
+
1
,
t
∈
[
−
1
,
0
)
1
−
t
,
t
∈
[
0
,
+
1
)
{\displaystyle b_{j,1}(t)={\begin{cases}{\frac {t-t_{j}}{t_{j+1}-t_{j}}},&\quad t\in [t_{j},\;t_{j+1})\\{\frac {t_{j+2}-t}{t_{j+2}-t_{j+1}}},&\quad t\in [t_{j+1},\;t_{j+2})\end{cases}}\qquad B_{1}(t)={\begin{cases}t+1,&t\in [-1,\;0)\\1-t,&t\in [0,\;+1)\end{cases}}}
Є найбільш вживаною формою B-сплайнів.
b
2
(
t
)
=
b
j
,
2
(
t
)
=
{
1
2
(
t
−
t
j
)
2
,
t
∈
[
t
j
,
t
j
+
1
)
−
(
t
−
t
j
+
1
)
2
+
(
t
−
t
j
+
1
)
+
1
2
,
t
∈
[
t
j
+
1
,
t
j
+
2
)
1
2
(
1
−
(
t
−
t
j
+
2
)
)
2
,
t
∈
[
t
j
+
2
,
t
j
+
3
)
B
2
(
t
)
=
{
1
2
(
t
+
3
2
)
2
,
t
∈
[
−
3
2
,
−
1
2
)
3
4
−
t
2
,
t
∈
[
−
1
2
,
+
1
2
)
1
2
(
t
−
3
2
)
2
,
t
∈
[
1
2
,
3
2
)
{\displaystyle b_{2}(t)=b_{j,2}(t)={\begin{cases}{\frac {1}{2}}(t-t_{j})^{2},&t\in [t_{j},\;t_{j+1})\\-(t-t_{j+1})^{2}+(t-t_{j+1})+{\frac {1}{2}},&t\in [t_{j+1},\;t_{j+2})\\{\frac {1}{2}}(1-(t-t_{j+2}))^{2},&t\in [t_{j+2},\;t_{j+3})\end{cases}}\qquad B_{2}(t)={\begin{cases}{\frac {1}{2}}(t+{\frac {3}{2}})^{2},&t\in [-{\frac {3}{2}},\;-{\frac {1}{2}})\\{\frac {3}{4}}-t^{2},&t\in [-{\frac {1}{2}},\;+{\frac {1}{2}})\\{\frac {1}{2}}(t-{\frac {3}{2}})^{2},&t\in [{\frac {1}{2}},\;{\frac {3}{2}})\end{cases}}}
В матричній формі:
S
i
(
t
)
=
[
t
2
t
1
]
1
2
[
1
−
2
1
−
2
2
0
1
1
0
]
[
p
i
−
1
p
i
p
i
+
1
]
,
t
∈
[
0
,
1
]
,
i
=
1
,
m
−
1
¯
{\displaystyle \mathbf {S} _{i}(t)={\begin{bmatrix}t^{2}&t&1\end{bmatrix}}{\frac {1}{2}}{\begin{bmatrix}1&-2&1\\-2&2&0\\1&1&0\end{bmatrix}}{\begin{bmatrix}\mathbf {p} _{i-1}\\\mathbf {p} _{i}\\\mathbf {p} _{i+1}\end{bmatrix}},\qquad t\in [0,1],\quad i={\overline {1,m-1}}}
b
3
(
t
)
=
b
j
,
3
(
t
)
=
{
1
6
(
t
−
t
j
)
3
,
t
∈
[
t
j
,
t
j
+
1
)
1
6
(
−
3
(
t
−
t
j
+
1
)
3
+
3
(
t
−
t
j
+
1
)
2
+
3
(
t
−
t
j
+
1
)
+
1
)
,
t
∈
[
t
j
+
1
,
t
j
+
2
)
.
.
.
,
t
∈
[
t
j
+
2
,
t
j
+
3
)
1
6
(
1
−
(
t
−
t
j
+
3
)
)
3
,
t
∈
[
t
j
+
3
,
t
j
+
4
)
{\displaystyle b_{3}(t)=b_{j,3}(t)={\begin{cases}{\frac {1}{6}}(t-t_{j})^{3},&t\in [t_{j},\;t_{j+1})\\{\frac {1}{6}}\left(-3(t-t_{j+1})^{3}+3(t-t_{j+1})^{2}+3(t-t_{j+1})+1\right),&t\in [t_{j+1},\;t_{j+2})\\...,&t\in [t_{j+2},\;t_{j+3})\\{\frac {1}{6}}(1-(t-t_{j+3}))^{3},&t\in [t_{j+3},\;t_{j+4})\end{cases}}}
B
3
(
t
)
=
{
1
6
(
t
+
2
)
3
,
t
∈
[
−
2
,
−
1
)
1
6
(
−
3
t
3
−
6
t
2
+
4
)
,
t
∈
[
−
1
,
0
)
1
6
(
3
t
3
−
6
t
2
+
4
)
,
t
∈
[
0
,
1
)
1
6
(
−
t
+
2
)
3
,
t
∈
[
1
,
2
)
{\displaystyle B_{3}(t)={\begin{cases}{\frac {1}{6}}(t+2)^{3},&t\in [-2,\;-1)\\{\frac {1}{6}}(-3t^{3}-6t^{2}+4),&t\in [-1,\;0)\\{\frac {1}{6}}(3t^{3}-6t^{2}+4),&t\in [0,\;1)\\{\frac {1}{6}}(-t+2)^{3},&t\in [1,\;2)\end{cases}}}
В матричній формі:
S
i
(
t
)
=
[
t
3
t
2
t
1
]
1
6
[
−
1
3
−
3
1
3
−
6
3
0
−
3
0
3
0
1
4
1
0
]
[
p
i
−
1
p
i
p
i
+
1
p
i
+
2
]
,
t
∈
[
0
,
1
]
.
{\displaystyle \mathbf {S} _{i}(t)={\begin{bmatrix}t^{3}&t^{2}&t&1\end{bmatrix}}{\frac {1}{6}}{\begin{bmatrix}-1&3&-3&1\\3&-6&3&0\\-3&0&3&0\\1&4&1&0\end{bmatrix}}{\begin{bmatrix}\mathbf {p} _{i-1}\\\mathbf {p} _{i}\\\mathbf {p} _{i+1}\\\mathbf {p} _{i+2}\end{bmatrix}},\quad t\in [0,1].}
В іншому мовному розділі є повніша стаття B-spline (англ.) . Ви можете допомогти, розширивши поточну статтю за допомогою
перекладу з англійської.
(грудень 2020)
Дивитись автоперекладену версію статті з мови «англійська».
Перекладач повинен розуміти, що відповідальність за кінцевий вміст статті у Вікіпедії несе саме автор редагувань. Онлайн-переклад надається лише як корисний інструмент перегляду вмісту зрозумілою мовою. Не використовуйте невичитаний і невідкоригований машинний переклад у статтях української Вікіпедії!
Машинний переклад Google є корисною відправною точкою для перекладу, але перекладачам необхідно виправляти помилки та підтверджувати точність перекладу, а не просто скопіювати машинний переклад до української Вікіпедії.
Не перекладайте текст, який видається недостовірним або неякісним. Якщо можливо, перевірте текст за посиланнями, поданими в іншомовній статті.
Докладні рекомендації: див. Вікіпедія:Переклад .