読者です 読者をやめる 読者になる 読者になる

理系男子の独り善がり

仕事や生活に役立ちそうな(実際に役立つかは別として)数学・物理ネタをつらつらと書いていこうと思ってます.

ニュートン法の補足(数値解がずれてしまうこと)

Math

以前,少し触れていた内容です.元ネタは↓
miwotukusi.hatenablog.jp

脚注の中で,「極値の近くなどでは,期待どおりの解に到達できない場合もあります.」と記していました.その具体例となぜそんなことになるのかを以下に示します.

調べ方

以下のような処理を実行し,もとの関数のグラフとニュートン法により得られた数値解を一緒に描いています.*1

  1. 調べたい区間を指定します.いまの例では, -0.5 \leqq x \leqq 0.5としています.
  2. この区間を 0.001の幅に区切ります.それぞれの点の x座標は, \displaystyle{ x_i = -0.5 + \frac{i}{1000} } \ \ (i=0, 1, \  \ldots \  , 1000)と表されます.
  3. この  x_iニュートン法の初期値として与え,数値解を求めます.その値を y座標としてプロットし、それらを線で繋ぎます.(赤色の実線)
  4. 最後に,もとの関数のグラフと零点(y座標が 0となる点)を表示します.(緑色の破線)

もとの関数を  y = 200(x-0.1)x(x+0.1)という 3次関数として与えた結果が,下図になります.*2


極値の周りで

数値解が近い方ではない「(原点をはさんで)反対側」の解を指していることがわかります.これは,
極値の近辺で「1回目の近似となる」接線を引いたとき,x軸との交点が反対側の解に近い点となってしまうために起きています.よーく見ると,極値よりも少し原点寄り(接線が反対側へ伸びていく範囲)で,その現象が起きていることが見てとれます.

*1:「どっちが大きい?」のときと,ほぼほぼ同じ手順です.

*2:200倍してるのは,高さを強調して見やすくしてるだけです.