이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
fnval
스플라인 함수 값 구하기
설명
는 v
= fnval(f
,x
)f
에 기술된 스플라인 함수 f의 x
점에서의 값 f(x)를 제공합니다.
f
가 일변량 스칼라 값 함수인 경우, x
의 각 요소를 그 요소에서의 f의 값으로 대체해 출력값 v
를 구합니다. 이러한 방식은 d
-값 m
-변량 함수의 경우에 m
-벡터가 d
-벡터로 대체된다는 점만 제외하고는 다른 모든 경우에 적용됩니다.
일변량 f의 경우에는 다음이 적용됩니다.
f가 스칼라 값 함수이면 v는
x
와 크기가 동일합니다.f가
[d1,...,dr]
-값 함수이고x
의 크기가[n1,...,ns]
이면v
의 크기는[d1,...,dr, n1,...,ns]
입니다(v(:,...,:, j1,...,js)
는x(j1,...,js)
에서의 f의 값임). 이때 다음과 같은 경우는 예외입니다.n1
이1
이고s
가2
인 경우(즉,x
가 행 벡터인 경우) n1은 무시됩니다.MATLAB®은
x
의 후행 한원소 차원을 무시합니다.
m
-변량 f의 경우(m>1
, f는 [d1,...,dr]
-값 함수), x
는 배열이거나 셀형 배열 {x1,...,xm}
일 수 있습니다.
x
가[n1,...,ns]
크기의 배열이면n1
은m
과 같아야 하고v
의 크기는[d1,...,dr, n2,...,ns]
입니다(v(:,...,:, j2,...,js)
는x(:,j2,...,js)
에서의 f의 값임). 이때 다음과 같은 점은 제외입니다.f가 스칼라 값 함수인 경우(즉,
r
과n1
이 모두1
인 경우)d1
, ...,dr
은 무시됩니다.MATLAB은
x
의 후행 한원소 차원을 무시합니다.
x
가 셀형 배열이면{x1,...,xm}
형식이어야 하며(xj
는 길이가nj
인 벡터임), 이 경우v
의 크기는[d1,...,dr, n1,...,nm]
입니다(v(:,...,:, j1,...,jm)
은 (x1
(j1
), ...,xm
(jm
))에서의 f의 값임). 단, f가 스칼라 값 함수인 경우(즉,r
과n1
이 모두1
인 경우)d1
, ...,dr
은 무시됩니다.
f가 x
에서 비약 불연속(jump discontinuity)을 가지면 값 f(x +), 즉 우극한이 반환됩니다. 단, x
가 형식의 기본 구간 오른쪽 끝인 경우는 예외입니다. 이러한 x
의 경우 값 f(x–), 즉 좌극한이 반환됩니다.
fnval(...,'l')
는 f를 왼쪽으로 연속인 것으로 간주합니다. 이는 f가 x
에서 비약 불연속을 가지면 값 f(x–), 즉 좌극한이 반환된다는 의미입니다. 단, x
가 기본 구간의 왼쪽 끝인 경우는 예외입니다. 이러한 x
의 경우 값 f(x +)가 반환됩니다.
함수가 다변량인 경우 왼쪽과 오른쪽에서의 연속에 관한 위 명령문은 좌표별로 적용됩니다.
예제
입력 인수
출력 인수
알고리즘
x
의 각 요소에 대해, 이 함수는 관련된 절점 구간이나 매듭 구간을 결정하고 관련 정보를 조합합니다. f
가 ppform 형식인지 B-form 형식인지에 따라, x
의 모든 요소에서 동시에 값을 구하기 위해 축소곱셈법(nested multiplication) 또는 B-스플라인 재귀(예로 [PGS; X.(3)] 참조)가 벡터 방식으로 사용됩니다. 다변량 다항식 스플라인 함수의 값을 구하는 과정은 텐서 곱 구조를 최대한 활용합니다.
유리 스플라인의 값을 구하는 과정은 대응하는 벡터 값 스플라인의 값을 구한 후에 수행됩니다. 즉, 스플라인의 마지막 성분으로 나머지 모든 성분을 나누는 계산입니다.
stform의 함수의 값을 구하는 과정은 stcol
을 핵심적으로 활용하며, 행렬의 크기를 합리적인 수준으로 유지하려고 시도합니다.
버전 내역
R2006b에 개발됨