Casio fx-JP900 (その3)

  更新 2015/08/05

fx-JP900
fx-JP900 は、なかなかエポックメイキングな新製品で、高精細液晶(黒液晶)の採用と日本語表示、CPUの高速化というハードウェアの大きな進化が見られます。

実は、fx-JP900 の1つ前のモデル fx-995ES は、ソフトウェアにおいて関数電卓としての新機能搭載と重要な改善が多くなされ、関数電卓としての大きな進化を遂げたモデルと言えます。但しデザインや主要なハードウェアは fx-993ES に近いもので、fx-JP900 への移行モデルだった、と言えます。fx-995ES は、そのソフトウェア改善だけをとっても、エポックメイキングなモデルだと思っていました。

そんな fx-995ES を経て、ハードウェアが大幅に更新され1つの完成形としてJP900 が登場しました。当然ながらソフウェアについては、多くは fx-995ES を踏襲していますが、3桁区切り記号の追加など重要な改善もみられます。

fx-JP900 のソフトウェア上の新機能のなかで、統計計算での四分位数計算の追加、グラフ関数電卓には既に実装されているが関数電卓に初めて搭載された表計算機能があります。表計算については、Casio fx-JP900 (その2) で取り上げています。今回は、四分位数について、そしてCPUの高速化を見るために積分計算について取り上げます。

fx-JP900 は単なる関数電卓ですが、それまでプログラム電卓(グラフ関数電卓)に搭載されていた表計算が搭載されたこと、高精細液晶が搭載されCPUも高速化されたことから、近い将来のプログラム電卓への展開が気になるので、多くの文字数を使って取り上げています。

以下は、Casio fx-JP900(その2)の追記部分の後半の分量が多くなったので、別エントリーにしたものです。


全般的な操作系
fx-995ES、fx-993ES そして fx-5800P まで遡っても、fx-JP900 はキー配置の共通性が高いので、戸惑うこと無く操作できるのが有り難いです。ここにも、過去からのユーザーの継続利用を十分考慮したカシオらしさが現れています。


四分位数と箱ひげ図 - 統計とCLASSWIZ [2015/06/04 追記あり]
fx-995ES で初搭載され、fx-JP900/JP700/JP500 にも含まれている四分位数(第1四分位数、中央値、第3四分位数)の計算ですが、四分位数はよく知りませんでした。そこで、ネット検索してみたところ、2012年度から高校の数Iで教えるようになったとあります。不勉強なことに、これをグラフ化した箱ひげ図についても、どこかで見た気がする程度で、よく知りませんでした。

fx-JP900 の QRコード表示機能を使い、CLASSWIZ のWebサービスで箱ひげ図を表示してくれるので、興味を持ちました。
 
ざっと調べてみると、バラツキが大きいデータをざっくり分析するのに、四分位数や箱ひげ図が用いられるらしい。私自身はこれまで本格的とはいかないまでも、多くのデータを解析するのに、標準偏差、分散、二乗平均、平均、移動平均、差分、ヒストグラム、ガウス分布、ポアッソン分布、ワイブル・プロットなどの考え方を使っていますが、これで特に困ることはありませんでした。高校で必修になった四分位数や箱ひげ図は、ビッグデータ時代を反映しているのだろうか?と思い、仕事でも役に立つ可能性を感じたので、ちょっと調べてみました。

面白いことに、極めて多くの高校教科書では間違った記述がなされているらしいことが分かりました。

- 小林道正, データ分析における「「箱ひげ図」の誤解、中央大学論集, 第34号 (2013)

全く異なるヒストグラムを示すデータでも、箱ひげ図は全く同じになることが当然ありますが、箱ひげ図で示される四分位範囲が広いか狭いかで、データの散らばり具合(分散)を論じている点が、誤りだという指摘がなされていて、確かにその通りです。

教科書の著者や検定を行った人が、大きな勘違いをしていたと言うことでしょうか?だとすれば、ちょっとお粗末です。このような教科書で教えられた高校生は気の毒です。但し、現場の先生達はきっと誤りを修正して教えておられることとは思うし、2013年の教科書の誤りは、2015年版では既に改訂されていることを祈ります。

箱ひげ図と散布図を1つのグラフに書き込んで一緒に眺めたら、全体の傾向と特異的なデータを同時に把握できるので、これらの併用が良さそうだと思います。実際のデータ分析を行う時、特に箱ひげ図が役立つ局面がまだよく分からず、個人的にはもう少し勉強してみようとは思います。

但し、電卓のおかげで、良いきっかけをもらいました。プレゼンで話をうまく誘導する目的で使えそうです(但し自分で自分を騙してしまうことには要注意ですね!)。

[2015/06/04 追記]
仕事で色々な技術資料を目にしますが、今回の記事を書いた後、箱ひげ図にお目にかかりました(アメリカ人技術者が作った図です)。過去に箱ひげ図を見た記憶があまり無いのですが、そもそも知らなかったから気がつかなかったのかも知れません。
箱ひげ図 
上で、箱ひげ図は散布図と一緒に書けば、使い物になるだろうと書きましたが、まさに散布図と一緒に描かれています。少ないサンプル数の場合は、このように役立つことが分かりました。散布図だけよりも、箱ひげ図を重ねて描くことにより、中央値やデータの広がりが一目瞭然です。
=== [2015/06/04 追記] おわり ===


CLASSWIZ - グラフ表示のクラウドサービス
CLASSWIZ のWebサービスは、QRコードの表示ができる局面が限られており、主に学習用に考えられているように思います。 式情報をQRコードで渡して Web上でグラフ化するのは、クラウドサービスによる電卓の機能拡張と言え、グラフ描画機能がなくてもグラフが書けることを証明しています。面白いサービスですね。積分した結果をグラフ上の領域で表示するなどが出来れば、さらに面白くなりそうです。

また、電卓の液晶画面上の数式を、クラウドで画像ファイル化するのは、どのような用途を想定しているのでしょうか?


素因数分解

fx-995ES で素因数分解の機能が追加され、fx-JP900 にも搭載されています。fxJP900 では素因数分解が改良され、処理速度が速くなっています。幾つかの素因数分解結果を、fx-995ES、fx-JP900、fx-5800P のプログラム、カシオの高精度計算サイトKe!san で行った結果を一覧にしてみます。

整数fx-955ESfx-JP900fx-5800PKe!san
1,234,567127x(9721)127x9,721127x9721127x9721
98,765,43223x37x(333667)
(1.7秒)
23x37x333,667
(0.4秒)
23x37x333667
(27秒)
23x37x333667
9,516,208,47332x172x(3,658,673)32x172x(3,658,673)32x172x365867332x172x3658673
123,456,78932x(13717421)32x(13,717,421)32x3607x380332x3607x3803

fx-JP900 では、fx-995ES よりも計算速度が大幅に向上しています。

因数分解できない場合は ( ) 付きで表示される仕様で、そこは fx-955ES も fx-JP900 も同じ。fx-995ES は素因数が4桁以上で ( ) 付きになっていましたが、fx-JP900 では素因数の桁数制限が大幅に緩和され、上の例ですと6桁まではOK。

ところで、fx-JP900 の取扱説明書17ページを見ると、素因数が 1,018,081 以上の時は計算エラーになると書かれていますが、上の1つめ、2つめ、3つめの例では、( ) 付きで結果が表示されています。これ以上計算できないが、たまたまそれが素因数だったと解釈すれば良さそうです。( ) 付きの場合は、それが正しいかどうかの保証が無いと言うことでしょう。

4つめの例では、( ) 付きの結果は、さらに因数分解できるが、これ以上計算できないことを示しています。

fx-JP900 では計算速度が速くなったことは、積分計算の速度向上で明かなのですが、計算可能な素因数の桁数が増えた理由に興味があります。計算速度が向上したらたタイムアウト設定を変えただけとは考えにくく、使用するメモリ量を増やしたのかロジックが変更されたとも考えられます。

なお、fx-5800P は自作プログラムで計算していますが、電卓の精度が保証されている10桁以内なら、時間が多少かかっても正しい結果が得られています。精度範囲ならば桁数制限とは無関係に計算するアルゴリズムなので、当然ではありますが、それにしても時間がかかります。桁数制限があっても高速化できないだろうか?と少し考えてみています。
Casio 関数電卓の素因数分解


積分計算
遠藤先生による関数電卓マニア のページで、以下の積分計算をさせてみると、fx-955ES に比べて fx-JP500 で非常に速くなったとの記載があります。
積分1 
そこで、実際に fx-995ES、fx-JP900、fx-5800Pfx-9860GII (ノーマルクロック、29MHz) で、実行時間を比較してみます。
さらに時間のかかる別の積分(下記)も測定してみます。
積分2 
この積分区間の下限は、0 としたいところですが、数値計算をするとき x = 0 の場合に ln x がエラーになるので、電卓の仕様上精度が得られる範囲での最小値(1x10-10)を使っています。

ちなみに積分の式は、fx-JP900 で入力してQRコードを取得し、CLASSWIZのサイトから得た画像です。

機 種積分1
積分1
積分2
積分2
計算結果0.5
fx-995ES25.6秒4.7
241秒
4.9
fx-JP9005.5秒48.7秒
fx-5800P10.1秒1.856.7秒1.2
fx-9860GII1.5秒0.278.4秒0.17

fx-995ES に対して  fx-JP900 は、両方の積分ももぼ同じ比率で高速化されています。
一方、fx-JP900 に対して、fx-5800P と fx-9860GII は、積分1と2で処理時間の比率に差が出ています。積分1では、fx-5800P に比べて、fx-JP900 が大いに健闘していますが、積分2では差が少なくなっています。

この差が何によるのか? 興味はありますが、まだよく分かりません。



関連ページ:
- Casio fx-JP900
- Casio fx-JP900(その2)
- Casio fx-5800P や他の電卓の数値積分
- fx-JP900 と fx-5800P 後継機への期待




応援クリックをお願いします。励みになるので...

人気ブログランキングへ





keywords: fx-JP900fx-5800Pfx-9860GII関数電卓

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

コメントの投稿

非公開コメント

No title

管理人様、こんにちは!

箱ひげ図についてはfx-9860GIIのOSが2.0になった時に初めて知ったんですけど、今の高校では必修なんですね。
いまだに何に使えるのか分からず全く使うことの無い機能だったので気にもしてなかったのですが、誤解が発生するようなことになっては無いほうがましかもですね(^^;

で、JP900の計算速度はすごく興味深い結果が出ていますね。
素因数分解は速度向上がそのまま効いてるという感じなのに、積分1と積分2の速度具合がなにげに興味深いところです。
fx-995ESから比較するとJP900は平均的に5倍速のCPUになったと考えることが出来ますが、fx-5800Pとの比較だとほぼ2倍速くなっている積分1が積分2では大差ないというのがかなり不思議です。
積分1と積分2で何が違うのかと考えてみると三角関数の有無、もしくは計算ループ数の違いぐらいしか思い浮かばないのですが、fx-5800Pとfx-9860GIIの速度比率はほぼ変わらないので、(fx-995ES、JP900)と、(fx-5800P、fx-9860GII)の2グループで計算アルゴリズムが違っているのは間違いなさそうですね。

関数計算アルゴリズム

sentaro様


> 箱ひげ図についてはfx-9860GIIのOSが2.0になった時に初めて知ったんですけど、今の高校では必修なんですね。
> いまだに何に使えるのか分からず全く使うことの無い機能だったので気にもしてなかったのですが、誤解が発生するようなことになっては無いほうがましかもですね(^^;

私も、無意味なものを教えているような気がしてなりません。歴史的に、このような位置づけのものは受験にあまり出ないので、無視...って対応でしたから、今もそうなのかも知れません。



> で、JP900の計算速度はすごく興味深い結果が出ていますね。

そうなんです、思わず数値計算アルゴリズムがどうなっているのか、そこまで踏み込みたくなる結果です。

ご指摘のように、関数電卓とプログラム電卓で、三角関数のアルゴリズムが異なっていると考えたくなります。

ここで、面白い文献を紹介致します。

関数計算アルゴリズムの検証:
http://www.cqpub.co.jp/dwm/contents/0020/dwm002000730.pdf

CORDICという極めて巧妙なアルゴリズムにより、小さなテーブル参照と四則演算のみで三角関数や指数対数の数値計算ができるので、電卓の多く使われてきた歴史があります。

一方で、多項式近似はCPUパワーとメモリがあれば有効で、PCソフトウェアのライブラリでは、精度を上げられる多項式近似が使われているわけです。CPUが速ければこの方が高速になります。

そうすると、プログラム電卓では多項式近似を使っている可能性が考えられます。
SHチップではどちらか使われているのでしょうね?

No title

管理人様、こんにちは!

>関数計算アルゴリズムの検証

とても興味深い文献のご紹介ありがとうございます!

CORDICというのはたまに見聞きすることありますけど、テーブルと四則演算だけで関数計算できるっていうのはすごいですね。
多項式近似はCPUパワーとメモリがあれば有効というのもまた現代的な進化で面白いところです。


>SHチップではどちらか使われているのでしょうね?

文献に486まではCORDICでPentiumから多項式近似というのがありましたけど、SH3が486、SH4AがPentiumと考えると多項式近似世代といえますが、電卓に使われているSH3やSH4AはFPUのないCPUで10進演算をしているので精度と速度のバランスを考えると、CORDICと多項式近似のいいとこ取りかも?という感じもしますね。
アドインでCを使う場合は2進演算なので多項式近似というところでしょうか。

積分や関数のアルゴリズム

sentaro様

数値積分や関数のアルゴリズムについて、突っ込みたくなったので、ちょっと調べてみました。

「Casio fx-5800P や他の電卓の数値積分」という新しいエントリーをアップしました。

なかなかスッキリとしないのですが、なんとなく傾向は分かりました。

> 文献に486まではCORDICでPentiumから多項式近似というのがありましたけど、SH3が486、SH4AがPentiumと考えると多項式近似世代といえますが、電卓に使われているSH3やSH4AはFPUのないCPUで10進演算をしているので精度と速度のバランスを考えると、CORDICと多項式近似のいいとこ取りかも?という感じもしますね。
> アドインでCを使う場合は2進演算なので多項式近似というところでしょうか。

おそらく、グラフ関数電卓では、それなりにチューニングしていると考えるのが自然ですよね。


箱ひげ図

sentaro様

このエントリーで箱ひげ図を取り上げ、それまで知らなかったのでチョット勉強してみたその直後、ナント取引先のアメリカの技術者からの資料の中に箱ひげ図がありました。

箱ひげ図だけで分布を議論することは無意味ですが、散布図と一緒に使えば役立つだろうという私の感想通りの使い方をしていました。

面白い経験なので、エントリーに追記しておきました。

今度機会があれば、箱ひげ図をどのような時に使えば良いと考えているのか、その技術者に聞いてみようと思っています。
最新記事
最新コメント
カテゴリ
C# (3)
検索フォーム
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム関数電卓は、プログラムを作り・使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています

おもしろい・役に立つならクリックしてください。励みになります。

人気ブログランキングへ


FC2ブログランキングへ


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

RSSリンクの表示
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

QRコード
QR