On Sun, 09 Oct 2005 21:41:17 +0900
dune <FZH01112@...> さんwrote:
> | $r += $x; $t = $sum; $sum += $r; $t = $sum - $t; $r -= $t;
>
> 例えば上の式で $x が 0.1 で $sum が 100 で、100 に 0.1 を足しても
> 桁落ちして 100 になってしまう、しかし 0.2 を足した場合は桁落ちしな
> い、と仮定して机上トレースするとわかります。1回目は桁落ちして足せ
> なかった 0.1 が2回目のループでは 0.1 + 0.1 = 0.2 になって無事足せ
> ることがわかります。
なるほど、duneさんが言われていることは、$xが非常に小さい数値の場合に桁
落ちしない程度まで育てようということですね。
上記の式はせっかく最初に$rに加えた$xを、最後に$rから引いています。$rは
基本的には0になるはずです。しかし、$rの値は増減する。グラフ化してみよう
と思ったけど、テキストファイルには瞬時に落とせるけど、10万行のデータは
OpenOffice.orgにも読み込めない。読み込んだ途中までの部分をグラフ化しよう
としたら、落ちてしまった(^^;)
> なかなかうまい方法です。その辺の参考書を見てもこういう方法で DFT
> をやってる本はないです。-Mbignum するとかなりスローダウンしてしま
> うので、それよりは断然役に立ちます。
今日、「数値計算の常識」を楽天に手配しました(^^)v
藤岡 和夫
kazuf@...
TS Networkのために http://homepage1.nifty.com/kazuf/