뉴턴 방법

수치해석학에서 뉴턴 방법(영어: Newton's method)은 실숫값 함수의 영점을 근사하는 방법의 하나이다. 뉴턴-랍슨 방법(영어: Newton–Raphson method)이라고도 불린다. 연속 미분 가능 함수 f : [ a , b ] → R {\displaystyle f\colon [a,b]\to \mathbb {R} } 가 영점 x ^ ∈ ( a , b ) {\displaystyle {\hat {x}}\in (a,b)} 를 갖는다고 하자. 또한, f ′ ( x ^ ) ≠ 0 {\displaystyle f'({\hat {x}})\neq 0} 라고 하자. 그렇다면, 다음을 만족시키는 열린집합 x ^ ∈ U ⊆ ( a , b ) {\displaystyle {\hat {x}}\in U\subseteq (a,b)} 가 존재한다. 임의의 x 0 ∈ U {\displaystyle x_{0}\in U} 에 대하여, 수열 x n + 1 = x n − f ( x n ) / f ′ ( x n ) {\displaystyle x_{n+1}=x_{n}-f(x_{n})/f'(x_{n})} ( n ∈ { 0 , 1 , 2 , … } {\displaystyle n\in \{0,1,2,\dots \}} )은 x ^ {\displaystyle {\hat {x}}} 로 수렴한다. 이를 통해 영점 x ^ {\displaystyle {\hat {x}}} 를 근사하는 방법을 뉴턴 방법이라고 한다. 반복 계산을 정지하기 위한 정지조건은 할선법에서 사용된 것 중 하나가 쓰인다. 뉴턴 방법은 매우 효과적인 방법이지만 초기 가정치 x 0 {\displaystyle x_{0}} 를 근에 충분히 가깝게 하지 않으면 수렴하지 않는다는 단점이 있다. 또한 접선이 거의 수평인 즉 f ′ ( x 0 ) ≈ 0 {\displaystyle f'(x_{0})\approx 0} 인 x 0 {\displaystyle x_{0}} 를 선택해선 안 된다. 만약 f {\displaystyle f} 가 2번 연속 미분 가능 함수라면, 점렬의 항과 영점 사이의 오차에 대하여 다음을 만족시키는 상수 c {\displaystyle c} 가 존재한다. | x n + 1 − x ^ | ≤ c | x n − x ^ | 2 {\displaystyle |x_{n+1}-{\hat {x}}|\leq c|x_{n}-{\hat {x}}|^{2}} 만약 f {\displaystyle f} 가 2번 연속 미분 가능 함수라면, 만약 임의의 x ∈ U {\displaystyle x\in U} 에 대하여 f ′ ( x ) f ″ ( x ) < 0 {\displaystyle f'(x)f''(x)<0} 라면, ( x n ) n = 0 ∞ {\displaystyle (x_{n})_{n=0}^{\infty }} 은 증가 수열이다. 만약 임의의 x ∈ U {\displaystyle x\in U} 에 대하여 f ′ ( x ) f ″ ( x ) > 0 {\displaystyle f'(x)f''(x)>0} 라면, ( x n ) n = 0 ∞ {\displaystyle (x_{n})_{n=0}^{\infty }} 은 감소 수열이다. x2 = a를 만족하는 양수 x를 구해서 결국 a의 루트값을 구해보자. 뉴튼방법은 루트값을 구하는 여러 가지 계산법 중에 하나이다. 루트를 구하는 이 문제를 다음과 같이 함수 f(x) = x2 − a의 해를 구하는 문제로 생각할 수 있다. 1차 미분은 f′(x) = 2x로 주어진다. 612의 루트값을 계산하는 경우를 다뤄보자. 초기값을 x0 = 10로 하고, 뉴튼법을 적용하면 다음과 같다: x 1 = x 0 − f ( x 0 ) f ′ ( x 0 ) = 10 − 10 2 − 612 2 × 10 = 35.6 x 2 = x 1 − f ( x 1 ) f ′ ( x 1 ) = 35.6 − 35.6 2 − 612 2 × 35.6 = 2 _ 6.395 505 617 978 … x 3 = ⋮ = ⋮ = 24.7 _ 90 635 492 455 … x 4 = ⋮ = ⋮ = 24.738 6 _ 88 294 075 … x 5 = ⋮ = ⋮ = 24.738 633 753 7 _ 67 … {\displaystyle {\begin{matrix}x_{1}&=&x_{0}-{\dfrac {f(x_{0})}{f'(x_{0})}}&=&10-{\dfrac {10^{2}-612}{2\times 10}}&=&35.6\qquad \qquad \qquad \quad \;\,{}\\x_{2}&=&x_{1}-{\dfrac {f(x_{1})}{f'(x_{1})}}&=&35.6-{\dfrac {35.6^{2}-612}{2\times 35.6}}&=&{\underline {2}}6.395\,505\,617\,978\dots \\x_{3}&=&\vdots &=&\vdots &=&{\underline {24.7}}90\,635\,492\,455\dots \\x_{4}&=&\vdots &=&\vdots &=&{\underline {24.738\,6}}88\,294\,075\dots \\x_{5}&=&\vdots &=&\vdots &=&{\underline {24.738\,633\,753\,7}}67\dots \end{matrix}}} 여기서 참값과 같은 부분의 숫자는 밑줄이 그어져있다. 많지 않은 몇번의 반복을 통해 매우 정확한 루트값이 계산되는 것을 볼 수 있다. 위의 반복 수식을 아래와 같이 재배열하면 루트를 구하는 바빌로이안 방법을 얻는다: x n + 1 = x n − f ( x n ) f ′ ( x n ) = x n − x n 2 − a 2 x n = 1 2 ( 2 x n − ( x n − a x n ) ) = 1 2 ( x n + a x n ) {\displaystyle x_{n+1}=x_{n}-{\frac {f(x_{n})}{f'(x_{n})}}=x_{n}-{\frac {x_{n}^{2}-a}{2x_{n}}}={\frac {1}{2}}{\biggl (}2x_{n}-{\Bigl (}x_{n}-{\frac {a}{x_{n}}}{\Bigr )}{\biggr )}={\frac {1}{2}}{\Bigl (}x_{n}+{\frac {a}{x_{n}}}{\Bigr )}} 즉, 루트를 구하는 뉴튼법은 결국 현재 추측한 루트값의 xn 과 a/xn의 산술_평균을 반복적으로 적용한 것이다. cos(x) = x3을 만족하는 x를 구하는 문제를 생각해보자. 이 문제는 f(x) = cos(x) − x3이 0이 되는 해를 찾는 문제로 바뀔 수 있다. 1차 미분은 f′(x) = −sin(x) − 3x2로 주어진다. 모든 x에 대해 cos(x) ≤ 1 이고 x > 1에 대해 x3 > 1이므로, 이 함수가 0이되는 구간은 0과 1사이라는 것을 알 수 있다. 초기 추정해를 x0 = 0.5라 하고 뉴튼방법을 적용하면 (초기값을 0으로 선택하면 미분값이 0이 되고, 0으로 나누기 연산을 해서 계산이 실패한다. 즉, 무한대값이 발생한다. 뉴튼방법에서 초기값 선택은 해로 수렴하는데 큰 영향을 미친다) 아래와 같은 결과를 얻는다: x 1 = x 0 − f ( x 0 ) f ′ ( x 0 ) = 0.5 − cos ⁡ 0.5 − 0.5 3 − sin ⁡ 0.5 − 3 × 0.5 2 = 1.112 141 637 097 … x 2 = x 1 − f ( x 1 ) f ′ ( x 1 ) = ⋮ = 0. _ 909 672 693 736 … x 3 = ⋮ = ⋮ = 0.86 _ 7 263 818 209 … x 4 = ⋮ = ⋮ = 0.865 47 _ 7 135 298 … x 5 = ⋮ = ⋮ = 0.865 474 033 1 _ 11 … x 6 = ⋮ = ⋮ = 0.865 474 033 102 _ … {\displaystyle {\begin{matrix}x_{1}&=&x_{0}-{\dfrac {f(x_{0})}{f'(x_{0})}}&=&0.5-{\dfrac {\cos 0.5-0.5^{3}}{-\sin 0.5-3\times 0.5^{2}}}&=&1.112\,141\,637\,097\dots \\x_{2}&=&x_{1}-{\dfrac {f(x_{1})}{f'(x_{1})}}&=&\vdots &=&{\underline {0.}}909\,672\,693\,736\dots \\x_{3}&=&\vdots &=&\vdots &=&{\underline {0.86}}7\,263\,818\,209\dots \\x_{4}&=&\vdots &=&\vdots &=&{\underline {0.865\,47}}7\,135\,298\dots \\x_{5}&=&\vdots &=&\vdots &=&{\underline {0.865\,474\,033\,1}}11\dots \\x_{6}&=&\vdots &=&\vdots &=&{\underline {0.865\,474\,033\,102}}\dots \end{matrix}}} 여기서 참값과 같은 부분의 숫자는 밑줄이 그어져있다. 구해진 x6값은 소숫점아래 12자리까지 참값과 같다. 위의 계산예에서 2자리까지 참값과 일치하는 x3가 이어지는 계산에서 5자리, 10자리로 일치하는 이차수렴(quadratic convergence)속도를 보이는 것을 알 수 있다. 아래 프로그램은 뉴튼방법을 쥴리아 언어로 구현한 것으로 미분값 fprime을 갖는 함수 f의 근을 구한다. 근의 초기값은 x0 = 1으로 설정되었고 함수는 f(x) = x2 − 2 미분은 f′(x) = 2x이다. 뉴튼 방법이 매번 반복될 때마다 갱신되는 값은 x1이다. 반복 계산할 때마다 분수의 나눠지는 분모부분이 (yprime) 너무 작아지지 않는지 (epsilon보다 더 작아지지 않는지) 확인한다. 즉, f′(xn) ≈ 0이 발생하면 큰 수치오차가 발생한다. x0 = 1 # The initial guess f(x) = x^2 - 2 # The function whose root we are trying to find fprime(x) = 2x # The derivative of the function tolerance = 1e-7 # 7 digit accuracy is desired epsilon = 1e-14 # Do not divide by a number smaller than this maxIterations = 20 # Do not allow the iterations to continue indefinitely solutionFound = false # Have not converged to a solution yet for i = 1:maxIterations y = f(x0) yprime = fprime(x0) if abs(yprime) < epsilon # Stop if the denominator is too small break end global x1 = x0 - y/yprime # Do Newton's computation if abs(x1 - x0) <= tolerance # Stop when the result is within the desired tolerance global solutionFound = true break end global x0 = x1 # Update x0 to start the process again end if solutionFound println("Solution: ", x1) # x1 is a solution within tolerance and maximum number of iterations else println("Did not converge") # Newton's method did not converge end 이분법 (수학) 할선법 Abdelwahab Kharab & Ronald B. Guenther 2013, 65-66쪽. harv error: 대상 없음: CITEREFAbdelwahab_KharabRonald_B._Guenther2013 (help) Abdelwahab Kharab & Ronald B. Guenther 2013, 67-68쪽. harv error: 대상 없음: CITEREFAbdelwahab_KharabRonald_B._Guenther2013 (help) Abdelwahab Kharab; Ronald B. Guenther (2013). 《An Introduction to Numerical Methods A MATLAB Approach》 [이공학도를 위한 수치해석]. 학산미디어. ISBN 978-89-966211-8-8.  위키미디어 공용에 관련된 미디어 분류가 있습니다. 뉴턴 방법