HP50gを使っていて、整数の後ろに小数点「.」がつくことに気づいた。自分の習慣では、あるいは日本では、普段、整数に小数点をわざわざつけることはしない。

TI-Nspire CASでも同じ現象だ。たとえば、次の2つの計算をやらせたら、微妙に異なる答えが出てくる。

0.24 x 4 → 1.
(1/4) x 4 → 1

しかし、計算精度に関してトップクラスのキヤノン製関数電卓 F-789SGでは両方共「1」との表示。

その違いに気づくひとは少ないし、別にどうでもいいやと思うかもしれないが、自分の理解では両者に深い違いがあるようだ。

「1.」は数値であるのに対して、「1」は記号。「1.」は数値同士が計算した結果であって、誤差が伴う場合もあれば、誤差が全くない場合もある。しかし、記号は数式処理した結果であって、誤差は存在しない。つまり、精度に関しては両者間に天と地との違いがある。

この場合、小数点は決して整数部分と小数部分を区切るための記号ではないのだ。数値であれば、小数部分がなくても、小数点をつけないといけない。

130526.jpg以上をまとめると、記号による表記法では、整数には小数点つけず、有理数には「分子横棒分母」、無理数には √ 記号、Π、e 等を使って表現する。誤差のない世界だ。100/4の答えは2.5ではなく、5/2なのだ。

誤差のある数値としての表現なら、整数にも、小数を伴う実数にも小数点をつける。

つまり、小数点ひとつで、精度の異なる世界を厳密に区別することができる。小数点の意味をここまで深く考えたのは、世界が広いとはいえ、自分ひとりだけか。←またも井の中の蛙

ところで、Maximaはどう小数点を考えているか、実験してみた。

130826-1.png「1.」を1と認識しているようだ(%i3→%o3という例)。数値の1を「1.0」で表現している。がっかり。というのは、1.0とは有効数字が小数点以下1桁のことであって、1.03かもしれないし、1.00かもしれないが、数値の1と等しいとは到底認めたくない。

上の証拠写真に載せていないが、Maximaに 0.25*4.00 を入力したところ、答えは 1.0と出ている。有効桁数は設定にもよるが、反映していない。

やはり、誤差なしの1を表現するには、小数点以下に0をつけてはいけないのだ。

Comments are closed.

Post Navigation