선형 보간법(線型補間法, linear interpolation)은 끝점의 값이 주어졌을 때 그 사이에 위치한 값을 추정하기 위하여 직선 거리에 따라 선형적으로 계산하는 방법이다.

두 빨간색 점 사이에 있는 파랑색 점의 위치를 추정하기 위하여 선형 보간법을 사용할 수 있다.

예시 편집

예를 들어, 오른쪽 그림과 같이, 두 끝점   가 주어져 있을 때, 그 사이에 위치한  의 값을 추정하기 위해 두 점 사이에 직선을 긋고 다음과 같은 비례식을 구성할 수 있다.

 

이 수식을 풀면, 어떤 주어진 값  에 대한   값을 다음과 같이 구할 수 있다.

 

일반화 편집

 
p1과 p2 사이에 있는 점 p의 값을 추정하기 위해 선형 보간법을 사용할 수 있다.

일반적으로 두 지점  에서의 데이터 값이 각각  일 때,   사이의 임의의 지점  에서의 데이터 값  는 다음과 같이 계산할 수 있다.

 

단,   에서  까지의 거리,   에서  까지의 거리를 말한다.

만일 거리의 비를 합이 1이 되도록 정규화하면 ( ) 위 식은 다음과 같이 단순화될 수 있다.

 

확장 편집

선형 보간법은 1차원 직선상에서 이루어지는 보간법이다. 이를 2차원으로 확장하여 평면에 적용한 것이 이중 선형 보간법(bilinear interpolation)이고, 이를 3차원으로 확장하여 입방체에 적용한 것이 삼중 선형 보간법(trilinear interpolation)이다.

프로그래밍 편집

선형 보간법은 다음과 같은 방법으로 프로그래밍을 할 수 있다.

// p1,p2를 d1:d2로 분할하는 p를 리턴한다. (단, d1+d2=1)
float lerp(float p1, float p2, float d1) {
  return (1-d1)*p1 + d1*p2;
}

p1, p2사이의 임의의 지점 p에서의 데이터값 f(p)는 다음과 같다.

 

따라서,  

같이 보기 편집

외부 링크 편집