ニュートンラフソン法

Unity学習帳2冊目ニュートンラフソン法

ニュートンラフソン法 anchor.png

追加資料:はじめMath! Javaでコンピュータ数学_第67回 微分・積分の数学 ニュートン・ラフソン法 [前編]

①\(x+{ e }^{ x }=0\)
②\({ x }^{ 2 }=5\)

この二つの方程式の未知数\(x\)をニュートンラフソンを用いて解いてみようと思う(この「仕組み」自体は何気にゲームのいろんな場面で利用されている)
ニュートンラフソンの式は非常にシンプルで以下のようになっている

\({ x }_{ n+1 }={ x }_{ n }-\frac { f\left( { x }_{ n } \right) }{ f'\left( { x }_{ n } \right) } \)

この式がどのようにして導かれるのか、はじまりは直線の方程式から来ている

点 \(\left( \alpha ,\beta \right)\) を通る傾き \(m\) の直線の方程式は \(y=m\left( x-\alpha \right) +\beta \)
これを変形すると \(y-\beta =m\left( x-\alpha \right) \)

例えば点 \(\left( \alpha =3,\beta =5 \right)\) を通る、傾き \(m=\frac { 1 }{ 2 }\) の直線は \( y=\frac { 1 }{ 2 } \left( x-3 \right) +5\) となる
grp1.png

\(y=\frac { 1 }{ 2 } \left( x-3 \right) +5\quad\) と \(y=0\quad\) との連立方程式を\(x\)に対して解くことにより…
\(0=\frac { 1 }{ 2 } \left( x-3 \right) +5\quad \Leftrightarrow \quad \frac { 1 }{ 2 } x-\frac { 3 }{ 2 } +5=0\quad \Leftrightarrow \quad \frac { 1 }{ 2 } x=\frac { 3 }{ 2 } -5\quad \Leftrightarrow \quad \frac { 1 }{ 2 } x=-\frac { 7 }{ 2 } \quad \Leftrightarrow \quad x=-7\)
グラフ上の両グラフ線の交点が求まる。これを踏まえたうえで
oneday.png

この「直線の方程式」を「微積分を利用した関数」で考えると

\(y=f\left( x \right) のx=\alpha\) における接線の傾きは \(m=f'\left( \alpha \right) \)

関数 \(y=f\left( x \right)\) 上の点 \(\left( \alpha ,f\left( \alpha \right) \right)\) における接線の方程式は

\(y=f'\left( \alpha \right) \left( x-\alpha \right) +f\left( \alpha \right) \)

これを変形すると

\(y-f\left( \alpha \right) =f'\left( \alpha \right) \left( x-\alpha \right) \quad \quad \cdots ③ \)

となる。この③式は「接線の方程式」と呼ばれるもので非常に有名な公式なので微積分と一緒に覚えておいた方が良い

この式を約分して式変形すると \(\frac { y-f\left( \alpha \right) }{ x-\alpha } =f'\left( \alpha \right) \) となる

ここで \(y=f\left( x \right)\) とするならば、この式は \(\frac { f\left( x \right) -f\left( \alpha \right) }{ x-\alpha } =f'\left( \alpha \right) \) となり、この\(x\)を\(b\)に変えると \(\frac { f\left( b \right) -f\left( \alpha \right) }{ b-\alpha } =f'\left( \alpha \right) \) になる

さらに、この式に「極限」\(\displaystyle \lim _{ b\rightarrow \alpha }{ } \)を加えると \(\displaystyle f'\left( \alpha \right) =\lim _{ b\rightarrow \alpha }{ \frac { f\left( b \right) -f\left( \alpha \right) }{ b-\alpha } } \) という微分で見慣れた式となる。つまり③式は微分の式を極限なしに変形しているものだという事を強く意識した方が良いという事になっている

ここで上記の微分の式を利用して①の問題を解くことを考えてみる。これからやりたい事は以下の動画イメージになる。青い線が求めたい関数が描くグラフ。赤い線が接線の方程式で描いたグラフ
赤い点が青い点に近づいていき、重なった後、またゆっくり離れていく様子に注目してほしい
目的は求めたい関数のy=0とのxに対する連立方程式の解。つまり青い点の\(x\)位置が知りたい

Animation2.gif

\(
これはニュートンラフソンの式を漸化式として数回演算することで求められる\\ \\ { x }_{ n+1 }={ x }_{ n }-\frac { f\left( { x }_{ n } \right) }{ f'\left( { x }_{ n } \right) } \\ \\ この式は、実は微分の式の変形とy=0との連立方程式から導かれている\\ 微分の式を再確認すると以下になる\\ \\ \lim _{ b\rightarrow \alpha }{ \frac { f\left( b \right) -f\left( \alpha \right) }{ b-\alpha } =f'\left( \alpha \right) } \\ \\ この微分の式の極限が無い状態を考える。右辺が傾きを表す式である事を近似で考えると\\ \\ \frac { f\left( b \right) -f\left( \alpha \right) }{ b-\alpha } \simeq f'\left( b \right) \\ \\ と表現できる。記号「\simeq 」は近似を表す\\ 右辺の「到達している傾きの位置」が違う点に留意。極限を使うとbは\alpha に限りなく近づくのでf'\left( \alpha \right) となる\\ しかし、極限を利用しないとf'\left( b \right) となる。これはよくよく考えると当たり前のことを言っている\\ でも、これはよくやりやすい勘違いなので注意してほしい。極限なしで平均値の算出で考えを進めると以下になる\\ \\ f'\left( b \right) \simeq \frac { f\left( b \right) -f\left( \alpha \right) }{ b-\alpha } \\ \\ \quad \Leftrightarrow \quad f'\left( b \right) \left( b-\alpha \right) \simeq f\left( b \right) -f\left( \alpha \right) \quad \Leftrightarrow \quad \quad f'\left( b \right) b-f'\left( b \right) \alpha \simeq f\left( b \right) -f\left( \alpha \right) \\ \Leftrightarrow \quad \quad f'\left( b \right) b\simeq f\left( b \right) -f\left( \alpha \right) +f'\left( b \right) \alpha \quad \Leftrightarrow \quad \quad b\simeq \frac { f\left( b \right) -f\left( \alpha \right) +f'\left( b \right) \alpha }{ f'\left( b \right) } \quad \Leftrightarrow \quad \quad b\simeq \frac { f\left( b \right) }{ f'\left( b \right) } -\frac { f\left( \alpha \right) }{ f'\left( b \right) } +\alpha \\ \Leftrightarrow \quad \quad b-\frac { f\left( b \right) }{ f'\left( b \right) } \simeq \alpha -\frac { f\left( \alpha \right) }{ f'\left( b \right) } \\ \\ ここで、f(\alpha )=0との連立方程式を\alpha に対して解くと考える(bが\alpha に近づいていく)\\ \\ b-\frac { f\left( b \right) }{ f'\left( b \right) } \simeq \alpha -\frac { 0 }{ f'\left( \alpha \right) } \quad \Leftrightarrow \quad \quad \alpha \simeq b-\frac { f\left( b \right) }{ f'\left( b \right) }
\)
grp.png


添付ファイル:

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Last-modified: 2016-11-09 (水) 18:38:42 (JST) (2725d) by osinko