hirax.net::Keywords::「機械精度」のブログ



2008-11-17[n年前へ]

0.2×11-2 = …?のヒミツ 

 前に何度も見たことでも、久々に見たり読んだりした時、新鮮に面白く感じることは多いように思います。

 Mathematicaのデモ中で、「計算の丸め誤差」をエクセルで見ました。数値計算の有効桁数や丸め誤差を気にする人は多いでしょうし、エクセルや多くの計算プログラムやあるいは言語で「誤差がどんどん重畳されていくようす」を眺めたことがある人も多いと思います。いえ、実際のところ、技術系の人であれば、そんなデモを眺めたことがない人の方が稀少ではないでしょうか。とはいえ、前に何度も見たことでも、やはり新鮮に面白く感じることは多いように思うのです。

 そこで、(Mathematica のデモンストレーション中で演じられていた)エクセルで「0.2×11-2」の計算を繰り返していったときのようすを動画として再現して貼り付けてみました。

 まず、エクセルで、0.2×11-2を計算します。そして、『「(0.2と表示された)その答え」×11-2』と計算するのです。そして、その答えにさらに…と計算を繰り返していくわけです。

 すると、あっという間に丸め誤差が積み上がっていって、20回も計算を繰りかえすと値が1000くらいになってしまいます。こういったことは、浮動小数点の精度を考えれば当たり前な話です。しかし、「タネがわかっていても面白い手品」があるように、こんなデモンストレーションも(たまに眺める分には)見ていてとても楽しく感じてしまいます。


 もしかしたら、特にこの手のデモを楽しく感じるのは、「キカイが動いている仕組み・仕掛け」を感じることができるからかもしれません。アレ?と感じ、その興味を入り口として、目の前の現象を眺めていくうちに「キカイが動いている仕組み・仕掛け」が見えてくるからかもしれません。

 そして、いつも「それってとても楽しいと思わない?」と感じるのです。



■Powered by yagm.net