ウソかマコトかマボロシか
現在市販されている関数電卓のほとんど(特にCASを搭載していないもの)は内部計算桁数や精度の制約があり、それを超える計算をさせると“ウソ”の答を返すことがある。
この記事の前半は手持ちの関数電卓23機種について精度比較を行い、後半はある機種の奇怪な答を紹介する。
内部計算桁数や精度を比較する
次の3つの方法で内部計算桁数や精度を求めることにした。
A 小数点以下の桁数が多い問題
この動画の式を使用して内部計算桁数を推定することにした。
$$ \sqrt{\frac{2×11.7×8.85×10^{-14}×0.753}{1.6×10^{-19}}×\biggl(\frac{1}{10^{17}}+\frac{1}{10^{16}}\biggr)} $$
答はいったん表示桁数の範囲で表示されるので、上位の桁を引き算することで内部に保持している桁を順次表示させ、仮数部の桁数を数える。
ちなみに正しい演算結果で最も桁数を多く保持していたのはClasswiz CWの
3.2742618156616614704896×10-5で、仮数部は23桁になる。
iPepul Graphic Calculatorのみ際限なく桁が保持されていたが、2進10進変換誤差と考えられる。この式において16桁以降の数字は誤っていた。
(参考:WolframAlpha)
B 大きな乗数問題をlog計算
この記事の問題を使った。
1658137512000000を関数電卓で求める。
多くの関数電卓は10100以上の数値を扱うことができない。そこでlogを使って桁数と先頭部分の値を求めることにする。
- 12000000 × log(16581375) で桁数を求める(整数部)
- 整数部を引いて小数部のみにする。
- 小数部に対して 10x として元の数字に戻す。これがそのまま答の上位桁に相当する。
上記2および3を記録、精度比較する。
なお、WolframAlphaで計算させると 3.130562553907628093627162974329703605575479375315071156590929287 × 1086635446 と表示される。
C 三角関数ベンチマーク
arcsin (arccos (arctan (tan (cos (sin (9°) ) ) ) ) )
三角関数を繰り返し適用することで生じる丸め等の誤差を比較する。
Mike Sebastian氏によるまとめページが存在する。
結果発表
以下、手元にある機種について調べた結果をまとめた。概ねlog・10x計算の誤差が小さい順に並べている。
太字が国内で入手できる現行機種、斜字は海外過去機種、それ以外は現行海外機種もしくは在庫限りの国内機種(fx-JP700, EL-501J)である。
メーカー欄に製品ページへのリンクを付けたが、一部機種はメーカー公式の製品ページが無いため、販売ページや紹介ページへのリンクとなっている。
メーカー | 型番 | 桁 | B)log 小数部 | B)10x 上位桁 | C)三角関数 答 | C)三角関数 誤差 |
---|---|---|---|---|---|---|
カシオ | GRAPH LITE | 23 | 0.4956223861 | 3.130562554 | 9 | 7.5528E-18 |
カシオ | fx-JP500CW | 23 | 0.4956223861 | 3.130562554 | 9 | 7.5528E-18 |
キヤノン | F-789SG | 20 | 0.4956223861 | 3.130562554 | 9 | 3.138888E-13 |
iPepul | Graphic Calculator | 15* | 0.4956223816 | 3.130562521 | 9 | -1.674305139E-10 |
カシオ | GRAPH MATH+ | 16 | 0.4956224 | 3.130562654 | 8.999999998 | -2.40532E-9 |
EATES | FC-991CN-D | 16 | 0.49562233 | 3.130562149 | 9.000000002 | 2.222889E-9 |
deli | D991CN-X | 16 | 0.49562233 | 3.130562149 | 9.000000002 | 2.222889E-9 |
キヤノン | F-715SA | 16 | 0.49562233 | 3.130562149 | 9.000000007 | 7.092245E-9 |
カシオ | fx-JP700 | 15 | 0.4956223 | 3.130561933 | 9.000000007 | 7.33338E-9 |
カシオ | fx-375ES A | 15 | 0.4956223 | 3.130561933 | 9.000000007 | 7.33338E-9 |
カシオ | fx-290A | 15 | 0.4956223 | 3.130561933 | 9.000000007 | 7.33338E-9 |
NEWYES | GY-991MS | 16 | 0.4956228 | 3.130565537 | 8.999999998 | -1.921103E-9 |
シャープ | EL-520T | 14 | 0.495621 | 3.130552562 | 9.000000099 | 9.8906E-8 |
TI | TI-30X Pro MathPrint | 13 | 0.49562 | 3.130545354 | 8.99999986 | -1.39968E-7 |
キヤノン | F-605G | 14 | 0.495625 | 3.130581396 | 9.00000003 | 3.04418E-8 |
JOINUS | JS-82MS | 13 | 0.49561 | 3.130473271 | 9.000002051 | 2.051244E-6 |
モノタロウ | 簡易タイプ | 12 | 0.4956 | 3.13040119 | 8.99999986 | -1.3999E-7 |
hp | hp 33s | 12 | 0.4956 | 3.1304011901 | 8.99999986001 | -1.3999E-7 |
hp | hp 49g+ | 12 | 0.4956 | 3.1304011901 | 8.99999864267 | -1.35733E-6 |
シャープ | EL-501J | 12 | 0.4956 | 3.13040119 | 8.999998637 | -1.36296E-6 |
カシオ | fx-260 SOLAR II | 12 | 0.4956 | 3.13040119 | 9.000007164 | 7.1641E-6 |
シャープ | EL-501T | 12 | 0.4956 | 3.13040119 | 8.999981534 | -1.846572E-5 |
hp | HP15C Limited Edition | 10 | 0.49 | 3.090295433 | 9.000417403 | 4.174030E-4 |
なぜか答にπが
まずはこちらの動画をご覧いただきたい。
何の変哲もない式であるにも関わらず、πの含まれる分数が答として返ってくるのである。
このような答を返す関数電卓は国内モデルだとカシオのESシリーズと初代ClassWiz(EX)のみ。ClassWiz CWやF-789SG、中国製EXクローン機は小数の答が表示される。
πを含んだこの答、信じるか信じないかはあなた次第です。