스플라인에 의한 최적의 근사. 스플라인 기초

운형자

Bessel 및 Akimi 스플라인을 구성하는 로컬 방법이 있으며 B는 스플라인입니다. 기본적으로 스플라인은 대수 다항식으로 구성된 스플라인을 의미합니다. 이것은 위에 주어진 정의입니다. 가장 많이 연구된 것은 이 스플라인입니다. 그러나 스플라인은 모든 클래스의 함수 조각으로 구성될 수 있습니다. 이러한 스플라인의 구성을 고려하고 그 특성을 연구합니다. 저자는 구성된 스플라인의 일반적인 정의를 제공하지 않습니다. 분명히, 스플라인을 구성하는 함수 클래스의 경우 기사 시작 부분에 제공된 정의가 완전히 적합하지 않습니다. 예를 들어, 스플라인이 지수 세그먼트로 구성된 경우 스플라인 결함의 개념은 의미를 잃습니다. 연속 파생 상품의 수는 여전히 중요한 특성입니다. 단편이 불연속적인 함수(합리적 함수, 파데 함수)인 스플라인의 구성은 스플라인의 주요 이점 중 하나가 부드러움이기 때문에 스플라인 아이디어의 범위를 다소 벗어납니다. 이러한 구성을 임의로 확장하면 스플라인과 울퉁불퉁한 기능 간의 차이가 지워집니다. 스플라인의 또 다른 이점은 계산 효율성입니다. 프래그먼트의 과도한 복잡성은 기존 기능에 비해 스플라인의 이점을 크게 줄입니다.

스플라인은 다음과 같은 특징이 있습니다. 스플라인은 조각으로 구성됩니다 - 매개 변수에서만 다른 동일한 클래스의 기능, 특정 조건은 접합점에서 인접한 조각에 부과되며 값의 연속성으로 축소됩니다. 일부 첫 번째 파생 상품. 스플라인은 집중적으로 발전하고 있는 응용 수학의 한 분야입니다. 인터넷에는 스플라인에 대한 광범위한 참고 문헌이 포함되어 있습니다(Spline Bibliography Database(SBD)).

스플라인 분류

위에서 언급했듯이 스플라인이라고 하는 많은 구조가 있습니다. 따라서 특정 적용 작업에 적합한 스플라인을 선택할 수 있는 기능을 강조하기 위해 이 다양성에 특정 분류를 도입할 필요가 있습니다.

스플라인 조각 보기. 스플라인이 동일한 유형의 조각으로 구성되어 있다는 사실은 다른 조각 기능과 구별되는 주요 기능 중 하나입니다.

조각으로 구성된 가장 유명한 스플라인은 주어진 차수보다 높지 않은 대수 다항식입니다. 일반적으로 이들은 3차 다항식 또는 홀수 차수의 다항식입니다(첫 번째, 세 번째(입방), 다섯 번째 차수). 더 높은 차수는 계산의 복잡성과 이전 섹션에서 설명한 복잡성으로 인해 거의 사용되지 않습니다. 주요 장점은 계산 및 분석의 단순성입니다. 단점은 이 종속성에 해당하는 실제 물리적 프로세스가 상대적으로 적다는 것입니다.

지수 스플라인. 노드에 고정된 유연한 금속 눈금자가 늘어나면 미분 방정식의 해는 대수 다항식이 아니라 지수가 됩니다. 따라서 이러한 스플라인은 시제. 지수는 역학 시스템의 많은 물리적 프로세스를 설명합니다. 단점은 계산이 복잡하다는 것입니다.

삼각법은 스플라인이며, 그 조각은 삼각법 다항식으로 설명됩니다. 그들은 매우 복잡한 계산 표현식을 가지고 있습니다. 다양한 유형의 50개 이상의 스플라인 조각이 B. A. Popov의 작품에 설명되어 있습니다.

합리적인 스플라인과 Padé 스플라인도 있습니다. 그들의 특징은 노드에서 연속성과 함께 단편에서 파생 상품을 끊을 가능성입니다. M. Ansermet은 조각이 감마 함수를 사용하여 지정되는 부분 스플라인을 만듭니다.

특정 유형의 단편을 사용하는 편의성은 문제의 특정 조건 및 구현 제한을 기반으로 합니다. 일반적으로 주요 요구 사항은 수용 가능한 시간 및 구현 리소스 비용으로 주어진 보간 정확도를 달성하는 것입니다. 프로세스의 특성에 따라 적절한 조각을 선택하면 계산 시간과 필요한 메모리 양이 줄어듭니다.

조각 수. 분명히, 최소 조각 수는 하나입니다. 스플라인의 고전적인 정의는 단편의 수를 유한 세그먼트의 특정 수로 제한합니다. 그러나 무한한 수의 프래그먼트로 스플라인을 구축하는 것이 가능하지만 실제로 이러한 방법과 알고리즘은 특정 수의 프래그먼트에 대한 정보가 필요하지 않습니다. 이러한 스플라인은 다음과 같이 표시됩니다. 추기경 Schoenberg가 탐색한 스플라인 조각 수에 제한이 없는 스플라인을 작성하려면 로컬 스플라인이 더 적합합니다.

조각 너비. 조각의 너비가 같은 스플라인을 선택해야 합니다. 이를 통해 계산 표현식을 크게 단순화하고 알고리즘 작업 속도를 높이며 구현 비용을 줄일 수 있습니다. 너비가 여러 개인 조각을 사용하면 어느 정도 단순화할 수 있습니다. 너비가 0인 조각(De Boer)이 있는 스플라인이 있습니다. 이것은 매듭의 다양성과 불연속 기능의 분리할 수 없는 조각으로 스플라인을 근사화할 가능성으로 이어집니다. 계산식은 극한 천이의 결과로 얻어진다. 스플라인은 폭이 무한한 조각을 가질 수도 있습니다. 이러한 조각은 극단적이어야 합니다. 때로는 이를 통해 경계 조건을 자연스럽게 설정할 수 있습니다.

프래그먼트 결합 조건. 스플라인을 구별하는 또 다른 중요한 기능입니다. 스플라인의 경우 일반적으로 조각이 매끄럽게 결합된 것으로 간주됩니다. 즉, 값과 1차 도함수의 연속성이 보장됩니다. 개념 스플라인 결함는 특정 유형의 함수 프래그먼트가 갖는 연속 도함수의 수와 노드에서 연속성이 보장되는 도함수의 수와 관련이 있습니다. 지수, 사인 곡선은 무한한 수의 도함수를 가지고 있습니다. 그들에게 이 개념은 의미가 없습니다. 따라서 스플라인의 노드에서 연속성이 보장되는 도함수의 수에 대해 직접 말하는 것이 더 편리합니다. 실제로 우리는 값의 연속성과 첫 번째, 최대 이차 미분에 대해 이야기하고 있습니다. 2차 도함수와 상위 도함수 사이의 간격은 시각적으로 눈에 띄지 않으므로 거의 고려되지 않습니다. 접합점의 1차 도함수는 다른 방식으로 지정할 수 있음이 분명합니다. 가장 일반적인 방법은 두 가지입니다. 첫 번째 도함수의 값은 두 번째 도함수의 연속성을 보장하도록 선택됩니다(최소 결함의 전역 3차 스플라인). 1차 도함수는 에르미트 스플라인에서 보간된 함수(대략 대략적으로)의 1차 도함수와 같습니다.

경계 조건. 스플라인에 제한된 수의 조각이 있는 경우 당연히 왼쪽과 오른쪽에 극단적인 조각이 없으므로 극단적인 노드를 결합할 것이 없습니다. 유일한 예외는 자연 연속성을 갖는 주기적 스플라인입니다. 때로는 0의 도함수가 있는 경계 조건을 자연적이라고 하지만, 다른 것보다 더 자연스럽다고 생각할 이유는 없습니다. 스플라인에 동일한 너비의 조각이 있는 경우 동일한 너비의 누락된 조각이 계산됩니다. 또 다른 옵션은 무한대로 확장된 누락된 조각을 고려하는 것입니다. 이 접근 방식의 장점은 외삽의 가능성입니다. 조각의 너비는 0으로 간주할 수 있습니다. 계산된 표현식은 한계 전이에 의해 얻어집니다. 기본 기능에서 스플라인 형성의 관점에서 경계 조건을 보면 해당 로컬 기본 기능의 연속으로 축소됩니다. 인접한 조각의 너비는 모양에 영향을 줍니다. 단순한 절단은 종종 진동과 가장자리의 오류 증가로 이어집니다. 경계 조건은 이미지 처리 및 외삽 문제에서 중요합니다.

추가 제한 사항. 그들은 가장 자주 노드의 파생 상품과 관련이 있습니다. 때때로 그들은 프로세스의 물리학을 따릅니다. 조건: 가치의 양도 불가능, 모멘트의 평등, 면적, 정규화 조건. 추가 조건은 때때로 스플라인 속성의 분석을 단순화하지만 구성 및 구현 비용을 심각하게 복잡하게 만들 수 있습니다.

보간 포인트 그리드. 계산의 효율성에 큰 영향을 줄 수 있습니다. 스플라인 노드 사이의 거리의 배수인 점 사이의 거리를 갖는 균일 격자 및 균일 격자의 경우가 중요합니다.

기저 함수의 로컬 속성. 스플라인은 가중치 기반 스플라인의 합으로 나타낼 수 있습니다. 이러한 기본 함수의 너비는 필수적입니다. 따라서 전역 스플라인에서 기본 스플라인은 전체 보간 세그먼트에서 0이 아닙니다. 특정 정확도(많은 기술 계산에 충분)로 로컬로 간주될 수 있다는 점은 주목할 가치가 있습니다. 로컬 스플라인의 경우 기본 함수의 너비가 작습니다(3차 에르미트 스플라인의 경우 4개 조각). 이는 계산 및 구현 비용의 효율성에 상당한 영향을 미칩니다.

프레젠테이션 양식. 일반적으로 스플라인 조각을 정의하는 함수는 모양이 변경되는 많은 매개변수에 따라 달라집니다. 각 조각의 매개 변수 값은 개별적입니다. 이러한 매개변수는 특정 스플라인을 지정할 수 있습니다. 다항식 스플라인의 경우 다항식 계수입니다. 따라서 스플라인은 각 조각에 대한 함수 매개변수 집합으로 나타낼 수 있습니다. 이 표현을 프래그먼트당이라고 부르겠습니다. 그러한 표현은 예시적이며 종종 명확한 물리적 의미를 갖습니다. 그러나 매개변수의 수가 과도합니다. 따라서 3차 스플라인의 경우 4 * (r-1) 매개변수( 아르 자형는 스플라인 노드의 수입니다). 다음 형식의 기본 스플라인 함수를 통해 스플라인을 다항식으로 표현하는 것이 훨씬 더 간결합니다.

여기서 - 기본 스플라인 함수(일반적으로 로컬) - 스플라인 형성에서 기본 함수의 가중치를 지정하는 수치 계수. 스플라인을 정의하는 매개변수의 수는 스플라인 노드의 수와 같습니다. 프래그먼트에 있는 함수의 매개변수와 다항식 스플라인의 계수 사이에는 관계가 있으므로 공식이 상당히 복잡할 수 있지만 일부 계수를 사용하여 다른 것을 찾을 수 있습니다.

스플라인 계수 내용. 이전 단락에서 언급했듯이 조각 표현에서 스플라인 매개변수의 내용은 함수 유형에 따라 결정됩니다. 다항식 표현을 사용하면 계수가 입력 데이터와 물리적 의미가 동일한 경우를 골라내야 합니다. 즉, 계수는 노드에서의 스플라인 값입니다. 이 형식은 Lagrange 다항식과 유추하여 Lagrange라고 합니다. 이 형식의 기본 스플라인은 중심 노드에서 1과 같고 다른 모든 노드에서는 0입니다.

특수 스플라인. 어떤 경우에는 스플라인과 일반 함수, 스플라인과 울퉁불퉁한 함수의 경계에 가까운 함수로 간주됩니다. 예를 들어, 이들은 두 개의 조각으로 구성된 스플라인입니다. 그들은 구조의 단순화 된 버전을 가지고 있지만 경계 조건에 특별한주의를 기울여야합니다.

문학

  • 로저스 D., 아담스 J.컴퓨터 그래픽의 수학적 기초. - M .: Mir, 2001. - ISBN 5-03-002143-4
  • Livshits Evgeny Davidovich. 다항식 및 유리 스플라인에 의한 근사를 위한 연속 E-샘플: Cand. … 캔디. 물리.-수학. 과학: 01.01.01 모스크바, 2005 90 p. RSL 외경, 61:06-1/42
  • Alberg J., Nilson E., Walsh J. - 스플라인 이론 및 응용
  • Vinnichenko L.F. 지수 히스토스플라인: 도입을 위한 전제 조건 // 출판사 Education and Science s.r.o., 컨퍼런스 "XXI 세기의 유럽 과학", 2009
  • Korneichuk, N.P., Babenko, V.F., Ligun, A.A.다항식 및 스플라인/홀의 극한 속성. 에드. A. I. 스테파넷; 에드. S. D. Koshis, O. D. Melnik, 우크라이나 과학 아카데미, 수학 연구소. - K.: Naukova Dumka, 1992. - 304 p. - ISBN 5-12-002210-3
  • Vershinin VV, Zavyalov Yu. S, Pavlov NN 스플라인의 극한 속성 및 평활화 문제. - 노보시비르스크: 나우카, 1988, UDC 519.651
  • 로젠코 알렉산더 이오시포비치. 변이 스플라인 근사의 이론 및 알고리즘: Dis. ... 물리 박사.-수학. 과학: 01.01.07: 노보시비르스크, 2003 231 p. RSL 외경, 71:05-1/136
  • Shikin E. V., Plis L. I. 컴퓨터 화면의 곡선과 표면. 사용자를 위한 스플라인 가이드입니다. - M.: DIALOG-MEPHI, 1996. - 240p. ISBN 5-86404-080-0, UDC 681.3 Sh57
  • 카키모프 B.V.지질학 및 생태학의 예에 대한 스플라인에 의한 상관 종속성 모델링. - 상트페테르부르크: NEVA, 2003. - 144 p. - ISBN 5-211-04588-2

또한보십시오

  • 완벽한 스플라인
  • 보간 스플라인
  • L-스플라인(선형 분수)
  • 로컬 스플라인
  • 원자 함수

노트

연결

  • Mathcad/Maple Application Server를 사용한 대화형 스플라인 계산

다소 복잡한 도면은 직선 세그먼트, 원 및 호뿐만 아니라 곡선 세트로 구성됩니다. 부드러운 곡선은 B-스플라인 유형의 곡선 평활화 방법을 사용하여 편리하게 구성됩니다. B-스플라인은 부드러운 곡선, 더 정확하게는 n번째까지 연속적으로 더 높은 도함수가 있는 곡선입니다. 여기서 n은 스플라인의 차수입니다. B-스플라인으로 구성된 선은 주어진 점을 정확히 통과하지 않습니다. 유사한 곡선은 3차 다항식의 호로 구성되는데, 그 이유는 그러한 다항식이 필요한 연속성을 제공하기 때문입니다. 선은 반복적인 절차를 사용하여 구성됩니다.

3차 스플라인의 구성을 고려하십시오. 우리가 3차 다항식을 그리는 두 개의 인접 점을 가정해 보겠습니다. 그러나 다항식에는 4개의 계수가 있으므로 두 개의 추가 조건 또는 점이 더 필요합니다. 이를 위해 두 개의 인접한 점을 더 가져옵니다. 선을 보고 싶을수록 점을 정확하게 통과하기가 더 어렵습니다. 공식 x \u003d q 3이면 부드러움 3이면 충분합니다.

부드러움은 물리적 문제에 의해 결정되며 여기서 부드러움과 정확성 사이에서 절충안을 찾아야 하는 경우가 많습니다. 예를 들어, 유체 역학은 4차 방정식으로 설명되는 표면과 함께 작동합니다(이러한 방정식을 사용하여 계산된 다양한 종류의 물리적 장치의 부드러움을 높이고 난류를 피하기 위해서는 이러한 높은 차수가 필요합니다). 그러나 스플라인의 차수(즉, 평활도)가 높을수록 정확도가 떨어집니다.

고려하다 . t를 P i 지점에서 P i+1 지점까지 이동하는 매개변수라고 합시다. t = 0에서 우리는 점 Pi에 있고 t = 1에서 우리는 점 Pi+1에 있습니다. 0이면< t < 1, то мы находимся между P i и P i+1 .

각 지점의 이 선에는 다음과 같은 시스템이 있습니다.


x(t) = ((a 3 t + a 2)t + a 1)t + a 0 , 0의 경우<= t <= 1

y(t) = ((b 3 t + b 2)t + b 1)t + b 0 , 0의 경우<= t <= 1 a 3 = (-x i-1 + 3x i - 3x i+1 + x i+2)/6

A 2 = (x i-1 - 2x i + x i+1)/2

A 1 = (-x i-1 + x i+1)/2

A 0 = (x i-1 + 4x i + x i+1)/6

점 b 3 - b 0은 같은 방식으로 그려지지만 x는 y로 대체됩니다. P i 와 P i+1 사이의 점과 b는 변경되지 않습니다. 마지막 점 다음에 첫 번째 점을 지정하면 윤곽이 닫힙니다.

B-스플라인의 장점: 포인트 사이의 계수는 일정합니다. 로컬 변경은 전체 스플라인을 다시 계산하는 것을 수반하지 않습니다. 단점: 2차 도함수에서 불연속성이 있는 직선을 근사할 때 문제가 발생할 수 있습니다(예: 직선과 원호의 켤레). 스플라인을 사용하여 구성된 표면의 곡률이 때때로 고르지 않게 변경되어 왜곡(예: 차체에서 반사된 물체의 기이한 왜곡)으로 이어지기 때문에 미학적 관점에서 항상 허용되는 것은 아닙니다.

결과

B-스플라인 스무딩

단순한 기하학적 모양(구, 원통 또는 원뿔)으로 구성된 몸체의 수학적 표현은 어렵지 않습니다. 그러나 매우 자주 이것은 사실이 아닙니다. 차체, 항공기 표면, 동체 등은 설명하기가 쉽지 않습니다. 이러한 경우에 일반적으로 사용되는 절차는 일반적으로 다음과 같습니다.

  • 표면은 두 개의 가상 선 그룹으로 덮여 있습니다. 첫 번째는 길이 방향으로 가고, 두 번째는 첫 번째에 횡방향입니다. 이 선 그리드는 셀 세트를 정의하며, 각 셀(매끄러운 표면의 경우)은 네 개의 부드러운 곡선으로 둘러싸여 있습니다.
  • 이 가상 그리드의 노드 좌표는 모델 또는 표면 횡단면 도면 세트에서 측정됩니다.
  • 보간(평균)의 도움으로 그리드를 형성하는 이 두 라인 그룹은 수학적으로 설명됩니다.

다항식을 사용하여 충분히 부드러운 곡선과 표면을 구성하는 것이 가능합니다. 표면을 함수 z = z(x, y)의 그래프로 표시하려고 한다고 가정해 보겠습니다. 이 표면의 선 y = const는 선 z = z(x)로 표시되며 점 (x 0 , z 0), ..., (x i , z i), ...의 시퀀스를 통과합니다. , (x n , z n) x 0< ... < x i < ... < x n . Наша цель — провести через эти точки составную кривую f(x), имеющую следующие свойства:

  • 각 부분 간격 x i-1에서<= x <= x i , i = 1, 2, ..., n функция f(x) является кубическим полиномом;
  • 1차 및 2차 도함수는 노드에서 연속적입니다.

결과적으로 부드러운 곡선을 3차 스플라인이라고 합니다. "스플라인"이라는 용어는 유추에 의해 생겨났습니다. 그리기 도구의 이름입니다. 지정된 점을 통과하도록 구부러질 수 있는 얇은 금속 자의 이름입니다. 물리적으로 이러한 곡선은 내부 응력의 에너지를 최소화합니다. 수학적으로 제곱평균제곱근 곡률이 가장 작습니다. 즉, 가장 부드럽습니다. 스플라인은 곡선 모양의 구성에 많은 응용 프로그램이 있습니다. 그러나 다음과 같은 몇 가지 제한 사항도 있습니다.

  • 로컬 변경은 전체 스플라인을 다시 계산하는 것을 수반합니다.
  • 2차 도함수에서 불연속성이 있는 직선을 근사할 때 문제가 발생할 수 있습니다(예: 직선과 원호의 켤레).
  • 스플라인을 사용하여 구성된 표면의 곡률이 때때로 고르지 않게 변경되어 왜곡(예: 차체에서 반사된 물체의 기이한 왜곡)으로 이어지기 때문에 미학적 관점에서 항상 허용되는 것은 아닙니다.

첫 번째 구속은 B-스플라인으로 제거할 수 있습니다. 이 경우 얻은 곡선의 일반적인 모양은 에 나와 있습니다.

이 그림에서 스플라인은 끝점 x i-4 , x i 에서 x축을 따라 직선으로 확장됩니다. 결과는 세그먼트 수에 관계없이 3차 스플라인이지만 그 중 4개에서만 0이 아닙니다. 이러한 함수를 4차(또는 3차)의 B-스플라인(또는 기본 스플라인)이라고 합니다. 그들은 최소한의 지원이 있다고 말합니다 (지원은 스플라인이 0이 아닌 세그먼트의 수입니다).

3차 B-스플라인은 그것이 정의된 노드 세트에 의해 완전히 정의되며 주어진 z 값에 의해서만 정의됩니다. 보다 일반적인 형태에서, 주어진 노드 세트에 대한 차수 m(또는 차수 m-1)의 B-스플라인 M mi(x)는 m개의 연속적인 세그먼트 x i-m을 제외하고 모든 곳에서 0입니다.< x < x i . Опять-таки M mi (x) определяется множеством узлов и одной величиной z. Принято исключать последнюю степень свободы и фиксировать амплитуду B-сплайна некоторым стандартным образом.

N mi(x) = (x i - x i-m)M mi(x) 관계에 의해 M mi(x)와 연관된 정규화된 B-스플라인 N mi(x)를 사용하여 계산하는 것이 종종 편리합니다.

노드 x 0 , x 1 , ..., x n 세트에서 차수가 m인 스플라인은 동일한 노드 세트에 정의된 B-스플라인의 선형 조합으로 표현될 수 있으며, 다음에서 (m - 1)개의 추가 노드로 확장됩니다. 임의로 선택할 수 있는 간격의 각 끝: x -m+1 , x -m+2 , ..., x -1 및 x n+1 , ..., x n+m-1 . 확장된 매듭 세트에 m + n - 1개의 연속 B-스플라인을 구성하는 것이 가능하며, 각 매듭은 m개의 연속 세그먼트에서 0이 아닙니다. 따라서 다음과 같이 작성할 수 있습니다.
j (x) = S c i * M mi (x),
여기서 j(x)는 원래 노드 집합의 차수(m - 1)인 스플라인이고 M mi(x)는 확장된 노드 집합의 B-스플라인이며 x i-m에 대해 0이 아닙니다.< x < x i ; c i суть числовые коэффициенты; суммирование ведется по i = 1, ..., m + n - 1.

벡터 r 0 , r 1 , ..., r n 의 집합이 있는 경우 다음과 같이 사용할 수 있습니다. r(u) = S r i * N 4, i+1 (u) (합산은 i = 0, ..., n). (n + 1) 벡터 계수가 있으므로 (n + 1) B-스플라인 세트가 필요합니다. 0에 대한 마지막 공식<= u <= n - 2 является уравнением кривой, образованной кубическими B-сплайнами.

속성

가장 간단한 속성 중 일부는 식별 S N 4, i+1 = 1, 0에서 따릅니다.<= u <= n - 2, i = 0..n. При u = 0 следует: r(0) = N 42 (0)(r 1 - r 0). Из этого следует, что если r 0 , r 1 , .., r n — вершины некоторой замкнутой ломанной, то кривая, построенная на основе B-сплайна, начинается в r 0 и ее касательная в этой точке имеет направление (r 1 - r 0). Аналогичное утверждение верно и для другого конца. Главное преимущество этого сплайна заключается в том, что изменение одной из вершин влечет за собой изменение только четырех отрезков кривой. Далее, мы также можем построить кривую, аппроксимирующую ломанную с любым желаемым числом сторон. Отрезок сплайна всегда лежит в выпуклой оболочке:

이 볼록 껍질의 중요한 결과는 직선으로 변질된다는 것입니다. 파선의 연속적인 4개의 정점이 동일선상에 있으면 곡선의 해당 세그먼트는 직선이어야 합니다.

2가지 유용한 사실이 더 있습니다.

  • 곡선은 첫 번째 점과 마지막 점을 제외하고 각 변의 중간점 근처를 통과합니다.
  • k = 2, ..., n - 2인 ​​경우 곡선은 다음 점을 통과합니다. 1/6r k-1 + 2/3r k + 1/6r k+1 = 2/3r k + 1/3(1/2 (r k-1 + rk+1))

이 점들은 에 표시된 대로 r k-1 과 r k+1 사이의 선분의 중점과 r k 를 연결하는 선에서 r k 로부터 거리의 1/3에 있습니다.

그리고 두 번째 아이디어가 떠오른 지 거의 1년이 되었습니다. 많은 상황(우선 게으름과 건망증)으로 인해 이 아이디어는 이전에 구현된 적이 없었지만 지금은 함께 모여 이 모든 자료를 작성했으며 귀하의 주의를 끌 준비가 되었습니다.

간단한 소개로 시작하겠습니다. 4학년 때 당시 학부과정에서 "컴퓨터 그래픽스" 과정을 공부했습니다. 다른 흥미로운(그렇지 않은) 작업이 많이 있었지만 한 가지 정말 내 영혼에 잠겼습니다. 간격 끝에 주어진 1차 도함수를 사용하여 3차 스플라인으로 보간하는 것입니다. 사용자는 1차 도함수의 값을 설정해야 했고 프로그램은 보간 곡선을 읽고 표시해야 했습니다. 작업의 특이성과 주요 어려움은 스플라인 보간의 고전적인 공식에서와 같이 지정된 첫 번째 도함수가 아니라 두 번째 도함수라는 사실에 있습니다.
이 문제를 해결한 방법과 결국에는 이 기사에서 간략하게 설명하겠습니다. 그리고 예, 작업 설명에 따라 그 의미나 복잡성을 이해하지 못했다면 걱정하지 마십시오. 이 모든 것을 공개하려고 노력할 것입니다. 가자.

아뇨, 잠시만요. 다음은 두 가지 숫자입니다.
a) 2, 4, 6, 8, ?
나) 1, 3, ? , 7, 9

질문 대신 어떤 숫자를 사용해야 하며 그 이유는 무엇입니까? 당신은 당신의 대답에 정말 확신합니까?

보간

보간, 보간(라틴어 인터 폴리스에서 - "부드러움, 갱신됨, 업데이트됨, 변환됨") - 계산 수학에서 알려진 값의 기존 이산 세트에서 양의 중간 값을 찾는 방법입니다. (c) 위키피디아

예를 들어 설명하겠습니다. 조건부로 특정 매개 변수의 "분포 법칙"(이것은 일반적으로 수학의 다른 영역의 용어이기 때문에 따옴표로 묶었습니다)을 몇 가지 방법으로 찾아야 할 때 작업이 있습니다. 알려진 값의. 가장 자주 우리는 움직이는 물체의 좌표, 물체의 온도, 환율 변동 등 시간의 특정 매개 변수의 변화에 ​​대해 이야기하고 있습니다. 동시에 어떤 상황 때문에 이 매개변수를 지속적으로 관찰할 기회가 없었고 특정 시점에서만 그 값을 찾을 수 있었습니다. 이 경우 다음 형식의 점 집합이 있습니다. 가치(시간), 그리고 문제의 목표는 이 점을 지나는 곡선을 복원하고 이 매개변수의 변화를 지속적으로 설명하는 것입니다.

관련 매개변수를 지속적으로 모니터링할 수 없는 것은 일반적으로 일종의 기술적 제한이라는 점을 이해해야 합니다. 기술의 발달로 그러한 상황은 점점 줄어들고 있습니다. 그러한 계획의 현대적인 작업은 예를 들어 로버의 이동 궤적입니다. (지금까지) 지속적인 소통은 아직 불가능하지만 그 움직임을 조절하고 아름다운 궤적을 그리고 싶다. 그럼에도 불구하고 연결이 설정되는 순간에만 특정 좌표를 찾을 수 있으며, 때때로 이렇게 얻은 점을 사용하여 전체 궤적을 복원해야 합니다.
보간을 사용하는 또 다른 방법입니다. 일부 최신 TV는 최대 >= 1000Hz의 화면 재생 빈도로 이미지를 표시합니다(여전히 금지된 값임). 대부분의 TV는 그렇게 할 수 없지만 그럼에도 불구하고 많은 TV가 100Hz의 주파수에서 그림을 표시합니다. 이 값은 이미 꽤 고전적입니다. 그리고 Wikipedia를 믿는다면 영화관에서 "초당 24 프레임은 글로벌 표준입니다." 원본 비디오 스트림의 초당 24프레임을 결과의 초당 100프레임으로 변환하기 위해 TV는 보간을 사용합니다. 즉, "인접한 두 프레임 1과 2를 가져와서 그 차이를 계산하고 그로부터 3개의 추가 프레임을 형성합니다. 이 두 프레임 사이에 밀어 넣어야 함" 스타일의 일부 알고리즘 -> 프레임 1을 얻습니다. 1_1 , 1_2 , 1_3 , 2

추가 추론을 위해 더 간단한 예를 들어 보겠습니다. 예를 들어, 6학년 때 지리학 연구실에서 일한다고 상상해 보십시오. 3시간마다 기온을 측정하여 기록하고, 시간별 온도 변화 그래프를 교사에게 전달해야 합니다. 측정 결과에 따라 다음 표가 있다고 가정합니다(데이터는 무작위로 생성되었으며 어떤 식으로든 그럴듯한 척하지 않음).

얻은 데이터를 그래프에 표시해 보겠습니다.

실제로 데이터는 기록되어 그래프에 반영됩니다. 보간 문제에 가까워졌습니다. 사용 가능한 점에서 부드러운 곡선을 복원하는 방법은 무엇입니까?

조건의 수 및 보간 다항식의 정도

주어진 모든 점을 연결하는 함수가 존재한다고 보장할 수 있습니까?

예, 그러한 기능은 반드시 존재하며, 더욱이 그러한 기능은 무한히 있을 것입니다. 포인트 세트에 대해 원하는 만큼 많은 기능을 생각해 낼 수 있으며 이를 통해 전달됩니다. 다음은 두 점을 서로 다른 방식으로 연결할 수 있는 몇 가지 예입니다.



그러나 보간 곡선을 명확하게 지정하는 방법도 있습니다. 가장 고전적인 경우 다항식은 보간 곡선으로 사용됩니다.

사용 가능한 점을 통해 이러한 다항식을 고유한 방식으로 그리려면 다항식의 차수가 숫자보다 1 작아야 하는 것이 필요하고 충분합니다. 정황(나는 이 섹션의 끝에서 이 공식으로 돌아갈 것이기 때문에 이 단어를 일부러 강조했습니다). 당분간은 편의상 점의 좌표를 조건으로 합니다. 인간의 언어로 말하면 2 점을 통해 직선 (1 차 다항식), 3 점-포물선 (2 차 다항식) 등을 그릴 수 있습니다.

온도에 대한 우리의 문제로 돌아가서 - 그것에서 우리는 6 포인트를 결정했습니다. 즉, 독특한 방식으로 다항식을 그리려면 5도이어야 함을 의미합니다.

보간 다항식은 다음과 같이 보일 것입니다.

$inline$-\frac(x^5)(14580)+\frac(13x^4)(1944)-\frac(41x^3)(162)+\frac(983x^2)(216)-\frac (2273x)(60)+117$인라인$

이제 중요한 말을 하고 내가 의미하는 바를 설명해야 합니다. "상태". 다항식은 통과하는 점의 좌표로 지정할 수 있을 뿐만 아니라 조건은 이 다항식의 모든 매개변수가 될 수 있습니다. 가장 간단한 경우에 이것은 실제로 점의 좌표입니다. 그러나 조건으로, 예를 들어 모든 점에서 이 다항식의 1차 도함수를 취할 수 있습니다. 이차 도함수. 3차 파생상품. 일반적으로 이 다항식이 존재하는 모든 지점에서 가능한 모든 도함수. 예를 들어 설명하겠습니다.
직선은 내가 말했듯이 두 가지 점으로 고유하게 정의될 수 있습니다.

반면에 같은 선은 한 점의 좌표와 수평에 대한 경사각 알파로 정의할 수 있습니다.

더 높은 차수의 다항식을 사용하면 더 복잡한 조건(2차 도함수, 3차 도함수 등)도 사용할 수 있으며 이러한 각 매개변수는 이 다항식을 고유하게 결정하는 조건 수의 총계에 포함됩니다. 근거가 없는 것은 아닙니다. 여기에 또 다른 예가 있습니다.

다음 세 가지 조건이 주어집니다.

세 가지 조건이 있습니다. 즉, 2차 다항식을 구하려는 것입니다.

대리자

우리는 1차 도함수를 고려하고 고려합니다.

우리는 이차 도함수를 고려하고 고려합니다

여기에서 우리는 다항식이 다음과 같이 보입니다.

3차 스플라인에 의한 보간

여기, 조용히, 우리는 내 임무에 접근하고 있습니다. 다항식 보간법이 유일하게 가능한 보간법은 아닙니다. 다른 모든 방법 중 3차 스플라인에 의한 보간 방법이 있습니다.

스플라인 보간 아이디어와 다항식 보간 간의 근본적인 차이점은 다항식이 하나이고 스플라인은 여러 다항식으로 구성됩니다. 즉, 그 수는 우리가 보간하는 간격의 수와 같습니다. 6개의 포인트가 정의된 대기 온도의 예에서는 5개의 구간이 있습니다. 따라서 각각 고유한 구간에 대해 5개의 다항식이 있습니다.

이 다항식 각각은 3차 다항식입니다(엄밀히 말해서 차수는 3차보다 높지 않습니다. 일부 구간에서는 보간 곡선이 2차 포물선 또는 선형 함수가 될 수 있기 때문입니다. 그러나 일반적인 경우에는 여전히 3차 다항식임) . 위의 공식을 공식적으로 쓰면 모든 점이 특정 곡선으로 연결된다는 것을 알 수 있습니다. 여기서 각각은 3차 다항식입니다. 즉,

앞 문단으로 돌아가서 하나의 3차 다항식을 고유하게 지정하려면 4가지 조건이 필요합니다. 이 문제에는 5개의 다항식이 있습니다. 즉, 모두 설정하려면 총 5∙4=20 조건이 필요합니다. 결과는 다음과 같습니다.

1) 첫 번째 다항식은 첫 번째 점과 두 번째 점에서 정의됩니다. 이 두 가지 조건이 있습니다. 두 번째 다항식은 두 번째 및 세 번째 점에 대해 정의됩니다. 두 가지 조건이 더 있습니다. 세 번째 다항식, 네 번째, 다섯 번째 - 각각은 2개의 점에서 정의되며 총 10개의 조건을 제공합니다.

2) 집합의 각 중간점(12:00, 15:00, 18:00, 21:00 시간의 4개 점)에 대해 왼쪽 및 오른쪽 다항식이 일치해야 합니다. 공식:

각 중간 지점에 대한 두 가지 조건은 8가지 조건을 더 제공합니다. 우리는 평등 자체의 사실만을 명시해야 하며, 이 경우 그들이 취하는 구체적인 의미는 완전히 다른 작업이며 상당히 어려운 것으로 간주됩니다.

3) 아직 결정되지 않은 두 가지 조건이 있습니다. 이것은 소위 "경계 조건"이며, 그 작업은 어떤 특정 스플라인이 나올지 결정합니다. 일반적으로 구간 끝의 2차 도함수는 0으로 설정됩니다.

이렇게 하면 소위 "자연 스플라인"이 생깁니다. 이러한 스플라인을 계산하기 위해 이미 많은 수의 라이브러리가 작성되어 사용하고 있습니다.

내 작업과 문제의 고전적 공식화 사이의 차이점, 작업에 대한 내 성찰 및 솔루션 자체

그리고 여기에서 우리는 내 임무의 조건에 도달했습니다. 교사는 1차 도함수가 구간의 왼쪽과 오른쪽 끝에 모두 설정되어야 하고 프로그램에서 보간 곡선을 계산해야 하는 작업을 생각해 냈습니다. 그리고 그러한 요구 사항에 대해 기성품 알고리즘을 찾지 못했습니다 ...
물론 과제를 들은 순간부터 합격하는 순간까지의 전체 "창의적인" 경로를 설명하지는 않겠습니다. 나는 아이디어 자체만을 말하고 구현을 보여줄 것입니다.

작업의 복잡성은 간격의 끝에서 1차 도함수를 설정하여 예, 이 스플라인을 설정한다는 것입니다. 이론에 의하면. 그러나 실제로 계산하는 것은 다소 복잡하고 완전히 명확하지 않은 작업입니다(원하는 사람은 Wiki - ru.wikipedia.org/wiki/Cubic_spline -에서 자연 스플라인을 찾는 코드를 보고 최소한 이해하려고 노력할 수 있습니다. ). 물론, 나는 마탄을 파고 내가 필요한 공식을 도출하는 데 많은 시간을 보내고 싶지 않았습니다. 더 간단하고 우아한 솔루션을 원했습니다. 그리고 찾았습니다.
스플라인을 고려하고 첫 번째 간격을 취하십시오. 이 간격에는 이미 3가지 조건이 설정되어 있습니다.

사용자 정의

이 구간에서 3차 다항식을 고유하게 지정하려면 조건이 하나만 더 필요합니다. 하지만 우리는 그것을 발명할 수 있습니다! 2차 도함수를 취하여 예를 들어 0과 같게 설정합니다.

근거 없는 가정

따라서 이 4가지 조건을 알면 이 다항식을 완전히 결정합니다. 이 다항식의 모든 매개변수를 알면 두 번째 점에서 1차 및 2차 도함수의 값을 계산할 수 있으며 두 번째 간격에서 다항식에 대한 1차 및 2차 도함수의 값과 동일하기 때문에 , 이것은 우리가 두 번째 다항식도 결정한다는 사실로 이어집니다.

에서 계산

에서 계산

유사하게, 우리는 세 번째 다항식, 네 번째, 다섯 번째 등의 개수에 상관없이 계산합니다. 즉, 실제로 전체 스플라인을 다시 만듭니다. 그러나 우리는 그것을 완전히 무작위로 취했기 때문에 스플라인의 오른쪽 끝에서 사용자가 제공한 도함수가 이러한 계산 과정에서 얻은 도함수와 일치하지 않는다는 사실로 이어질 것입니다. 그러나 스플라인의 오른쪽 끝에 있는 도함수의 값은 왼쪽 끝에 있는 2차 도함수의 값에 따라 달라지는 함수임이 밝혀졌습니다.

그리고 주어진 조건을 만족하는 이러한 스플라인은 존재하는 것이 보장되고 단일 인스턴스에 존재하므로 차이점을 고려할 수 있음을 의미합니다.

그리고 0으로 변하는 값을 찾으십시오. 그러면 이것은 동일할 것입니다. 옳은사용자가 검색한 스플라인을 빌드하는 값:

내 아이디어에서 가장 놀라운 점은 이 종속성이 선형으로 밝혀졌다는 것입니다(스플라인을 그리는 점의 수에 관계없이 이 사실은 이론적인 계산에 의해 입증됨). 즉, 임의의 두 초기 값을 취할 수 있음을 의미합니다 ​​\u200b\u200band , 및 계산하고 원하는 스플라인이 구축할 매우 정확한 값을 즉시 계산합니다.

전체적으로 이러한 계산을 3번 실행하여 원하는 스플라인을 찾을 수 있습니다.

프로그램의 일부 코드 및 스크린샷

class CPoint ( public int X ( get; ) public int Y ( get; ) public double Df ( get; set; ) public double Ddf ( get; set; ) public CPoint (int x, int y) ( X = x; Y = y; ) )

클래스 CSplineSubinterval ( public double A ( get; ) public double B ( get; ) public double C ( get; ) public double D ( get; ) 개인 읽기 전용 CPoint _p1; 개인 읽기 전용 CPoint _p2; 공용 CSplineSubinterval(CPoint p1, CPoint p2, 이중 df, 이중 ddf) ( _p1 = p1, _p2 = p2, B = ddf, C = df, D = p1.Y, A = (_p2.Y - B * Math.Pow(_p2.X - _p1.X, 2) - C * (_p2.X - _p1.X) - D) / Math.Pow(_p2.X - _p1.X, 3); ) public double F(int x) ( return A * Math.Pow(x) - _p1.X, 3) + B * Math.Pow(x - _p1.X, 2) + C * (x - _p1.X) + D; ) public double Df(int x) ( return 3 * A * Math .Pow(x - _p1.X, 2) + 2 * B * (x - _p1.X) + C; ) public double Ddf(int x) ( return 6 * A * (x - _p1.X) + 2 * 나; ) )

클래스 CSpline( 개인 읽기 전용 CPoint _points, 개인 읽기 전용 CSplineSubinterval _splines, 공용 이중 Df1( get( return _points.Df; ) set( _points.Df = 값; ) ) 공용 이중 Ddf1( get( return _points.Ddf; ) set( _points 반환) .Ddf = 값; ) ) 공용 이중 Dfn( get( return _points[_points.Length - 1].Df; ) 세트( _points[_points.Length - 1].Df = 값; ) ) 공용 이중 Ddfn( get( return _points[_points.Length - 1].Ddf; ) set ( _points[_points.Length - 1].Ddf = 값; ) ) public CSpline(CPoint 포인트) ( _points = 포인트; _splines = new CSplineSubinterval; ) public void GenerateSplines( ) ( const double x1 = 0, var y1 = BuildSplines(x1), const double x2 = 10, var y2 = BuildSplines(x2), _points.Ddf = -y1 * (x2 - x1) / (y2 - y1), BuildSplines (_points.Ddf); _points[_points.Length - 1].Ddf = _splines[_splines.Length - 1].Ddf(_points[_points.Length - 1].X); ) private double BuildSplines(double ddf1) ( double df = _points.Df, ddf = ddf1; (변수 i = 0; 나< _splines.Length; i++) { _splines[i] = new CSplineSubinterval(_points[i], _points, df, ddf); df = _splines[i].Df(_points.X); ddf = _splines[i].Ddf(_points.X); if (i < _splines.Length - 1) { _points.Df = df; _points.Ddf = ddf; } } return df - Dfn; } }



파란색 세그먼트는 해당 지점에서 스플라인의 1차 도함수입니다. 명확성을 위해 이러한 그래픽 요소를 추가했습니다.

알고리즘의 장점과 단점

솔직히 진지한 분석은 하지 않았다. 좋은 방법으로 테스트를 작성하고 다른 조건(몇 개/많은 보간 포인트, 포인트 간 동일/임의, 선형/사각형/3차형/삼각 함수 등)에서 작동하는 방식을 확인하는 것이 가치가 있지만, 하지 않았습니다, 죄송합니다:)

간단히 말해서 알고리즘의 복잡성은 O(N)이라고 말할 수 있습니다. 왜냐하면 제가 말했듯이 점의 수에 관계없이 두 번의 계산 실행으로 왼쪽 끝에서 2차 도함수의 정확한 값을 얻기에 충분하기 때문입니다. 간격, 그리고 스플라인을 만들기 위한 하나 더 .

그러나 누군가가 코드를 파헤치고 이 알고리즘에 대해 좀 더 자세한 분석을 수행하기를 원하면 나는 그저 기쁠 것입니다. 결과에 대해 제외하고 나에게 편지를 쓰십시오. 나는 관심을 가질 것입니다.

그렇다면 IQ 테스트의 문제점은 무엇입니까?

기사의 맨 처음에 나는 두 개의 시리즈를 작성하고 계속하도록 요청했습니다. 이것은 모든 IQ 테스트에서 상당히 일반적인 질문입니다. 원칙적으로 질문은 질문과 같지만 조금 더 깊이 파고들면 다소 망상이라는 것이 밝혀집니다. 왜냐하면 어떤 욕망으로 그것에 대한 "정확한"답이 없다는 것을 증명할 수 있기 때문입니다.

먼저 "2, 4, 6, 8,?" 시리즈를 고려하십시오.
이 숫자 시리즈를 값 쌍의 집합으로 상상해 보십시오.

우리가 숫자 자체를 취하고이 숫자의 서수를 취하는 곳. 어떤 가치가 있어야 합니까?

내가 순조롭게 가져오려고 하는 아이디어는 우리가 절대적으로 어떤 가치도 대체할 수 있다는 것입니다. 결국 그러한 작업은 실제로 무엇을 확인합니까? 사용 가능한 모든 숫자를 연결하는 특정 규칙을 찾고 이 규칙에 따라 순서에서 다음 숫자를 추론하는 사람의 능력. 과학적 용어로, 여기에 외삽 작업이 있습니다(보간 작업은 특정 간격 내의 모든 점을 통과하는 곡선을 찾는 것이며 외삽 작업은 간격을 넘어 이 곡선을 계속하여 다음 동작을 "예측"하는 것입니다. 미래의 곡선). 따라서 외삽에는 고유한 솔루션이 없습니다. 일반적으로. 절대. 그렇지 않았다면 사람들은 오래 전에 인류의 전체 역사에 대한 일기 예보를 예측했을 것이고 루블 환율의 변동은 결코 놀라운 일이 아니었을 것입니다.

물론 이 문제에는 여전히 정답이 있다고 가정하고 10과 같으며 이 모든 숫자를 연결하는 "법칙"은 레이블 추가









































실제 문제에서 직면하는 곡선과 표면은 종종 다소 복잡한 모양을 가지므로 기본 기능의 도움으로 전체적으로 보편적인 분석 사양을 허용하지 않습니다. 따라서 세그먼트(곡선) 또는 컷(표면)과 같은 비교적 단순한 매끄러운 조각으로 조립되며, 각각은 하나 또는 두 개의 변수의 기본 기능을 사용하여 매우 만족스럽게 설명될 수 있습니다. 동시에, 부분 곡선 또는 표면을 구성하는 데 사용되는 부드러운 함수가 유사한 특성을 갖는 것을 요구하는 것은 매우 자연스러운 일입니다. 예를 들어, 동일한 차수가 다항식이어야 합니다. 그리고 결과 곡선이나 표면이 충분히 매끄럽기 위해서는 해당 파편의 접합부에 특히주의해야합니다. 다항식의 차수는 단순한 기하학적 고려 사항에서 선택되며 일반적으로 작습니다. 전체 복합 곡선을 따라 접선을 부드럽게 변경하려면 3차 다항식인 3차 다항식을 사용하여 결합 곡선을 설명하는 것으로 충분합니다. 이러한 다항식의 계수는 해당 합성 곡선의 곡률이 연속적이도록 항상 선택될 수 있습니다. 1차원 문제를 해결할 때 발생하는 3차 스플라인은 복합 표면의 조각 모양에 적용할 수 있습니다. 그리고 여기에는 두 변수 각각에서 3차 다항식으로 설명되는 쌍삼차 스플라인이 나타납니다. 이러한 스플라인으로 작업하려면 훨씬 더 많은 계산이 필요합니다. 그러나 적절하게 조직된 프로세스를 통해 컴퓨터 기술의 지속적으로 성장하는 기능을 최대한 고려할 수 있습니다. Spline functions Let on the segment , 즉, Remark. 숫자^의 인덱스(t)는 그것을 나타냅니다. 함수 S(x)가 각 부분 세그먼트 D에 대해 결정되는 계수 세트는 고유한 계수 세트입니다. 각 세그먼트 D1에서 스플라인 5(x)는 차수 p의 다항식이며 이 세그먼트에서 p + 1 계수로 결정됩니다. 전체 부분 세그먼트 - 그러면. 따라서 스플라인을 완전히 결정하려면 (p + 1) 다음 숫자를 찾아야 합니다. 조건)은 모든 내부 그리드 노드 w에서 함수 S(x)와 그 도함수의 연속성을 의미합니다. 이러한 노드의 수는 m - 1입니다. 따라서 모든 다항식의 계수를 찾기 위해 p(m - 1) 조건(방정식)을 얻습니다. 스플라인의 완전한 정의에는 충분하지 않습니다(조건(방정식). 추가 조건의 선택은 고려 중인 문제의 특성에 따라 결정되며 때로는 단순히 사용자의 요구에 따라 결정됩니다. 스플라인 이론 솔루션의 예 가장 자주 보간 및 평활화 문제는 평면의 주어진 점 배열에서 하나 또는 다른 스플라인을 작성해야 할 때 고려됩니다. 보간 문제에서 스플라인 그래프는 점을 통과해야 합니다. 계수에 m + 1개의 추가 조건(방정식)을 부과합니다. 스플라인의 고유한 구성을 위한 나머지 p-1 조건(방정식)은 고려 중인 세그먼트의 끝에서 스플라인의 하위 도함수 값의 형태로 가장 자주 설정됩니다 [a, 6]-경계( 경계) 조건. 다양한 경계 조건을 선택하는 기능을 통해 다양한 속성을 가진 스플라인을 만들 수 있습니다. 평활화 문제에서 스플라인은 그래프가 점(i "" Y "), * = 0, 1, ..., m 근처를 통과하지 않고 통과하도록 작성됩니다. 이 친밀도의 측정은 다양한 방식으로 정의할 수 있으며, 이는 스플라인을 부드럽게 하는 데 매우 다양합니다. 스플라인 기능을 구성할 때 선택하기 위해 설명된 옵션은 다양성을 소진하지 않습니다. 그리고 처음에는 조각별 다항식 스플라인 함수만 고려했다면 적용 범위가 확장됨에 따라 다른 기본 함수에서도 "접착"된 스플라인이 나타나기 시작했습니다. 보간 3차 스플라인 보간 문제에 대한 설명 [a, 6) 간격 [a, 6)에 대해 그리드 w가 주어집니다. 문제. 세그먼트(a, 6]에서 매끄럽고 그리드 o의 노드에서 주어진 값을 취하는 함수를 구성하십시오. 즉 "구성 중인 함수에 추가 조건을 부과함으로써 필요한 고유성을 달성할 수 있습니다. 응용 프로그램에서는 충분히 좋은 특성을 가진 함수를 사용하여 분석적으로 주어진 함수를 근사하는 것이 종종 필요합니다. 예를 들어, 점에서 주어진 함수 f(x) 값의 계산이 [a, 6] 상당한 어려움과 관련되거나 주어진 기능 /(x)에 필요한 평활도가 없는 경우 주어진 기능에 충분히 근사하고 단점이 없는 다른 기능을 사용하는 것이 편리합니다. [a, 6] 주어진 함수와 그리드 노드 w에서 일치하는 부드러운 함수 a(x) /(X). 보간 3차 스플라인의 정의 메쉬 w의 보간 3차 스플라인 S(x)는 1) 각 세그먼트에서 3차 다항식이 있고 2) 세그먼트 [a, b ], 즉, 클래스 C2[ a, 6]에 속하며, 3) 조건을 만족합니다. 각 세그먼트에서 스플라인 S(x)는 차수가 3인 다항식이며 이 세그먼트에서 4개의 계수로 결정됩니다. 세그먼트의 총 개수는 m입니다. 즉, 스플라인을 완전히 정의하려면 4m개의 숫자를 찾아야 합니다. 조건은 함수 S(x)와 그 파생물 S "(x) 및 5"의 연속성을 의미합니다. (x) 모든 내부 그리드 노드에서 w. 이러한 노드의 수는 m - 1입니다. 따라서 모든 다항식의 계수를 찾기 위해 3(m - 1) 더 많은 조건(방정식)을 얻습니다. 조건(2)과 함께 조건(방정식)이 얻어진다. 경계(경계) 조건 두 개의 결측 조건은 구간 [a, 6]의 끝에서 스플라인 및/또는 그 미분 값에 대한 제한으로 지정됩니다. 보간 3차 스플라인을 구성할 때 다음 4가지 유형의 경계 조건이 가장 많이 사용됩니다. 가. 제1종 경계조건. -구간 [a, b]의 끝에서 원하는 함수의 1차 도함수 값이 제공됩니다. B. 두 번째 유형의 경계 조건. -구간 (a, 6)의 끝에서 원하는 함수의 2차 도함수 값이 설정됩니다. B. 제3유형의 경계조건. 주기적이라고 합니다. 보간된 함수가 주기 T = b-a로 주기적인 경우 이러한 조건을 충족해야 하는 것은 당연합니다. D. 네 번째 유형의 경계 조건. 특별한 코멘트가 필요합니다. 논평. 내부 패혈증 노드에서 함수 S(x)의 3차 도함수는 일반적으로 불연속적입니다. 그러나 3차 도함수의 불연속성 수는 4차 유형의 조건을 사용하여 줄일 수 있습니다. 이 경우, 구성된 스플라인은 간격에 따라 연속적으로 3번 미분 가능합니다.보간 3차 스플라인의 구성 결정해야 할 양이 동일한 3차 스플라인의 계수를 계산하는 방법을 설명합니다. 각 간격에서 보간 스플라인 함수는 다음 형식으로 구합니다. 1차 및 2차 유형의 경계 조건에 대해 이 시스템은 계수가 경계 조건의 선택에 따라 달라지는 다음과 같은 형식을 갖습니다. 1종 경계조건 : 2종 경계조건 : 3종 경계조건의 경우 수를 결정하는 체계는 다음과 같이 작성한다. 네 번째 유형의 경계 조건에 대해 숫자를 결정하는 시스템은 다음 형식을 갖습니다. 세 가지 선형 대수 시스템의 행렬은 모두 대각 우세가 있는 행렬입니다. 이러한 행렬은 퇴화되지 않으므로 이러한 각 시스템에는 고유한 솔루션이 있습니다. 정리. 조건 (2)와 나열된 4가지 유형 중 하나의 경계 조건을 만족하는 보간 3차 스플라인이 존재하며 고유합니다. 따라서 보간 3차 스플라인을 구성한다는 것은 그 계수를 구하는 것을 의미하며, 스플라인의 계수를 구하면 선분 [a, b]의 임의의 점에서 스플라인 S(x)의 값은 다음 공식을 사용하여 찾을 수 있습니다. 삼). 그러나 실제 계산을 위해서는 S(x)의 양을 찾는 다음 알고리즘이 더 적합합니다. x 6 [x", 먼저 공식에 따라 값 A와 B를 계산한 다음 값 5(x)를 찾습니다. 이 알고리즘을 사용하면 Advice에 대한 값을 결정하기 위한 계산 비용이 크게 줄어듭니다. 사용자 경계(경계) 조건 및 보간 노드를 선택하면 보간 스플라인의 속성을 어느 정도 제어할 수 있습니다. A. 경계(경계) 조건의 선택. 경계 조건의 선택은 함수 보간에서 핵심적인 문제 중 하나입니다. 세그먼트 [a, 6]의 끝 근처에 있는 스플라인 5(g)에 의한 함수 f(x) 근사의 높은 정확도를 보장해야 하는 경우에 특히 중요합니다. 경계 값은 점과 b 근처의 스플라인 5(x) 거동에 눈에 띄는 영향을 미치며, 이 효과는 점에서 멀어질수록 급격히 약해집니다. 경계 조건의 선택은 근사화되는 함수 f(x)의 동작에 대한 추가 정보의 가용성에 의해 결정되는 경우가 많습니다. 1차 도함수 f "(x)의 값이 세그먼트(a, 6)의 끝에서 알려지면 첫 번째 유형의 경계 조건을 사용하는 것이 당연합니다. 두 번째 값이 도함수 f "(x)가 세그먼트 [a, 6]의 끝에서 알려지면 두 번째 유형의 자연 사용 경계 조건입니다. 1종과 2종 경계조건 중에서 선택이 가능하다면 1종 조건을 우선으로 한다. f(x)가 주기적 함수라면 우리는 3번째 유형의 경계 조건에서 멈춰야 합니다. 근사하는 함수의 거동에 대한 추가 정보가 없는 경우 소위 자연 경계 조건이 자주 사용되지만 이러한 경계 조건의 선택으로 함수 f를 근사하는 정확도가 (x) 선분 (a, ft) 끝 근처의 스플라인 S (x)에 의해 급격히 감소합니다. 때때로 1st 또는 2nd 유형의 경계 조건이 사용되지만 해당 도함수의 정확한 값이 아닌 경우, 그러나 근사치의 차이가 있습니다. 이 접근 방식의 정확도는 낮습니다. 실제 계산 경험에 따르면 고려 중인 상황에서 가장 적절한 선택은 4번째 유형의 경계 조건입니다. B. 보간 노드의 선택. 함수의 3차 도함수 f""(x)가 세그먼트 [a, b]의 일부 지점에서 불연속성을 겪는 경우 근사 품질을 향상시키기 위해 이러한 지점을 보간 노드 수에 포함해야 합니다. 2차 도함수 /"(x)가 불연속인 경우, 불연속점 근처에서 스플라인의 진동을 피하기 위해 특별한 조치를 취해야 합니다. 일반적으로 보간 노드는 2차 도함수의 불연속점이 내부에 들어가도록 선택됩니다. 구간 \xif), 는 수치 실험으로 선택할 수 있습니다(종종 a = 0.01로 설정하는 것으로 충분함). 1차 도함수 f "(x)가 끊어진. 가장 간단한 것 중 하나로 우리는 다음을 제안할 수 있습니다. 근사 세그먼트를 도함수가 연속적인 구간으로 나누고 각 구간에 스플라인을 만듭니다. 보간 기능 선택(플러스, 마이너스) 1번으로 접근합니다. 라그랑주 보간 다항식 주어진 배열에 따르면 SPLINE THEORY 솔루션 예(그림 3) 라그랑주 보간 다항식은 공식에 의해 결정됩니다. 라그랑주 보간 다항식의 특성을 두 개의 반대 위치에서 고려하는 것이 좋습니다 단점. 첫 번째 접근법의 주요 장점: 1) 라그랑주 보간 다항식의 그래프가 배열의 각 점을 통과함, 2) 구성된 함수가 쉽게 설명됨(결정할 그리드 u 상의 라그랑주 보간 다항식의 계수 수 m + 1)과 같음, 3) 구성된 함수가 임의 차수의 연속 도함수를 가짐, 4) 배열이 주어지면 보간 다항식이 고유하게 결정됩니다. 첫 번째 접근법의 주요 단점: 1) 라그랑주 보간 다항식의 정도는 그리드 노드의 수에 따라 달라지며, 이 숫자가 클수록 보간 다항식의 정도가 높아져 더 많은 계산이 필요합니다. 2 ) 배열에서 적어도 하나의 점을 변경하려면 라그랑주 보간 다항식의 계수를 완전히 재계산해야 합니다. 3) 배열에 새 점을 추가하면 라그랑주 보간 다항식의 차수가 1 증가하고 심지어 해당 계수가 완전히 재계산됩니다. , 4) 무제한 메쉬 미세 조정으로 Lagrange 보간 다항식의 정도가 무한정 증가합니다. 무제한 메쉬 미세 조정에서 라그랑주 보간 다항식의 동작은 일반적으로 특별한 주의가 필요합니다. 주석 A. 다항식에 의한 연속 함수의 근사. 간격에 대한 연속(그리고 훨씬 더 부드러운) 함수는 다항식으로 이 간격에 대해 원하는 만큼 근사할 수 있다는 것이 알려져 있습니다(Weierstrass, 1885). 우리는 공식 언어로 이 사실을 설명합니다. f(x)를 세그먼트 [a, 6]에서 연속적인 함수라고 합시다. 그런 다음 임의의 e > 0에 대해 구간 [a, 6]의 임의 x에 대해 부등식이 충족될 것인 다항식 Рn(x)가 있습니다(그림 4). 무한히 많습니다. 세그먼트 [a, 6]에서 그리드 w를 구성합니다. 일반적으로 노드가 다항식 Pn(x) 및 함수 f(x) 그래프의 교차점과 일치하지 않음이 분명합니다(그림 5). 따라서 취한 그리드의 경우 다항식 Pn(x)는 보간 다항식이 아닙니다. 연속 함수가 Jla-grajj 보간 다항식에 의해 근사화될 때, 그 그래프는 세그먼트 [a, b)의 모든 점에서 함수 f(x)의 그래프에 가까울 필요는 없을 뿐만 아니라 이 기능을 원하는 만큼. 두 가지 예를 들어보겠습니다. 예 1(Rung, 1901). 구간 [-1, 1]에서 함수에 대한 노드 수의 무제한 증가로 극한 평등이 충족됩니다(그림 6) 예제 2(Berichtein, 1912). 연속 함수 /(x) = |x|에 대해 균일한 그리드 nm에서 구성된 일련의 라그랑주 보간 다항식 노드 수가 증가하는 세그먼트에서 m은 함수 f(x)를 나타내지 않습니다(그림 7). 접근 2. 조각별 선형 보간 보간된 함수의 평활도를 포기하면 장점 개수와 단점 개수의 비율이 전자의 방향으로 눈에 띄게 바뀔 수 있습니다. 점(xit y,)을 직선 세그먼트로 연속적으로 연결하여 조각별 선형 함수를 구성해 보겠습니다(그림 8). 두 번째 접근 방식의 주요 이점: 1) 조각별 선형 함수의 그래프가 배열의 각 점을 통과하고, 2) 구성된 함수를 쉽게 설명할 수 있습니다(해당 선형 함수의 계수 수가 그리드에 대해 결정됨 1) 2m), 3) 구성된 함수가 주어진 배열에 의해 명확하게 정의됨, 4) 보간 함수를 설명하는 데 사용되는 다항식의 차수가 그리드 노드의 수(1과 같음), 5) 하나를 변경하는 것 배열의 점은 4개의 숫자(새 점에서 나오는 두 직선 링크의 계수)의 계산을 필요로 합니다. 6) 배열에 추가 점을 추가하려면 4개의 계수를 계산해야 합니다. 조각별 선형 함수는 그리드를 세분화할 때 매우 잘 작동합니다. i 두 번째 접근 방식의 주요 단점은 근사하는 조각별 선형 함수가 매끄럽지 않다는 것입니다. 첫 번째 도함수는 그리드 노드(보간 귀)에서 불연속성을 겪습니다. 접근 3. 스플라인 보간 제안된 접근 방식을 결합하여 두 접근 방식의 나열된 장점을 유지하면서 단점의 수를 줄일 수 있습니다. 이것은 차수가 p인 부드러운 보간 스플라인 함수를 구성하여 수행할 수 있습니다. 세 번째 접근 방식의 주요 이점: 1) 구성된 함수의 그래프가 배열의 각 점을 통과함, 2) 구성된 함수가 상대적으로 설명하기 쉽습니다(그리드에 대해 결정될 해당 다항식의 계수 수( 1) 3) 구성된 함수가 주어진 배열에 의해 고유하게 결정됨, 4) 차수 다항식이 그리드 노드의 수에 의존하지 않으므로 증가함에 따라 변경되지 않음, 5) 구성된 함수가 연속 도함수를 가짐 p - 1 차수까지, 6) 생성된 함수는 근사 속성이 좋습니다. 간략한 참조. 제안된 이름인 spline은 우연이 아닙니다. 우리가 도입한 부드러운 조각별 다항식 함수와 스플라인 그리기는 밀접하게 관련되어 있습니다. (x, y) 평면에 위치한 배열의 기준점을 통과하는 유연하고 이상적으로 얇은 자를 고려하십시오. Bernoulli-Euler 법칙에 따르면 곡선 자의 선형 방정식은 다음과 같습니다. 눈금자를 설명하는 함수 S(x)는 배열(지지대)의 각 점과 두 개의 인접 점 사이의 3차 다항식이며 전체 간격(a, 6)에서 연속적으로 두 번 미분할 수 있습니다. 논평. 06 연속함수의 보간 라그랑주 보간 다항식과 달리 균일한 격자에 있는 일련의 보간 3차 스플라인은 항상 보간된 연속함수로 수렴하며, 이 함수의 미분 속성이 향상됨에 따라 수렴율이 증가합니다. 예시. 함수의 경우 노드 수 m = 6인 그리드의 3차 스플라인은 보간 다항식 Ls(z)와 동일한 차수의 근사 오차를 제공하고 노드 수 m = 21인 그리드에서 이 오차는 는 너무 작아서 일반 책 그림의 규모에서는 단순히 표시될 수 없습니다(그림 10)(보간 다항식 1>2o(r)은 이 경우 약 10,000W의 오류를 나타냄). 보간된 3차 스플라인의 속성 A. 3차 스플라인의 근사 속성. 보간 스플라인의 근사 속성은 함수 f(x)의 부드러움에 따라 달라집니다. 보간된 함수의 부드러움이 높을수록 근사 차수가 높아지고 그리드가 미세해질수록 수렴율이 높아집니다. 보간된 함수 f(x)가 구간에서 연속적인 경우 보간된 함수 f(x)가 구간 [a, 6]에서 연속적인 1차 도함수, 즉 1st 또는 세 번째 유형, 그러면 h에 대해 다음을 수행합니다. 이 경우 스플라인이 보간된 함수로 수렴할 뿐만 아니라 스플라인의 도함수도 이 함수의 도함수로 수렴됩니다. 스플라인 S(x)가 세그먼트 [a, b]에서 함수 f(x)를 근사하고 그 1차 도함수와 2차 도함수가 각각 함수 B를 근사한다면 3차 스플라인의 극단 속성. 보간 3차 스플라인에는 또 다른 유용한 속성이 있습니다. 다음 예를 고려하십시오. 예시. 함수에 극한값(최소값)을 전달하는 경계 조건을 충족하는 그래프가 배열 x)의 점을 통과하는 공간 C2에서 함수 클래스에 대한 함수를 최소화하는 함수 /(x)를 구성합니다. 비고 2. 보간 3차 스플라인은 매우 광범위한 함수 클래스, 즉 클래스 |0,5]에 대해 위에서 설명한 극한 속성을 갖는다는 점에 주목하는 것이 흥미롭습니다. 1.2. 3차 스플라인 평활화 평활화 문제의 공식화에 대해 그리드와 일련의 숫자가 주어집니다. 실제로 이것은 각각에 대해 간격이 지정되고 이 간격의 임의의 숫자를 y, 의 값으로 사용할 수 있음을 의미합니다. 예를 들어 임의의 오류가 포함된 변수 x의 주어진 값에 대한 일부 함수 y(x)의 측정 결과로 y 값을 해석하는 것이 편리합니다. 이러한 "실험적" 값에서 함수를 복원하는 문제를 해결할 때 보간 기능을 사용하는 것은 거의 권장되지 않습니다. 보간 기능은 배열(y,)의 임의 구성 요소로 인해 발생하는 기이한 진동을 순순히 재현하기 때문입니다. 보다 자연스러운 접근 방식은 측정 결과의 임의성 요소를 어떻게든 줄이도록 설계된 평활화 절차를 기반으로 합니다. 일반적으로 이러한 문제에서는 x = x, * = 0, 1, .... m에 대한 값이 해당 간격에 속하고 추가로 충분히 좋은 특성을 갖는 함수를 찾아야 합니다. 예를 들어, 연속적인 1차 및 2차 도함수가 있거나 그래프가 너무 강하게 구부러지지 않습니다. 즉, 강한 진동이 없습니다. 이러한 종류의 문제는 주어진 (정확한) 배열에 따라 지정되지 않은 점을 통과하지만 그 근처에 있고 더욱이 매우 매끄럽게 변경되는 함수를 구성해야 할 때 발생합니다. 즉, 원하는 함수가 주어진 배열을 그대로 평활화하고 보간하지 않았습니다. 그리드 w와 두 세트의 숫자가 주어졌다고 하자 SPLINE THEORY 솔루션의 예 문제. 그리드의 노드에서 값이 주어지고 주어진 값만큼 숫자 y와 다른 세그먼트 [a, A]에 부드러운 함수를 구성합니다. 공식화 된 평활화 문제는회복 테이블에 주어진 부드러운 함수. 그러한 문제에는 다양한 솔루션이 있음이 분명합니다. 구성된 기능에 추가적인 조건을 부여함으로써 필요한 고유성을 달성할 수 있습니다. 평활 3차 스플라인의 정의 메쉬 w의 평활 3차 스플라인 S(x)는 1) 각 선분에서 3차 다항식이고 2) 선분 [a, 6 ] 즉, 클래스 C2 [a , b]에 속하며, 3) 주어진 숫자가 있는 기능에 최소값을 전달하고, 4) 아래 표시된 세 가지 유형 중 하나의 경계 조건을 만족합니다. 경계(경계) 조건 경계 조건은 메쉬 w의 경계 노드에서 스플라인 및 그 미분 값에 대한 제약 조건으로 지정됩니다. 가. 제1종 경계조건. -구간 [a, b)의 끝에서 원하는 함수의 1차 도함수 값이 제공됩니다. 두 번째 유형의 경계 조건. -구간 (a, b]의 끝에서 원하는 함수의 이차 도함수는 0과 같습니다. C. 세 번째 유형의 경계 조건을 주기적이라고 합니다. 정리. 큐빅 스플라인 S(x), 기능(4)을 최소화 ) 및 표시된 세 가지 유형 중 하나의 경계 조건을 만족하는 것은 고유하게 정의됩니다. 정의 기능 J(f)를 최소화하고 i-유형 경계 조건을 만족하는 3차 스플라인을 i-유형 평활 스플라인이라고 합니다. 4개의 계수로.총 세그먼트 - m.따라서, 스플라인을 완전히 정의하려면 4m의 숫자를 찾아야 합니다. 조건은 함수 5(ar)의 연속성과 그리드 o의 모든 내부 노드에서 모든 도함수를 의미합니다. "이러한 노드의 수는 m - 1이므로 모든 다항식의 계수를 찾기 위해 3(m - 1) 조건(방정식)을 얻습니다. 결정될 수량의 수는 2m + 2입니다. 각 구간에서 평활 스플라인 함수는 다음 형식으로 구합니다. 먼저 수량 n*을 찾는 방법을 설명하겠습니다. 첫 번째 및 두 번째 유형의 경계 조건의 경우 Hi 값을 결정하기 위한 선형 방정식 시스템은 알려진 숫자가 있는 다음 형식으로 작성됩니다. 계수는 경계 조건의 선택에 따라 다릅니다. 제1종 경계조건: 제2종 경계조건: 제3종 경계조건의 경우 수를 결정하는 체계는 다음과 같이 작성한다. 또한 모든 계수는 식 (5)( 인덱스 k 및 m + k는 다음과 같은 것으로 간주됩니다. 중요* 참고. 시스템의 매트릭스는 퇴화되지 않으므로 이러한 시스템 각각에는 고유한 솔루션이 있습니다. 숫자 n, -가 발견되면 수량은 공식에 의해 쉽게 결정됩니다. 모든 것과 스무딩 스플라인이 보간으로 판명되면. 이것은 특히 값이 더 정확하게 주어질수록 해당 가중치 계수의 프리스케일 값이 작아짐을 의미합니다. 반면에 스플라인이 점(x^, yk)을 통과해야 하는 경우 해당하는 가중치 p\는 0과 동일하게 설정되어야 합니다. 실제 계산에서 가장 중요한 것은 값의 선택입니다. pi-Let D, - 값 y의 측정 오류. 그런 다음 스무딩 스플라인이 조건 또는 동일을 만족해야 하는 것이 당연합니다.가장 간단한 경우에 가중치 계수 pi는 예를 들어 다음과 같은 형식으로 제공될 수 있습니다. 여기서 c는 충분히 작은 상수입니다. 그러나 가중치 p를 선택하면 y, - 값의 오류로 인해 "복도"를 사용할 수 없습니다. 더 합리적이지만 p 값을 결정하는 데 더 많은 시간이 소요되는 알고리즘은 다음과 같이 보일 수 있습니다. fc 번째 반복에서 값이 발견되면 e는 컴퓨터의 비트 그리드, D 값 및 정확도를 고려하여 실험적으로 선택되는 작은 숫자라고 가정합니다. 선형 대수 방정식의 시스템을 해결합니다. 점 i에서 fc 번째 반복에서 조건 (6)이 위반되면 마지막 공식은 해당 가중치 계수 p의 감소를 보장합니다. 그런 다음 다음 반복에서 p를 늘리면 "복도"(6)를 보다 완벽하게 사용하고 궁극적으로 스플라인을 보다 부드럽게 변경합니다. 약간의 이론 A. 보간 3차 스플라인의 계수를 계산하기 위한 공식의 입증. m이 미지의 양인 표기법을 소개합니다. 그들의 수는 m + 1과 같습니다. 스플라인은 보간 조건을 만족하고 전체 구간 [a, b\: 공식을 대입하면 각각 연속적인 형태로 작성됩니다. 또한 다음을 갖습니다. 구간 [a, 6]에 대한 연속 1차 도함수: 미분 관계 (7) 및 설정, 우리는 해당합니다. 실제로. 스플라인 함수(7)가 구간 [a, 6]에서 연속적인 2차 도함수를 갖도록 숫자 m을 선택할 수 있음을 보여줍시다. 구간에서 스플라인의 2차 도함수를 계산합니다. 점 x, - 0에서 (t = 1에서) 구간에서 스플라인의 2차 도함수를 계산합니다. 내부 그리드 노드에서 a; 우리는 m - 1 관계를 얻습니다. 경계 조건에서 발생하는 이러한 m - 1 방정식에 두 개를 더 추가하면 m + I 미지수 i = 0, 1인 m + 1 선형 대수 방정식 시스템을 얻습니다. ... , 중. 첫 번째 및 두 번째 유형의 경계 조건의 경우 gw 값을 계산하기 위한 방정식 시스템은 (첫 번째 유형의 경계 조건), (두 번째 유형의 경계 조건) 형식을 갖습니다. 주기적인 경계 조건(세 번째 유형의 경계 조건)의 경우 그리드 o; 노드를 하나 더 늘리고 가정합니다. 그러면 r* 값을 결정하는 시스템은 두 번째 및 (th - !) 그리드 노드에서 형태 연속성을 갖습니다. 우리는 마지막 두 관계에서 네 번째 유형의 경계 조건에 해당하는 누락된 두 개의 방정식을 얻습니다. 방정식에서 미지의 r0을 제외하고 방정식에서 미지의 pc를 제외하면 결과적으로 방정식 시스템을 얻습니다. 이 시스템에서 미지수의 수는 r - I와 같습니다. 6. 스무딩 수빅 스플라인의 효율성을 계산하기 위한 공식의 입증. Zi와 nj가 아직 미지수인 표기법을 소개하겠습니다. 그들의 수는 2m + 2와 같습니다. 형식으로 작성된 스플라인 함수는 전체 간격(a, 6]에 대해 연속적입니다. 이 공식을 입력하면 각각 다음을 얻습니다. 숫자 z 및 n이 ( 8) 형식으로 작성된 스플라인이 구간 [a, 6]에서 연속 1차 도함수를 가지도록 선택됩니다. 구간에서 스플라인 S(x)의 1차 미분을 계산합니다. 한 점에서 다음을 얻습니다. 그리드의 내부 노드에서 스플라인의 1차 도함수의 연속성 조건 --> 우리는 m - 1 관계를 얻습니다. 이 관계를 행렬 형식으로 작성하는 것이 편리합니다. 관계 (8) 및 설정, 우리는 다음을 얻습니다. 각각, Yeshe olyu 행렬 관계는 함수 (4)의 최소 조건에서 구합니다. 마지막 두 행렬 등식은 2m + 2 미지수에서 2m + 2 선형 대수 방정식의 선형 시스템으로 간주될 수 있습니다. 첫 번째 등식의 열 r을 관계식 (9)에서 얻은 표현식으로 바꾸면 행렬 방정식 SPLINE THEORY 열 M을 결정하기 위한 솔루션의 예에 도달합니다. 이 방정식은 행렬 A + 6HRH7은 항상 비축퇴성입니다. 그를 찾으면 Eamshine 씨를 쉽게 식별할 수 있습니다. 삼각형 마골 행렬 A 및 H의 요소는 그리드 매개변수 u(단계 hi 포함)에 의해서만 n을 결정하고 값 yj에 의존하지 않습니다. 3차 스플라인 함수의 선형 공간 노드 wcra + l에 의해 세그먼트 [a, 6)에 구축된 3차 스플라인 세트는 차원 m + 3의 선형 공간입니다. 1) 그리드 u에 의해 구축된 두 개의 3차 스플라인의 합 > 및 그리드 u>에 구축된 3차 스플라인의 곱, 임의의 숫자는 이 그리드에 구축된 3차 스플라인입니다. 2) 그리드 및 노드에서 구축된 모든 3차 스플라인은 m + 1에 의해 완전히 결정됩니다. 이 노드와 두 개의 경계 조건에서 값 y "값 - 단지 + 3 매개 변수. 이 공간에서 m + 3개의 선형 독립 스플라인으로 구성된 기저를 선택하면 임의의 3차 스플라인 a(x)를 고유한 방식으로 이들의 선형 조합으로 작성할 수 있습니다. 논평. 이러한 스플라인 사양은 계산 실습에서 널리 사용됩니다. 특히 편리한 것은 소위 입방 B-스플라인(기본 또는 기본 스플라인)으로 구성된 기초입니다. D-스플라인을 사용하면 컴퓨터 메모리 요구 사항을 크게 줄일 수 있습니다. L-스플라인. 그리드 w를 따라 숫자 라인에 구축된 0도의 B-스플라인은 포크의 함수입니다 그리드 u를 따라 숫자 라인에 구축된 차수 k ^ I의 B-스플라인은 재귀 공식 second에 의해 결정됩니다 in\7\x) 정도는 각각 그림 11과 12에 나와 있습니다. 임의의 차수 k의 B-스플라인은 특정 세그먼트(k + 2 노드로 정의)에서만 0과 다를 수 있습니다. -스플라인 B,-3*(n)이 세그먼트 ir,-+2에서 0과 다르도록 스플라인] 균일 그리드의 경우 3차 3차 스플라인에 대한 공식을 제공합시다(다음과 같이 단계 A). ​​다른 경우에는 입방체 B-스플라인의 일반적인 플롯이 그림 13에 나와 있습니다. 함수 a)는 세그먼트에서 연속적으로 두 번 미분할 수 있습니다. [a, "), c)는 4개의 연속적인 세그먼트 확장 그리드 w * mo에서만 0이 아닙니다. m + 3 입방 B-스플라인의 패밀리를 구성하는 것이 필요합니다. 이 패밀리는 세그먼트(a, b]의 큐빅 스플라인 공간에서 기초를 형성합니다. 따라서, 그리드 o의 세그먼트 |s, 6]에 구성된 임의의 3차 스플라인 S(z); +1 노드에서 이 세그먼트에 선형 조합으로 표시될 수 있습니다. 문제의 조건인 이 확장의 계수 ft는 고유하게 결정됩니다. ... 그리드의 노드에서 함수의 값과 그리드의 끝에서 함수의 1차 도함수 값 "(보간 문제 첫 번째 종류의 경계 조건), 이러한 계수는 다음 형식 i 및 &m+i의 시스템에서 계산되며, 미지수 5q, ..., bm 및 3대각 행렬이 있는 선형 시스템을 얻습니다. 이 조건은 대각선을 제공합니다. 우세, 따라서 이를 해결하기 위해 스윕 방법을 사용할 가능성 보간 문제 Zmmchm* 2. 1.1절에서 설명한 알고리즘과 비교하여 보간 문제*에서 R-스플라인을 사용하면 저장되는 정보의 양이 줄어듭니다. . 스플라인 함수를 사용한 스플라인 곡선의 구성 위에서, 배열이 고려되었으며, 그 점은 가로축이 엄격하게 증가하는 시퀀스를 형성하도록 번호가 매겨졌습니다. 예를 들어 그림 1에 표시된 경우. 14, 어레이의 다른 지점이 동일한 횡좌표를 가질 때 허용되지 않았습니다. 이 상황은 근사 곡선(함수의 트래픽) 클래스의 선택과 구성 방법을 결정했습니다. 그러나 위에서 제안한 방법을 사용하면 일반적으로 배열 점의 번호와 평면에서의 위치가 관련이 없는 보다 일반적인 경우 보간 곡선을 매우 성공적으로 구성할 수 있습니다(그림 15). 또한, 보간 곡선을 구성하는 문제를 제기할 때 주어진 배열을 비평면으로 간주할 수 있습니다. 즉, 이 일반적인 문제를 해결하려면 여기에는 닫힌 곡선과 자체 교차점이 있는 곡선 및 공간 곡선이 있습니다. 매개변수 방정식을 사용하여 이러한 곡선을 설명하는 것이 편리합니다. 또한, 함수가 충분한 평활도를 갖도록 예를 들어 클래스 C1 [a, /0] 또는 클래스에 속합니다. 배열의 모든 점을 연속적으로 통과하는 곡선의 매개변수 방정식을 찾으려면 다음과 같이 진행하십시오. 1단계. 임의의 간격으로)