라그랑주 다항식
1. 개요
라그랑주 다항식은 주어진 점들을 지나는 차수가 k 이하인 유일한 다항식으로, 라그랑주 기저 다항식들의 선형 결합으로 표현된다. 이 다항식은 수학, 특히 수치 해석에서 함수의 보간에 사용되며, 암호학과 같은 분야에서도 응용된다. 라그랑주 다항식은 각 데이터 점에 대해 해당 점에서는 1이고 다른 모든 점에서는 0이 되는 기저 함수를 구성하는 핵심 아이디어를 기반으로 하며, 중점 형태를 사용하여 계산 효율성을 높일 수 있다. 그러나 절점 변경 시 기저 다항식을 다시 계산해야 하는 단점이 있으며, 등간격 절점 사용 시 룬게 현상과 같은 문제를 야기할 수 있다.
| 종류 | 다항식 보간 |
|---|---|
| 분야 | 수치해석학 |
| 목적 | 주어진 데이터 포인트를 통과하는 다항식 생성 |
|---|---|
| 특징 | 각 데이터 포인트를 정확히 통과하는 유일한 다항식 |
| 활용 | 함수 근사, 데이터 분석, 곡선 피팅 |
| 라그랑주 보간 공식 | L(x) = Σ[i=0 to n] yᵢ * ℓᵢ(x) |
|---|---|
| 기본 다항식 | ℓᵢ(x) = Π[j=0 to n, j≠i] (x - xⱼ) / (xᵢ - xⱼ) |
| 변수 설명 | "x: 보간할 x 값" "xᵢ, yᵢ: 주어진 데이터 포인트" "n: 데이터 포인트의 개수" |
| 장점 | 구현 용이성 주어진 데이터를 정확하게 통과 |
|---|---|
| 단점 | 계산 복잡도 높음 (데이터 포인트 증가 시) 런게 현상 발생 가능성 |
| 샤미르 비밀 공유 | 비밀 분산에 활용 |
|---|
| 관련 항목 | 보간법 뉴턴 보간법 스플라인 보간법 베지어 곡선 에르미트 보간법 |
|---|
-
보간법 -
선형 보간법
선형 보간법은 두 점 사이의 값을 직선으로 추정하는 방법으로, 다양한 분야에서 활용되지만 비선형 데이터에는 정확도가 낮아 다른 방법으로 대체될 수 있다. -
보간법 -
보외법
보외법은 수치 데이터가 없는 범위의 값을 추정하는 방법으로, 다양한 외삽 방법이 존재하며 데이터 생성 프로세스에 대한 사전 지식에 따라 적용 방법을 선택한다. -
다항식 -
르장드르 다항식
-
다항식 -
행렬식
행렬식은 정사각 행렬에 대해 정의되는 값으로, 선형 방정식의 해를 구하고 선형 독립성을 확인하며 기저의 방향과 부피를 계산하는 데 사용되며, 가우스 소거법 등의 계산 기법과 가역성 판단, 고유값 연관성 등의 성질을 갖는다. -
빈 문단이 포함된 문서 -
광주고등법원
광주고등법원은 1952년에 설치되어 광주광역시, 전라남도, 전북특별자치도, 제주특별자치도를 관할하며, 제주와 전주에 원외재판부를 두고 있다. -
빈 문단이 포함된 문서 -
1502년
1502년은 율리우스력으로 수요일에 시작하는 평년으로, 이사벨 1세의 이슬람교 금지 칙령 발표, 콜럼버스의 중앙아메리카 해안 탐험, 바스쿠 다 가마의 인도 상관 설립, 크리미아 칸국의 킵차크 칸국 멸망, 비텐베르크 대학교 설립, 최초의 아프리카 노예들의 신대륙 도착 등의 주요 사건이 있었다.
2. 정의
k영어 + 1개의 데이터 점 가 주어졌을 때 (단, 모든 는 서로 다르다), 이 점들을 지나는 차수가 k영어 이하인 유일한 다항식을 라그랑주 보간 다항식이라고 한다. 라그랑주 다항식은 라그랑주 기저 다항식들의 선형 결합으로 표현된다. 보간 다항식은 유일하다는 성질을 가진다.
2.1. 라그랑주 기저 다항식
k + 1개의 데이터 점 (x0, y0), ..., (xj, yj), ..., (xk, yk)가 주어지고, 이때 어떤 두 xj도 같지 않다고 가정한다. 라그랑주 형식의 보간 다항식은 라그랑주 기저 다항식의 선형 결합으로 표현된다.
각 j에 대해, 라그랑주 기저 다항식 ℓj(x)는 다음과 같이 정의된다.
:
xi는 서로 같은 값을 가지지 않으므로, 이고, 위 표현은 잘 정의된다.
서로 다른 k + 1개의 노드 {x0, x1, ..., xk}가 주어지면, j ≠ m인 인덱스에 대해 xj ≠ xm을 만족한다. 이 노드들에 대한 차수가 k 이하인 다항식의 라그랑주 기저는, 각 차수가 k이고 m ≠ j일 때 ℓj(xm) = 0이며 ℓj(xj) = 1의 값을 갖는 다항식 집합 {ℓ0(x), ℓ1(x), ..., ℓk(x)}이다. 크로네커 델타를 사용하면, 이를 ℓj(xm) = δjm으로 쓸 수 있다.
분자 은 노드 에서 k개의 근을 갖는다. 반면, 분모 은 결과 다항식을 스케일링하여 ℓj(xj) = 1이 되도록 한다.
2.2. 선형 결합
k + 1개의 데이터 점 (x0, y0), ..., (xj, yj), ..., (xk, yk)가 주어졌을 때 (단, xj는 모두 서로 다른 값), 라그랑주 형식의 보간 다항식은 다음과 같은 라그랑주 기저 다항식들의 선형 결합으로 나타낼 수 있다.
:
여기서 라그랑주 기저 다항식은 다음과 같다.
:
이 식은 L(xi) = yi (i = 0부터 k까지)를 만족하여, 주어진 모든 점을 지난다. 에서 i = j 라면 모든 항이 1이 되고, j ≠ m 에 대해 이고, m ≠ j 일 때, 이며 의 값을 갖는다. 크로네커 델타를 사용하면 이를 으로 쓸 수 있다.
3. 증명
L(x)가 데이터를 적절히 보간하기 위해서는, 각 데이터 점 j에 대해 k차 이하의 다항식 L(x)가 다음 조건을 만족해야 한다.
:
만약 이 조건이 모든 j에 대해 성립한다면, 그 다항식은 보간 문제의 해답이라고 할 수 있다.
다음은 이 다항식이 유일함을 증명하는 과정이다.
# 는 곱에서 k개의 항을 포함하고 각 항은 x를 하나씩 포함하고 있으므로, L(x)(k차 다항식의 합)는 k차 다항식이어야 한다.
#
이 곱셈을 확장하면, 곱이 인 경우를 제외하기 때문에, 만약 라면 모든 항은 이 된다. (인 경우는 제외)
만약 주어진 점들을 지나는 차수가 k 이하인 다항식이 L(x)와 M(x) 두 개가 있다고 가정해보자. 그러면 L(x)-M(x)는 k+1개의 서로 다른 근을 가지는 k차 이하의 다항식이 되므로 0이 될 수밖에 없다. 따라서, L(x)=M(x)가 된다. 즉, 주어진 점들을 지나는 k차 이하의 다항식은 유일하다.
4. 주요 아이디어
라그랑주 보간법의 핵심 아이디어는 각 데이터 점에 대해, 해당 점에서는 1이고 다른 모든 점에서는 0이 되는 기저 함수를 구성하는 것이다. 이러한 기저 함수들의 선형 결합을 통해 주어진 모든 점을 지나는 다항식을 만들 수 있다.
서로 다른 개의 점 가 주어졌을 때, 이면 이다. 이 점들에 대한 차수가 이하인 라그랑주 기저 다항식 집합 은 다음 조건을 만족한다.
* 일 때
*
크로네커 델타를 사용하면, 으로 표현할 수 있다. 각 기저 다항식은 다음과 같이 나타낼 수 있다.
여기서 분자 은 에서 개의 근을 갖는다. 분모 은 이 되도록 다항식을 조정한다.
주어진 점들에서의 값 에 대해, 라그랑주 다항식은 다음과 같은 선형 결합으로 표현된다.
각 기저 다항식의 차수가 이므로, 합 의 차수는 이하이다. 또한 이므로, 이 다항식은 주어진 점들을 보간한다.
보간 다항식은 유일하다. 차수가 이하인 다항식 가 데이터를 보간한다고 가정하면, 는 개의 서로 다른 점 에서 0이다. 그러나 개 이상의 근을 갖는 차 이하의 다항식은 상수 0 함수뿐이므로, , 즉 이다.
5. 선형대수학적 관점
보간 문제를 해결하는 것은 행렬의 역행렬을 구하는 선형대수학의 문제로 이어진다. 보간 다항식 에 대한 표준 단항식 기저를 사용하면, 계수 에 대해 를 풀기 위해 반데르몽드 행렬 의 역행렬을 구해야 한다. 더 나은 기저인 라그랑주 기저 를 선택하면 항등 행렬, 를 얻게 되는데, 이는 자체 역행렬이다. 즉, 라그랑주 기저는 자동으로 반데르몽드 행렬의 유사 행렬을 역전시킨다.
이 구성은 중국인의 나머지 정리와 유사하다. 정수를 소수로 나눈 나머지를 확인하는 대신, 선형식으로 나눌 때 다항식의 나머지를 확인한다.
또한, 차수가 클 때 고속 푸리에 변환을 사용하여 보간된 다항식의 계수를 구할 수 있다.
6. 중점(Barycentric) 형태
라그랑주 다항식은 중점(barycentric) 형태로 변형하면 계산 효율성을 높일 수 있다. 중점 형태는 크게 두 가지로 나뉜다.
* 첫 번째 중점 형태: 라그랑주 다항식을 각 항의 공통 인수로 묶어 표현하는 방식이다.
* 두 번째 중점 형태 (실제 형태): 첫 번째 형태를 한 번 더 변형하여 계산의 효율성을 더욱 높인 방식이다. 이 형태는 분모와 분자에 공통으로 나타나는 항을 상쇄시켜 계산 정확도를 높이는 장점도 있다.
6.1. 중점 가중치(Barycentric weight)
각 라그랑주 기저 다항식은 세 부분의 곱으로 다시 쓸 수 있다. 모든 기저 다항식에 공통적인 함수 , 노드 특정 상수 (중점 가중치(barycentric weight)라고 함) 및 에서 로의 변위를 나타내는 부분이다.
합에서 를 묶어내면, 이른바 첫 번째 중점(barycentric) 형태로 라그랑주 다항식을 쓸 수 있다.
가중치 가 미리 계산되었다면, 각 라그랑주 기저 다항식 를 개별적으로 평가하는 데 가 필요한 것에 비해 연산만 필요하다.
중점(barycentric) 보간 공식은 또한 각 , 를 로 나누고 새로운 을 위와 같이 구성하여 새로운 노드 을 통합하도록 쉽게 업데이트할 수 있다.
임의의 에 대해, 이다. 왜냐하면 상수 함수 은 데이터 }를 보간하는 차수 의 고유한 다항식이기 때문이다. 따라서 로 중점(barycentric) 공식을 더욱 단순화할 수 있다.
이것은 중점(barycentric) 보간 공식의 두 번째 형태 또는 실제 형태라고 불린다.
이 두 번째 형태는 계산 비용과 정확도 측면에서 장점이 있다. 의 평가를 피한다. 분모 의 각 항을 계산하는 작업은 이미 를 계산하는 데 수행되었으므로, 분모의 합을 계산하는 데 개의 덧셈 연산만 필요하다. 노드 중 하나에 가까운 평가점 의 경우, catastrophic cancelation이 일반적으로 값 에 문제가 되겠지만, 이 양은 분자와 분모 모두에 나타나며 두 개가 상쇄되어 최종 결과에 좋은 상대적 정확도를 남긴다.
이 공식을 사용하여 노드 중 하나에서 를 평가하면 부정형 가 발생한다. 컴퓨터 구현은 이러한 결과를 로 대체해야 한다.
각 라그랑주 기저 다항식은 중점(barycentric) 형태로도 쓸 수 있다.
라그랑주 기저 다항식을 다음과 같이 다시 쓸 수 있다.
이는 중심 가중치(barycentric weight)를 로 정의하면 간단하게
로 쓸 수 있는데, 이를 중심 라그랑주 보간의 "제1형"이라고 부른다.
이 형태의 다항식 보간을 고려하는 것의 이점은 보간 다항식 를 평가할 때, 가중치 가 사전에 알려져 있다면 으로 계산할 수 있다는 것이다(라그랑주 기저 를 개별적으로 계산하는 것은 이 소요된다). 또 다른 중심형 보간의 이점으로, 새로운 절점 의 추가도 각 를 로 나누고, 새로운 를 계산하는 것만으로 쉽게 할 수 있다는 점을 들 수 있다.
더욱이 제1형을 단순화하는 것도 가능하다. 먼저 상수 함수 의 중심 보간 를 계산한 다음, 을 로 나누면, 얻는
은 주어진 절점에서의 보간성을 잃지 않는다. 이 보간 다항식을 중심 보간 다항식의 "제2형" 또는 "진정한 형태"라고 한다. 진정한 중심 보간 다항식은 의 각 절점에서 평가할 때 라그랑주 기저 를 평가할 필요가 없다는 점에서 유리하다.
6.2. 첫 번째 중점 형태
각 라그랑주 기저 다항식 는 모든 기저 다항식에 공통적인 함수 , 노드 특정 상수 (barycentric weight라고 함) 및 에서 로의 변위를 나타내는 부분의 곱으로 다시 쓸 수 있다.
:
합에서 를 묶어내면, 라그랑주 다항식을 첫 번째 barycentric 형태로 쓸 수 있다.
:
가중치 가 미리 계산되었다면, 각 라그랑주 기저 다항식 을 개별적으로 평가하는 데 가 필요한 것에 비해 연산만 필요하다.
barycentric 보간 공식은 또한 각 , 를 로 나누고 새로운 을 위와 같이 구성하여 새로운 노드 을 통합하도록 쉽게 업데이트할 수 있다.
라그랑주 기저 다항식을 를 사용하여 로 다시 쓸 수 있다. 이는 barycentric weight영어를 로 정의하면 간단하게 로 쓸 수 있는데, 이를 중심(重心) 라그랑주 보간의 "제1형"이라고 부른다.
이 형태의 다항식 보간을 고려하는 것의 이점은 보간 다항식 를 평가할 때, 가중치가 사전에 알려져 있다면 으로 계산할 수 있다는 것이다(라그랑주 기저 를 개별적으로 계산하는 것은 이 소요된다). 또 다른 중심형 보간의 이점으로, 새로운 절점 의 추가도 각 를 로 나누고, 새로운 를 계산하는 것만으로 쉽게 할 수 있다는 점을 들 수 있다.
6.3. 두 번째 중점 형태 (실제 형태)
각 라그랑주 기저 다항식 는 세 부분의 곱으로 다시 쓸 수 있다. 모든 기저 다항식에 공통적인 함수 , 노드 특정 상수 (barycentric weight라고 함) 및 에서 로의 변위를 나타내는 부분이다.
:
합에서 를 묶어내면, 라그랑주 다항식을 첫 번째 barycentric 형태로 쓸 수 있다.
:
가중치 가 미리 계산되었다면, 각 라그랑주 기저 다항식 을 개별적으로 평가하는 데 가 필요한 것에 비해 연산만 필요하다.
barycentric 보간 공식은 새로운 노드 을 통합하도록 쉽게 업데이트할 수 있다. 각 ()를 로 나누고 새로운 을 위와 같이 구성하면 된다.
임의의 에 대해, 이다. 왜냐하면 상수 함수 은 데이터 를 보간하는 차수 의 고유한 다항식이기 때문이다. 따라서 로 barycentric 공식을 더욱 단순화할 수 있다.
:
이것은 barycentric 보간 공식의 두 번째 형태 또는 실제 형태라고 불린다.
이 두 번째 형태는 계산 비용과 정확도 측면에서 장점이 있다. 의 평가를 피할 수 있다. 분모 의 각 항을 계산하는 작업은 이미 를 계산하는 데 수행되었으므로, 분모의 합을 계산하는 데 개의 덧셈 연산만 필요하다. 노드 중 하나에 가까운 평가점 의 경우, catastrophic cancelation이 일반적으로 값 에 문제가 되겠지만, 이 양은 분자와 분모 모두에 나타나며 상쇄되어 최종 결과에 좋은 상대적 정확도를 남긴다.
이 공식을 사용하여 노드 중 하나에서 를 평가하면 부정형 가 발생한다. 컴퓨터 구현은 이러한 결과를 로 대체해야 한다.
각 라그랑주 기저 다항식은 barycentric 형태로도 쓸 수 있다.
:
7. 오차항
주어진 함수 f를 노드 에서 차수 의 다항식으로 보간할 때, 나머지 는 다음과 같이 표현할 수 있다.
:
여기서 는 나눗셈 차이 표기법이다. 또는, 나머지는 복소 평면에서 다음과 같은 선적분으로 표현할 수 있다.
:
나머지는 다음과 같이 제한될 수 있다.
:
는 노드에서 0이다. 점 에서 를 찾기 위해 새로운 함수 를 정의하고 을 선택한다. 여기서 는 주어진 에 대해 결정해야 할 상수이다. 가 와 사이(경계 포함)에 개의 0(모든 노드와 에서)을 갖도록 를 선택한다. 가 번 미분 가능하다고 가정하면, 와 는 다항식이므로 무한히 미분 가능하며, 는 번 미분 가능하다. 롤의 정리에 의해, 는 개의 0을 갖고, 는 개의 0을 갖는다. 은 1개의 0, 즉
8. 도함수
라그랑주 보간 다항식의
:
각 라그랑주 기저 다항식은 다음과 같다.
:
\ell_j(x) &= \prod_{\begin{smallmatrix}m = 0\\ m\neq j\end{smallmatrix}}^k \frac{x-x_m}{x_j-x_m}.
\end{aligned}
첫 번째 도함수는 곱의 규칙을 통해 구한다.
:
\ell_j'(x) &= \sum_{\begin{smallmatrix}i=0 \\ i\not=j\end{smallmatrix}}^k \Biggl[ \frac{1}{x_j-x_i}\prod_{\begin{smallmatrix}m=0 \\ m\not = (i , j)\end{smallmatrix}}^k \frac{x-x_m}{x_j-x_m} \Biggr]
\\[5mu]
&= \ell_j(x)\sum_{\begin{smallmatrix}i=0 \\i\not=j\end{smallmatrix}}^k \frac{1}{x-x_i}.
\end{align}
두 번째 도함수는 다음과 같다.
:
\ell_j(x)
&= \sum_{\begin{smallmatrix}i=0 \\ i\ne j\end{smallmatrix}}^{k} \frac{1}{x_j-x_i} \Biggl[ \sum_{\begin{smallmatrix}m=0 \\ m\ne(i,j)\end{smallmatrix}}^{k} \Biggl( \frac{1}{x_j-x_m}\prod_{\begin{smallmatrix}n=0 \\ n\ne(i,j,m)\end{smallmatrix}}^{k} \frac{x-x_n}{x_j-x_n} \Biggr) \Biggr]
\\[10mu]
&= \ell_j(x)
\sum_{0 \leq i < m \leq k}
\frac{2}{(x-x_i)(x - x_m)}
\\[10mu]
&= \ell_j(x)\Biggl[\Biggl(\sum_{\begin{smallmatrix}i=0 \\i\not=j\end{smallmatrix}}^k \frac{1}{x-x_i}\Biggr)^2-\sum_{\begin{smallmatrix}i=0 \\i\not=j\end{smallmatrix}}^k \frac{1}{(x-x_i)^2}\Biggr].
\end{align}
세 번째 도함수는 다음과 같다.
:
\ell_j'(x)
&= \ell_j(x)
\sum_{0 \leq i < m < n \leq k}
\frac{3!}{(x-x_i)(x - x_m)(x - x_n)}
\end{align}
더 높은 차수의 도함수도 이와 유사하게 구할 수 있다.
이러한 공식은 노드나 노드 근처에서는 유효하지 않을 수 있다. 이 경우에는 라그랑주 다항식을 멱 기저(power basis) 형태로 변환하여 도함수를 계산하는 것이 효율적일 수 있다.
9. 유한체(Finite Fields)에서의 응용
라그랑주 다항식은 유한체에서도 계산할 수 있다. 이는 샤미르의 비밀 공유 방식과 같은 암호학에서 응용된다.
10. 예제
값이 잘 알려진 함수 ƒ(x) = tan(x)를 보간하는 예제를 살펴보자. 다음의 함수값을 이용한다.
| xi | f(xi) |
|---|---|
| -1.5 | -14.1014 |
| -0.75 | -0.931596 |
| 0 | 0 |
| 0.75 | 0.931596 |
| 1.5 | 14.1014 |
주어진 값을 바탕으로 각 기저 다항식을 구하면 다음과 같다.
*
={1\over 243} x (2x-3)(4x-3)(4x+3)
*
= {} -{8\over 243} x (2x-3)(2x+3)(4x-3)
*
={3\over 243} (2x+3)(4x+3)(4x-3)(2x-3)
*
=-{8\over 243} x (2x-3)(2x+3)(4x+3)
*
={1\over 243} x (2x+3)(4x-3)(4x+3)
이를 통해 보간된 다항식을 구하면 다음과 같다.
:
& {} \qquad {} - 8f(x_1)x (2x-3)(2x+3)(4x-3) \\
& {} \qquad {} + 3f(x_2)(2x+3)(4x+3)(4x-3)(2x-3) \\
& {} \qquad {} - 8f(x_3)x (2x-3)(2x+3)(4x+3) \\
& {} \qquad {} + f(x_4)x (2x+3)(4x-3)(4x+3)\Big)\\
& = 4.834848x^3 - 1.477474x
\end{align}
다른 예로,
| xi | yi = f(xi) |
|---|---|
| 1 | 1 |
| 2 | 4 |
| 3 | 9 |
각 노드의 바리 중심 가중치는 다음과 같다.
*
*
*
라그랑주 기저 다항식은 다음과 같이 계산된다.
*
*
*
따라서 라그랑주 보간 다항식은 다음과 같다.
:
L(x) = 1\cdot\frac{x - 2}{1 - 2}\cdot\frac{x - 3}{1 - 3}
+ 4\cdot\frac{x - 1}{2 - 1}\cdot\frac{x - 3}{2 - 3}
+ 9\cdot\frac{x - 1}{3 - 1}\cdot\frac{x - 2}{3 - 2}
= x^2
이는 두 번째 바리 중심 형태를 사용하여 다음과 같이 표현할 수 있다.
:
L(x) = \frac
{\displaystyle \sum_{j=0}^2 \frac{w_j}{x-x_j}y_j}
{\displaystyle \sum_{j=0}^2 \frac{w_j}{x-x_j}}
= \frac
{\displaystyle \frac{\tfrac12}{x - 1} + \frac{-4}{x - 2} + \frac{\tfrac92}{x - 3}}
{\displaystyle \frac{\tfrac12}{x - 1} + \frac{-1}{x - 2} + \frac{\tfrac12}{x - 3}}