ニュートン・ラプソン法
どうも~理系の助手です~
今回はExcelのプログラミングでニュートン・ラプソン法を解説したいと思います。これは解を求めるという意味では二分法と分野は同じですがアプローチが違います。
ニュートン・ラプソン法なんて奇抜な名前がありますが、式1つと考え方1つを理解出来ればなんてこと無いので頑張りましょう。
式は
式を簡単に説明するとx1の値を使ってx2を求めるこれを繰り返して解に出来るだけ近い値つまり近似値を求めて完了です。
補足して言うとx1のある3カ所をx3の時はx2が入って求める様に使います。
f( )は関数なのでsin( )とかcos( )などを使います。分数の下のfに付いてる点はミスでは無くfを1回微分した関数を使います。
考え方はイメージで言うとこんな感じです。
式を使って赤丸を求めています。
ここまでニュートン・ラプソン法そのものを説明しました。
ここからはプログラムも説明しますが、読みたい人だけ進めてください。
vbaのプログラムを載せます。
1 Sub main()
2
3 Dim i As Variant, a(10, 10) As Variant
4 a(1, 1) = 3
5 a(1, 2) = f(a(1, 1))
6 a(1, 3) = df(a(1, 1))
7
8 i = 2
9 Do
10 a(i, 1) = a(i - 1, 1) - (a(i - 1, 2) / a(i - 1, 3))
11 a(i, 2) = f(a(i, 1))
12 a(i, 3) = df(a(i, 1))
13 i = i + 1
14 If i > 10 Then
15 Exit Do
16 End If
17 Loop
18
19 End Sub
見て欲しい場所はDoの下の式です。この式が上で説明したニュートン・ラプソン法で使う式です。
3行目から6行目で1回目の処理をして8行目から17行目で繰り返し処理を行い、14行目のIfを使って処理を止めています。
プログラムをイメージ化するとこんな感じで、プログラムの4行目でa( 1 , 1 )に3が最初に入ってa( 1 , 2 )、a ( 1 , 3 )を出して3つの数字を使ってa( 2 , 1 )の値を出す。事の繰り返しをするイメージです。
最後に個人的な感想ですが、この処理をいつ使うのか全く以て思いつきません。なので二分法・ニュートン・ラプソン法を使って、こんな便利なことがありますよってことを、ここで紹介とかはしません。気になった方は自分で調べてください。あくまで課題をこなす、授業の補助的な役割でしかないと思っています。あしからず。
2021/2/8