2016年10月30日日曜日

fx-5800Pの入出力の研究が始まっております

AkSd 様が、fx-5800Pのシリアルポートの調査を始めております。

「関数電卓ファン掲示板」
http://scicalcfan.bbs.fc2.com/

先ずは、シリアルポートをロジアナで調べ、どういったプロトコルになっているのか、現状はそこを調べておられます。

ここが明らかになれば、fx-5800PのプログラムをPCに保存出来たりするのですが、まだ、詳細が明らかになっておりません。

気になる向きは、上記に掲示板に参加され度候。


2016年10月10日月曜日

HPGCCでこんなコードを書いた

こんなの。
(MSのOne driveのリンクです)


HP50Gで動くアニメーションのコードです。

暇があったら試して丁髷。

2016年9月23日金曜日

懸垂線、再び

以前、当blogで、関数電卓に付き物の双曲線関数の使用例で、懸垂線の計算について調べたネタをアップしました。

懸垂線は、紐や鎖の両端を持ってタラリと垂らすと、その紐なり鎖なりが描く曲線なんだそうです。数式では、つぎの式で示されます。

y = a * cosh(x/a)

HP35SのTraining modules には、懸垂線の計算例が紹介されておりましたが、紐の両端を持つ、その高さが等しい例でした。
しかし、紐をタラリと垂らすとなれば、その両端の高度が違う場合もありましょうや。
そこで両端の高度が異なる場合、懸垂線のパラメタ (カテナリ数と極点x座標)の数値を求める方法を調べてみようと思います。

懸垂線は、紐の両端の高度が異なっても、同じ式で表現されると言います。
両端の高度が異なる懸垂線は、煎じ詰めるとつぎの数値で決定される、として良いでしょう。

  • 紐の片方の端を原点とし、もう片方の端を「吊り下げ点」として、吊り下げ点の座標(D, H)を与える
  • また、紐の長さ L を指定する
こうすれば、懸垂線のパラメタは一意に決定されそうです。これら3つのパラメタ、H, D, L を指定すれば、懸垂線のパラメタである a (カテナリ数), x (極点x座標)が決定され、懸垂線自体が決定できるだろうというハラです。
コチャコチャと計算すると、D, H, Lからa, xを決定する方程式は、つぎの2本である事が判ります。

a*(sinh(x/a)+sinh((D-x)/a)-L = 0
a*(cosh((D-x)/a)-cosh(x/a))=H = 0

非線形の連立方程式です。解析的に解けるんかいや ?
大変難しそうで、当方の知見は及びません。しかし、高機能電卓の一部には、数値解を計算する機能を持ち合わせているものがあります。そう、HP PrimeやHP50Gが、まさにソレなのです ! (もちろん他にもありますが、当blogはHP電卓の情報発信を任じておりますので)。

HP50Gでは、つぎの様にします。

  1. D, H, L に数値をストアします
  2. つぎの通り、スタックに配します

  3. [ 'A*(SINH(X/A)+SINH((D-X)/A)-L=0' 'A*(COSH((D-X)/A)-COSH(X/A))=H=0' ]
    [ 'A' 'X' ]
    [ 10 10 ]
     
  4. MSLVを実行
最後にスタックに積んだ [ 10 10 ] は、数値解を求めるための「初期値」で、未知数A, X に対応します。この例ではA=!0, X=10 としましたが、D, H, Lとの兼ね合いから、適切な値を指定しないと数値解が得られない事もあります。

例として、つぎの場合を計算させてみましょう。

入力  D=35, H=18, L=44

結果  A=19.0231959735, X=9.23406136377

HP Primeの場合は、もっと楽 ?

「解く」アプリを呼び出し、つぎの様に数式を入れます。


そして、[Num」キーを押して、D, H, Lに数値を設定、チェックボックスのチェックを外し、A, Xを求めるので、A, Xのチェックボックスにはチェックを入れたままにして、スクリーンキー右端の「解く」を押します。



答え。


エミュレータでは、瞬時に値を得られましたが、実機では若干、時間がかかるでしょうか。それでも、50Gよりは断然早いものと思われます。

2016年7月30日土曜日

ロシヤからのアクセスが急増中です

今回は電卓ネタではありません。

理由は不明ながらも、ロシヤからのアクセスが急増しております。
何で ?


2016年7月12日火曜日

電卓による母比率計算の例

先般、参議院議員選挙が行われ、改憲勢力が2/3を獲得したとの事で「平和憲法サヨウナラ」となる事が決まりました。

マスコミはこぞって「出口調査の結果に拠りますと」と述べておりますが、統計学の教える所に拠りますと、偏りのない標本集団を得られれば、母集団の比率が推測できるのだと言います。
HP50GやHP Prime、TI-83+には、母比率の推定機能が盛り込まれているので、手のひらで計算する事が出来ます。

例えば、標本数n=320の内、あるカテゴリの数がx=170だった、として、母集団における、あるカテゴリの割合=母比率がどのくらいになるのか、計算できるのです。
標本集団における、あるカテゴリの比率はx/n = 0.53125 ですが、これは標本集団の比率であります。
標本集団の標本数を十分大きく取る事で、標本比率は正規分布に近付いていく、という難しい理屈(「中心極限定理」)があるのだそうですが、電卓の機能は、そうした背景を以って構成されているので、単純に数値を入力してやれば、立ちどころに答が得られます。
しかし、背景となる理屈の詳細までは知らずとも、ある程度の知識を持っていないと、その答えを吟味する事は難しいものです。
母集団から一部の標本を抽出し標本比率を計算すると、その標本比率は、やはり正規分布をする、のだそうです。
標本比率の分布する範囲は、正規分布となるため、例えば95%程度の確度で、この範囲に存在する、という結果が得られる事になります。

n=320, x=170の例で、確度=0.95 (95%)の分布範囲は、0.4765744 〜 0.5859256 の範囲、という結果が返ってきます。

実際に、HP Primeでやってみましょう。

[Apps] -> [推論] とキーを押して、つぎの情報を選択します。
  • 方式 : 信頼区間
  • タイプ: Z-Int: 1 π

[Num]キー押下、次の数値を入力します。
  • x:170
  • n:320
  • C:0.95

これで計算の準備が出来ました。つぎの選択肢があります。
  • [計算]メニューキーを押下すると、結果ウィンドウで表計算っぽい結果が得られます
  • [Plot]キーを押下すると、正規分布グラフと共に結果が表示されます

Plotキーを押してグラフを表示した例

2016年6月20日月曜日

HP Prime Virtual calcの新版があるらしいが


ftp://ftp.hp.com/pub/calculators/Prime/

ここを見ると、新しいタイムスタンプのファイルがありますが、ファイル名が「去年」です。
しかし、念の為、アップデートを行ってみました。先ずは、仮想電卓を動かして更新を掛けますが ... ダメ。
そこで、ファイルをダウンロードして実行してみますが ... 「新しいバージョンがインストール済み」と出て、失敗します。
ウーン、どうなっておるのか !?

どうやら、日付を間違えて設定されているのではなかろうか ? 近々、修正されてアップされるのではないか、と密かに期待します。

2016年6月11日土曜日

「ぼくのかんがえた、さいきょうの高機能電卓」(途中から漢字になってスマソ)と言うか、こんな高機能電卓があったら面白かろうと思うのヨ


CASIO fx-5800Pは、名機の誉れ高い高機能電卓です。

  • 単4電池で充分に長く動作します
  • 高機能電卓として十分な広さの画面
  • 使いやすいCASIO BASIC言語
など、など

プロ電が少なくなってしまった今日に至るも永らく販売されておりますが、一方、惜しい点もあります。

  • ヒンジが弱い
  • プログラムを外部に保存しにくい
プログラムを保存するには、同じfx-5800Pとケーブルで接続し、内容をコピーするしかなく、そのため、PCなどでプログラムを作成してfx-5800Pに流し込むなどの操作が出来ないのが惜しい所。

また、カバーのヒンジが弱く、ちょっとした力の入れ具合で折れてしまうのも残念ポイントとなってしまった。

元々、ヒンジでカバーを付けたのは、ちょっとした文書を書き留めた「手帳」の様なデザインだったのではないか。
公式集なりを持っていて、いつでも利用できるというイメージだった。
しかし、凝った作りである一方、壊れやすい事から、今日では「改善を望む点」になってしまった。

fx-5800Pが登場した当時、これらの問題点は余り問題にはならなかった点でしょうが、永く販売を続けている内に、今日的には明確な欠点として浮かび上がって来ております。

ヒンジの問題は、ケースを改善するだけで解決するでしょう。
すると、もうひとつの問題点「プログラムの保存と復帰に、別のfx-5800Pが必要」という点を、改善して欲しいと思うのです。

今日、PCは安価となり、USBポートで様々な機器と接続するのが当たり前になっております。
高機能電卓とPCを接続して、PCで編集したソースコードを高機能電卓に流しこむ、となると、プログラムのバックアップも容易になります。

ここまでは「eGadget」の やす親分様も強く提唱されております。
ここからはオリジナル、当方の思いを。

今日の高機能電卓には、数値Solverが当たり前になりつつあります。いや、当方としては「Solvreこそが高機能電卓にゼヒとも欲しいモノ」と言いたい。

この数値Solverを、BASIC言語から簡単に呼び出せる様にしてもらいたい。すると、今までファームウェア内に収蔵されていた「公式集」は、Solvreアプリケーションとして実装する事が出来る様になるはずです。
こうする事で、公式集の追加、改変もユーザーが行える様になります。更に、不要なものは一時的にPCなどにバックアップを取り、電卓内の空き容量を稼ぐ事も出来るでしょう。

Solvreだけで色々なアプリケーションを書けるわけではありませんから、プログラミング言語は「必須」であります。
更に、BASIC言語に「スタック」のメカがあると、面白いものになりましょうや。
Solver機能とのデータのやり取りにスタックを用いるのです。
BASICで記述したアプリケーションから、スタックを介してSolvreに値を設定して実行。簡単にSolvreアプリケーションが構成できるという次第です。
また、スタックのメカがあると、サブルーチンを再帰的に呼び出すなんて事も出来ます (ただ、そのためにはスタックを十分 - 1000段程度は欲しい)。
ちなみに「C:BASIC」では局所変数のメカを導入しようと検討されているそうで、 面白い事になっております。

そんでもって、Solvreを使うにあたって、電卓I/Fを活かすメニューAPIもあるとウレシイ。
HP42Sのエミュレータである「Free42」を使うと解りますが、HP42Sには変数をメニュー風に入力するために使う「MVAR」という命令があり、プログラム中で使う事で、簡易なメニューシステムを構成できます。
もちろん、プログラムでメニューシステムを構成する事は悪い事ではないのですが、プログラム領域の容量を喰ってしまい、勿体ない。

Solvre,メニューシステムから、高機能電卓を考えてみました。
この先、新しい高機能電卓にどんなものが出るのか、色々と夢想するのですが、果たしてメーカー様は、応えてくれるのでしょうか ?