스플라인(수학)

Spline (mathematics)
1/3과 2/3에서 단일 노트는 C 연속성2 3개의 입방 다항식 스플라인을 충족합니다.간격의 양 끝에 트리플 노트가 있어 곡선이 끝점을 보간할 수 있습니다.

수학에서 스플라인다항식에 의해 부분적으로 정의되는 특수 함수이다.보간 문제에서 스플라인 보간은 종종 다항식 보간보다 선호되는데, 이는 낮은 차수의 다항식을 사용하더라도 유사한 결과를 산출하고 높은 차수에 대한 룽지의 현상을 피하기 때문이다.

컴퓨터 지원 설계와 컴퓨터 그래픽의 컴퓨터 과학 하위 분야에서 스플라인이라는 용어는 더 자주 부분 다항식(모수) 곡선을 가리킵니다.스플라인은 구조가 단순하고 평가의 용이성과 정확성, 그리고 곡선 피팅 및 대화형 곡선 설계를 통해 복잡한 형상을 근사할 수 있는 능력 때문에 이러한 하위 필드에서 인기 있는 곡선입니다.

스플라인이라는 용어는 조선업체와 제도공이 매끄러운 모양을 그리기 위해 사용하는 플렉시블 스플라인 장치에서 유래했습니다.

서론

"스플라인"이라는 용어는 데이터 보간 및/또는 평활이 필요한 애플리케이션에서 사용되는 광범위한 기능 클래스를 지칭하는 데 사용됩니다.데이터는 1차원 또는 다차원일 수 있습니다.보간을 위한 스플라인 함수는 보통 보간 제약조건에 따라 적절한 거칠기 측정(예를 들어 적분 제곱 곡률)의 최소치로 결정된다.평활 스플라인은 관측 데이터에 대한 평균 제곱 근사 오차 및 거칠기 측정의 가중치 조합을 최소화하도록 함수가 결정되는 보간 스플라인의 일반화라고 볼 수 있다.거칠기 측정의 많은 의미 있는 정의의 경우 스플라인 함수는 본질적으로 유한한 차원임을 알 수 있으며, 이것이 계산 및 표현에서 그 효용의 주된 이유이다.이 섹션의 나머지 부분에서는 전적으로 1차원 다항식 스플라인에 초점을 맞추고 제한된 의미에서 "스플라인"이라는 용어를 사용합니다.

정의.

먼저 하나의 변수에서 우리의 논의를 다항식으로 제한한다.이 경우 스플라인은 부분 다목적 함수입니다.S라고 불리는 이 함수는 간격 [a,b]에서 값을 가져와 실수의 집합R \mathbb {에 매핑합니다.

우리는 S를 분할적으로 정의하기를 원한다.이를 달성하기 위해 간격 [a,b]를 k개의 순서, 분리된 하위 간격에 포함시킵니다.

[a,b]의 각 k개의 "조각"에 대해 P라고i 하는 다항식을 정의하려고 합니다.

:[ i , + {\ : [ , } \ } 。

[a,b]의 ith 서브인터벌에서 S는 P로 정의된다i.

주어진 k+1 포인트i t는 매듭이라고 불립니다. t ( 0 , , k) { =( 스플라인의 매듭 벡터라고 합니다.매듭이 [a, b] 간격으로 등거리에 분포되어 있으면 스플라인은 균일하다고 하고 그렇지 않으면 불균일하다고 합니다.

다항식편i P가 최대 n의 차수를 가지면 n+1)이라고 한다.

s S Ci t 근방이면 스플라인은 t에서i (적어도) C 평활도라고 한다.즉, t에서i 두 다항식 조각i-1 Pi P는 0차 도함수 값(함수 값)에서 r차i 도함수 도함수까지 공통 도함수 값을 공유한다(즉, 인접한 두 다항식 조각은 최대 n - ri 평활도 손실과 함께 연결된다).

i - ( r) ( ) i ( ) ( ){ (t) =}

( 1, , k - =({k-1, i = 1, - t에서 스플라인i {i 갖는 벡터 r ( 1, …, k -의 경우)

{\ 매듭 t 정도 n 평활도 r 주어지면 매듭 벡터 t 정도 n의 모든 스플라인 을 고려할 수 있다. r mathbf { 2개의 함수를 더하고 실제 함수 배수를 취하는 연산을 갖춘 이 세트는 실제 벡터 공간이 됩니다.스플라인 공간으로 S n (t })로

다항식 스플라인의 수학적 연구에서, 예를 들어i t와 ti+1 함께 움직이면 어떤 일이 일어나는지에 대한 질문은 쉬운 답을 가지고 있다.다항식편i P(t)는 사라지고,i−1 P(t)와i+1 P(t)는 ti+1 ti 연속성 손실의 합과 결합한다.그것은,

( ) C - - i+ 1 [ i+ C{i} -1}, 서 j - { { + }, ( t _ i

이를 통해 매듭 벡터를 보다 일반적으로 이해할 수 있습니다.임의의 지점에서 연속성 손실은 그 지점에 위치한 여러 노트의 결과로 간주될 수 있으며, 스플라인 유형은 그 정도 n과 확장된 매듭 벡터에 의해 완전히 특징지을 수 있다.

여기i t는 i , - i에 대해 j회 반복됩니다i.

구간 [a,b] 모수 곡선

X와 Y가 모두 같은 정도의 스플라인 함수이고 해당 간격에서 동일한 확장된 매듭 벡터가 있는 경우 스플라인 곡선입니다.

간격 [a,b]가 [0,3]이고 하위 간격이 [0,1], [1,2] 및 [2,3]이라고 가정합니다.다항식 조각이 2도이고 [0,1]과 [1,2]의 조각이 값에서 결합되고 (t=1에서) [1,2]와 [2,3]의 조각이 (t=2에서) 단순히 값에서 결합된다고 가정합니다.이것은 스플라인 S(t)의 유형을 정의한다.

그런 타입의 멤버일 수도 있고

해당 형식의 일원이 되다.(:다항 조각 2t 2차지 않다, 그 결과 여전히 이차 스플 라인이라고 불립니다.이것은 다항 부품의 스플 라인의 학위는 최대 수준이다.)을 보여 줍니다.스플 라인의 이 형식에 대한 확장된 매듭 벡터가 될 것이다(0,1,2,2,3).

가장 간단한 스플 라인 정도 0을 가지고 있다.그것은 또한 계단 함수라고 불린다.그 다음으로 가장 단순한 스플 라인 정도 1 가지고 있다.그것은 또한 선형 스플 라인이라고 불린다.비행기 안에 폐쇠된 선형 스플 라인(i.e, 첫번째 결혼하고 마지막은 같다)은 다각형.

공통 스플라인은 연속성2 C를 갖는 도수 3의 자연 입방 스플라인이다."자연"이라는 단어는 보간 구간의 끝점에서 스플라인 다항식의 2차 도함수가 0으로 설정된다는 것을 의미한다.

이로 인해 스플라인은 평활성에 영향을 주지 않으면서 간격 외 직선이 됩니다.

자연 입방 스플라인 계산 알고리즘

큐빅 스플라인은 (x ) + ( - j) + ( - j ) + ( - j ) style { { } \ left ( \ )= _ { } + b { \ ( x - x right ) { right {
[( 0 , 0), ( , 1),. ., ( ,n ) C = \ [ \ ( { ) { 0 , { { } \ right , \ , { x { { } \ right , { n \ right , { } , ,n - {displaystyle left{{ i

다음 사항을 충족해야 합니다.

  • 0 ( x ) n - ( ) \ { S " { } \ left ( x { } \ ) = { S " }_ { n - \ left ( { n } \ ) =}

1개의 큐빅 스플라인 S 5개의 태플 t합니다.서 a x, x_ da, c, })는 앞의 의 계수에 대응합니다

자연 입방 스플라인 계산을 위한 알고리즘:
입력: C + { \ C \ n +1 } 세트 C { displaystyle\ right = n + 1 }
출력: 5튜플 n개로 구성된 스플라인을 설정합니다.

  1. n + 1 크기의 새 배열 a를 만들고 i , , n 0 i i_ { i } = _ { } 를 합니다.
  2. 크기 n의 새로운 어레이 b와 d를 만듭니다.
  3. 크기가 n이고 i n-({ i = x i + - { }=
  4. 크기 n의 새 배열 하고 i1, - { i i - ( - - -1) { { { h _ } { h _
  5. n + n의 새로운 어레이 c, l, μ z를 만듭니다.
  6. 0 , 0 { l _ { 0 } =1 {\}0} =_ {0} =0 ,} 으로 설정합니다.
  7. ,n -({=1ldots,
    1. i ( i + - -1)- - i - ( \ { { i } \ { + } - { { \ right ) - { { { \ { } } ) 。
    2. i i 를 합니다 { } _ { i } = { h { } } { } _ { i}} 。
    3. i i - - i - l { \ { } - { } _ { i } { { } _ { }} . .
  8. n ; n . { l { n } =; _ { n } = _ { n } =0 ., , , , , , , , , , , , 를 설정합니다.
  9. j -, n- , , { j =, , \, }의
    1. j - j j + }=을(를) 설정합니다.
    2. j + - h- h ( j + + j ) { b _ { j } { _ { { } _ { { h}{ j} - { \ { { { } \ } _ { j + 1} { c } { c } { c } { c } { c } { c } { displaystypac { display } { j + h } } } 。
    3. j j + - c j {{}=frac {c을 설정합니다.
  10. 새 세트 스플라인을 생성하여 output_set이라고 부릅니다.n개의 스플라인 S로 채웁니다.
  11. i , , -({ i
    1. Si,a = ai 설정합니다.
    2. Seti,b S = bi
    3. Si,c = ci 설정
    4. Si,d = di 설정
    5. Si,x = xi 설정
  12. output_set

메모들

이것이 다음과 같은 연속성을 이끌 것이기 때문에 매듭 벡터에서 n개의 다중 매듭보다 많은 의미가 있는지 질문받을 수 있습니다.

이 높은 다중성의 위치에 있습니다.관례상 그러한 상황은 인접한 두 다항식 조각 사이의 단순한 불연속성을 나타낸다.즉, 확장i 매듭 벡터에서 매듭 t가 n + 1회 이상 나타나면 모든 곱셈 n + 1, n + 2, n + 3 등이 동일한 의미를 가지므로 스플라인의 특성을 변경하지 않고 n + 1)번째를 초과하는 모든 인스턴스를 제거할 수 있습니다.일반적으로 스플라인을 정의하는 매듭 벡터는 이러한 방식으로 도태되었다고 가정합니다.

수치 해석에 사용되는 전형적인 스플라인 타입의 정도 n은 연속성을 갖는다.

즉, 인접한 모든 두 다항식 조각이 각각의 값과 첫 번째 n - 1 도함수에서 만난다는 것을 의미한다.평면 스플라인을 가장 밀접하게 모델링하는 수학적 스플라인은 입방체(n = 3)이며, 두 번 연속 미분 가능한(C2), 자연 스플라인이며, 이는 끝점 a와 b에 추가 조건이 부과된 이러한 고전 유형의 스플라인이다.

Adobe Systems의 Adobe Illustrator와 같은 그리기 프로그램에서 많이 사용되는 또 다른 유형의 스플라인은 입방체이지만 최대 연속성만 있습니다.

이 스플라인 유형은 PostScript 및 일부 컴퓨터 타이포그래픽 글꼴 정의에도 사용됩니다.

하이엔드 그래픽과 애니메이션을 위해 설계된 많은 컴퓨터 지원 설계 시스템은 확장 매듭 벡터를 사용합니다(예: Autodesk Maya).컴퓨터 지원 설계 시스템은 종종 NURBS(Non Uniform real B-spline)로 알려진 확장 개념의 스플라인을 사용합니다.

함수 또는 물리적 개체에서 샘플링된 데이터를 사용할 수 있는 경우 스플라인 보간은 해당 데이터에 근접하는 스플라인을 만드는 방법입니다.

C2 보간 입방 스플라인의 일반식

자연 조건을 가진 x에서 ih2 C 보간 입방 스플라인에 대한 일반식은 다음 공식을 사용하여 찾을 수 있다.

어디에

  • i ( i { i} = f \prime }(i})는 ith 매듭에서 두 번째 도함수의 값이다.
  • ( ) { f ith note의 함수 값입니다.

표현과 이름

주어진 구간 [a, b]와 그 구간에서의 주어진 연장 매듭 벡터에 대해, 도수 n의 스플라인은 벡터 공간을 형성한다.간단히 말해, 특정 유형의 스플라인 2개를 추가하면 해당 유형의 스플라인 1개가 생성되고, 특정 유형의 스플라인에 임의의 상수를 곱하면 해당 유형의 스플라인 1개가 생성된다는 것을 의미합니다.특정 유형의 모든 스플라인을 포함하는 공간의 치수는 확장된 매듭 벡터로부터 계산할 수 있습니다.

차원은 차수와 승수의 합과 같다.

스플라인 유형에 추가 선형 조건이 적용된 경우 결과 스플라인은 하위 공간에 있습니다.예를 들어 모든 자연 입방체 스플라인의 공간은 모든 입방체2 C 스플라인의 공간의 부분 공간이다.

스플라인의 문헌에는 특수한 유형의 스플라인에 대한 이름이 가득합니다.이러한 이름은 다음과 관련되어 있습니다.

  • 스플라인을 표현하기 위해 다음과 같이 선택되었습니다.
  • 확장된 매듭 벡터를 형성할 때 다음과 같이 선택할 수 있습니다.
    • C 연속성을 위해n-1 단일 매듭을 사용하고 이 매듭을 [a, b]에 균등하게 간격을 둡니다(균일한 스플라인 제공).
    • 간격 제한이 없는 매듭을 사용(비균일한 스플라인을 제공)
  • 스플라인에 가해지는 특수 조건. 예를 들어 다음과 같습니다.
    • ab에서 0초 도함수 적용(자연 스플라인 제공)
    • 주어진 데이터 값이 스플라인에 있어야 함(보간 스플라인 제공)

종종 위의 두 개 이상의 주요 항목을 충족하는 스플라인 유형에 대해 특별한 이름이 선택되었습니다.를 들어, 에르미트 스플라인은 각각의 개별 다항식 조각을 나타내기 위해 에르미트 다항식을 사용하여 표현되는 스플라인입니다.이들은 n = 3 즉, 큐빅 에르미트 스플라인과 함께 가장 많이 사용됩니다.이 정도에서는 접선-연속(C)으로만1 선택할 수 있습니다. 즉, 모든 내부 매듭이 이중임을 의미합니다.이러한 스플라인을 주어진 데이터 점에 적합시키는 여러 가지 방법이 개발되었습니다. 즉, 보간 스플라인으로 만들고 각 다항식 조각이 만나는 곳의 그럴듯한 탄젠트 값을 추정함으로써(사용 방법에 따라 카디널 스플라인, Catmull-ROM 스플라인Kochanek-Bartels 스플라인제공합니다).

각 표현에 대해, 스플라인의 값이 필요에 따라 생산될 수 있도록 몇 가지 평가 방법을 찾아야 한다.각 개별 다항식 조각i P(t)를 n차 다항식의 어떤 기초에 따라 표현하는 표현에 대해, 이것은 개념적으로 간단하다.

  • t의 특정 값에 대해 인수 t [ i , i + t \ [ t { , _ { + }}가 간격을 찾습니다.
  • P , …, k - 에서 선택한 다항식 베이시스를 검색합니다.
  • 기본 다항식의 값을 t에서 구합니다. 0() , , k - () { P _ { ; display P { 0} , \, P _ { display style P _ { 0 }
  • 해당 구간0 c, ..., c에서k-2 스플라인을 제공하는 기본 다항식의 선형 조합의 계수를 찾아보십시오.
  • 기본 다항식 값의 선형 조합을 더하면 t에서 스플라인 값을 얻을 수 있습니다.

그러나 평가 단계와 집계 단계는 종종 교묘한 방법으로 결합됩니다.예를 들어, 번스타인 다항식은 특수 반복 관계를 사용하여 선형 조합에서 효율적으로 평가할 수 있는 다항식의 기초이다.이것이 베지에 곡선과 베지에 스플라인으로 특징지어지는 De Casteljau 알고리즘의 정수이다.

그러나 스플라인을 기본 스플라인의 선형 조합으로 정의하는 표현에는 보다 정교한 것이 필요합니다.de Boor 알고리즘B-스플라인을 평가하는 효율적인 방법입니다.

역사

컴퓨터가 사용되기 전에, 수치 계산은 손으로 이루어졌다.기호 함수 또는 단계 함수와 같은 부분 정의 함수를 사용했지만, 일반적으로 다항식을 사용하는 것이 더 쉬웠기 때문에 선호되었다.컴퓨터의 등장으로 스플라인의 중요성이 커졌다.그것들은 처음에 보간에서 다항식을 대체하기 위해 사용되었고, 그 후 컴퓨터 그래픽스에서 부드럽고 유연한 모양을 만들기 위한 도구로 사용되었다.

스플라인에 대한 첫 번째 수학적 참조가 쇤베르크의 1946년 논문이라는 것이 일반적으로 받아들여지고 있는데, 아마도 스플라인이라는 단어가 매끄럽고 부분적인 다항식 근사치와 관련하여 사용된 첫 번째 장소일 것이다.하지만, 그 아이디어는 항공기와 조선 산업에 뿌리를 두고 있다.(Bartels et al., 1987)의 서문에서 로빈 포레스트는 제2차 세계대전영국 항공기 산업에서 사용된 기술인 "lofting"을 설명하는데, 이는 선박-헐 설계에서 차용된 기술인 "스플라인"이라고 불리는 얇은 나무 스트립을 큰 디자인 로프트 바닥에 배치하여 비행기의 템플릿을 만드는 기술이다.수년간 선박 설계 관행은 소규모 설계를 위해 모델을 사용해 왔다.그런 다음 성공적인 설계를 그래프 용지에 표시하고 그래프의 핵심 포인트를 더 큰 그래프 용지에 전체 크기로 다시 플롯했습니다.얇은 나무 조각들이 요점을 부드러운 곡선으로 보간해 주었다.스트립은 개별 지점(Forrest에서는 "ducks"라고 불렀고, 쇤베르크는 "dogs" 또는 "rats"를 사용)에 고정되며, 이 지점들 사이에 최소 변형률 에너지의 형태를 가정합니다.Forrest에 따르면, 이 과정을 위한 수학적 모델의 한 가지 가능한 추진력은 적군의 폭탄에 의해 로프트가 타격을 받을 경우 항공기 전체의 중요한 설계 구성요소가 손실될 수 있다는 것이었다.이것은 오리들 사이의 곡선의 위치를 모델링하기 위해 원뿔 단면을 사용하는 "원뿔 로프트링"을 발생시켰다.원뿔형 로프트는 1960년대 초에 J. C.의 작업을 바탕으로 우리가 스플라인이라고 부르는 것으로 대체되었습니다. 보잉의 퍼거슨과 영국 항공기 회사의 M.A. Sabin의 (일부 후)

스플라인이라는 단어는 원래 이스트 앵글리아 방언 단어였다.

자동차 차체의 모델링을 위한 스플라인의 사용은 몇 가지 독립적인 시작을 가지고 있는 것으로 보인다.1960년대 초 또는 1950년대 후반에 발생한 작업에 대해 시트로엥de Casteljau, 르노의 Pierre Bézier, GarabedianGermanal MotorsBirkhoff, de Boor, 1965 참조)를 대표하여 크레딧을 청구합니다.드 카스텔주의 논문 중 적어도 하나는 1959년에 출판되었지만 널리 출판되지는 않았다.General Motors에서의 De Boor의 연구는 B-스플라인에 관한 기초적인 연구들을 포함하여 1960년대 초에 많은 논문들이 출판되는 결과를 낳았다.

작업은 프랫 앤 휘트니 항공기에서도 수행되었으며, 여기서 (알버그 외, 1967년)의 저자 2명과 표도르 테일하이머의 데이비드 테일러 모델 분지(David Taylor Model Basin)가 고용되었다.제너럴 모터스에서의 작업은 (Birkhoff, 1990)와 (Young, 1997)에 잘 설명되어 있습니다.데이비스(1997)는 이 자료의 일부를 요약한다.

레퍼런스

  • 퍼거슨, 제임스 C, 다변수 곡선 보간, J. ACM, vol. 11, no. 2, 페이지 221-228, 1964년 4월.
  • Ahlberg, Nielson, Walsh, The The Theory of Splines and The Applications, 1967.
  • Birkhoff, Fluid dynamics, 원자로 계산 및 표면 표현, Steve Nash(ed.), A History of Scientific Computation, 1990.
  • Bartels, Beatty, and Barsky, 컴퓨터 그래픽과 기하학적 모델링에서의 사용을 위한 스플라인 소개, 1987.
  • Birkhoff와 de Boor, Piechise 다항식 보간 및 근사, H. L. Garabedian(ed.), Proc. 1964년 제너럴 모터스 심포지엄, 페이지 164–190.1965년 뉴욕과 암스테르담의 엘세비어.
  • 데이비스, B-스플라인과 기하학적 디자인, SIAM 뉴스, 제29호, 제5호, 1997.
  • 에퍼슨, 스플라인의 역사, NA 다이제스트, 제98권, 제26호, 1998.
  • Stoer & Bulirsch, 수치분석 입문.Springer-Verlag, 페이지 93-106ISBN 0387904204
  • 쇤베르크, 분석 함수에 의한 등거리 데이터의 근사 문제에 대한 기여, 쿼트. 응용 프로그램. 수학, 제4권, 페이지 45~99 및 112~141, 1946.
  • 영, 개럿 버크호프와 응용수학, AMS 공지사항, 제44권, 제11호, 페이지 1446–1449, 1997.
  • Chapra, Canale, "엔지니어를 위한 수치적 방법" 제5판.

외부 링크

이론.

Excel 기능

온라인 유틸리티

컴퓨터 코드