B-форма

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

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

Примерно говоря, такой сплайн является кусочным полиномом определенного порядка и с пропусками ti. Но узлы отличаются от перерывов, которые они могут быть повторены, т.е. t не должен строго увеличиваться. Получившаяся кратность узла управляет гладкостью сплайна через узлы, как детализировано ниже.

С [d,n] = size(a), and 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 th B-сплайн порядка k для данной последовательности узла t, т.е. B-сплайн с узлами t(i),...,t(i+k). Основной интервал этой B-формы является интервалом [t(1)..t(n+k)]. Это - интервал по умолчанию, на котором сплайн в B-форме построен по команде fnplt. Обратите внимание на то, что сплайн в B-форме является нулем вне своего основного интервала в то время как после преобразования в ppform через fn2fm, это обычно - не случай, потому что вне его основного интервала кусочный полином задан расширением его первой или последней полиномиальной части. В частности, функция в B-форме может иметь скачки в значении и/или одной из его производной не только через его внутренние узлы, т.е. через 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-сплайнов

Сокращение

fSk,t

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

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

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

Правило

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

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

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

Все B-сплайны Третьего Порядка для Определенной Последовательности Узла с Различной Кратностью Узла показывают изображение всего третьего порядка B-сплайны для определенной таинственной последовательности узла t. Пропуски обозначаются вертикальными линиями. Для каждого пропуска попытайтесь определить его кратность в последовательности узла (это 1,2,1,1,3), а также его кратность как узел в каждом из B-сплайнов. Например, второй пропуск имеет кратность 2, но появляется только с кратностью 1 в третьем B-сплайне и нисколько, т.е. с кратностью 0, в последних двух B-сплайнах. Обратите внимание на то, что только один из показанных 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

Далее проиллюстрированные примеры обеспечиваются примером” Построение и работу с B-формой”. Можно также использовать графический интерфейс пользователя bspligui изучить зависимость B-сплайна на его узлах экспериментально.

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

Правило “кратность узла + кратность условия = порядок” имеет следующее последствие для процесса выбора последовательности узла для B-формы аппроксимирующей функции сплайна. Предположим сплайн, s должен иметь порядок k с основным интервалом [a.. b], и с внутренними пропусками ξ2 <·· · <ξl. Предположим, далее, что в ξi сплайн должен удовлетворить μi условиям гладкости, i.e.,

jumpξiDjs:=Djs(ξi+)Djs(ξi)=0,0j<μi,i=2,...,l

Затем соответствующая последовательность узла t должна содержать пропуск ξi точно k – μi времена, i =2..., l. Кроме того, это должно содержать эти две конечных точки, a и b, основного интервала точно времена k. Это последнее требование может быть ослаблено, но стало стандартным. С этим выбором существует точно один способ записать каждому сплайну s со свойствами, описанными как взвешенная сумма B-сплайнов порядка k с узлами сегмент последовательности узла t. Это - причина 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, i.e., возможный скачок в первой производной там, вы утроили бы узел 1.8, i.e. Использование

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] );

Похожие темы