Уточнить раздел формы
g = fnrfn(f,addpts)
g = fnrfn(f,addpts)
описывает ту же функцию, что и f
, но использует больше терминов, чтобы сделать это. Это используется, когда требуется сумма двух или более функций различных форм или когда количество степеней свободы в форме должно быть увеличено, чтобы сделать возможными тонкие локальные изменения. Точное действие зависит от формы в f
.
Если форма в f
B-форма или BBform, затем записи addpts
вставляются в существующую последовательность узлов, с учетом следующего ограничения: Кратность отсутствия узлов превышает порядок сплайна. Эквивалентная B-форма с этой уточненной последовательностью узлов для функции, заданной f
возвращается.
Если форма в f
является ppform, затем записями addpts
вставляются в существующую последовательность пропуска с учетом следующего ограничения: Последовательность пропуска должна быть строго увеличена. Эквивалентный ppform с этой уточненной последовательностью пропуска для функции в f
возвращается.
fnrfn
не работает для функций в stform.
Если функция в f
m-вариативно, тогда addpts
должен быть массивом ячеек, {addpts1,..., addptsm}
, и уточнение выполняется в каждой из переменных. Если i-я запись в этом массиве ячеек пуста, то последовательность узлов или пропусков в i-й переменной остается неизменной.
Создайте сплайн в B-форме, постройте график, затем примените две уточнения средней точки, а также постройте график управляющего многоугольника полученного уточненного сплайна, ожидая, что он будет довольно близок к самому сплайну:
k = 4; sp = spapi( k, [1,1:10,10], [cos(1),sin(1:10),cos(10)] ); fnplt(sp), hold on sp3 = fnrfn(fnrfn(sp)); plot( aveknt( fnbrk(sp3,'knots'),k), fnbrk(sp3,'coefs'), 'r') hold off
Использование fnrfn
для добавления двух B-сплайнов одного и того же порядка:
B1 = spmak([0:4],1); B2 = spmak([2:6],1); B1r = fnrfn(B1,fnbrk(B2,'knots')); B2r = fnrfn(B2,fnbrk(B1,'knots')); B1pB2 = spmak(fnbrk(B1r,'knots'),fnbrk(B1r,'c')+fnbrk(B2r,'c')); fnplt(B1,'r'),hold on, fnplt(B2,'b'), fnplt(B1pB2,'y',2) hold off
Стандартный алгоритм вставки узлов используется для вычисления B-образных коэффициентов для уточненной последовательности узлов, в то время как метод Хорнера используется для вычисления локальных полиномиальных коэффициентов на дополнительных пропусках в уточненной последовательности пропуска.