Приемлемая последовательность узлов
knots = aptknt(tau,k)
[knots,k] = aptknt(tau,k)
knots = aptknt(tau,k)
возвращает последовательность узлов, подходящую для интерполяции в сайтах данных tau
по сплайнам порядка k с этой последовательностью узлов, обеспеченной tau
имеет по крайней мере k
записи, недекретизируются и удовлетворяют tau(i)
<tau(i+k-1)
для всех i
. В этом случае существует ровно один сплайн порядка k
с последовательностью узлов knots
который соответствует данным значениям на этих сайтах. Это так, потому что последовательность knots
возврат удовлетворяет условиям Шенберга-Уитни
knots(i) < tau(i) < knots(i+k), i=1:length(tau)
с равенством только в крайних узлах, каждый из которых происходит с точной кратностью k
.
Если tau
имеет меньше, чем k
записи, затем k
уменьшается до значения length(tau)
. Ошибка возникает, если tau
не может быть неразрешенным и/или tau(i)
равен tau(i+k-1)
для некоторых i
.
[knots,k] = aptknt(tau,k)
также возвращает фактическое k
используется (что равняется меньшему из входных параметров k
и length(tau)
).
Если tau
равномерно разнесен, например, равен linspace(a,b,n)
для некоторых n
> = 4, и y
- последовательность того же размера, что и tau
, затем sp = spapi(aptknt(tau,4),tau,y)
задает кубическую сплайн интерполяцию с граничным условием, не являющимся узлом. Это тот же кубический сплайн, что и при помощи команды spline(tau,y)
, но в B-форме, а не в ppform.
Если tau
является очень неоднородным, тогда использование полученной последовательности узлов для интерполяции в данные в сайтах tau
может привести к неудовлетворительным результатам.
The (k-1)
-точка усредняет sum(tau(i+1:i+k-1))/(k-1)
последовательности tau
, в соответствии с требованиями aveknt(tau,k)
, дополнены k
-фолд tau(1)
и a k
-фолд tau(end)
. Другими словами, команда дает тот же результат, что и augknt([tau(1),aveknt(tau,k),tau(end)],k)
, при условии tau
имеет по крайней мере k
записи и k
больше 1.