spmak

Соедините сплайн в B-форме

Синтаксис

spmak(knots,coefs)
spmak(knots,coefs,sizec)
spmak
sp = spmak(knots,coeffs)

Описание

Команда spmak(...) соединяет функцию сплайна в B-форме, от минимальной информации, с остальными выведенными из входа. fnbrk возвращает все части завершенного описания. Таким образом фактическая структура данных, используемая для устройства хранения данных этой формы, легко изменяется без любого эффекта на различные команды fn..., которые используют это построение.

spmak(knots,coefs) возвращает B-форму сплайна, заданного информацией об узле в knots и информацией о коэффициенте в coefs.

Меры, принятые spmak, зависят от того, является ли функция одномерной или многомерной, как обозначено knots, являющимся последовательностью или массивом ячеек. Для описания позвольте sizec быть size(coefs).

Если knots является последовательностью (требуемый не уменьшиться), то сплайн взят, чтобы быть одномерным, и его порядок, k взят к be length(knots)-sizec(end). Это означает, что каждый 'столбец', coefs(:,j) coefs взят, чтобы быть коэффициентом B-сплайна сплайна, следовательно сплайн, взят, чтобы быть sizec(1:end-1) - оцененный. Основным интервалом B-формы является [knots(1).. knots(end)].

Кратностью узла, как сохранилось, является ≤ k. Это означает, что коэффициент, coefs(:,j) просто проигнорирован в случае, если соответствующий B-сплайн имеет только один отличный узел, т.е. в случае, если knots(j) равняется knots(j+k).

Если knots является массивом ячеек длины m, то сплайн взят, чтобы быть m - варьируемая величина, и coefs должен быть (r+m) - размерный массив, – кроме тех случаев, когда сплайн должен быть со скалярным знаком, в этом случае, в отличие от одномерного случая, coefs разрешают быть an m-размерным массивом, но sizec сбрасывается

sizec = [1, sizec]; r = 1;

Сплайном является sizec(1:r) - оцененный. Это означает, что вывод сплайна является массивом с размерностями r, например, если sizec(1:2) = [2, 3] затем вывод сплайна 2 3 матрица.

Сплайном является sizec(1:r) - оцененный, i th запись the m-векторного k вычисляется как length(knots{i}) - sizec(r+i), i=1:m, и i th запись массива ячеек основных интервалов установлен в [knots{i}(1), knots{i}(end)].

spmak(knots,coefs,sizec) позволяет вам предоставить намеченный размер массива coefs. Предположение, что coefs правильно измерен, это вызывает беспокойство только в редком случае, что coefs имеет одну или несколько запаздывающих одноэлементных размерностей. For, MATLAB® подавляет запаздывание одноэлементных размерностей, следовательно, без этой явной спецификации намеченного размера coefs, spmak интерпретировал бы coefs неправильно.

spmak подсказки вы для knots и coefs.

sp = spmak(knots,coeffs) возвращает сплайн sp.

Примеры

spmak(1:6,0:2) создает функцию сплайна с основным интервалом [1..6], с 6 узлами и 3 коэффициента, следовательно порядка 6 - 3 = 3.

spmak(t,1) предоставляет B-сплайну B (· |t) в B-форме.

Коэффициентами может быть d - векторы (например, 2 вектора или 3 вектора), в этом случае получившийся сплайн является кривой или поверхностью (в R2 или R3).

Если намерение состоит в том, чтобы создать оцененный двумерный полином 2 векторов на прямоугольнике [–1.. 1] × [0.. 1], линейный в первом переменном и постоянном во втором, сказать

 coefs = zeros([2 2 1]); coefs(:,:,1) = [1 0;0 1];

затем прямое

sp = spmak({[-1 -1 1 1],[0 1]},coefs);

приведет к сообщению об ошибке 'There should be no more knots than coefficients', потому что запаздывающая одноэлементная размерность coefs не будет воспринята spmak, в то время как надлежащее использование того третьего аргумента, как в

sp = spmak({[-1 -1 1 1],[0 1]},coefs,[2 2 1]);

успешно выполнится. Заменение здесь [2 2 1] size(coefs) не работало бы.

Смотрите пример “Введение к B-форме” для других примеров.

Диагностика

Будет ошибка, возвращаются, если предложенной последовательности узла не удается не уменьшиться, или если массив коэффициентов пуст, или если нет большего количества узлов, чем существуют коэффициенты. Если сплайн должен быть многомерным, то эта последняя диагностика может произойти из-за запаздывающих одноэлементных размерностей в coefs.

Смотрите также

Для просмотра документации необходимо авторизоваться на сайте