뉴턴-랩슨법 (Newton-Raphson Method)
쉽게 풀면
어두운 방에서 손전등으로 물건을 찾는다고 해봅시다. 처음엔 대충 짐작한 방향을 비추고, 빛이 향한 쪽을 보며 "조금 더 왼쪽이었네"하고 방향을 계속 조정해서 결국 물건을 찾아냅니다. 뉴턴-랩슨법(Newton-Raphson Method)도 비슷합니다.
방정식의 답을 한 번에 정확히 구하기 어려울 때, 대충 짐작한 값에서 시작해서 그 지점의 접선(기울기)이 x축과 만나는 곳을 다음 추정값으로 삼는 과정을 반복합니다. 이 과정을 몇 번만 반복해도 실제 답에 매우 가까워지는 경우가 많습니다.
왜 중요한가
실제 연구에서 다루는 방정식들은 대부분 해석적으로 풀리지 않기 때문에, 뉴턴-랩슨법 같은 수치적 근 찾기 기법은 통계학의 모수 추정, 공학의 시스템 해석, 경제학의 균형점 계산 등 거의 모든 정량적 분야에서 빠질 수 없는 도구입니다.
특히 다른 근 찾기 방법에 비해 수렴 속도가 빠르다는 장점 때문에, 대규모 계산이 필요한 최적화나 시뮬레이션 연구에서 기본 알고리즘으로 자주 채택됩니다.
또한 준뉴턴법(BFGS 등) 같은 머신러닝의 최적화 기법들도 뉴턴-랩슨법의 아이디어를 확장한 형태로 이해되는 경우가 많아, 이 방법을 이해하는 것이 더 복잡한 최적화 이론을 배우는 기초가 됩니다.
어떤 절차인가
뉴턴-랩슨법은 방정식 f(x) = 0의 해를 현재 추정값에서 접선을 긋고, 그 접선이 x축과 만나는 점을 다음 추정값으로 삼는 반복으로 구합니다.
xn+1 = xn − f(xn) / f′(xn)
- f와 f′(도함수)를 준비합니다.
- 해 근처라고 생각되는 초기값 x0을 정합니다.
- 위 식으로 x1, x2, …를 구합니다.
- |xn+1 − xn|이나 |f(xn+1)|이 허용오차보다 작아지면 멈추고, 최대 반복 횟수도 함께 정합니다.
이 식은 테일러 급수의 1차 항까지만 취해 f(x) ≈ f(xn) + f′(xn)(x − xn) = 0을 푼 결과입니다.
언제 쓰고 무엇을 얻나
예: √2 구하기. f(x) = x² − 2, f′(x) = 2x, x0 = 1에서 시작하면(코드로 계산) 다음과 같습니다.
| n | xn | 참값과의 오차 |
|---|---|---|
| 1 | 1.5 | 8.6×10−2 |
| 2 | 1.4166667 | 2.5×10−3 |
| 3 | 1.4142157 | 2.1×10−6 |
| 4 | 1.4142136 | 1.6×10−12 |
오차가 8.6×10−2 → 2.5×10−3 → 2.1×10−6 → 1.6×10−12처럼 대략 제곱씩 줄어듭니다. 이를 이차수렴이라고 하며, 맞는 숫자의 자릿수가 한 번 반복할 때마다 대략 두 배가 됩니다. 이것이 이분법이 한 번에 구간을 절반씩만 줄이는 것에 비해 훨씬 빠른 이유입니다.
어디에 쓰나. 비선형 방정식, 비선형 연립방정식(도함수 자리에 야코비 행렬), 최적화(f′ = 0을 찾는 형태, 헤세 행렬 사용), 통계 모형의 최대가능도 추정 등에서 널리 쓰이는 방법입니다. 1차 도함수만 쓰는 경사하강법과 달리 곡률 정보까지 쓰기 때문에 반복 횟수가 적게 듭니다.
실패하는 경우.
- f′(xn)이 0이거나 0에 가까우면 나눗셈이 불안정해집니다.
- 초기값이 해에서 멀면 발산하거나 엉뚱한 해로 갑니다.
- 해가 중근이면 수렴이 이차에서 느려집니다.
- 순환에 빠질 수도 있습니다. f(x) = x³ − 2x + 2에서 x0 = 0으로 시작하면 0 → 1 → 0 → 1 → …로 영원히 오갑니다(코드로 확인).
논문에는 이렇게 적는다
수치해석 결과를 보고할 때는 재현에 필요한 설정을 적습니다.
- 초기값 x0과 선택 근거.
- 종료 조건(허용오차, 최대 반복 횟수)과 실제 반복 횟수.
- 도함수를 해석식으로 썼는지, 수치미분(유한차분)으로 근사했는지.
- 사용한 소프트웨어와 함수(예: SciPy의
scipy.optimize.newton). - 해가 여러 개일 때 여러 초기값으로 시험한 결과.
비선형 방정식은 뉴턴-랩슨법으로 풀었고, 초기값은 1.0, 종료 조건은 |xn+1 − xn| < 10−8, 최대 반복 횟수는 50으로 하였다. (형식을 보여 주기 위한 가상의 문장입니다.)
논문에서는 이렇게 쓰입니다
실제 논문에서
이 용어를 직접 쓴 국내 논문 문장을 아직 수집하지 못했습니다. 수집되는 대로 출처와 함께 싣겠습니다.
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
이 문장은 손으로 풀 수 있는 공식이 없는 방정식의 답을, 컴퓨터로 반복 계산을 여러 번 돌려서 근사적으로 찾아냈다는 뜻입니다. 통계학의 최대우도추정에서 우도함수를 최대화하는 값을 구하거나, 공학에서 복잡한 방정식의 해를 구할 때도 이 방법이 널리 쓰입니다.
전력공학에서 대규모 비선형 연립방정식을 빠르게 풀기 위해 이 방법이 표준적으로 쓰이는 사례를 보여줍니다.
통계학·머신러닝에서 모형의 파라미터를 우도 최대화 방식으로 추정할 때 이 방법이 활용되는 예시입니다.
조금 더 깊게 보면
뉴턴-랩슨법은 목적함수를 2차 근사(테일러 전개)한 뒤 그 근사식의 최솟값 또는 근을 구하는 과정을 반복하는 것으로 이해할 수 있으며, 이 때문에 함수가 매끄럽고 시작점이 실제 해에 충분히 가까우면 다른 방법보다 훨씬 빠르게(이차수렴, quadratic convergence) 답에 도달합니다.
다변수 문제로 확장하면 1차 미분 대신 자코비안 행렬과 헤시안 행렬을 사용하게 되며, 이 행렬을 매 반복마다 계산하는 비용이 크다는 점이 실무적 한계로 지적됩니다. 이런 계산 비용을 줄이기 위해 준뉴턴법(quasi-Newton method)처럼 행렬을 근사적으로 갱신하는 변형 기법들이 함께 논의되는 경우가 많습니다.
주의할 점
뉴턴-랩슨법은 시작점을 잘못 잡거나 함수의 미분값이 0에 가까운 지점을 지나면 답으로 수렴하지 않고 엉뚱한 방향으로 발산할 수 있습니다. 그래서 실제로는 시작값을 신중히 고르고, 반복 횟수에 제한을 두어 사용하는 경우가 많습니다.
헷갈리기 쉬운 용어
근을 찾거나 값을 최적화하는 반복법들은 쓰는 정보가 다릅니다.
| 방법 | 쓰는 정보 | 특징 |
|---|---|---|
| 뉴턴-랩슨법 | 함수값과 1차 도함수 | 빠르지만(이차수렴) 시작점과 도함수에 민감 |
| 이분법 | 부호가 바뀌는 구간 | 느리지만 구간 안에 근이 있으면 반드시 수렴 |
| 할선법 | 함수값(도함수 없이 두 점의 기울기) | 도함수를 몰라도 되나 뉴턴법보다 약간 느림 |
| 경사하강법 | 1차 도함수(기울기) | 곡률을 안 써서 반복이 더 많이 필요한 편 |
참고 문헌
- Burden, R. L., & Faires, J. D. (2010). Numerical Analysis (9th ed.). Brooks/Cole.
- Press, W. H., Teukolsky, S. A., Vetterling, W. T., & Flannery, B. P. (2007). Numerical Recipes: The Art of Scientific Computing (3rd ed.). Cambridge University Press.
- Ypma, T. J. (1995). Historical development of the Newton–Raphson method. SIAM Review, 37(4), 531–551.
- Nocedal, J., & Wright, S. J. (2006). Numerical Optimization (2nd ed.). Springer.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.