ニュートン法 その1

今回はニュートン法(Newton's method, Newton-Raphson method)のお話です
これは非線形方程式を数値的に解く代表的なアルゴリズムです
探索範囲内で対象関数の微分が可能であれば適用できますが,解が得られない場合もある点に注意しましょう('A`)
Maximaにはニュートン法のパッケージが実装されていますので使ってみます
newton.wxm

%o1にてパッケージ"newton1"をロードします(画面出力は省略)
方程式fを%o2式に示します("= 0"の表記を省略しています)
fを x = 0〜5 の範囲で%t3にプロットします
これより,f = 0 の解は3から4の間に少なくとも一つあることが解ります
関数newtonを使って数値解を一次探索します(初期値は3)
得られた数値解を%o4式に示します


http://cdn-ak.f.st-hatena.com/images/fotolife/r/ryooji_f/20120124/20120124002412.png
4次方程式の解を直接解いた結果を%o5式に示します
4番目の解をfloat表示します
%o4式では十分な精度の数値解が得られていることが解ります



同様に,方程式・プロット・数値解・残差を%o7〜%o9式に示します
%o10式にて残差が小さいことより,十分な精度の数値解が得られていることが解ります



同様に,方程式・プロット・数値解・残差を%o11〜%o13式に示します
%o14式にて残差が小さいことより,十分な精度の数値解が得られていることが解ります