ラベル hp50g の投稿を表示しています。 すべての投稿を表示
ラベル hp50g の投稿を表示しています。 すべての投稿を表示

2025年9月14日日曜日

HP50G がイカれてしまった ...

 永らく使っていた HP50Gのキーボード。遂に入力できないキーが出てしまい、泣く泣く使用を断念する事にしました。エーン ...
接点復活剤をキーの隙間から吹き付けると回復するらしい、という話をみたので試してみたのですが、好転せずショボーンなのであります。

その為もあって、目下、手遊びのお供としては、fx-CG50 を使っているばかりなので、そろそろ HP電卓についての話題も止めざるを得ないのであります。ウーン。

そうした折、以下の post を見ました。

bockring 様 ( @bockringElec ) X post

圧倒的にHP Prime
fx-CG50持ってるし

CASIOくんのほうが3Dグラフは多機能だけど、全体的にPrimeが上かな
まぁレビュー記事でも読んでくれぃ

https://qiita.com/bockring/items/53b4b887d8885be4da50
https://x.com/bockringElec/status/1966761390204768714

bockring 様は、以前にお知らせを戴いた方だと思います。HP Prime fimware の翻訳、更新などに貢献されて居られる様で、誠に頭の下がる思いであります。

Sentaro 様も、HP Prime G2 は電卓の中では"爆速"の部類に入る様子のお知らせを戴きまして、正直、いじってみたい気もあるのです。
しかし、電卓とPCをリンクする際、Windows 版 Linker Apps が要るのが、正直クルシイ。なんと言っても、未だに Windows 持っておらんのですヨ、ハイ。

そりゃ、PCといえば  Windows と言う位ですから、一般常識としては抑えておくのが当然ではあります。
所が、今まで Windows を使わず過ごしてきた身としては、今から電卓の為に Windows PC を用意するというのは、懐にも堪えるものがあるのでありまする。
今般、近所の家電量販店に行ってみましたら、今時の ノートPC, 15万円が最低線の様な印象を受けました。代わりに、RAM 16GB とか。ゲゲゲのゲーッ ! と思いましたが、最近では生成AIを使うとかで、コレくらいの RAM は当たり前、という風潮。まぁ、ついていけまへんなぁ、コレは。
生成AIという新しい「活用法」が提示され、同時に Win 10のサポート終了とあって、Windows (11) PC もより売上を伸ばす事になるのでしょう。しかしながら、価格が低廉になるには、今暫くの時間を要する様でもあります。

HP Primeは、上記の bockring 様など、様々な方が翻訳やBug Fix に貢献されて居られる様で、今後の発展も気になるのですが、如何せん、Windows PC を持っていないと、ついて行けないという哀しみがあるのですネ。

Windows PC を持っていないと、fx-CG100 も「ゴニョゴニョ」出来ない、という意味では通じる所がありますから、目下の所、「生産完了品」fx-CG50 でポツポツと遊んでいる日々であり。

そんな具合ですから、HP 電卓のネタは、どうにも触れる機会が減ってしまいました、申し訳ない次第。

HP 電卓の様々な情報がアップされる MoHPC も頻繁にCrackers Attack を受けているらしく、時折、Members only になったりします。そんな具合でもあり、HP電卓の情報を漁ろうにも制約が ... 

マイッタなぁ。


2022年10月28日金曜日

「やさしい時代」の計算

 先日、つぎのblog様をみまして、驚いちゃったのヨ。

ref. PEMDAS / BODMAS - 数学も英語も強くなる! 意外な数学英語 Unexpected Math English
http://math-eng.blogspot.com/2019/05/pemdas-bodmas.html


なんでも、2^3^2 の計算の結果が、Wolfram Alpha と TI-84 plusでちがーう値になるのだとか。ウーム。

いくつかの計算資源で試してみましたヨ。

  • fx-CG50

2^3^2 とキーを叩くと、数式表示モードでは「2の肩に3が、更に3の肩に2が乗る」表示になります。
これで計算すると、512 という値が返りました。うまく出来ております。
一方、1行表示モードで計算すると、驚いた事に 64 になるのですネ。
これは、TI-84 plusの計算式に寄せているということなのか ?
 

  • Numworks電卓

Numworksでは、数式表示モードしかないので、512 という値が返る様です。
シミュレータで試した範囲では、こうなりましたネ。
 

  • HP50G

HP50GのRPNモードでは、'2^3^2' と打ち込んでやります。すると、2の肩に3が... という数式表示になって、更にEVALキーで評価すると、512 が得られました。

当方が高校生の時分、こうした累乗の累乗の計算について、先生から、こんな風に教わりました。

例えば「a^b^c」という式は「aのbのc乗乗」と読むのだと。これは、括弧を補えば「aの(bのc乗)乗」という具合です。式の上では「a^(b^c)」で、累乗のバヤイ、結合規則は「右から左」という事のようです。

高校の当時は、こんな計算をするとは思えなかったのですが、今はプロ電一丁で気軽に計算できる御時世。昔の数学の勉強、やさしい時代だったなぁ、などと。

これは、Wolfram alphaで適用されている規則の様ですが、TI-84 plusではそうなっていないと言います。

関数電卓では、括弧の計算で、途中の結果を保留するのに内部でスタックを用いておりますが、昔の関数電卓では、かっこの段数=スタックが6段程度しか用意できないものでした。メモリ資源が十分ではなかったのですネ。そりゃそうです、昔の関数電卓では、プロ電でも38 stepで定数メモリ7個とかでしたヨ。
TI-84 plusになると、プロセッサもZ80互換でメモリも十分になってきましたが、式解釈部分は省メモリの構成だったのか ? などと夢想するのであります。そこで、累乗の演算子結合処理も、右から左結合ではなく、左から右結合でおこなっていたのだろうか、と。

ちなみに、HPのRPNは、こうした「メモリ資源の少ない」ハードウェアでも、スタックを明示的に利用する事で、式解釈の部分を省力化できたのだろうか ? などと夢想するものです。
同時に、演算子の優先順位を考慮する式解釈を人間にやらせる事で、式解釈の曖昧さ回避にもつながる「功徳」が得られたのではないか ?
上記のblog様では、PEMDAS / BODMAS ちうモンをご紹介されておりますが、こうした話題には、1行数式記述による演算子の優先順位の曖昧さに関わる問題を孕んでいる様に思われます。

TI-84 plusで、「2の肩に3が、更に3の肩に2が乗る」計算をする場合にはどうしたらいいのか ? 答えは簡単で、括弧を明示使用すればよろしい。「2^(3^2)」という具合ですネ、恐らく。(持っていないので、お持ちの方はお試し戴き度)

プログラミング言語では、数式記述部分で演算子の優先順位などを仕様として規定する様です。
グラフ電卓では、数式表示機能を充実させる事で、曖昧さ回避をしたのか ?

久しぶりに面白い話題に触れた格好ですが、こうした事も抑えておかないとならないので、今の学生さんのご苦労には頭が下がる思いであります。

2017年6月10日土曜日

HPGCCでこんなコードを書いた 3 - WannaCry祭り

最近はコメントも少なく、fx-CG50についての話題も追いかけておらず、アクセスも激減。いい感じに「枯れて」来ました当blog。ホント、干からびてしまいました。Julyさんもおかしな事になっておる様で、HP Primeもどうにも購入できない有様。


まあ、それはさておきまして、いい感じに過疎って来ましたので、またまた、気晴らしでHPGCCの短いコードを書いてみましたヨ、どうせ誰も見ては居まいでしょうから ! こうなりゃ「孤独のコードグルメ」です。


先日、世間を騒がせたランサムウェア「wannaCry」。Twitterでは、こんなお祭りがあったそうで。

ランサムウェアの「WannaCry」。ついにコモドール64にまで感染!? ~ Twitterで各種ネタ画像が出回る - やじうまWatch
http://pc.watch.impress.co.jp/docs/news/yajiuma/1060474.html

遅ればせながら、HP50Gでお祭りに参加しようと、 こんなコードを書いてみました。





それっぽい表示+オマケで大したものではありませんが、実行は一応(いま流行りの ?)「自己責任」という事で !

2017年4月30日日曜日

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

春が過ぎ、夏に向かいつつあります。

相変わらず短いネタばかりですが、何か書かないとと思い。
今度もHPGCCによる、HP50G向けのアニメーションプログラムです。


大したものではありませんが、一服の清涼飲料として。

当方も何か、プログラムを書こうかという意識だけはあるのですが、なかなか簡単じゃないよ。
何か、そこそこの電卓クライアントでも作ってみたいもの ... トホホ。

2017年3月2日木曜日

世迷い言 ...

「FlashAir」では、Luaスクリプトが動いて、無線関係もプログラミング出来るとか。

SDカードが郵便を通知! 無線LAN付きSDカード「FlashAir」を使ってドアポストセンサーを作ってみた<後編> - Akiba Watch
http://akiba-pc.watch.impress.co.jp/docs/column/electronic_iot/1046389.html

 ならば、HP50Gに使ったら面白そうだなぁ、と思ったのですが、問題が。HP50Gで、FAT32のアクセスが問題ないのか ? 
また、無線を使うと電気も食いそうで、その辺りも心配。

少々高いので、エイヤッと買っても使えないとなれば、これはカナシイ。誰か、やってみては呉れまいか ... (他人任せかよ、相変わらず)。


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月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年2月6日土曜日

こんな計算をしていた ...

先ずは、Stepney様がblogを開始されたとの事で、お知らせ。

Project Fx :関数電卓研究日記
http://stepney141blog.blog.fc2.com/

TI Nspire, HP50Gについての情報を発信されるとの事で、TI Nspireについては日本語の情報が少なく、興味深い情報を提供される事を期待します。HP50Gについては、当方でも色々とやって行きたいのですが、より高度な話題を提供される事と思われますので、期待しましょう。

当方はと言いますと、このところ不活性状態が続いております。高機能電卓の新製品がなかなか出ない事もあり、申し訳ない。

経営再建中のSharpがホンハイから出資を受け、子会社化するという報道があります。当初は、ナントカ私怨機構とかいう所が出資し、事業を腑分けするみたいな話もありましたが、まだ、何が決定したという段階でもなく、推移を見守りたく思います。

さて、脱力状態が続いております当方、最近は何をしていたのかと言いますと、ちょっとした計算くらい。関数電卓で簡単に進められるので、メモ代わりに書いておきます。今回は、中学生向けの話題。

地球の自転周期を調べていましたら、ナント「24時間に足りない」というハナシを見てしまい「エエッー、ホンマかいや ?」とのけぞってしまったのですが、それを関数電卓を叩いて確認しようというのです。

WikiPediaによると「1日は24時間、自転周期はそれよりも短い 23時間56分4.098...秒」とか。ウーム、どうなっているのか ?

地球の自転 - Wikipedia
https://ja.wikipedia.org/wiki/%E5%9C%B0%E7%90%83%E3%81%AE%E8%87%AA%E8%BB%A2

ここに、謎を解く図が掲載されていました。1日=24時間というのは、地球から見て「太陽が再び同じ(見かけの)位置」に来る時間、という事だそうです。すなわち、1周回っただけでは足りず、更に「あとちょっと」回って、はじめて太陽の見かけの位置が同じ所に至る、という具合。
で、この「あとちょっと」がどれくらいの量なのか、それをWikipediaの図から読み取ると、地球の公転の1日分の移動角と同じ、と判ります。
地球の公転周期は1年ですが、閏年などを考えると、およそ365.25日です (0.25=1/4は、閏年の02/29の分)。すなわち、2π/365.25 が「あとちょっと」の分。
これらを寄せ集めると、地球の自転周期をTとした場合に、およそつぎの関係が得られます。

2π*(1+1/365.25)*T=2π*24

ここから逆算すると、

T = 24/(1+1/365.25) = 23.934470...

これは10進数表現ですから、関数電卓の度分秒換算機能を使って表示を変えてみましょう。HP50Gの場合、→HMS を使います。

23.5604095563

すなわち、23時間56分04.0956秒 が得られます。おおよその所が合っているので、これで良しとしておきましょう。

2016年1月10日日曜日

賀正 2016年

何とも素っ気ないタイトルで申し訳ない。
明けましてお目出度いのはテメェのオツムのみだと困ってしまいますが、それでも鄙びた辺りから、か細い声でも謹んで新年を賀する所です。
松の内も終わりまして、本blogも少しずつ作業を始めようと思います。

正月早々から余り大ネタもないので、最近考えている事を「年賀タオル」の様にポツポツと。


1. HP50GのMultiple Equation Solvreがスゴかった

先日、HP50GのEquation Library を使ってみたのですが、結構面白いんですヨ。
一部の関数電卓にもある、ビルトインされた「公式集」の様なものではありますが、グラフ電卓の強みを活かして、図が表示される項目があります (一部だけではありますが)。
メニューから項目を選んでやると、登録された式を元にしたSolver環境が動き、そのまま数値解を計算出来るという便利ツールなのですが、どうも、50GのMultiple Equation Solver (MES)を利用したものらしい。Users guide を見ると、ヘロンの公式、余弦定理と複数の式を登録してMESを使う例が出ております。

Using the Multiple Equation Solver (MES) - HP50G Users Guide
(page 7-9)

大まかなMESの使い方は、

+ 方程式リストをEQ、SolverのタイトルをTITLE、方程式の独立変数リストをLVARI という変数に記憶させておき、
+ MINIT, MITM, MSOLVR の順にコマンドを実行する

という感じ。コマンド実行時には、スタックに必要なパラメタを積んでおくなどの準備がありますが、詳細はUsers guideを御山椒。

MESの何がスゴイかというと、複数の方程式を登録して、それらを元に数値解を自動で計算する所もありますが、コマンドを複数使うだけでSolver環境が使えるので、プログラムとして構成する事で「専用のSolverプログラム」に出来るのです。
最近の関数電卓には、方程式1本のSolverが用意されていますが、50GのMESは、更に先を行っていたのでした。

先日、JulyさんAmazonの所のHP Primeは在庫が無くなってしまいましたが、50Gは未だ11台残っております。気になる方はお買い求めを。


2. 電卓内蔵のPeriodic Table考

HP50Gには周期表が用意されております。最近の電卓でも、一部には内蔵されているものがあります。
CASIOのfx-J900/700では、118番目の元素まで記録されているとか。

先日、113番目の元素について、日本の研究者が3度に渡り生成する事に成功した事から、命名権を取得したという話題がありました。
HP50Gの周期表は、作られた時期が古く、106番目までの元素までしか収録されておりません。名前も、104,105,106 については「Un-nil Quadium」、「Un-nil Pentium」、「Un-nil Hexium」と、暫定名であります。
これは、ベースとなっているのがHP48SX向けに用意されたアプリケーションで、1995年頃に作成されているので、古いのも仕方の無い所です。
fx-J900/700の周期表は十分に新しく、113番目の元素も収録されているのですが、命名権を取得したという段階なので、未だ名前が決まった訳ではなく、コレばかりはどうしようもありません。その内、113番元素の名前も決まるのでしょうから、その時になったら周期表も改変されるのでしょうか。まあ、市中在庫が結構ある上、ファームウェアの改変も必要であり、簡単には進まないかも。
そこで、新しい高機能電卓を出して、周期表のアップデートを図るという手を期待したい。
最近の電子辞書では、コンテンツの追加やアップデートが出来る製品があると言います。また、ファームウェアのアップデートが可能な様に、マスクROMからFlashメモリにした電卓製品も多く普及して居ります。新しい高機能電卓では、ファームウェアのアップデート機能によって色々な改良が為され、永く使いつづける事の出来る製品である事を期待したいものです。


3. CASIOの「スマートウォッチ」発表

藤堂様からもコメントをお寄せ戴いておりますが、先日、アメリカで開催されたCES 2016で、かねてよりスマートウォッチ市場に参入を表明していたCASIOがAndroidスマートウォッチの販売を表明しました。
いわゆる「フラッグシップ」という扱いで、高めの価格。CASIOとしてはそれだけ自信を持っている製品なのでしょうが、実入りの少ない当方としては「チプカシ」(チープ・カシオ)の様な腕時計に目が行ってしまう。それは蛇足ではありますが、スマートフォンの普及する今日、腕時計の需要は減る傾向にある様子。しかし、AppleがApple Watchを投入した事で、高級腕時計の需要が喚起された模様。そこでCASIOも高級腕時計としてのスマートウォッチを投入する決断に至ったのは、素晴らしい事ではあります。

電卓の方面では昨年、電卓事業50周年記念モデルとして「S100」を発売しました。キーボードなどに工夫を込め、耐久性も高い高級電卓です。これなどは「事務用電卓のフラッグシップ」なのでしょう。高機能電卓は、fx-CG20やfx-FD10 pro辺りがフラッグシップに相当するのか ?
すると、次は高機能電卓の「チプカシ」を期待したい。チプカシは、見た目は安いながらも十分な機能を持ち合わせている「CASIOの普及価格腕時計」であり、高機能電卓でも、こんな感じの製品を期待したいのであります。

過日、CASIOの電卓投票では高機能電卓・fx-5800Pが堂々の3位となりました。高機能電卓もそれだけ需要があるのですから、後継機では、もっと面白い仕掛けを用意して欲しく思うのです。

2015年9月26日土曜日

Julyさんの所のHP Primeが「おいでおいで」をしている ...

先ずは、最近は入手しにくくなりつつあるHP電卓マニュアルなどのPDFの一部について、リンク(直リン含む)を載せておきます。

HP35S Training modules
http://h30499.www3.hp.com/t5/Calculators/HP35S-Training-Modules-for-specialties/td-p/5854845?notmigrated#.VfKfk7O-feQ

HP50G Training modules
http://www.ele.uri.edu/faculty/vetter/Other-stuff/HP-calculators/HP-50g/index.html

HP42S manual
http://h10032.www1.hp.com/ctg/Manual/c01094960.pdf

HP15C manual
http://h10032.www1.hp.com/ctg/Manual/c01095005.pdf

HP12C manual
http://h10032.www1.hp.com/ctg/Manual/c00787560.pdf

HP12C クイックスタートマニュアル
http://www1.hp.com/ctg/Manual/c01798125


少し前の事ですが、某県知事が「高校女子に三角関数の勉強など不要」と公言し、インターネットでは「何を言うか、女性蔑視だ」などという意見が多く出回りました。そうした意見を受け、訂正を述べたとの事。県知事自身が「俺も使った事ないしネ」と言ったとかナントカ。

「女子に三角関数必要ない」 - Reuter
https://jp.reuters.com/article/2015/08/28/idJP2015082801001432

https://twitter.com/Stakesh/status/637048757142458368

https://www.facebook.com/photo.php?fbid=1522492048040753

この「訂正」は、結局の所「男女問わず、高校生程度のガキにサインコサインの勉強なんて、いらねんじゃね」という事になっております。
高齢に達し県知事になった所で人生を振り返ってみれば、確かに三角関数の計算など無縁だったのでしょう。大学出ても、計算を必要としない人は少なくなく、確かに申す通りなのかも知れません。

日本で少なく売られている関数電卓について、土地家屋診断士試験対応電卓などを謳っているものもあり、三角関数が生活にまったく不要なのか、というとそうでもなさそうです。
遠山啓・著「数学入門 (下)」(岩波新書)には、洋服の縫製について、袖の展開を行うと接続面にsin curveが現れる、と書いてありました。工業高校では間違いなく必要であり、高専なんかでは入学してからすぐに微積分を教えるとか。
商業高校ではサインコサインの計算には余り縁がないのかも知れませんが、複利計算を考えると、指数・対数の計算が顔を出します。
「高校生程度のガキに三角関数は不要」とは限らないのだと思う所です。

過日、Twittreで、こんな話題がありました。(リンクを持っていないので、記憶に基づいて文意を書いております。御容赦)
「せんせー、なんで三角関数なんて勉強すんの」というガキには「それは、こうしてバカなガキに三角関数を教えるお仕事が存在するからだ」と言うとガキは納得したので、おススメです
ネタとしては、なかなか面白い答えですが、現実では、バカなガキが言うのではなく、県知事がこんな事を言うております。
こういう県知事が出てくる事こそ「この国の教育が荒廃した」という証左なのですが、こうしたイカレテいる知事の話は、これ以上相手にしていると気が触れそうなので止めます。


CASIOの社員ですらも「高機能関数電卓の高機能を使う必要を感じていない」とは以下の記事でも書かれております。

異様に欲しくなった電卓の話 カシオCLASSWIZ - 週刊ASCII
http://weekly.ascii.jp/elem/000/000/339/339010/

関数電卓の基本的機能さえあれば十分、という意識なのでしょう。
ただ、こういう意識で関数電卓、高機能電卓を使っているとなると、確かに需要は減っていく。

所が、海外ではAggressiveに、関数電卓、高機能電卓が売られているのです。TIはトップシェアで、CASIO,HPと続いているらしいのですが、Sharpでさえも海外では高機能電卓を出している !

Sharpも海外ではEL-9950なんて製品を出しているそうで、当方としては「EL-9950という電卓がある」という事に驚いたのでした。これは、過去に発売されていた「EL-9900」の改良新機種らしく、機能的にはTI-83+に相当する模様。

[シャープ] SHARP EL-9950関数電卓ライセンスシールを提供グラフィックコンバータ(海外直送品)- Amazon.co.jp
https://www.amazon.co.jp/%E3%82%B7%E3%83%A3%E3%83%BC%E3%83%97-EL-9950-SHARP-EL-9950%E9%96%A2%E6%95%B0%E9%9B%BB%E5%8D%93%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%82%B7%E3%83%BC%E3%83%AB%E3%82%92%E6%8F%90%E4%BE%9B%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%82%B3%E3%83%B3%E3%83%90%E3%83%BC%E3%82%BF%EF%BC%88%E6%B5%B7%E5%A4%96%E7%9B%B4%E9%80%81%E5%93%81%EF%BC%89/dp/B00T7U4A4G/ref=pd_sim_sbs_229_8?ie=UTF8&refRID=0SSSXVYTXG92RNAAE4SE#productDetails

Sharpは、海外ではこんなのを出して居るのですね、何で日本では出して呉れないの ?

一方、以下の記事には興味深い事があります。世界的に見るとSharpの電卓シェアは、実の所かなり少ない。

4 電卓は今後どう進化していくのか? - 【レポート】「いつでも、どこでも、だれにでも」使える計算機を! シャープ、電卓発売から50年の節目 - mynavi
https://news.mynavi.jp/articles/2014/03/18/sharp_calculator/003.html

電卓は現在でも、全世界で1億3,000万台の需要がある。シャープは現在、年間700万台を出荷しており、そのうち国内が100万台、海外が600万台となる。

(国内における)電卓戦争の一方の覇者・Sharpでさえも、世界的には大した売上がなかった。そのSharpでさえも、海外では高機能電卓を販売している。結局の所、国内においては高機能電卓の需要がない、という事に尽きるのでしょう、残念ながら。

先日、Julyさんの在庫が復帰したHP Primeですが、入荷数が多く無かったのか、既に残り2台となっておりました。
他のHP電卓も大分さばいていて「もうHP電卓の販売は終了なのか ?」と思ったのですが、価格が少々高めのリアル店舗・東映無線さんでは在庫が潤沢な様子なので、Julyさんでも当面販売は続くのかなぁ ?

https://www.toeimusen.co.jp/~dp/

東映無線さんでは、HP Prime以外にも50Gなどの在庫が十分あるみたいですから、「どうしても50Gが欲しい」方も、今暫くは迷えそうです。(Julyさんから引いているので日本語クィックガイド付きの筈ですが、念の為、お問い合わせ戴き度)

当方はHP Primeの「日本語冊子付き」を待っているのですが、頻繁なファームウェアのアップデートと、それに伴うPDFマニュアルの更新もあって、紙マニュアルは印刷と製本が追いつかないのかも知れず、日本語冊子付きは当分出ない可能性があります。

2015年6月14日日曜日

HP50GでZINTによる階乗計算が9999! まで計算できるという話なので、実行してみました

エミュレータでは割合早いそうですが、実機は結構掛かります。
ちなみに、9999!の「桁数」がどうなるのか。こんな事で求まる筈です。
50Gが計算中なので、TI83+でのプログラムを。

PROGRAM:LIMIT
:0→S
:For(I,1,9999)
:S+log(I)→S
:End
:Disp "FACTO",S

1から9999までの足し算ですが、流石に実行時間が掛かり、最終的に得られた値は、35655.45427 という値。これは log(9999!) の値なので、概算では 2.846259e35655 という値になります。桁数は、35656桁。なるほど、これではすぐに結果は出そうもありません。
今もって、50Gは計算中です。ホントに終わるのか心配になってきたヨ ... 。

で、最終的に 01時間28分 で計算が終わりました !

追記
実行時間の表記を変えました。

2015年6月11日木曜日

グラフ電卓の愉しみ #2 - Pickover Attractor

グラフ電卓には、それなりのグラフィクス機能があります。簡単なプログラムで興味深いグラフィクスを描き出す「Clifford Attractors」のプログラムを作成してみました。

Clifford A. Pickover 氏によるアトラクタで、en wiki には、2DのClifford attractor、3Dの「Pickover attractor」がある、と書かれています。3Dの表示はPCでも少々手数が掛かってしまうので、2D表示で出来るClifford attractor について、行ってみました。
Clifford attractorについては、以下のサイトで例が示されています。

Clifford Attractor
http://paulbourke.net/fractals/clifford/

ここで紹介されているグラフィクスは高性能のコンピュータを使って描き出されたものですから、これがそのままグラフ電卓で再現できるわけではないのですが、大まかな所は十分に描き出される筈です。

先ずは、TI-83+ で描いてみました。プログラム自体は実に簡単ですが、結構時間が掛かります。

PROGRAM:ATTRCT
:AxesOff
:ClrDraw
:0.5→X:0.5→Y
:For(I,1,1000)
:Pt-On(X,Y)
:sin(AY)+Ccos(AX)→Z
:sin(BX)+Dcos(BY)→Y
:Z→X
:End

プログラムを実行する前に、細かい指定を行っておかないとなりません。

1. Clifford attractor では、A, B, C, Dの4つのパラメタを変換させる事で、様々な意匠が得られます。プログラム実行前に、変数A, B, C, Dを予め指定しておきます。

例)
1.32→A : 0.804→B : 2.568→C : 1.824→D

2. つぎに、グラフを描く範囲を指定しておきます。TI83+の場合、グラフ電卓の機能として描図領域の設定等を電卓のメニューから行います。X, Y共に、-4~+4の範囲で描くと、いい感じです。

ついでにHP50GのSysRPLで作成したものを掲載しておきます。UserRPLより断然早いのですが、それでも1分以上掛かってしまいますネ。
こちらの場合は、スタックにA, B, C, Dの数値を積み、プログラムを実行します。
描図範囲は PPAR を参照するので、プログラム実行前に[WIN]キー([Left-Shift]+[F2])で描図範囲を設定して下さい。

!NO CODE
!RPL

::

0LASTOWDOB!
CK2NOLASTWD
CK&DISPATCH1
#1111

  ::

  GETXMIN GETXMAX GETXMIN %-
  GETYMAX GETYMAX GETYMIN %-

  { LAM a LAM b LAM c LAM d LAM xmin LAM xrng LAM ymax LAM yrng } BIND

  CLEARLCD
  TURNMENUOFF

  80 131 MAKEGROB
  GROB>GDISP
  TOGDISP

  ' ID X PURGE
  %0.5 ' ID X CREATE
  ' ID Y PURGE
  %0.5 ' ID Y CREATE

  1000 0 DO
    LAM a ID Y %* %SIN LAM c LAM a ID X %* %COS %* %+
    LAM b ID X %* %SIN LAM d LAM b ID Y %* %COS %* %+
    ' ID Y STO ' ID X STO

    ID X LAM xmin %- LAM xrng %/ %131 %* COERCE
    LAM ymax ID Y %- LAM yrng %/ %80  %* COERCE
    PIXON3
  LOOP

  ABND
  ;
;
@


グラフ電卓の愉しみ #1 - Sierpinski gaskets

プログラムで描くグラフィクスという事で、今回は「Sierpinski gaskets」を御紹介。

TI-83+のマニュアルには、Sierpinski gaskets を「乱数を使う手法」で描くプログラムが掲載されています。
Sierpinski gasketsは「再帰図形」なので、再帰処理によって描く事が出来るのですが、TI-83+には再帰処理のメカがないため、乱数を使う手法を例示していたのでした。

HP50GでRPLを使うと、再帰処理のプログラムを作成できます。今回も懲りずにSysRPLで書いたプログラムを示します (もちろん、UserRPLでも書けます)。

ユーザーが使える「スタック」を用意する事で、BASICでも再帰処理のプログラムは書けると思います。Androidの「BASIC !」には、スタックのメカが用意されておりました。3DSのプチコンにもスタックのメカがあるそうです(藤堂様、多謝 !)から、再帰処理プログラムの作成は可能です、多分。
(こちゃこちゃしてしまい、当方、着手出来ず。申し訳ない。loadがガンガン上がって、頭から湯気が出ております ...)

!NO CODE
!RPL

::
  '
  ::
    {
      LAM ax LAM ay LAM bx LAM by LAM cx LAM cy LAM d
    } BIND

    LAM d #0= ITE
    :: 
      LAM ax 80 LAM ay #- LAM bx 80 LAM by #- DRAWLINE#3
      LAM ax 80 LAM ay #- LAM cx 80 LAM cy #- DRAWLINE#3
      LAM bx 80 LAM by #- LAM cx 80 LAM cy #- DRAWLINE#3
    ;

    ::  
      LAM ax LAM ay 
      LAM ax LAM bx #+ #2/ LAM ay LAM by #+ #2/ 
      LAM ax LAM cx #+ #2/ LAM ay LAM cy #+ #2/ 
      LAM d #1- LAM sier EVAL

      LAM ax LAM bx #+ #2/ LAM ay LAM by #+ #2/ 
      LAM bx LAM by 
      LAM bx LAM cx #+ #2/ LAM by LAM cy #+ #2/ 
      LAM d #1- LAM sier EVAL

      LAM ax LAM cx #+ #2/ LAM ay LAM cy #+ #2/ 
      LAM bx LAM cx #+ #2/ LAM by LAM cy #+ #2/ 
      LAM cx LAM cy 
      LAM d #1- LAM sier EVAL
    ;
    ABND
  ;

  { LAM sier } BIND

  CLEARLCD
  TURNMENUOFF

  80 131 MAKEGROB
  GROB>GDISP
  TOGDISP

  65 80 25 1 105 1 4
  LAM sier EVAL
  SetDAsTemp

  ABND
;
@



SysRPLで再帰大作戦

SysRPLで再帰処理を書くにはどうするのか、気になって居りました。

ここでは、再帰処理による階乗計算の例を示しておきます。

!NO CODE
!RPL

::
  { LAM n } BIND

  LAM n %0 %> 
  ITE 
    ::  LAM n DUP %1 %- ID facto %*  ;
    ::  %1 ;
  ABND
;
@


これをASM でコンパイルし、スタックに載っているSysRPLコードを「'facto' STO 」とやって保存すると使える様になります。CK2とか使っていないので、パラメタは決め打ちです。実数として明確にスタックに数を置き、引き続いてfacto と打ち込みます。
例えば、70の階乗を求めるには、「70. facto」とやってやります。70の後に少数点をつけて実数とするのです。

実は、局所変数に関数定義を束縛し、呼び出すという技法があります。

SysRPL Recursion Question - comp.sys.hp48
https://groups.google.com/forum/#!topic/comp.sys.hp48/JrtXN0bz1QU

上記ではAckermann functionの例が出ておりますが、こちらでは上と同じく階乗の例を示しておきます。

!NO CODE
!RPL

::
  '
  :: 
    { LAM n } BIND
    LAM n %0=
    ITE
      :: %1 ;
      :: LAM n %1- LAM facto EVAL LAM n %* ;
    ABND
  ;
  { LAM facto } BIND
  LAM facto EVAL
  ABND
;
@

冒頭の「'」は、以降のプログラム節 (「::」と「;」で括られたもの) をQuoteする、というものです。これにより、

  :: 
    { LAM n } BIND
    LAM n %0=
    ITE
      :: %1 ;
      :: LAM n %1- LAM facto EVAL LAM n %* ;
    ABND
  ;

の部分を実行(評価)せずに、「そのまま」の状態でスタックに置く、というイメージです。続く「{ LAM facto } BIND」によって局所変数(シンボル)facto に束縛します。
更に「LAM facto EVAL」で、factoシンボルに束縛されたプログラム節をEVALにて評価する事で、実行します。
最後は「ABND」で、BINDで束縛した局所シンボルスコープを脱し、プログラムの終了という具合です。

2015年4月30日木曜日

HP50g : SysRPLで配列を扱うためのメモ

SysRPLにも配列(行列、ベクトル)を確保するためのコマンドがいくつかあります。まずは「^MAKEARRY 」というコマンドを使ってみようと思いました。

HP49G Entry Reference
https://staff.fnwi.uva.nl/c.dominik/hpcalc/entries/hp49g/entries.pdf

には、SysRPLの多くのコマンドが掲載されています。しかし、これに従ってコードを書いてみたのですが、なかなかうまく動いてくれません。(注意 ! このコードは確実に暴走します)

!NO CODE
!RPL
::
  { 3 } %2.3 ^MAKEARRY
;
@

ホトホト困り果て、調べてみた所、どうやら足りないモノがあった模様。

HP49G SYSRPL ^MAKEARRY HELP - compgroups.net
http://compgroups.net/comp.sys.hp48/hp49g-sysrpl-makearry-help/123989

によると、「If the command start with ^, add FPTR2」とあります。^MAKEARRYの様にキャレットで始まるコマンドを使う場合、FPTR2 を付けよ、という具合らしい。エェッー、そんなん聞いていないヨ !!
そんな具合で、取り敢えず「配列を作る(だけの)」プログラムは、こんな具合になりました。

!NO CODE
!RPL
::
  { 3 } %2.3 FPTR2 ^MAKEARRY
;
@

  1. { 3 } で作成する配列の大きさを指定し、
  2. 各要素の初期値を %2.3 (実数値の2.3) として、
  3. FPTR2 ^MAKEARRY で配列を作成します。

これで作成できるのは配列と言っても「ベクトル(1次元配列)」です。大きさの指定を変える事で行列(2次元配列)も作成できます。

配列を作る命令語には、ほかに「^XEQ>ARRY」などがあります。^XEQ>ARRYは、スタックから、配列の大きさと構成する要素を取り出して配列を構成します。キャレットが付いているので「FPTR2」を忘れずに。
配列の要素取り出しには「GETATELN」、要素設定には「PUTEL」があり、この辺りのコードを使った習作を示しておきます。

!NO CODE
!RPL
::
    %0 %1 %2 %3 %4 { %5 } FPTR2 ^XEQ>ARRY
    DUP
    #4 SWAP GETATELN DROP
    %5 %* #3 PUTEL
;
@

無事に実行が終わると [0. 1. 15. 3. 4.] というベクトルがスタックに残っている筈です。

大して長いコードではないのですが、勉強しながらの作業なので暴走させる事もしばしばです。

今回は、リセットが効かない暴走を経験しました。リセットを掛けようとON+[F3], ON+[F1]+[F6] を押しても、反応がないのです。画面の下、4/5が真っ黒くろすけになって、動きがないのですね。これはコマッタ。

Educalc.netに「電池抜きリセット」(電池を全て取り外し、15分以上放置新聞)というTipsが出ていたので、藁をもすがる思いで試したのですが、電源を入れても同様の状態です。ウーム !?
検索していたら、「FlashROM更新とセルフテストメニューの呼び出し」という話題が見つかって、「そうだ、コレだ」と試してみる事にしました。ON+[F3]が効かないので、電池を入れる前に「+」、「-」キーの両方を押しておき、押しながら電池を装填するという奇っ怪な技でメニューの呼び出しに成功し、セルフテストも一通り問題ない事が確認できました。ハードウェアはイカれていない様子。そこで判ったのは「SysRPLの暴走で、FlashROMが書き換わってしまった」という可能性です。
現在、最新のROMは2.15で、これは一度書き込んでいるので、手元にイメージはあります。早速、SDカードによるFlashROMの書き込みを行い、ようやく復旧したという次第です。ヨカッタ、ヨカッタ。


2013年10月14日月曜日

SysRPLの例と、その解説

先日、HP PrimeでSierpinski Gasketsの実行例がYouTubeに上がっているというので、我がHP50gで同じ様なコードを動かして比較した、というネタを書いたのですが、ここで、そのコードの内、SysRPL版についての簡単な解説を出しておきます。こんなコードでした。


!NO CODE
!RPL
::

  CLEARLCD           (LCD クリア )
  TURNMENUOFF        (MENU 表示を OFF に)

  80 131 MAKEGROB    (画面の大きさのGROBを作成)
  GROB>GDISP         (作成したGROBをPICTに入れる)
  TODISP             (PICT を表示します)

  ' ID R PURGE       (一旦、変数を削除してから)
  %0 ' ID R CREATE   (変数を作り直す)
  ' ID X PURGE       (上記と同様)
  %1 ' ID X CREATE  
  ' ID Y PURGE      
  %1 ' ID Y CREATE  

  3000 0 DO          (3000 回のループ計算)
    %RAN %3 %* ' ID R STO    (変数Rに0以上3未満の乱数を入れる)
    ID R %1 %< ITF           (Rの中身が1未満ならば、)
      :: ID X %0.5 %* ' ID X STO  ID Y %0.5 %* ' ID Y STO ;
      (X=0.5*X; Y=0.5*Y; )
      :: ID R %2 %< ITF      (入れ子判定 ; Rが2未満ならば、)
        :: ID X %0.5 %+ %0.5 %* ' ID X STO  ID Y %1 %+ %0.5 %* ' ID Y STO  ;
        (X=(X+0.5)*0.5; Y=(Y+1)*0.5; )
        :: ID X %1 %+ %0.5 %* ' ID X STO    ID Y %0.5 %* ' ID Y STO  ;
        (Rが2以上の場合 ; X=(X+1)*0.5; Y=0.5*Y; )
      ;
    ID X %80 %* COERCE 25 #+ 80 ID Y %80 %* COERCE #-   (点を描く座標の計算)
    PIXON3  (PICT に点を打つ)
  LOOP

;
@

*  SysRPLが早いワケ

SysRPLでは、BINT (Binary Integer) という整数値 (5 nibble) を利用できます。整数値の計算は、BCDの十進数よりも計算の時間が少ないので、BINT を積極活用する事で、UserRPL よりも高速に動作するプログラムが作成できるのです。
また、システムのAPIを直接呼び出すので、UserRPLよりも早く動作します。
しかし、SysRPLでは、プログラムの作成、実行に少々手間が掛かるのも事実です。

コンパイラ(ASM コマンド)は、ソース中の整数値を自動でBINTとして解釈しますが、整数の演算には、#+, #-, #*, #/ の様に「#」を付けた命令を使います。BCDの電卓数値、演算は、%3 %4 %+ の様に「%」を付けて表現されます。

COERCE によって、スタックにあるBCD実数値をBINTに変換できます。


*  大域変数の作成

大域変数の作成には、CREATE が利用できます。スタックに変数の内容を積んでおき、変数名を指定して CREATE を実行します。
変数名の指定には、' ID [変数名] というシーケンスを書きます。最初のシングルクォートがないと、変数の読み出しとなってしまいます。
変数を作成するには、以上の操作で十分ですが、何度も CREATE で変数を作成すると、同じ変数名の変数が複数作成されます。変数の同一性を担保するには、作成前に変数を削除するのが確実です。変数の削除には、PURGE が使えます。
以上をまとめて、大域変数 R を作成するには、つぎの様にしました。

  ' ID R PURGE       (一旦、変数を削除してから)
  %0 ' ID R CREATE   (変数を作り直す)


*  分岐構造

分岐構造には、いくつかの方法がありますが、ここでは ITF (If Then False) を使用しています。

[condition] ITF [True block] [False block]

ブロックは、::  と  ;  で囲む事で成立します。
ITF は、ブロックを2つしか取れませんから、複数の分岐の場合、False block 中に、更に ITF による分岐を入れ子にする必要があります。


*  グラフィクスの扱い

大まかに、50gでは LCD (液晶画面) と、PICT の2 つのグラフィクスがあります。

特に何もしなければ、画面に表示されているのは液晶画面のハードウェア・グラフィクス・メモリです。プログラムの実行中はグラフィクスが表示されていますが、実行後は、スタック表示になって消えてしまいます。
PICTにグラフィクスを描けば、プログラムの実行後にもグラフィクスを呼び出せます。

プログラムで PICT を表示させるには、 TODISP が使えます。TODISP を実行すると、PICT を表示しながらグラフィクスに手を入れられます。

  CLEARLCD           (LCD クリア )
  TURNMENUOFF        (MENU 表示を OFF に)

  80 131 MAKEGROB    (画面の大きさのGROBを作成)
  GROB>GDISP         (作成したGROBをPICTに入れる)
  TODISP             (PICT を表示します)

PICT のクリアには、MAKEGROB にて 新しいGROB を作成し、GROB>GDISP で作成したGROB を GDISP (PICT) に入れてやります。

LCDに点を打つには PIXON 、PICTに点を打つには PIXON3 を使います。他のコマンドも多くあります。


なお、SysRPLの勉強には、

Introduction to System RPL and Assembly Language - hpcalc.org
http://www.hpcalc.org/details.php?id=7114

が大変参考になります。

2013年9月16日月曜日

HP Primeはかなり早いらしい

SysRPLの勉強のため、50gで動く Sierpinski gasket のプログラムを書いてみました。

まずは、UserRPLでのコードから。

« 
  -.3125 1.3125 XRNG 0 1 YRNG
  { # 0d # 0d } PVIEW ERASE
  1 'X' STO 2 'Y' STO
  1 3000 START 
    RAND -> n «
      CASE
        'n<1 2="" br="" end="" sto="" then="" x="" y="">        'n<2 .5="" 1="" 2="" br="" end="" sto="" then="" x="" y="">        X 1 + 2 / 'X' STO Y 2 / 'Y' STO END
      X Y i * + PIXON
    »
  NEXT
»

これは、3000回のループを行います。ガベージ・コレクションの発生もあるので、一概に実行時間が決まりませんが、実行したら10分程度掛かります。
一方、同様の動作を行うSysRPLのコードです。

!NO CODE
!RPL
::

  CLEARLCD
  TURNMENUOFF

  80 131 MAKEGROB
  GROB>GDISP
  TOGDISP

  ' ID R PURGE
  %0 ' ID R CREATE
  ' ID X PURGE
  %0 ' ID X CREATE
  ' ID Y PURGE
  %0 ' ID Y CREATE

  3000 0 DO
    %RAN %3 %* ' ID R STO 
    ID R %1 %< ITE
      :: ID X %0.5 %* ' ID X STO ID Y %0.5 %* ' ID Y STO ;
      :: ID R %2 %< ITE
        :: ID X %0.5 %+ %0.5 %* ' ID X STO ID Y %1 %+ %0.5 %* ' ID Y STO ;
        :: ID X %1 %+ %0.5 %* ' ID X STO ID Y %0.5 %* ' ID Y STO ;
    ;

    ID X %80 %* COERCE 25 #+ 80 ID Y %80 %* COERCE #- 
    #2 NDUP PIXON PIXON3

  LOOP

;
@
こちらも3000回のループを行うのですが、実行時間は流石に早く、1分半程度になりました。
ちなみに、HP GCCならば、10000回ループにしても一瞬で描いてしまいます。

で、HP Primeではどうなのか ? 偶然ではありますが、MoHPC に、作業例が提示されて居りました。

Sierpinksi triangle on HP Prime - MoHPC
http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/forum.cgi?read=250281#250281

YouTube動画へのリンクもあり、これをみると実に早い。こちらのコードでは3000回ループなのに、HP Primeでは20000回ループだそうです。ウーン。

恐らくインタプリタであろう電卓言語で、ここまでの速度が得られる。恐るべし、HP Prime。確かに、単純にARM 75 MHz (12 MHzという話もありますが)と 400 MHz ですから、パワーは大きく違うのではありますが、ここまで見せつけられるとなると ... 欲しい。

2012年5月27日日曜日

実は意外に使いやすかったHP50g #2

まだまだ使い切れていないHP50gの機能、今回は、Confidence Intervalについて。

Hypothesis testやConfidence Intervalの使い方や、あらましについては、はるまき様Wikiページが大変勉強になりますので、まずはそちらで使い方の基礎をおさえて戴くとしまして、この辺りを少し使うようになると、「データ列を入力して、その計算をしたい」場合が出てくるんではないか、と思うのですね。
例えば、つぎのデータ列のt区間推定(なんて恰好付けてみましたが)をやるには、どうしましょうか、という話題です。

1102 1034 1181 1087 1141 1382 1079

先ずは、[STAT]メニューを押して、[6. Conf. interval...]を選択しましょう。そして、今回のt区間推定を行うには、[5. T-INT: 1 μ..]を選択します。すると、[CONF. INT. : 1 μ, UNKNOWN σ]というタイトルのある画面になり、bar_x, Sx, n, C,と、4つのパラメタを入力できる状態になります。

HP50gの場合、これらの各種パラメタを入力してやる事で、母平均の信頼区間を計算してくれるのですが、各パラメタには数値を入れる様になっています。それをデータ列から簡単に計算して入れられたら便利です (ちなみに、TIの83+の場合、リストによって、データ列を指定して計算出来ます)。

最初は、bar_xの所が選択されていて、画面下には[EDIT][ ][HELP][ ][CANSEL][OK]とメニューが表示されています。ここで[NXT]ボタンを押して、メニューの次ページを出してみて下さい。[RESET][CALC][TYPES][ ][CANSE+][OK]という具合になります。ここで威力を発揮するのが[CALC]メニューです。[CALC]メニューボタンを押すと、bar_xの所の数値がスタックに積まれた状態になり、メニューが[STS][ ][ ][ ][CANSEL][OK]となっています。ここでは、新しいスタック状態で、計算が出来るのです。

Confidence Intervalの機能を呼び出したのに、データ入力がまだでした。そこで、今、この状態でやってしまいましょう。再び[STAT]メニューを押し、一番上の[1. Singel-var..]を選択して、1変数統計計算機能を呼び出します。[ΣDAT]の所にMatrix Writerでデータを入力しましょう。こうして入力したら、最初に欲しいのはデータの平均値だったので、[_Mean]にチェックを入れて[OK]を押します。すると、「:Mean: 1143.71429571」というタグ付き数値がスタックに積まれます。後は、タグを手で削除する手間が必要ですが、それほど面倒ではないでしょう。
そして、メニューはいぜんとして、[STS][ ][ ][ ][CANSEL][OK]となっています。これで平均値のデータは得られたので、[OK]を押します。すると、先程の[CONF. INT. : 1 μ, UNKNOWN σ]タイトルの画面に戻ります。
後、同様にSx (標準偏差。[_Std Dev]で計算)、n (データ数、ΣDATを呼び出し、SIZEでデータを調べられます)、C (信頼度。これはユーザーが必要に応じて決めるものです)をひと通り入力、[OK]を押せば、t区間推定を計算してくれる、という次第です。
なお、他のメニューを出してしまい、[STS][ ][ ][ ][CANSEL][OK]というメニューになっていなくても、[Left-Shift][ON] (=[CONT])と押せば、[STS][ ][ ][ ][CANSEL][OK]メニューに復帰します。そうしたら[OK]を押せばいいのです。

参考までに、上記データで計算させた結果を示しておきます。

bar_x: 1143.71428571
Sx: 115.006832095
n: 7
C: 0.95

----------

Critical T=±2.446912
  μ Min = 1037.351
  μ Max = 1250.078

上記データ列の平均は、およそこの区間に、0.95程度の確率でありそうだ、ちう具合です。

HP50gの各機能は余り高いものではなさそうですが、組み合わせる事で威力を発揮するもの、と言えそうです。少々手間は掛かりますが、なかなか、面白いでしょう。お試しあれ。


2012年4月8日日曜日

two results of forms by 35S

First, calculate the form by 35S :

2.5^3^4 = ?

In RPN ;
3 [Enter] 4 [y^x] 2.5 [x<>Y] [y^x]  ...  returns 1.7106 E 32 (Fix 4)

calcs : 2.5^(3^4) = 2.5^81 = 1.7106 E 32

In ALG (EQN) ;
2.5^3^4 ... returns 59604.6448 (Fix 4)

calcs : (2.5^3)^4 = 2.5^(3*4) = 2.5^12 = 59604.6448

TI-83+ also returns 2.5^3^4 = (2.5^3)^4 = 2.5^12 = 59604.64478
but HP50g returns 2.5^3^4 = 2.5^(3^4) = 2.5^81 = 1.710569411446 E 32