[fpr 1636] CALISについての質問です

岡本安晴


  岡本@金沢大学です。

  豊田さんの[fpr 1635]より:

>>GCONV=0.0000001(=1E-7)と1.1175563E-6よりも小さく指定してあるのに
>>なぜこれが有効にならないで,収束の計算を途中で
>>やめてしまうのでしょう?
>
>収束基準がきびしすぎるので,すり鉢の底が,ほんのすこし
>
>〜〜〜〜〜
>
>のように波打っている状態に翻弄されているのだと思います.

  上の補足説明です。

  一般に、極値探索においては独立変数の方の精度は半減します。

  極小点(極大点)においては、1次の項は0になり、2次以上の
項で表わされる、実質的には2次関数で近似されることになります。

  f(x) = a*((x-b)**2) + c

という関数は、x=bで極小になります。ここで、記号**はべき乗を表わします。
  x=bの近傍での関数値の振る舞いを調べるためx=b+eでの値との差をとります。

  f(b+e) - f(b) = a*((b+e-b)**2) - a*((b-b)**2)
                = a*(e**2) - a*(0**2)
                = a*(e**2)

  すなわち、

  f(b+e) = f(b) + a*(e**2)

  上式より、a*(e**2)の大きさがf(b)=cの有効桁数より小さいときは

  f(b+e) = f(b)

となります。

  計算が倍精度で行われているとき、単純にいえば、

  e = 0.1**7

であれば、

  e**2 = 0.1**14

となり、倍精度の限界に近くなります。他の要因、aの大きさとか、
計算誤差の積み重ねなど、を考えると7桁の精度は危ないことが
あると予想されます。

  倍精度計算のとき、関数値の精度は倍精度に近いと考えてよいと
思いますが、最尤法など極値を求める解法においては独立変数の
方の解の精度は倍精度の半分が限界になっている場合が多いと
思われます。


金沢大学文学部
岡本 安晴





スレッド表示 著者別表示 日付順表示 トップページ

ここは心理学研究の基礎メーリングリストに投稿された過去の記事を掲載しているページです。