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')

Figure contains an axes. The axes contains 3 objects of type line.

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

Первые два подграфиков показывают квадратичный полином, и его отрицание сместилось на интервалы [-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

Figure contains 3 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line. Axes 3 contains 4 objects of type line.

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

свернуть все

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

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

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

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

свернуть все

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

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

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

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

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

.

См. также

| | |

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