뉴턴-랩슨 방법
IT 위키
더 많은 작업
뉴턴-랩슨 방법(Newton-Raphson Method, 뉴턴 방법)은 함수의 현재 근삿값에서 그은 접선이 x 축과 만나는 점을 다음 근삿값으로 삼는 일을 되풀이해 비선형 방정식 f(x) = 0 의 근을 빠르게 찾는 수치해법이다.
xn 에서 f 를 1차 테일러 근사하면 f(x) ≈ f(xn) + f'(xn)(x - xn) 이다. 이 직선(접선)이 0 이 되는 x 를 다음 값으로 한다.
- xn+1 = xn - f(xn) / f'(xn)
- 근 근처의 출발값 x0 을 정한다
- f(xn) 과 도함수 f'(xn) 을 계산한다
- xn+1 = xn - f(xn) / f'(xn)
- |xn+1 - xn| < ε 또는 |f(xn+1)| < ε 이면 멈추고, 아니면 2 로 돌아간다
f(x) = x2 - 4, f'(x) = 2x 이므로 xn+1 = xn - (xn2 - 4) / (2xn) 이다.
- x1 = 3 - (9 - 4) / 6 = 3 - 0.8333 = 2.1667
- x2 = 2.1667 - 0.6944 / 4.3333 = 2.0064
- x3 = 2.0064 - 0.0257 / 4.0128 = 2.00001
- x4 = 2.0000000000 (오차 약 2.6 × 10-11)
오차가 0.17 → 0.0064 → 0.00001 로, 매번 앞 오차의 제곱 수준으로 줄어든다. 이 반복식은 제곱근을 구하는 바빌로니아 방법 xn+1 = (xn + 4 / xn) / 2 와 같다.
- 2차 수렴 - 단순근 근처에서 맞는 자릿수가 반복마다 약 두 배가 된다. 이분법(1차 수렴)보다 훨씬 빠르다
- 도함수가 필요하다. 도함수를 구하기 어려우면 두 점의 기울기로 대신하는 할선법(Secant method)을 쓴다
- 수렴이 보장되지 않는다
- f'(xn) 이 0 에 가까우면 다음 값이 멀리 튀어 발산한다
- 출발값이 근에서 멀거나 변곡점 근처면 진동하거나 다른 근으로 간다
- 중근에서는 1차 수렴으로 느려진다
- 그래서 이분법으로 근을 대략 가둔 뒤 뉴턴-랩슨 방법으로 마무리하는 혼합 방식을 많이 쓴다
변수가 여러 개인 F(x) = 0 에서는 도함수 대신 야코비안 행렬 J 를 쓴다.
- xn+1 = xn - J(xn)-1 F(xn)
실제로는 역행렬을 구하지 않고 J(xn) Δx = -F(xn) 연립 일차방정식을 풀어 Δx 만큼 고친다.