7 それぞれの方法の比較

7.1 解への収束速度

8に、これまでに示した4つの方法の解への近づき具合を 示す。ニュートン法と割線法が収束が早いことが分る。先に示した通り二次収束になって いる。一方、二分法とはさみうち法は一次収束であることがグラフより分かる。二分法は、 10回の計算で、 $ 2^{-10}=1/1024$程度になっていることに気づいてほしい。はさみうち法 は、二分法を改良したにもかかわらず、それよりも収束の速度が遅くなっている。これは、 初期値が悪いためで、それを改善すれば、二分法よりも早く収束するはずである。

ニュートン法や割線法は収束が早く良さそうであるが、次に示すように解へ収束しない場 合があり問題を含んでいる。問題に応じて、計算方法を使い分けるべきである。

図 8: 計算回数(反復回数)と誤差の関係
\includegraphics[keepaspectratio, scale=0.7]{figure/Graph/speed_comv.eps}

7.2 ニュートン法の問題点

アルゴリズムから、二分法とはさみうち法は解に必ず収束する4。これらの方法は、収束のスピー ドが遅いのが欠点である。一方、ニュートン法と割線法は収束するとは限らない。初期条 件に依存する場合がある。厳密にその条件を求めるのは大変なので、初期条件により収束 しない実例を示すことにする。

非線形方程式

$\displaystyle 3\tan^{-1}(x-1)+\frac{x}{4}=0$ (14)

を計算することを考える。これは、初期値のより、収束しない場合がある。例えば初期値 $ x_0=3$の場合、図9のように収束しない5。これを初期値$ x_0=2.5$にすると図10のように収束す る。

このようにニュートン法は解に収束しないで、振動する場合がある。こうなると、プログ ラムは無限ループに入り、永遠に計算し続ける。これは資源の無駄遣いなので、慎むべき である。通常は、反復回数の上限を決めて、それを防ぐ。ニュートン法を使う場合は、こ の反復回数の上限は必須である。

ニュートン法で収束する必要条件が分かればこの問題は解決する。しかし、それを探すの は大変である。というか私には分からない。一方、十分条件は簡単にわかる。閉区間 $ [a,\,b]$で、 $ f(a)<0,\,f(b)>0$ のような関数を考える。このとき、

は、必ず収束する。ニュートン法の図から明らかである。 $ f(a)>0,\,f(b)<0$ の場合は、 $ f(x)$に-1倍すれば、先の十分条件を考えることができる。

実際には収束しない場合のほうが稀であるので、ニュートン法は非常に強力な非線型方程 式の解法である。ただ、反復回数を忘れないことが重要である。また、二分法と組み合わ せて使うことも考えられる。

図 9: ニュートン法で解が求まらない場合
\includegraphics[keepaspectratio, scale=0.7]{figure/comv_hasan/hasan.eps}
図 10: ニュートン法で解が求まる場合
\includegraphics[keepaspectratio, scale=0.7]{figure/comv_hasan/comb.eps}



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年6月24日


no counter