spap2

Наименьшие квадраты шлицуют приближение

Синтаксис

spap2(knots,k,x,y)
spap2(l,k,x,y)
sp = spap2(...,x,y,w)
spap2({knorl1,...,knorlm},k,{x1,...,xm},y)
spap2({knorl1,...,knorlm},k,{x1,...,xm},y,w)

Описание

spap2(knots,k,x,y) возвращает B-форму сплайна f порядка k с данной последовательностью узла knots для который

(*)   y(:,j) = f(x(j)), all j 

во взвешенном среднеквадратическом смысле, означая, что сумма

jw(j)|y(:,j)f(x(j))|2

минимизирован, с весами по умолчанию, равными 1. Значения данных y(:,j) может быть скалярами, векторами, матрицами, даже массивы ND и |z|2, обозначают сумму квадратов всех записей z. Точки данных с тем же сайтом заменяются их средним значением.

Если сайты x удовлетворяют (Шенберг-Уитни) условия

          узлы(j)<x(j)<узлы(j+k)(**)                                j=1,...,длина(x)=длина (узлы)k

затем существует уникальный сплайн (данного распоряжения и последовательности узла) удовлетворяющий (*) точно. Никакой сплайн не возвращен, если (**) не удовлетворен для некоторой подпоследовательности x.

spap2(l,k,x,y) , с l положительное целое число, возвращает B-форму, наименьшие квадраты шлицуют аппроксимирующая функция, но с последовательностью узла, выбранной для вас. Последовательность узла получена путем применения aptknt к соответствующей подпоследовательности x. Получившийся кусочный полином состоит из частей полинома l и имеет k-2 непрерывные производные. Если вы чувствуете, что различное распределение внутренних узлов может сделать лучшее задание, развить это с

sp1 = spap2(newknt(sp),k,x,y));

sp = spap2(...,x,y,w) позволяет вам задать веса w в ошибочной мере (данный выше). w должен быть вектором, одного размера как x с неотрицательными записями. Все веса, соответствующие точкам данных с тем же сайтом, суммированы, когда те точки данных заменяются их средним значением.

spap2({knorl1,...,knorlm},k,{x1,...,xm},y) обеспечивает, наименьшие квадраты шлицуют приближение к данным с координатной сеткой. Здесь, каждый knorli является или последовательностью узла или положительным целым числом. Далее, k должен быть m - вектор, и y должен быть (r+m) - размерный массив с y(:,i1,...,im) данная величина, которая будет адаптирована в [x{1}(i1),...,x{m}(im)] site, всем i1..., im. Однако, если сплайн должен быть со скалярным знаком, то, в отличие от одномерного случая, y разрешают быть m - размерный массив, в этом случае y(i1,...,im) является данной величиной, которая будет адаптирована в [x{1}(i1),...,x{m}(im)] site, всем i1..., im.

spap2({knorl1,...,knorlm},k,{x1,...,xm},y,w) также позволяет вам задать веса. В этом m - случай варьируемой величины, w должен быть массивом ячеек с записями m с w{i} неотрицательный вектор, одного размера как xi, или иначе w{i} должен быть пустым, в этом случае веса по умолчанию используются в i th переменная.

Примеры

sp = spap2(augknt([a,xi,b],4),4,x,y)

аппроксимирующая функция наименьших квадратов к данным x, y, кубическими сплайнами с двумя непрерывными производными, основной интервал [a.. b], и внутренняя часть повреждает xi, если xi имеет все свои записи в (a..b), и условия (**) удовлетворены некоторым способом. В этом случае аппроксимирующая функция состоит из частей полинома length(xi)+1. Если вы не хотите волноваться об условиях (**), но просто хотеть получить кубическую аппроксимирующую функцию сплайна, состоящую из частей полинома l, используйте вместо этого

sp = spap2(l,4,x,y); 

Если получившееся приближение не является удовлетворительным, попытайтесь использовать больший l. Еще используйте

sp = spap2(newknt(sp),4,x,y);

для возможно лучшего распределения последовательности узла. На самом деле, если это помогает, повторяя, что это может помочь еще больше.

Как другой пример, spap2(1, 2, x, y); предоставляет наименьшим квадратам прямолинейную подгонку к данным x, y, в то время как

w = ones(size(x)); w([1 end]) = 100; spap2(1,2, x,y,w); 

силы, которые соответствуют, чтобы очень близко подойти к точке First Data и к последнему.

Алгоритмы

К spcol обращаются с просьбой обеспечить почти диагональную блоком матрицу словосочетания (Bj, k (xi)), и slvblk решает линейную систему (*) во (взвешенном) смысле наименьших квадратов, с помощью QR-факторизации блока.

Данные с координатной сеткой адаптированы, способом продукта тензора, одна переменная за один раз, использовав в своих интересах то, что одномерная подгонка метода взвешенных наименьших квадратов зависит линейно от адаптируемых значений.

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

| |

Для просмотра документации необходимо авторизоваться на сайте