-
@ThothChildren
- 2019.3.2
- PV 867
ニュートン法による求根
ー 概要 ー
求根アルゴリズムとして有名である頻繁に使用されるニュートン法(1次元の場合)について紹介します.ニュートン法によって関数の値がゼロになる値等を算出します.探索する初期値に依存し、解は一つしか見つけられませんが、比較的高速です.導関数が適切に得られる必要があります.
この章を学ぶ前に必要な知識
なし
なし
条件
- 関数の導関数が求められること
- 探索開始の初期値が解に近いこと(遠すぎると収束しない)
効果
- 導関数が得られればどのような関数でも方程式の解が得られる
- 多次元にも適用可能
ポイント
- 得られる解は一つのみ.複数必要な場合は工夫が必要.
- f(x)=g(x)の解が求めたい場合は移項してf(x)-g(x)=0とすればよい
- 比較的高速だが初期値に強く依存
- 毎回その点での傾きから数値を傾いている方に点を動かしていく
- 二次収束となる
解 説
わかりやすいニュートン法による最適化の解説動画 | |
非線形な関数に適用できる求根アルゴリズムとして有名である頻繁に使用されるニュートン法について紹介します.ニュートン法によって関数の値がゼロになる値等を算出します(近似的に求めます).
求まる解が探索する初期値に依存しまた適切な初期値でないと収束しない(解がもとまらないこと)もあり得ます.他の球根アルゴリズムより比較的高速です
工夫がないと解は一つしか見つけられないため、何らかの方法で解を絞っていく方法が必要になります.
ニュートン法概要
反復法による解の更新によってf(x)=0になるxを求める.
毎回現在のx座標での傾きから数値を傾いている方にx座標を更新していく.
上記のように傾きを扱うため、導関数が関数から求められる必要があります. | ニュートン法による求根について |
![]() | Wikipediaより引用.
ニュートン法によって解が少しずつ近いづいていることがわかる. |
ニュートン法の更新式
解を求めるにあたり、以下の式に沿って反復計算を行う.
ニュートン法の手順
1. 適切な解に近い初期値を決める.(遠すぎると収束しないため)
2. 上記の更新式と初期値から次のを求める.
3. と更新式により新しいといった作業を繰り返し行う.
4. 十分な精度になったらを出力して処理を停止する.
この式の導出は非常に簡単である.
ニュートン法は、「解に近い点での接線」は「解となるx座標」と近いところでと交わることを利用 して解を求める.
そのため、繰り返す計算は
接線を計算してy軸との交点を求めること
となる.
一般的に接線はでの接線は以下で求められる.を代入すれば、となることが確認できる.
この接線とがと交わったとすると上記の式に代入して
となる.
が次のx座標なのでこれを求める形に変形すると
と求められ、が更新後の値、が更新前の値なので、これを漸化式のように書き換えるとはじめに示した式となる
| ニュートン法 |
ニュートン法は、解の区間で微分可能な非線形の関数に対して用いることができ、
また比較的高速な上に、高次元に対しても容易に適用できることから重宝される.
ただ、解は一つしかもとまらず、初期値に強く依存して解が決まるため、
複数の解を得るには何らかの工夫が必要となる. | ニュートン法の特徴 |
多項式の複数の解を求める方法として以下のような方法が考えられる.
多項式の複数解を全て求める
1. 多項式に対して初期値を与えてニュートン法により一つ解を求める.
2. (x-)で多項式を割る. (解なので必ず割り切れる)
3. 割った後の多項式を新しいとして1.より始める.
4. 割った後の多項式の次数が1になるまで繰り返す.
具体的には
0. 以下の式の解を全てニュートン法で求めるとする.
1. 1度目のニュートン法でが決まったとする.
2. で多項式を割ることで
を得る.
3. 上記のを新しいとして次の解を求める.
ここでと新しい解が求まったとすると,
となる.
4. 上記の式の次数は1なので
と解がであったことがわかる.
計算誤差がたまるため、精度高く解を求めないと他の解にも影響してくる. | 多項式の解をニュートン法で全て求めるには |
この章を学んで新たに学べる
求根アルゴによる非線形方程式の解 プログラムの割り算処理を早くしたい
Comments