뉴턴의 방법
본문\(\sqrt2\)는 방정식 \(x^2 - 2 = 0\)의 양의 근이다. 처음 값을 1로 잡고 "\(x\)와 \(2/x\)의 평균"을 다음 값으로 삼는 계산을 되풀이하면 1.5, 1.41667, 1.414216이 차례로 나오는데, 세 번째 값이 이미 \(\sqrt2 = 1.4142136\cdots\)과 소수 다섯째 자리까지 같다. 이 간단한 규칙은 어디서 나왔을까? 곡선의 접선을 따라 \(x\)축까지 내려가는 일과 무슨 관계가 있을까? 그리고 어떤 방정식에서나 이렇게 빨리 근에 닿을까?
1.1.1접선이 \(x\)축과 만나는 점
곡선 \(y = f(x)\)가 \(x\)축과 만나는 점을 직접 구하기 어려우면, 근 근처의 한 점 \(x_n\)에서 곡선 대신 접선을 쓴다. 접선은 \(y = f(x_n) + f'(x_n)(x - x_n)\)이고, 이 직선이 \(x\)축과 만나는 점은 \(y = 0\)을 넣어 쉽게 구한다. 곡선이 근 근처에서 접선과 거의 같다면, 접선의 \(x\)절편은 \(x_n\)보다 근에 더 가깝다. 그 점을 \(x_{n+1}\)로 삼아 같은 일을 되풀이하면 근에 점점 다가가는 수열이 생긴다. 이것이 뉴턴의 방법이다.
\(f'(x_n) \ne 0\)일 때 \[x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}\]으로 수열을 만든다. 근 \(\alpha\)에서 \(f'(\alpha) \ne 0\)이고 \(x_0\)가 \(\alpha\)에 충분히 가까우면 오차는 대략 \(|x_{n+1} - \alpha| \approx C|x_n - \alpha|^2\)으로 줄어, 맞는 자릿수가 한 번에 두 배 가까이 는다.
\(f(x) = x^2 - a\)에 쓰면 \(f'(x) = 2x\)이므로 \(x_{n+1} = x_n - \dfrac{x_n^2 - a}{2x_n} = \dfrac12\left(x_n + \dfrac{a}{x_n}\right)\)이다. 처음 질문의 "\(x\)와 \(2/x\)의 평균"이 바로 \(a = 2\)인 경우이다. \(x_n\)이 \(\sqrt a\)보다 크면 \(a/x_n\)은 \(\sqrt a\)보다 작으므로, 둘의 평균은 그 사이에서 \(\sqrt a\)에 더 가까워진다. 이 방법은 4000년 전 바빌로니아에서도 쓰였다.1
1.1.2언제나 가까운 근으로 갈까
뉴턴의 방법은 출발점이 근에 가까울 때 매우 빠르지만, 늘 성공하지는 않는다. 접선의 기울기가 0에 가까운 곳에서 출발하면 접선이 \(x\)축과 아주 먼 곳에서 만나, 엉뚱한 근으로 가거나 수열이 발산한다. 근이 여러 개인 방정식에서는 출발점을 조금만 바꾸어도 다른 근으로 가기도 한다. 그래서 먼저 사잇값 정리로 근이 있는 구간을 좁히고, 그 안에서 출발점을 고른 뒤 뉴턴의 방법을 쓰는 것이 안전하다.
1.1.3예제 풀이
방정식 \(x^3 - 2x - 5 = 0\)은 2와 3 사이에 근을 가진다. \(x_0 = 2\)에서 출발해 뉴턴의 방법으로 \(x_1\), \(x_2\)를 구하여라.
\(f(2) = 8 - 4 - 5 = -1 < 0\), \(f(3) = 27 - 6 - 5 = 16 > 0\)이므로 사잇값 정리로 2와 3 사이에 근이 있다. \(f'(x) = 3x^2 - 2\)이고 \(f'(2) = 10\)이므로 \(x_1 = 2 - \dfrac{-1}{10} = 2.1\)이다.
\(f(2.1) = 9.261 - 4.2 - 5 = 0.061\), \(f'(2.1) = 13.23 - 2 = 11.23\)이므로 \(x_2 = 2.1 - 0.061/11.23 \approx 2.1 - 0.00543 = 2.09457\)이다. 참값 \(2.0945515\cdots\)과 소수 넷째 자리까지 같다. 한 번 더 하면 소수 아홉째 자리 가까이 맞는다. 즉 뉴턴의 방법은 곡선을 접선으로 바꾸어 \(x\)절편을 구하는 일을 되풀이하며, 근 근처에서 출발하면 맞는 자릿수가 한 번에 두 배씩 늘어 몇 번 만에 아주 정확한 근을 준다.
아래 탐구 카드에서 접선을 따라 근에 다가가는 과정을 직접 그려 보고, \(\sqrt a\)를 구하는 규칙과 출발점에 따라 다른 근으로 가는 모습을 확인해 보자.
- 이 예제의 방정식은 1669년 뉴턴이 자신의 방법을 설명하며 쓴 바로 그 식이다. 뉴턴은 다항식에만 썼고, 오늘날처럼 도함수로 일반화한 식은 1690년 영국의 랩슨이 정리해 뉴턴–랩슨 방법이라고도 부른다.
뉴턴의 방법은 근 근처의 점 \(x_n\)에서 그은 접선의 \(x\)절편 \(x_{n+1} = x_n - f(x_n)/f'(x_n)\)을 되풀이해 구하며, 근 근처에서 출발하면 오차가 제곱으로 줄어 맞는 자릿수가 두 배씩 는다. 출발점이 나쁘면 다른 근으로 가거나 발산하므로, 사잇값 정리로 근의 구간을 먼저 좁힌다. 처음 질문의 규칙은 \(f(x) = x^2 - 2\)에 뉴턴의 방법을 쓴 것이어서, 세 번 만에 \(\sqrt2\)를 소수 다섯째 자리까지 맞힌다.