B-сплайн

Матеріал з testwiki
Версія від 17:49, 8 травня 2024, створена imported>Білецький В.С.
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Шаблон:UniboxB-сплайнсплайн-функція, що має мінімальний носій для заданого степеня, гладкості та області визначення.

Фундаментальна теорема стверджує, що довільна сплайн-функція заданого степеня, гладкості і області визначення може бути представлена як лінійна комбінація B-сплайнів того ж степеня і гладкості на тій же області визначення.

Термін B-сплайн запровадив Ісак Яков Шонберг у 1978 році і є скороченням від словосполучення «базисний сплайн». B-сплайни є узагальненням кривих Без'є, вони допомагають уникнути феномену Рунге при високих степенях полінома.

Визначення

B-сплайн степеня n з заданими вузлами:

t0t1tm

та (m−n) контрольними точками

𝐏0𝐏mn1

це параметрична крива, що складена з базисних B-сплайнів степеня n

𝐒(t)=i=0mn1𝐏ibi,n(t),t[tn,tmn].

Базисні B-сплайни визначаються рекурсивними формулами:

bj,0(t):=1[tj,tj+1)={1,t[tj,tj+1)0,t[tj,tj+1).
bj,n(t):=ttjtj+ntjbj,n1(t)+tj+n+1ttj+n+1tj+1bj+1,n1(t)>0 при t[tj,tj+n+1).

При однаковій відстані між сусідніми вузлами B-сплайни називаються однорідними, в протилежному випадку — неоднорідними.

Однорідні B-сплайни

Для однорідних B-сплайнів, базисні B-сплайни однакового степеня є зміщеними екземплярами однієї функції. Нерекурсивним визначенням базисних B-сплайнів є

bj,n(t)=bn(ttj),j=0,mn1,

де

bn(t):=n+1ni=0n+1ωi,n(tti)+n,ωi,n:=j=0,jin+11tjti.

Кардинальні B-сплайни

Визначимо B0 як індикаторну функцію відрізку [12,12] і Bk рекурсивно через згортку

Bk(t):=B0(t)*Bk1(t)=B0(tτ)Bk1(τ)dτ=t12t+12Bk1(τ)dτ,k

Bk має носій [k+12,k+12].

Приклади

Константні B-сплайни

Це найпростіші сплайни. Вони не є навіть неперервними.

bj,0(t)=1[tj,tj+1)B0(t)=1[12,12).

Лінійні B-сплайни

Лінійні B-сплайни є неперервними, але не диференційовними.

bj,1(t)={ttjtj+1tj,t[tj,tj+1)tj+2ttj+2tj+1,t[tj+1,tj+2)B1(t)={t+1,t[1,0)1t,t[0,+1)

Однорідні квадратичні B-сплайни

Є найбільш вживаною формою B-сплайнів.

b2(t)=bj,2(t)={12(ttj)2,t[tj,tj+1)(ttj+1)2+(ttj+1)+12,t[tj+1,tj+2)12(1(ttj+2))2,t[tj+2,tj+3)B2(t)={12(t+32)2,t[32,12)34t2,t[12,+12)12(t32)2,t[12,32)

В матричній формі:

𝐒i(t)=[t2t1]12[121220110][𝐩i1𝐩i𝐩i+1],t[0,1],i=1,m1

Однорідні кубічні B-сплайни

b3(t)=bj,3(t)={16(ttj)3,t[tj,tj+1)16(3(ttj+1)3+3(ttj+1)2+3(ttj+1)+1),t[tj+1,tj+2)...,t[tj+2,tj+3)16(1(ttj+3))3,t[tj+3,tj+4)
B3(t)={16(t+2)3,t[2,1)16(3t36t2+4),t[1,0)16(3t36t2+4),t[0,1)16(t+2)3,t[1,2)


В матричній формі:

𝐒i(t)=[t3t2t1]16[1331363030301410][𝐩i1𝐩i𝐩i+1𝐩i+2],t[0,1].

Див. також

Шаблон:Портал

Джерела

Посилання

Шаблон:Криві Шаблон:Мало джерел Шаблон:Перекласти Шаблон:Math-stub