Excelのサンプルソフトウエアを作成していますので、ダウンロードしていただくとわかりやすいと思います。 また、本サンプルはマクロを用いていますので、そちらもご参考いただければと思います。

1.ニュートン法概要

ニュートン法は、連続かつ微分可能な関数f(x)について、f(x)=0となるxの値を、 初期値を指定し、反復計算することで求める方法です。ただし、解は近似解になります。

初期値を指定することから、あらかじめどの辺りに解があるか?を知っておくことが重要になります。


ここからは、ニュートン法の概要について見ていきます。

下図1-1のような関数f(x)が与えられています。


ニュートン法の計算
図1-1 ニュートン法の計算

関数f(x)がx軸と交わる近傍のxの値を初期値x0に設定します。

このとき、点(x0,f(x0))での接線は、


初期値でのy座標

で与えられます。

この接線がx軸と交わる点をx1とすると、


接線とx軸との交点

で与えられます。

これをx1、x2、x3・・・xiと繰り返せば、 図1-1のように徐々にf(x)=0の解に近づいていきます。

ところで、どこまで反復計算させればよいか?を指定しなければなりません。 指定しなければ、解の真値とxiが完全に一致するまで繰り返し計算を行ってしまいます (実際はコンピュータの計算精度までになりますが...)。

そこで、f(x)=0の近似解として納得いくf(xi)=α(≒0)の値を境界値として設定します。 このαを収束判定指数と呼びます。

このαを閾値として、以下の条件を満たす最大のxiを、f(x)=0の近似解とします。


収束判定

以上がニュートン法による近似解の計算方法になります。


この作業手順を図1-2のフロー図に示します。


ニュートン法の手順
図1-2 ニュートン法の手順

ところで、ニュートン法は万全ではなく、必ず解が得られるわけではありません。

上図1-2の計算ループ時においてf(xi)≦αを満たせない場合、収束解を得ることはできません。 この点については後述します。


2.初期値の設定

ニュートン法によりf(x)=0を求めるためには、 あらかじめf(x)=0を満たすxの近傍値を知っておくことが重要になります。

例えば、f(x)が3次曲線の場合、f(x)=0となるxの値は最大3個存在することになります。 その場合、どの答えが算出されるかは初期値に依存します。 よって、初期値をどこにとるべきかを事前に検討する必要があります。


ここからは、ニュートン法の概要について見ていきます。

下図1-1のような関数f(x)が与えられています。


三次方程式の解
図2-1 三次方程式の解

また、f(x)=0となるxの値がどのあたりにあるかをざっくり調べるには、 目で見て確認するのが一番手っ取り早い方法です。 その際、関数f(x)をグラフ化しておけば、f(x)=0を満たすxの値がどの辺にあるか、 あたりづけが平易に行えます。


3.解の収束判定

初期値が定まれば、それを元に図1-2のフローに従う反復計算を行うことで、近似解を求めることができます。

例としてf(x)=x2-4=0をニュートン法によって求めてみます。

収束判定指数は、例としてα=10-6とします。


関数例の解
図3-1 f(x)=x2-4

上図3-1からもわかるように、f(x)=0の解はx=±2になります。

ここで、初期値x0=3として計算してみると、


表3-1 x0=3でのf(x)=0の解
f(x)=0の解

反復計算5回目で、“x=+2”という解を得ることができます。

次に、初期値x0=-3として計算してみると、


表3-1 x0=-3でのf(x)=0の解
f(x)=0の解

となります。

これも反復計算5回目で、“x=-2”という解を得ることができます。


さらに、初期値x0=0.01として計算してみると、


表3-3 x0=-0.01でのf(x)=0の解
f(x)=0の解

となります。

この場合、反復計算は12回必要になりました。

つまり、初期値を変えれば、反復計算の回数も変わることがあります。


このような数値計算は、Excelを用いることで簡単に行えます。

Excelによるニュートン法の計算方法については、 Excelによるニュートン法の計算 で説明します。


4.ニュートン法の欠点

ニュートン法には欠点があり、必ず収束解を得られるとは限りません。

4.1.発散

f(x)の導関数f'(x)においてf'(x)=0となるxの値を初期値とした場合、 その接線はx軸と交わることはありません。 つまり初期値から計算が進展することがなくなるため、f(x)=0の解を求めることはできません。


計算の発散
図4.1-1 計算の発散

3章の例で用いた関数f(x)=x2-4の場合、x=0を初期値として設定すると、 計算は発散します。


4.2.無限ループ化

x0、x1、x2、x3が次のような条件を満たした場合、 計算は無限ループするため、f(x)=0の解を求めることができません。


計算の無限ループ化
図4.2-1 計算の無限ループ化

4.1項、4.2項のような状況になった場合は、初期値を少しずらすことで解決できることがあります。


コメント


役に立った 役に立たなかった

広告

広告募集中
サイズ:150×150

広告募集中
サイズ:150×150

広告に関するお問い合せ

イベント・学会・展示会


学べる探せる設計技術-沐エンジニアリング

Ads by Google

Ads by Google

Ads by Google


技術計算製作所のソフトウエア購入は


Vectorソフトライブラリ/ビジネス

Amazon

技術計算製作所

技術計算製作所

画像をクリックするとpdfが開きます。