2021年12月11日土曜日

python電卓花盛り

永い事、「買いたいなぁ」と思っている内に、HP Prime は軒並み値上がり、こうなると、金欠の当方としては、なかなか手が出ない。
追い打ちを掛ける様に、いよいよ、TI-84 Plus CE pythonが「アメリカからの特別のプログラムを送ります」という感じで、出回り始めました。
目下、python電卓が豊作となっており、どれを買ったらいいもんじゃろか ?

そんな年の瀬、CASIO fx-CG50のアプデが提供されておりますネ。

https://support.casio.jp/download.php?cid=004&pid=1067

「オッ、コレは !?」と思っておりました。藤堂様、来年と言わず「Buy Now !」なのかも ?

https://twitter.com/ShunsukeTodo/status/1463412223888420865

しかし、今回のアプデは、pythonの拡張ではなく、統計分布アプリの新設、というものでした。
まあ、今のpython機能でも十分なものはあると思いますが、徐々にでも拡張がされたらウレシイかなぁ。

2021年8月22日日曜日

五輪の夏、DELTAの夏 - 夏休みの自由研究 2021年

目下、新型感染症の猛威は留まる所を知りませんが、今日流行しているものは「デルタ株」という新しい型らしい。

ref. 埼玉県 インドで確認「L452R」変異ウイルス 陽性率85.4%に - NHK news https://www3.nhk.or.jp/news/html/20210811/k10013195471000.html

東京都は、新型肺炎の感染についての情報を公開しており、 中には、デルタ株についての検査報告もあがっております。

ref. https://github.com/tokyo-metropolitan-gov/covid19/blob/development/data/variants.json

 

日付デルタ株件数全件数
2021-04-30076
2021-05-031121
2021-05-102103
2021-05-178139
2021-05-243372
2021-05-3115309
2021-06-07321002
2021-06-141271516
2021-06-212611770
2021-06-285022336
2021-07-059343050
2021-07-1219484220
2021-07-1936745688
2021-07-26998312222

このデータを使い「不要不急の外出」を控えつつ「夏休みの自由研究」をしてみましょう。

上記の情報ですが、検査数が一定していないので、全体の感染数に対するデルタ株の割合を調べてみます。 グラフ電卓の散布図プロット機能を使うと、デルタ株の割合の時系列変化がよく判ります。 デルタ株の割合のグラフを描くと、どうも「ロジスティック関数」のようであります。

ref. ロジスティック方程式 - Wikipedia https://ja.wikipedia.org/wiki/%E3%83%AD%E3%82%B8%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E6%96%B9%E7%A8%8B%E5%BC%8F

最近のグラフ電卓には「ロジスティック回帰」の機能がありますから、これで調べてみるとよさそうですが、古いものには実装されておりません。

そこで、古い電卓でも分析できる様に、作業してみました。

ロジスティック方程式ですが、「全体の割合」という事で限定すると、つぎの式で記述できます。

これを書き換えると、

となって、指数回帰の機能で回帰分析出来そうです。

実際にロジスティック回帰を実施するには、日付を週番として独立変数x に、「デルタ株」件数/全件数を従属変数yとしますが、従属変数yを(1-y)/yと変数変換して回帰分析を実行します。

デルタ株件数が0になっている所では、この変数変換が計算できませんから、ごく小さな値を設置して、計算エラーを回避するという工夫が必要になります。

こうして指数回帰を実施すると、つぎの式が得られました。

2101.37490861*0.480788843194^X 

 

もちろん、この式は指数回帰の式でありますから、これをロジスティック回帰の式に書き換えると、

1/(1+2101.37490861*0.480788843194^X)

が得られます。

グラフを描くと、こんな具合になります。



ここでは、HP Prime シミュレータを利用しましたが、HP Prime には、ロジスティック回帰の機能がありますネ。 しかし、ロジスティック回帰に特化した計算方式ではないらしく、上記のデータで実行しても、うまいこと計算してくれません。シクシク。 そこで、今回のような姑息な手段を講じたのですが、お手持ちの高機能電卓でお試し戴く際の参考にして戴きたく思います。

デルタ株、猛威をふるっており、全国的にも感染者数が激増しております。

接種をしたからといっても、まだまだマスクは手放せない模様。くれぐれもお気をつけて頂きます様。

 

2021年8月19日木曜日

猛暑で足りないオツムが茹で上がっており

 blogにloginしておりませんでした。申し訳ない。

 ネタにも詰まっており、書くこともおまへんがな。これじゃTweetだよ、トホホ。

 

2021年5月25日火曜日

他人のTweetを肴に

https://twitter.com/maiko_tabibito/status/1395653313459277825

TI-83 Premium CEとNumworks電卓、どちらがいいのか ? とのTweet。

TI-83 Premium CEなんてぇえのがあるとは、寡聞にして知らず。勉強になります。
計算機能は非常に素晴らしいんですよ、TI製品。
TI-83 Premium CE、おフランスで流通しているらしい。Python が使えるっぽい。
しかし、おフランスで出ているだけあって、銘板もおフランス語 ... 。

https://education.ti.com/fr/produits/calculatrices/graphiques/ti-83-premium-ce-edition-python

おフランスを中心にオイローパを席巻しているNumworks対抗すべく計画された、ちう事で出たのだろうか、と。

まぢめなハナシ、チョット検討してみました。

+ TI-83 Premium CE edition python

TIの独自moduleにより、各種のdistribution PDF/CDFが計算可能
STEM対応で、TIの供給するロボットカーに接続、pythonプログラムによる制御
プロセッサはembedded Z80で、もしかすると、Z80電卓で開発されたゲーム、Ion OSとかが動くのかなぁ ?

+ Numworks

最近のN110はメモリも大きいので、XCASも使えるとか (Omega OSを使うとラクなんだそうですネ)
ファームウェアが時折更新される。ファーム更新はPCにリンクソフトをインストールする必要が無く簡単
pythonスクリプトの外部ストレージへの保存は、困難

どっちもいいのです、甲乙つけがたい。当方だったら、両方欲しい ! でも、ゲルピンなんだよなぁ。

ソコは、実際に使うヒトが選ぶ必要があるのですが、「子用リセ」って何じゃろ ? 「正しい日本語」て、外国語もようけ話せんオッサンはついて行けんですよ。どうも「お子さんのガッコ用」ちうことなの ?

海外のガッコでグラフ電卓を使う必要があり、何を買い与えたらよかんべ、という話なのだと思うのですが、
そのガッコで、グラフ電卓をナニに使うのか、ソコをはっきりさせておかなアカンのですネ。
4年毎に海外を転々とするノマドの様な暮らしをされておられる様ですから、外野が何をかいわんやではあります。

2021年4月17日土曜日

HP Prime CASの計算の数値範囲

HP PrimeのCASは色々と楽しく、ネットで見掛けた問題を幾つか解くのに使ってみました。

1. x^sqrt(x) = x*sqrt(x)

Can you solve this rational equation ?

cf. https://www.t-3.com/thinking/brilliant-orgs-brilliant-crm/

CASで

fsolve(x^sqrt(x)=x*sqrt(x), x)


と入力します。すると、一度、こんな警告が出ますが、

ENTERキーを押して送ると、[1, 2,25] と、答えを返します。ウマイッ !

2. x! = (7!)! / 7!

what is x ?

cf. https://sites.google.com/a/g.coppellisd.com/coppell-ib-math/math-sl/topics---sl/probability/counting-principles

これは、すんなりと解けるものではなく、別に色々とやって答が判明していたので、その検証に使おうとしました。

答は x=5039 となるらしい。PCで動くmaximaで手当たりしだいに試し結果を得たですが、検証をHP PrimeのCASで出来ないか、試した次第。

(7!)!/7!-5039!
    undef

所が ... 計算できまへん。undefとなってしまいます、アカン。

では、何処までの階乗が計算できるのか、調べてみました。どうも、1006! までは計算できますが、1007! になるとお手上げです。ウーム。

ちなみに、1006! がどんな数値なのか、そこを見ておこうと思います。
整数では結果が得られますが、結構桁数があります。浮動小数点表記だと、どうなるのか ?

HP Primeの浮動小数点表示は、10 E 500 以上でエラー、もしくは Inf となります。1006! は、この範囲にはないでしょう。そこで、対数を取って階乗を計算し、それを浮動小数点表記にする、という作業を行います。

log(1006!) の計算
ΣLIST(MAKELIST(LOG(X),X,1,1006,1))  Shift+ENTER (概数計算の入力)
    2585.61374471
これより、1006! = 4.10908107239 E 2585 と概算されます。
(10^0.61374471 = 4.10908107239 ですネ)

log(1007!) の計算
ΣLIST(MAKELIST(LOG(X),X,1,1007,1))  Shift+ENTER
    2588.616774418
これより、1007! = 4.13784463462 E 2588 と概算されます。

浮動小数点数は10E500まででしたが、整数は、この程度まで計算してくれる模様。
そこで、限界を調べるべく、電卓のキー (実際にはシミュレータのボタン)を叩きまくり、つぎの様な値までは扱えるらしい事が判りました。
3605227827*10^2579 = 3.605227827 E 2588
そして、この整数は、おそらく2進数integerで内部的に保持しているであろうから、何ビットで表現できるのか、と考えてみました。

2を底とする対数を取ったりしてみると、2^8599 が3.605 E 2588 に近い値となる様子。
HP Prime CASでは、2^8599以上の整数値は扱えないらしい、と考えられます。

所が、こんな結果が !
s=2^8598
    1802613913 ... 2262841344 (途中省略の表記です)
s*s
    undef
ここまでは当然ですネ。
s=2^8597
    9013069568 ... 1131420672
s+s
    1802613913 ... 2262841344
s*4
    undef
2進数的に1桁落として加算します。ここも十分理解できます。
s+s+s+s
    3605227828 ... 4525682688

ムムッ !? コレはオカシイ、undefにならんじゃないの !!


調子に乗って、64回加算を行いましたが、一応結果が得られました。
加算の処理が簡易だからなのか、回数を増やしても、ある程度ならば計算してくれる様です。

こんな具合で、整数の場合、3.6 E 2588 程度まで計算してくれる事が判りました。
欲を書くと、もっと長い桁数の整数計算が出来ると良かったのですが、普通の関数電卓では、ここまで扱えないのが当たり前なので、コレ以上の計算の需要はPCの利用を、という事ですネ、ハイ。


仰るとおりでございます ...

https://twitter.com/dentaku_sister/status/1380909436592480262
https://twitter.com/dentaku_sister/status/1382660888658792449
そうなんですヨ。当方、オツムが弱いもんで ... 。

https://twitter.com/dentaku_sister/status/1382962907936301060

Mathematica, 高いしィ !

https://twitter.com/dentaku_sister/status/1382577833436860420
仰る通りです。「この世に果たしてロマンはあるか、人生を彩る愛はあるか」(「ジェームス三木のブラックジャーック」より)。
PCの普及した今日、スマートフォンでもCASが利用できる中で「電卓にロマンを求めるのは間違ってる」のではあります。
でも、当方、コレくらいしかできんのですよ、申し訳ない。(余計なお世話か)

https://twitter.com/dentaku_sister/status/1382789203453378565
HP、PC部門も分社化しております、大きくなりすぎちゃったので、改革、分社化は世の習い ... 。

https://twitter.com/dentaku_sister/status/1382283551299629058

なのかも知れません。だから、どうしたの ? CANON, CASIOの電卓も海外で製造しているし、どこで作れというのか ?

https://twitter.com/dentaku_sister/status/1380456202836975622
キツイなァ ! 今時はWindowsもブートループするとか ... 。

2021年4月11日日曜日

HP Prime CAS でやってみた

こんな話題をみつけました。

cf. https://twitter.com/dentakuin/status/1145548793527459840

陰関数表示のグラフ描図との事です。

以下のコードは、sin(x^2)+sin(y^2)>=1 を描く、CASのpythonコードの例です。


#cas

def sinsqs() :
  wi = 320
  he = 240
 
  Xmin = -6.4
  Xmax =  6.4
  Ymin = -4.8
  Ymax =  4.8
 
  for k in range(he) :
    for j in range(wi) :
      x = Xmin + (Xmax-Xmin)*j/wi
      y = Ymax - (Ymax-Ymin)*k/he
      if sin(x**2)+sin(y**2) >= 1 :
        col = RGB(255,0,0)
      else :
        col = RGB(255,255,255)
      PIXON_P(j,k,col)
  WAIT

#end