[数値解析]エクセルVBAによるニュートン法の実装
概要
非線形方程式の有効な解法の1つにNewton法というものがある。 今回は、関数f(x)=xe x に対し数値解析を行った。

反復計算により関数f(x)=0解を求める
- ニュートン法
- 収束条件
- エクセルVBAによる実装
目次
ニュートン法
ある関数の解をα、それの近似値をx iと置くと関数f(x)のx=α近傍でのテイラー展開は以下のようになる。

(1-1)
ここで、(α-x i )が十分に小さい時、式1-1の右辺の第3項以降は無視できる。 さらにf(α)=0を用いると、以下のようになる。

これにより、概要で示したNewtonの反復公式が得られる。

(1-3)
収束条件
Newtonの反復公式の右辺を次のように書く。

(2-1)
これを用いると、Newtonの反復公式が収束するための条件は、 |g ' (x)| < 1(2-2)とかける。
g ' (x)を求めると、以下のようになる。
ここで、f ' (α)≠0であれば、f(α)=0より式(2-2)を満たす。

(2-3)
エクセルVBAによる実装
概要でも書いた通り、関数f(x)=xe x -c(cは定数)に対し、Newton法で計算を行った。
今回はxe x -1=0(c=1の時)について計算を行った。
またxの初期値x 0 は10、計算完了の判定として、|x i e x i-1| < 0.0001を用いた。
計算の結果は、x=0.567である(下のエクセル)。なおこの値はf(x)=xe x の逆関数であるランベルトのw関数f -1(x)=w(x)のw(1)の場合の値と同じである。
ダウンロード
ニュートン法のプログラムが入ったエクセルマクロファイルがダウンロードできます