수학

뉴턴-랩슨 법(Newton-Raphson method)

오만팔천 2010. 10. 23. 10:33
뉴턴-랩슨 법(Newton-Raphson method)은 역함수를 구할 수 없을 때 컴퓨터로 함숫값을 찾는 방법입니다.

어떤 원리인지 자세히 알아보겠습니다.

위 그림의 빨간색 곡선이 함수 f(x)라고 할 때 x0점의 접선 방정식을 구합니다.
 
접선 방정식인 일차 함수의 일반 방정식은 아래와 같습니다.

위 식에서 기울기 a는 f(x)를 미분해서 x0를 대입해서 구하면 아래와 같습니다.

값이 x0일 때 값은 f(x0)가 됩니다. 이 값들과 위에서 구한 기울기를 접선 방정식에 대입하면 아래와 같습니다.

위 식에서 b를 구하면 아래와 같이 됩니다.

구해진 값들로 일차 방정식을 완성하면 아래와 같이 됩니다.

위의 접선 방정식에서 x1은 y=0일 때이므로 이 값들을 위 식에 대입하면 아래와 같이 됩니다.

위 방정식을 x1에 대해 정리를 하면 아래와 같이 됩니다.

위 식을 일반식으로 바꾸면 아래와 같이 됩니다.


 
실제로 위의 식을 이용해 2의 제곱근을 구해 보면서 어떻게 해를 찾는지 계산해보겠습니다.

예제1)
2의 제곱근을 구한다는 것은 아래 식의 양수 해를 구하는 것과 같습니다.
 
위 식을 미분한 함수는 아래와 같습니다.

초기값 x0를 임의의 양수 5로 정해서 계산을 해 나가면 아래와 같이 됩니다.
위에서 보는 바와 같이 8번의 계산으로 소수점 이하 63자리까지 빠르게 해를 찾습니다.(위의 값은 PowerCalc로 계산 했습니다.)

프로그램에서 계산할 때는 f(xn)이 오차 범위 안에 있으면 계산을 종료하면 됩니다.
 
예제2)
inv함수를 '인벌류트 함수(inv) 수치해석 및 엑셀파일'에서 구합니다.

* 해를 찾지 못하는 경우
중근일 경우 함수 f(x)의 꼭짓점에 해당하여 근에 접근할 수록 접선의 기울기가 완만해져 근을 찾는 것이 매우 느려집니다. 또한, 미분 함수 f'(x)=0이면 분모가 0이 되어 계산할 수 없습니다.