Main Content

ppval

조각별 다항식 계산

설명

예제

v = ppval(pp,xq)는 쿼리 점 xq에서 조각별 다항식 pp를 계산합니다.

예제

모두 축소

구간 [0,4]에 3차 다항식이 있고, 구간 [4,10]에 2차 다항식이 있고, 구간 [10,15]에 4차 다항식이 있는 조각별 다항식을 만듭니다.

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 object. The axes object contains 3 objects of type line.

두 2차 다항식을 교대로 나타내는 4개의 간격을 갖는 조각별 다항식을 만들고 플로팅합니다.

처음 두 서브플롯은 2차 다항식과 그에 음수를 취한 다항식을 구간 [-8,-4]와 [-4,0]에 표시합니다. 다항식은 다음과 같습니다.

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

세 번째 서브플롯은 4개 구간에 이러한 두 2차 조각별 다항식을 교대로 나타내어 생성한 하나의 조각별 다항식을 보여줍니다. 다항식이 만나는 지점을 표시하는 세로선이 추가됩니다.

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 objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line. Axes object 3 contains 4 objects of type line.

입력 인수

모두 축소

조각별 다항식으로, 구조체로 지정됩니다. spline, pchip, makima, interp1 또는 스플라인 유틸리티 함수 mkpp를 사용하여 pp를 생성할 수 있습니다.

쿼리 점으로, 벡터나 배열로 지정됩니다. xqppval이 조각별 다항식을 계산하는 점을 지정합니다.

데이터형: 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 이전에 개발됨

참고 항목

| | |