ppval

Оцените кусочный полином

Синтаксис

Описание

пример

v = ppval(pp,xq) оценивает кусочный полином pp в точках запроса xq.

Примеры

свернуть все

Создайте кусочный полином, который имеет кубический полином в интервале [0,4], квадратичный полином в интервале [4,10] и биквадратный полином в интервале [10,15].

breaks = [0 4 10 15];
coefs = [0 1 -1 1 1; 0 0 1 -2 53; -1 6 1 4 77];
pp = mkpp(breaks,coefs)
pp = struct with fields:
      form: 'pp'
    breaks: [0 4 10 15]
     coefs: [3x5 double]
    pieces: 3
     order: 5
       dim: 1

Оцените кусочный полином во многих точках в интервале [0,15] и постройте результаты. Постройте вертикальные пунктирные графики в точках останова, где полиномы встречаются.

xq = 0:0.01:15;
plot(xq,ppval(pp,xq))
line([4 4],ylim,'LineStyle','--','Color','k')
line([10 10],ylim,'LineStyle','--','Color','k')

Создайте и постройте кусочный полином с четырьмя интервалами, которые чередуются между двумя квадратичными полиномами.

Первые два подграфика показывают квадратичный полином и его отрицание, переключенное к интервалам [-8,-4] и [-4,0]. Полином

1-(x2-1)2=-x24+x.

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

subplot(2,2,1)
cc = [-1/4 1 0]; 
pp1 = mkpp([-8 -4],cc);
xx1 = -8:0.1:-4; 
plot(xx1,ppval(pp1,xx1),'k-')

subplot(2,2,2)
pp2 = mkpp([-4 0],-cc);
xx2 = -4:0.1:0; 
plot(xx2,ppval(pp2,xx2),'k-')

subplot(2,1,2)
pp = mkpp([-8 -4 0 4 8],[cc;-cc;cc;-cc]);
xx = -8:0.1:8;
plot(xx,ppval(pp,xx),'k-')
hold on
line([-4 -4],ylim,'LineStyle','--')
line([0 0],ylim,'LineStyle','--')
line([4 4],ylim,'LineStyle','--')
hold off

Входные параметры

свернуть все

Кусочный полином, заданный как структура. Можно создать pp использование splinepchip, makimainterp1, или служебная функция сплайна mkpp.

Точки запроса, заданные как вектор или массив. xq задает точки где ppval оценивает кусочный полином.

Типы данных: single | double

Выходные аргументы

свернуть все

Значения кусочного полинома в точках запроса, возвращенных как вектор, матрица или массив.

Если pp имеет [d1,..,dr]- ценные коэффициенты (нескалярные содействующие значения), затем:

  • Когда xq вектор длины NV имеет размер [d1,...,dr,N], и v(:,...,:,j) значение в xq(j).

  • Когда xq имеет размер [N1,...,Ns]V имеет размер [d1,...,dr,N1,...,Ns], и v(:,...,:, j1,...,js) значение в xq(j1,...,js).

Расширенные возможности

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

| | |

Представлено до R2006a