ニュートン-ラフソン法
Newton-Raphson method
接線と$ x 軸との交点の$ x 座標から新しい接線をとって更新していく
手続き
初期値$ x_0を適当に選ぶ
解に近いほうが計算回数が少なくできる
導関数$ f'(x) を求める
次の近似値$ x_{n+1}を漸化式$ x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}で定める
終了条件を満たすまで繰り返す
更新値の評価方法?あんも.icon
適用条件?あんも.icon
更新値が解に漸近することを示せばよい?
初期値を適切に与えればすべて見つけられる?あんも.icon
変な傾きがある場所では通り越してしまうことはありうるか?
漸化式の導出
関数$ f(x)における、ある点$ x_nでの接線:
$ f(x)-f(x_n)=f'(x_n)(x-x_n)
$ x 軸との交点の関係式を$ x について解く:
code:tex
\begin{aligned}
0-f(x_n)&=f'(x_n)(x-x_n)\\
\iff x &= x_n - \frac{f(x_n)}{f'(x_n)}
\end{aligned}
code:jl
function newtonmethod(f, f′, init=1.0; ε=1e-14, maxiteration=1000)
x1 = x0 = init
for i in 1:maxiteration
y = f(x0)
y′ = f′(x0)
abs(y′) < ε && break
x1 = x0 - y / y′
x0 = x1
end
return x1
end
newtonmethod(x -> x^2 - 2, x -> 2x, 1.414)
newtonmethod(x -> 3x^3 + x^2 + x - 2, x -> 9x^2 + 2x + 1, 0.6)