뉴튼-랩슨 방법
미분가능한 함수 f(x)의 해를 수치적으로 접근해 근사해를 구하는 방법
컴퓨터를 이용해 계산한다.
과정 및 공식
-
f(x)의 한 점 ( a, f(a) ) 에서 접선의 기울기를 갖는 f`(x)의 절편을 찾는다.
이 절편이 (b, 0)이라고 하자.
-
b에서의 함수 값 f(b)가 0에 근접한지 판단한다.
-
만약 허용오차 안이라면 근사해로 채택
아니라면 점 ( b, f(b) ) 에서 다시 1~3 과정 반복
x_n = x_{n-1} -
\dfrac{f(x_{n-1})}
{f^{\prime}(x_{n-1})}
주의할 점
- 초기값에 따라 근사해가 달라질 수 있다.
- 경우에 따라 발산하는 경우도 있다.
파이썬 구현
python
import sympy as sp
x = sp.symbols('s')
f_x = x**2 - 4
f_prime = sp.diff(f_x)
x_init = 5
Tolerance = 1e-6
x_tmp = x_init
i = 0
while True:
i += 1
a = float(f_x.subs(x, x_tmp)) / float(fp_x.subs(x, x_tmp))
x_numeric = float(x_tmp) - a
error = f_x.subs(x, x_numeric)
if error <= tolerance:
break
x_tmp = x_numeric
print('반복횟수 :' + str(i))
print("근사해 :" + str(x_numeric))