2024年8月29日木曜日

プログラム電卓について、色々と考える日々

 前のポストの所で、Sentaro様からのコメントを戴きまして、まだ、色々と考えないとならないことが多いのではありますが、少しだけ思いつきを記しておきたく。

fx-5800Pの改良について

まず、fx-5800Pの機能の一つ「数式記憶機能」について、色々と考えておりました。

fx-5800Pの数式記憶機能、マニュアルをみると、結構気になるものです。
まず、標準で、128の公式があって、これをコピーして編集したり、新規に自前の公式を導入して、ワンタッチで計算できるというものです。
こうした機能、ポケコンの頃から様々用意されておりましたが、fx-5800P秀逸な所は、ギリシャ文字やアルファベットの添字などを使って、表記が柔軟な数式を記入できる所です。一つの到達点に達したかの様なものであります。
しかし、惜しむらくは、この数式記憶機能、そこに囲まれているため、BASICからの利用が出来ない所でしょうか。
BASICでは、別途、プログラムを組めば良いのではありますが、せっかく、ここまで高度な機能があるのなら、縦断して使いたくなります。
まあ、それが難しいというのであれば、この数式記憶でSolverが使えたら、更に面白かったと思うのであります。
128個の数式、というと、結構数が多いように思われますが、1つの計算式について、複数の変量があるため、それらの変量について解いた数式を別個に入れているので、どうしても数式の本数は多くなってしまいます。
数式記憶機能でSolverで使えたら、登録する数式は一本で済みます。これだけで、大分使い勝手がよくなるはず。
欲を言うならば、複数の数式を連立されてSolverで計算できたらいいのでしょうが、そうなると、BASICの仕事、でいいのかも。関数電卓として、数式記憶機能にSolverをつけるだけで、かなり使い勝手が向上しそうです。
ついでに、登録済みの数式についての「副読本」を添付するなどの工夫があれば、学習用途としてもかなり役立ちそうな気がします。

ご一考戴きたく思う次第。

upython電卓の未来像 ?

upython 機能が多くのグラフ電卓に採用される所となりました。

ここで、いくつかの問題があると思われます。

  1. upython が電卓の機能と相互に乗り入れできない
  2.  upython の2進数計算と電卓機能のBCD計算がちがーう
  3.  upython スクリプトの入力、電卓のキーボードでは入力が面倒

1. については、「upython プログラミングの学習用」という位置付けらしく、従来のグラフ電卓機能との分離、やむを得ない所らしい。

例えば、CASIO FX-CG50にて、キーボード real time 入力の検知が出来ないのは、CASIOの方針として「ゲームにうつつを抜かしてはイケナイ」という教育的配慮らしいのですが、これは追々、変化があることを期待したいものです。
また、グラフ電卓部分では、統計処理の所で、t分布などの計算が出来るものの、これらの計算をupython で行うには、gamma function などの特殊関数の機能が必要になりますが、upython 電卓には、こうした関数の計算をするmoduleが提供されておらず、必要と鳴ったら、自前で用意しないとならない。
更に、データを収集して、それをグラフ電卓部分でグラフにしたり、計算処理したりなどですが、upythonにこのデータを持っていったりなどの作業も出来ない、歯がゆさが残ります。

2. については、電卓の計算では、多く1E100までの範囲での計算でしたが、同時に、計算精度も、その範囲内では保証されておりました。電卓側ではBCD (Binary Coded Decimal ;「2進化10進数」)による計算のため、計算精度の保証が出来た様です。
しかし、upython では 実数については2進数のdouble float で計算、もしくは、整数値は多桁整数値の利用が可能で、実数値については、1E320くらいまでは計算でき、計算の範囲は大きく異なります。同時に、2進数floatには、計算についての桁落ちの様な問題もありました。

3. については、電卓というformが根本的に抱える問題でもあり、I/Fの改良による所で、各メーカーは努力を続けております。

こうした問題点を緩和するためには、どうしたらよかんべ ?

1. ですが、upythonのmodule をリッチに追加するしか方策はなさそうです。
例えば、特殊関数のmoudleや、システムよりのmoduleを大量に追加する。
そうして、グラフ電卓部分が不要になる程度に、upython orientedを目指す方向です。

2. については、Sentaro様は「BCDモードをもたせたらいいのではないか」との言葉を寄せていただきました。これが電卓側としては「まっとうな」解決案なのだと思います。
一方で、科学技術計算、特に、sense dataによる科学定数や測定値などには、ある程度の有効桁が存在しており、計算作業の累積で、最後は最も少ない桁数の数値に寄せて、計算精度とする必要があります。そう考えると、double float でも、十分事足りる様でもあります。
幸い、整数の計算については非常に大きな桁数の計算が出来ます。うまくすれば、多桁整数を利用して、手回し計算機の様に桁数の多い計算も可能です。
この際だから、upython電卓としては、BCD計算を止めてしまってもいいのかも知れません。

3. については、電卓のformが抱える根本的な問題でもありますから、極端な話、それこそ、昔のポケコンの様な形状まで検討したら良いのかも知れません。
一方で、高度化する電卓ハードウェアに事寄せて、一つの解決策を提示できるかも知れない。
それは、Bluetooth I/Fの採用です。
Bluetoothを採用する事で、市販のBluetoothキーボードを利用して、upython scriptの入力が軽快に出来る可能性を検討できるのではないか、と。
また、昨今は、Bluetoothで接続できる感熱プリンターなんかもあります。こうしたものを使うと、計算結果やグラフィクスなどを感熱紙に印刷できたりなど、結構夢が広がりますネ !

昔のポケコンやプロ電には、PCに寄せて感熱プリンターなどの周辺機器がありました。
電卓製品になったとしても、こういったものがあったら、それなりに利便があるのではないか、と。


2024年8月11日日曜日

みんなの「憧れ」Mexican Hat

 連日、電卓喫茶 様が、X にて、「Mexican Hat」の作図を複数の電卓で行う作業をポストしておりました。

https://x.com/calculator_cafe/status/1821531729443823776
https://x.com/calculator_cafe/status/1819654869633937426
https://x.com/calculator_cafe/status/1817881332875497881

件のグラフィクス、Mexican Hat というの、寡聞にして知らなかったのですが、確かにとても興味深いものです。
ある世代に、とても「刺さる」ものがあるのですね、この図。昔々の8 bit PC 「MZ-80B」 の広告で、よく見たものです。
Green CRT に(当時としては)精細度の高いグラフィクスで、まさに「コンピューター」による作図、という具合でした。MZ-80B は、当時「高級製品」だったので、ガキの財布で買える様な代物ではありません。憧れの的でした。

同様のグラフィクスが、今では手元の電卓で表示できる、という事を、あらためて示してくれた、電卓喫茶様の一連のポストは、大変嬉しい気持ちでいっぱいになりました。
折角、こうした電卓製品を持っているのであれば、たまにはこうした使い方をしたいものではあります。ハンセイ。

一通りの電卓で作業されているので、今更当方が割って入る隙はなく、外野として、Mexican Hat について少し考えてみたく思います。

Mexican hat は、ある種の関数 z = f(x, y) を、x-y 平面の斜行投影によって 3D作図しているものです。
y 軸方向について「奥」から手前方向に作図することで、陰線処理を実現しているのですが、同時に、この斜行投影という変形によって、作図の面白さが出てくる様でもあります。

左様に、このグラフィクスは3D表示をうまい仕掛けで実現しておりますが、fx-CG50 には、3D グラフ機能がありますネ。
そこで、折角ですから、Mexican Hat の数式を 3D graph で表示してみましょう。ウヒョヒョ !

式は Z = sin(sqrt(X^2+Y^2)) + 0.4*sim(3*sqrt(X^2+Y^2)) の様な表式になります。

X : -4 ... +4, grid=30
Y : -4 ... +4, grid=30

の範囲で描けば、そこそこいい絵が得られる事と思います。
これくらいなら、量販店の店頭に置いてあるデモ機でも十分操作できるので、購入を検討している方は、店頭でお試し頂きたい。

他人様のポストを肴にする程度のことしかできませんで、スマソ。

そういや、Nspire CASのBASICでgraphixが描けないというのは知らんかったですネ。勉強になりました。

あと、藤堂様のpostで、こんなのがありました。

https://x.com/ShunsukeTodo/status/1814566819480674670

「スリーゲイト」でいち早くfx-CG50, Numworks 電卓を販売しておりました、北門 達男氏の書籍紹介です。残念ながらKindle版ですが、一定の需要があるんじゃろうか、Kindle書籍 ?

あと、fx-CG50 のOS アップデータに、Windows 11対応版が出ておりました。

ref. グラフ関数電卓:fx-CG50 OSアップデート
https://support.casio.jp/download.php?cid=004&pid=2126

Windows 11 では「Smart App Control」という仕掛けがあるとかで、コレに対応したアップデータらしい。Windows ユーザーは面倒な事をしないとならない。


2024年8月4日日曜日

fx-CG50 upython で、面白い話をみた

 fx-CG50の upython で、画面の塗りつぶしをすると、ケースによって時間が掛かる場合があるそうです。

電卓喫茶 様の X post 。
https://x.com/calculator_cafe/status/1819663116529275177

色を指定すると極端に時間が掛かるとの事。

確かに、手元のfx-CG50で試したら、極端に時間が掛かっておりました。

しかし、色指定のタプルを変数に入れ、変数で色指定をすると、時間が大きく改善されるようです。

おそらく、ソース埋め込みの定数タプルは、pcode ドライバが毎度interpretするから、時間がかかるのかしらん ?

2024年8月2日金曜日

久しぶりのloginで本人認証を求められてしまった ...

最近、login していなかったので、久しぶりにlogin したら、「本人認証セヨ」だって。

たまたま、予備のメールがあったんで助かったものの、面倒くせえなぁ。

そんな具合ですから、もしかすると「途絶」してしまうかも知れません。


まあ、それも人生。