ニュートン・ラプソン(Newton-Raphson)法の基礎
ニュートン・ラプソン(Newton-Raphson)法はとなる解を近似的に求める方法であり,解析的に解を求めることが困難な場合の有効な手法です. 図1を例に考えると,の近似解を求めることが今回の目標となるわけです!ニュートン法を用いて,という具合で近似解を求めます.
step1:
適当に初期値を決め,におけるの接線(緑)を求める.
step2:
step1で求めた接線と軸との交点を求め,におけるの接線(水色)を求める.
step3:
以下同様に,step1,2の操作を繰り返す.
における接線を求める接戦と軸との交点を求める.における接線を求める.
step4:
あるに対して,との差の絶対値が限りなく小さくなった時,をの近似解とする.
以下にニュートン法のサンプルコードを記載します.ネットではC言語での実装が多かったので,Pythonでコードを書きました.
初期値として,の近似解を求めてみました.
from sympy import Symbol,diff,sympify import math f=input('式を入力してください:') a=int(input('初期値を入力してください:')) eps=1.0e-5 max=10 count=0 x=Symbol('x') f = sympify(f) df=diff(f,x) for i in range(0,max): newa = a-(f.subs({x:a})/df.subs({x:a})) print(round(a,6)) if abs(a-newa)<eps: a=newa break a=newa count=count+1 if(count==max): print('収束しません') print('反復回数は{0}回です.'.format(count))
式を入力してください:x*x*x-2 初期値を入力してください:3 3 2.074074 1.537691 1.307076 1.261602 1.259923 反復回数は5回です.
Newton-Raphson 法の簡単な修正法として,Fisher のスコア法というものがあります.Newton-Raphson 法,Fisherのスコア法は確立分布のパラメータ推定に役に立ちます.
近々,Newton-Raphson 法,Fisherのスコア法さらにEMアルゴリズムを用いて,確立分布のパラメータ推定について取り上げた記事を書きたいと思います.
ここまで読んでいただいてありがとうございました.ではまた!