이제부터 secant method (할선법)에 대하여 알아보겠습니다. secant method는 지난 글에서 알려드린 bisection method(단일 비선형 방정식의 해와 Bisection method)의 단점을 보완할 수 도있는 방법입니다.이번글에서는 bisection method의 단점을 알아본후에 secant method에 대해 알아보겠습니다.
Secant method (할선법)
bisection method에 단점에 대해 알아보자. 오차를 좀더 줄이기 위해서는 좀더 많은 iteration 이 필요하다. 즉 convergence speed가 굉장히 느리다는 얘기이다. 예를들어 $10^6$정도까지 더 자세히 맞추고 싶다고 하자. 즉 여섯자리까지 맞추는건데. 여섯자리까지 맞추기 위해서는 $m = \frac{6}{\log_10 2 } \approx =20$정도의 $f$의 값을 구해야 한다. 각각의 evalulation이 비싸다고 할 때, shooting method 처럼( 비선형 문제들(Nonlinear problems) 과 shooting 방법 ) evaluationg을 위한 숫자들을 최소화 하고 싶다.
bisection method를 빠르게 하는 방법은 $f$의 함수값들을 사용하고(부호를 사용하는 대신) , 이 정보를 활용하는 가장 쉬운 방법은 $f$의 도메인에서 $x_i$와 $x_{i-1}$를 잇는 직선을 구하고 이 직선이 0를 지나는 $x_{i+1}$를 구하는 것이다.이러한 방식은 Figure 5.4에 나온다.
약간 favorable situation 에서 $x_{i+1}$이 root와 근사되는것을 확인할 수 있다. 이점은 bisection method보다 더 좋게 근사를 하는 편이다. 위와 같이 직선을 이어서 root를 찾는 방식을 linear interpolation 이라고들 한다.
Linear interpolation을 위한 linear interpolating function은 아래와 같이 생겼다.
$$ l(x) = \frac{x-x_{i-1}}{x_i-x_{i-1}} f(x_i) – \frac{x-x_i}{x_i-x_{i-1}} f(x_{i-1})$$
그리고 linear function root는 아래와 같다.
$$x_{i+1} = \frac{x_{i-1}f(x_i) – x_i f(x_{i-1}) } { f(x_i) – f(x_{i-1})}$$
bisection method에서 했던것 처럼 $x_{i+1}$를 $x_{i}$ 또는 $x_{i-1}$의 부호만을 관찰해서 구해낼수도 있다. 이러한 방법은 regula falsi method라고도 부른다. 대안적으로 secant method 에서는 linear interpolation을 이용해서 $x$들을 구해나갈 수 있다. 선택한 이전의 두점이 어떤부호를 상관없이 간에 진행할 수 있다.
그리고 interpolation 을 이용한 root는 아래와 같이 구할 수 있다.
$$x_{i+1} = x_i – \frac{ f(x_i)}{d_i}, d_i = \frac{f(x_i) – f(x_{i-1})}{x_i-x_{i-1}}$$
이것은 쉽게확인될수있다.