exponenta event banner

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 дешевле для оценки.

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

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

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

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

Кроме того, можно ввести sconds как вектор с целочисленными записями, по крайней мере столько записей, сколько ppform в f имеет внутренние разрывы. В этом случае sconds(i) определяет количество условий сглаживания, используемых в i-й перерыв в интерьере. Если функция в 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 используется команда utility sprpp используется для преобразования B-формы всех многочленов в их локальную силовую форму, используя повторную вставку узла в левой конечной точке.

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

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

См. также

| | |