exponenta event banner

B-форма

Введение в B-форму

Одномерный сплайн f определяется его недекрессирующей последовательностью узлов t и по последовательности коэффициентов B-сплайна a. Описание многомерных сплайнов см. в разделе Многомерные шлицы тензора. Коэффициентами могут быть (столбчатые) векторы, матрицы, даже ND-массивы. Когда коэффициенты являются 2-векторами или 3-векторами, f является кривой в R2 или R3 и коэффициенты называются контрольными точками для кривой.

Грубо говоря, такой сплайн является кусочно-многочленом определённого порядка и с разрывами t(i). Но узлы отличаются от разрывов тем, что они могут повторяться, то есть t нет необходимости строго увеличиваться. Результирующие множители узлов управляют гладкостью сплайна через узлы, как подробно описано ниже.

С [d,n] = size(a), и n+k = length(t), сплайн имеет порядок k. Это означает, что его полиномиальные части имеют степень < k. Например, кубический сплайн является сплайном порядка 4, поскольку для задания кубического многочлена требуется четыре коэффициента.

Определение B-формы

Эти четыре элемента, t, a, n и k, составляют B-форму сплайна f.

Это явно означает, что

f=∑i=1nBi,ka (:, i)

с Bi, k = B (· | t (i: i + k)) i-й B-сплайн порядкаk для данной последовательности узлов t, т.е. B-сплайн с узлами t (i),..., t (i + k). Основным интервалом этой B-формы является интервал [t (1).. t (n + k)]. Интервал по умолчанию, в течение которого сплайн в B-форме печатается командой fnplt. Обратите внимание, что сплайн в B-форме равен нулю за пределами основного интервала, в то время как после преобразования в ppform через fn2fm, обычно это не так, потому что за пределами основного интервала кусочно-многочлен определяется расширением его первой или последней части многочлена. В частности, функция В-формы может иметь скачки в значении и/или одну из своих производных не только по своим внутренним узлам, т.е. по t (i) с t (1) < t (i) < t (n + k), но и по своим концевым узлам, t (1) и t (n + k).

B-форма и B-сплайны

Компоновочными блоками для B-формы сплайна являются B-сплайны. B-сплайн порядка 4 и четыре кубических многочлена, из которых он сделан, показывают картинку такого B-сплайна, который имеет последовательность узлов. [0 1.5 2.3 4 5], следовательно, порядка 4, вместе с многочленами, части которых составляют B-сплайн. Данные для этого изображения могут быть сгенерированы командой

bspline([0 1.5 2.3 4 5])

B-сплайн порядка 4 и четыре кубических многочлена, из которых он сделан

Подводя итог: B-шлиц с узлами t (i) ≤···· ≤ t (i + k) положителен на интервале (t (i).. t (i + k)) и равен нулю за пределами этого интервала. Является кусочно-многочленом порядкаk с перерывами на участках t (i),..., t (i + k). Эти узлы могут совпадать, и точная кратность управляет гладкостью, с которой два участка многочлена соединяются там.

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

Стенография

f∈Sk,t

является одним из нескольких способов указания на то, что f является сплайном порядка k с узловой последовательностью t, т.е. линейная комбинация B-сплайнов порядка k для последовательности узлов t.

Слово предостережения: Термин B-сплайн был экспроприирован сообществом компьютерного геометрического дизайна (CAGD), чтобы означать то, что называется здесь сплайн в B-форме, с несчастливым результатом, что в любом обсуждении между математиками/теоретиками аппроксимации и людьми в CAGD, теперь всегда нужно проверить, в каком смысле этот термин

Кратность узла B-сплайна

Правило:

кратность узла + кратность условия = порядок

Все B-сплайны третьего порядка для определенной последовательности узлов с различными кратностями узлов

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

Все B-сплайны третьего порядка для определенной последовательности узлов с различными кратностями узлов показывают картину всех B-сплайнов третьего порядка для определенной загадочной последовательности узлов t. Разрывы обозначаются вертикальными линиями. Для каждого разрыва попробуйте определить его кратность в последовательности узлов (она равна 1,2,1,1,3), а также его кратность как узла в каждом из B-сплайнов. Например, второй разрыв имеет кратность 2, но появляется только с кратностью 1 в третьем В-сплайне, а не совсем, т.е. с кратностью 0, в последних двух В-сплайнах. Обратите внимание, что только один из показанных B-сплайнов имеет все свои узлы простыми. Это единственный с тремя различными нетривиальными полиномиальными частями. Следует также отметить, что кратность узловой последовательности узла можно определить по числу B-сплайнов, ненулевая часть которых начинается или заканчивается на этом. Изображение генерируется следующими операторами MATLAB ®, которые используют командуspcol на этой панели инструментов для генерации значений функций всех этих B-сплайнов в тонкой цепи x.

t=[0,1,1,3,4,6,6,6]; x=linspace(-1,7,81); 
c=spcol(t,3,x);[l,m]=size(c); 
c=c+ones(l,1)*[0:m-1]; 
axis([-1 7 0 m]); hold on 
for tt=t, plot([tt tt],[0 m],'-'), end 
plot(x,c,'linew',2), hold off, axis off

Другие проиллюстрированные примеры представлены в примере «Конструирование и работа с В-формой». Также можно использовать графический интерфейс пользователя bspligui изучить зависимость B-сплайна от его узлов экспериментально.

Выбор узлов для B-формы

Правило «кратность узла + кратность условия = порядок» имеет следующее последствие для процесса выбора последовательности узла для B-формы сплайнового аппроксиманта. Предположим, что сплайн s должен быть порядка k, с базовым интервалом [a.. b], и с внутренними разрывами Кроме того, предположим, что, при при δ i, сплайн должен удовлетворять условиям мкi гладкости, то есть,

jumpsystemiDjs: = Djs +) Djs ) =0,0≤j<μi,i=2,..., l

Затем соответствующая узловая последовательность t должна содержать разрыв, в точности k-мки раз, i = 2,..., l. Кроме того, он должен содержать две конечные точки, a и b, базового интервала в точности k раз. Это последнее требование может быть смягчено, но стало стандартным. При таком выборе существует ровно один способ записи каждого сплайна s со свойствами, описанными как взвешенная сумма B-сплайнов порядка k с сучками отрезком последовательности узлов т. Это причина для B в B-сплайне: B-сплайны являются, по терминологии Шёнберга, основными сплайнами.

Например, если требуется создать B-форму кубического сплайна на интервале [1.. 3], с внутренними разрывами 1.5, 1.8, 2.6 и с двумя непрерывными производными, то следующая последовательность будет подходящей последовательностью узлов:

t = [1, 1, 1, 1, 1.5, 1.8, 2.6, 3, 3, 3, 3];

Это поставляется augknt([1, 1.5, 1.8, 2.6, 3], 4). Если бы вы хотели вместо этого разрешить угол на 1.8, то есть возможный прыжок в первой производной там, вы бы утроили узел 1.8, то есть использовать

t = [1, 1, 1, 1, 1.5, 1.8, 1.8, 1.8, 2.6, 3, 3, 3, 3];

и это предусмотрено в заявлении

t = augknt([1, 1.5, 1.8, 2.6, 3], 4, [1, 3, 1] );

Связанные темы