Приемлемая последовательность узла
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)
дает кубический сплайн interpolant с граничным условием не-узла. Это - тот же кубический сплайн, как произведено командой spline(tau,y)
, но в B-форме, а не ppform.
Если tau
очень неоднородно, затем использование получившейся последовательности узла для интерполяции к данным на сайтах tau
может привести к неудовлетворительным результатам.
(k-1)
- средние значения точки sum(tau(i+1:i+k-1))/(k-1)
из последовательности tau
, как предоставлено aveknt(tau,k)
, увеличиваются k
- сверните tau(1)
и k
- сверните tau(end)
. Другими словами, команда дает тот же результат как augknt([tau(1),aveknt(tau,k),tau(end)],k)
, если tau
имеет, по крайней мере, k
записи и k
больше 1.