fn2fm

Преобразуйте в заданную форму

Синтаксис

g = fn2fm(f,form)
sp = fn2fm(f,'B-',sconds)
fn2fm(f)

Описание

g = fn2fm(f,form) описывает ту же функцию, как описан f, но в форме, заданной вектором символов или строковым скаляром form. Выбор для form 'B-', 'pp', 'BB', 'rB', 'rp', для B-формы, ppform, BBform и двух рациональных форм сплайна, соответственно.

B-форма описывает функцию как взвешенную сумму B-сплайнов данного порядка k для данной последовательности узла, и BBform (или, форма Бернстайна-Безира) является особым случаем, когда каждый узел в той последовательности появляется с максимальной кратностью, k. ppform описывает функцию в терминах ее локальных полиномиальных коэффициентов. B-форма хороша для построения и/или формирования функции, в то время как ppform является более дешевой, чтобы оценить.

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

Преобразование в или от stform не возможно в настоящее время.

Если form 'B-'f находится в ppform), затем фактическая гладкость функции в f через каждый из его внутренних пропусков должен быть предположен. Это сделано путем взгляда, для каждого внутреннего пропуска, для первой производной, скачок которой через тот пропуск не мал по сравнению с размером той производной поблизости. Допуском по умолчанию, используемым в этом, является 1.e-12.

sp = fn2fm(f,'B-',sconds) разрешения вы, чтобы предоставить, как входной параметр sconds, допуск (строго между 0 и 1), чтобы использоваться в преобразовании от ppform до B-формы.

В качестве альтернативы можно ввести sconds как вектор с целочисленными записями, с, по крайней мере, столькими же записей сколько ppform в f имеет внутренние пропуски. В этом случае, sconds(i) задает количество условий гладкости, которые будут использоваться через iвнутренний пропуск th. Если функция в f продукт тензора, затем sconds, если дали, должен быть массив ячеек.

fn2fm(f) преобразует возможно старую версию формы в ее текущую версию.

Примеры

sp = fn2fm(spline(x,y),'B-') дает интерполирующий кубический сплайн, обеспеченный MATLAB® команда spline, но в B-форме, а не в ppform.

p0 = ppmak([0 1],[3 0 0]);
p1 = fn2fm(fn2fm(fnrfn(p0,[.4 .6]),'B-'),'pp');

дает p1 идентичный p0 (до округления в коэффициентах), поскольку сплайн не имеет никакого разрыва ни в какой производной через дополнительные пропуски, введенные fnrfn, следовательно преобразование в B-форму игнорирует эти дополнительные пропуски, и преобразование в ppform не сохраняет кратности узла (как введенная кратность узла, преобразованием в B-форму, в конечных точках основного интервала сплайна).

Предостережение

При движении от B-формы до ppform, любого разрыва скачка на уровне первого и последнего узла, t(1) или t(end), будет потерян, поскольку ppform полагает, что f задан вне его основного интервала расширением первого, соответственно, последней полиномиальной части. Например, в то время как sp=spmak([0 1],1) дает характеристическую функцию интервала [0..1], pp=fn2fm(spmak([0 1],1),'pp') постоянный полином, x | → 1.

Алгоритмы

Для многомерного (продукт тензора) функционируют, одномерные алгоритмы применяются в каждой переменной.

Для преобразования из B-формы (или BBform) к ppform, служебная команда sprpp используется, чтобы преобразовать B-форму всех полиномиальных частей к их локальной форме степени, с помощью повторенной вставки узла в левой конечной точке.

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

Преобразование от ppform до B-формы использует двойной functionals, обсужденный в. Без дополнительной информации такое преобразование должно установить фактическую гладкость через каждый внутренний пропуск функции в f.

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

| | |

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