aptknt

Приемлемая последовательность узла

Синтаксис

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.

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

| | |