Построение и Работа со Сплайнами ppform

Построение ppform

Кусочный полином обычно создается некоторой командой посредством процесса интерполяции или приближения или преобразования из некоторой другой формы e.g., от B-формы, и выводится как переменная. Но также возможно составить то с нуля, с помощью оператора

pp
= ppmak(breaks,coefs) 

Например, если вы вводите pp=ppmak(-5:-1,-22:-11), или, более явным образом,

breaks = -5:-1;
coefs = -22:-11; pp = ppmak(breaks,coefs); 

вы задаете универсальную последовательность пропуска-5:-1 и содействующая последовательность-22:-11. Поскольку эта последовательность пропуска имеет 5 записей, следовательно 4 разбивают интервалы, в то время как содействующая последовательность имеет 12 записей, вы, в действительности, задали кусочный полином порядка 3 (= 12/4). Команда

fnbrk(pp) 

распечатывает все составные части этого кусочного полинома, можно следующим образом:

breaks(1:l+1)
    -5 -4 -3 -2 -1  
coefficients(d*l,k)
     -22 -21 -20
     -19 -18 -17
     -16 -15 -14 
     -13 -12 -11
  pieces number l
    4 
order k 
  3 
dimension d of target
    1 

Далее, fnbrk может использоваться, чтобы предоставить каждую из этих частей отдельно. Но точка функциональности сплайна Curve Fitting Toolbox™ - то, что вы обычно не должны интересоваться этими деталями. Вы просто используете pp когда аргумент к командам, которые оценивают, дифференцируйте, интегрируйте, преобразуйте или постройте кусочный полином, описание которого содержится в pp.

Работа Со Сплайнами ppform

Вот некоторые функции для операций, которые можно выполнить на кусочном полиноме.

v = fnval(pp,x)

Оценивает

dpp = fnder(pp)

Дифференцируется

dirpp = fndir(pp,dir)

Дифференцирует в направлении dir

ipp = fnint(pp)

Объединяется

fnmin(pp,[a,b])

Находит минимальное значение в данном интервале

fnzeros(pp,[a,b])

Находит нули в данном интервале

pj = fnbrk(pp,j)

Вытаскивает jчасть полинома th

pc = fnbrk(pp,[a b])

Ограничивает/расширяет интервалом [aB]

po = fnxtr(pp,order)

Расширяет вне его основного интервала полиномом заданного порядка

fnplt(pp,[a,b])

Графики на данном интервале

sp = fn2fm(pp,'B-')

Преобразует в B-форму

pr = fnrfn(pp,morebreaks)

Вставляет дополнительные пропуски

Вставка дополнительных пропусков пригождается, когда это необходимо, чтобы добавить два кусочных полинома с различными пропусками, как сделан в команде fncmb.

ppform в качестве примера

Выполните следующие команды, чтобы создать и построить конкретный кусочный полином (ppform), описанная в Построении раздела ppform.

  1. Создайте кусочный полином с последовательностью пропуска -5:-1 и содействующая последовательность -22:-11:

    pp=ppmak(-5:-1,-22:-11)
  2. Создайте основной график:

    x = linspace(-5.5,-.5,101);
    plot(x, fnval(pp,x),'x') 
  3. Добавьте линии пропуска на график:

    breaks=fnbrk(pp,'b'); yy=axis; hold on
    for j=1:fnbrk(pp,'l')+1
       plot(breaks([j j]),yy(3:4))
    end 
  4. Наложите график полинома, который предоставляет третью полиномиальную часть:

    plot(x,fnval(fnbrk(pp,3),x),'linew',1.3)
    set(gca,'ylim',[-60 -10]), hold off 

Функция кусочного полинома, ее пропуски и полином, дающий ее третью часть

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

В то время как ppform кусочного полинома эффективна для оценки, конструкция кусочного полинома из некоторых данных обычно более эффективно обрабатывается путем определения сначала его B-формы, i.e., его представление как линейная комбинация B-сплайнов.

Похожие темы