Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

fnder

설명

예제

fprime = fnder(f,dorder)f에 있는 함수의 dorder계 도함수를 반환합니다. dorder의 디폴트 값은 1입니다. 음수 dorder의 경우, 특정 |dorder|차 부정적분이 반환되며, 기본 구간의 왼쪽 끝점에서 |dorder|-겹이 사라집니다.

출력값은 입력값과 같은 형식입니다. 즉, 둘 다 ppform이거나 둘 다 B-form이거나 둘 다 stform입니다.

f의 함수가 m-변량인 경우 dorder가 지정되어야 하고 길이는 m이어야 합니다.

또한

  • f가 ppform 형식이거나 충분히 높은 중복도의 마지막 매듭을 갖는 B-form 형식인 경우 ffnder(fnint(f))는 동일합니다(반올림 오차 이내에서 동일).

  • f가 ppform 형식이고 fa가 기본 구간의 왼쪽 끝에서의 f의 함수 값인 경우 f로 기술된 함수가 비약 불연속(jump discontinuity)을 갖지 않는 한 ffnint(fnder(f),fa)는 동일합니다(반올림 오차 이내에서 동일).

  • f가 f의 B-form을 포함하고 t1이 왼쪽 끝 매듭인 경우 fnint(fnder(f))는 반올림 오차 이내에서 f – f(t1)의 B-form을 포함합니다. 그러나 왼쪽 끝 매듭은 하나의 중복도를 잃습니다(처음에 1보다 큰 중복도를 가졌던 경우). 또한 f에 있는 f의 B-form에 대한 오른쪽 끝 매듭이 완전 중복도를 갖지 않더라도, 이 오른쪽 끝 매듭은 완전 중복도를 갖게 됩니다. 이를 확인하려면 스플라인을 만드십시오(sp = spmak([0 0 1], 1)). 이 스플라인은 기본 구간 [0..1]에서, 0에서 1이고 1에서 0인 직선입니다. 이제 도함수를 적분합니다(spdi = fnint(fnder(sp))). spdi의 스플라인은 동일한 기본 구간을 갖지만, 이 구간에서 0에서 0이고 1에서 –1인 직선과 일치합니다.

fnder(f)fnder(f,1)과 동일합니다.

예제

모두 축소

이 예제에서는 위수가 2, 3 및 4인 세 개의 B-스플라인의 1계 도함수와 2계 도함수를 계산하는 방법을 보여줍니다. 그런 다음 스플라인과 그 도함수를 플로팅하고 결과를 비교합니다.

% Create the knots sequences
t1 = [0 .8 2];
t2 = [3 4.4 5  6];
t3 = [7  7.9  9.2 10 11];
tt = [t1 t2 t3];

% Accessory variables and commands for plotting purposes
cl = ['g','r','b','k','k'];
v = 5.4; d1 = 2.5; d2 = 0; s1 = 1; s2 = .5;
ext = tt([1 end])+[-.5 .5];
plot(ext([1 2]),[v v],cl(5))
hold on
plot(ext([1 2]),[d1 d1],cl(5))
plot(ext([1 2]),[d2 d2],cl(5))
ts = [tt;tt;NaN(size(tt))];
ty = repmat(.2*[-1;0;NaN],size(tt));
plot(ts(:),ty(:)+v,cl(5))
plot(ts(:),ty(:)+d1,cl(5))
plot(ts(:),ty(:)+d2,cl(5))

% Spline 1 (linear)
b1 = spmak(t1,1);
p1 = [t1;0 1 0];
% Calculate the first and second derivative of spline 1
db1 = fnder(b1);
p11 = fnplt(db1,'j');
p12 = fnplt(fnder(db1));
lw = 2;
plot(p1(1,:),p1(2,:)+v,cl(2),'LineWidth',lw)
plot(p11(1,:),s1*p11(2,:)+d1,cl(2),'LineWidth',lw)
plot(p12(1,:),s2*p12(2,:)+d2,cl(2),'LineWidth',lw)

% Spline 2 (quadratic)
b1 = spmak(t2,1);
p1 = fnplt(b1);
% Calculate the first and second derivative of spline 2
db1 = fnder(b1);
p11 = [t2;fnval(db1,t2)];
p12 = fnplt(fnder(db1),'j');
plot(p1(1,:),p1(2,:)+v,cl(3),'LineWidth',lw)
plot(p11(1,:),s1*p11(2,:)+d1,cl(3),'LineWidth',lw)
plot(p12(1,:),s2*p12(2,:)+d2,cl(3),'LineWidth',lw)

% Spline 3 (cubic)
b1 = spmak(t3,1);
p1 = fnplt(b1);
% Calculate the first and second derivative of spline 3
db1 = fnder(b1);
p11 = fnplt(db1);
p12=[t3;fnval(fnder(db1),t3)];
plot(p1(1,:),p1(2,:)+v,cl(4),'LineWidth',lw)
plot(p11(1,:),s1*p11(2,:)+d1,cl(4),'LineWidth',lw)
plot(p12(1,:),s2*p12(2,:)+d2,cl(4),'LineWidth',lw)

% Formatting the plot
tey = v+1.5;
text(t1(2)-.5,tey,'linear','FontSize',12,'Color',cl(2))
text(t2(2)-.8,tey,'quadratic','FontSize',12,'Color',cl(3))
text(t3(3)-.5,tey,'cubic','FontSize',12,'Color',cl(4))
text(-2,v,'B','FontSize',12)
text(-2,d1,'DB','FontSize',12)
text(-2,d2,'D^2B')
axis([-1 12 -2 7.5])
title({'B-splines with Simple Knots and Their Derivatives'})
axis off
hold off

입력 인수

모두 축소

ppform, B-form 또는 stform의 스플라인으로, 다음 필드를 가진 구조체로 지정됩니다.

스플라인 형식으로, pp, B- 또는 tp00으로 반환됩니다. pp는 스플라인이 조각별 다항식 형식으로 주어졌음을 나타내고, B-는 스플라인이 B-form으로 주어졌음을 나타내며, tp00은 스플라인이 stform으로 주어졌음을 나타냅내다.

스플라인의 매듭 위치로, 벡터로 반환되거나 다변량 데이터에 대해서는 벡터로 구성된 셀형 배열로 반환됩니다. 벡터는 다항식 조각이 정의된 각 구간의 시작과 끝을 나타내는 순증가하는 요소를 포함합니다.

각 조각에 대한 다항식의 계수로, 행렬로 반환되거나 다변량 데이터에 대해서는 배열로 반환됩니다.

스플라인을 설명하는 다항식 조각의 개수로, 스칼라로 반환되거나 다변량 데이터에 대해서는 각 변수에 있는 조각 개수로 구성된 벡터로 반환됩니다.

스플라인의 각 다항식 조각을 설명하는 다항식 함수의 위수로, 스칼라로 반환되거나 다변량 데이터에 대해서는 각 변수의 위수를 포함하는 벡터로 반환됩니다.

대상 함수의 차원 수로, 스칼라로 반환됩니다.

함수 f의 도함수의 차수로, 스칼라 또는 벡터(다변량 함수의 경우)로 지정됩니다.

데이터형: single | double

출력 인수

모두 축소

ppform, B-form 또는 stform의 f 스플라인의 도함수로, 다음 필드를 가진 구조체로 반환됩니다.

스플라인 형식으로, pp, B- 또는 tp00으로 반환됩니다. 도함수의 형식은 f 함수의 형식과 동일합니다. pp는 스플라인이 조각별 다항식 형식으로 주어졌음을 나타내고, B-는 스플라인이 B-form으로 주어졌음을 나타내며, tp00은 스플라인이 stform으로 주어졌음을 나타냅내다.

스플라인의 매듭 위치로, 벡터로 반환되거나 다변량 데이터에 대해서는 벡터로 구성된 셀형 배열로 반환됩니다. 벡터는 다항식 조각이 정의된 각 구간의 시작과 끝을 나타내는 순증가하는 요소를 포함합니다.

각 조각에 대한 다항식의 계수로, 행렬로 반환되거나 다변량 데이터에 대해서는 배열로 반환됩니다.

스플라인을 설명하는 다항식 조각의 개수로, 스칼라로 반환되거나 다변량 데이터에 대해서는 각 변수에 있는 조각 개수로 구성된 벡터로 반환됩니다.

스플라인의 각 다항식 조각을 설명하는 다항식 함수의 위수로, 스칼라로 반환되거나 다변량 데이터에 대해서는 각 변수의 위수를 포함하는 벡터로 반환됩니다.

대상 함수의 차원 수로, 스칼라로 반환됩니다.

제한 사항

  • fnder 함수는 유리 스플라인에 사용할 수 없습니다. 유리 스플라인에 사용하려면 대신 fntlr 함수를 사용하십시오.

  • fnder 함수는 제한된 방식으로만 stform에 사용할 수 있습니다. 유형이 tp00인 경우 dorder[1,0] 또는 [0,1]일 수 있습니다.

알고리즘

다항식 형식의 미분의 경우 fnder 함수는 조각별 다항식 형식으로 도함수를 구합니다. 이 함수는 각 다항식 조각을 개별적으로 미분하고, 미분 중에 다항식 조각 간의 비약 불연속을 무시합니다.

B-form의 경우 이 함수는 미분을 위해 [PGS; (X.10)] 식을 사용합니다.

stform의 경우 미분은 특정 유형의 기저 함수의 관련 도함수에 대한 식을 알고 있는지에 따라 달라집니다.

버전 내역

R2006a 이전에 개발됨

참고 항목

| | |