ブログトップ

電子工作やってみたよ

前回 π(パイ)円周率 を求めるのにモンテカルロ法を使って遊んでみましたが、調べる範囲が解っているのになぜ乱数使ってやるの? 
と疑問が湧いたのでモンテカルロ法をちょっと変えてやってみました。
図のNo1はモンテカルロ法で、ひとつの真四角の中に乱数でランダムに点を置いて半円(1/4円)の内側にあるかを調べて数の比率で円周率を求めます。
しかし 調べる範囲が決まっているのだから、なにも不安定な乱数でやることはないと思います。
No2は端から順番に均一に調べていく方法です。 これならばらつきもなく精度が上がるのでないかと思いやってみました。
とりあえず 演算時間もあるので真四角を立て横100等分して合計10000点で調べました。



c0335218_18194215.jpg



c0335218_10462042.jpg


全プログラムリスト 

HP32Sのプログラムです。
10000点のデータが出るまでに20分かかりました。

A01 LBL A
A02 0
A03 STO X
A04 STO Y
A05 STO T
A06 STO P

B01 LBL B
B02 RCL X

C01 LBL C
C02 XEQ H
C03 0.01
C04 STO +Y
C05 RCL Y
C06 1
C07 X>Y ?
C08 GTO C
C09 0
C10 STO Y
C11 0.01
C12 STO +X
C13 RCL X
C14 PSE
C15 1
C16 X>Y ?
C17 GTO B
C18 RCL T
C19 RCL P
C20 STOP

H01 LBL H
H02 1
H03 STO +T
H04 RCL X
H05 X^2 Xの2乗
H06 RCL Y
H07 X^2
H08 +
H09 1
H10 X<Y ?
H11 RTN
H12 1
H13 STO +P
H14 RTN


使用した変数
X
Y
P
T

結果
円の内側の点  7953
真四角の全点 10000

円周率  ( 7953 * 4 ) / 10000 = 3.1812

モンテカルロ法より悪いですね。 縦横100等分ではまだ粗いということでしょうか。
しかし HP電卓でやてみるとこれでも20分かかりました。



************************************************************************

同じ動作をするものを PC9801のN88Basicで組んでみました。(古いですね)
内部演算をバイナリでやっているため、計算の終わりに近づくと少しづつ誤差が累積してきます。
演算時間は30秒くらいでしょうか。

X=0: Y=0: T=0: P=0

WHILE X < 1
PRINT X
WHILE Y < 1
T = T + 1
L = ( X^2 + Y^2 )
IF L < 1 THEN P = P + 1
Y =Y + 0.01
WEND
Y = 0
X = X + 0.01
WEND
PRINT T
PRINT P




これで終わりです。





親戚の農家から柿を貰いました。
柿の品評会で金賞を何度もとったことがあるそうです。
この家の周りには、手入れをされた柿の木がなん十本もあります。
今は 80歳をとうに過ぎていますが、柿を作り始めた歳がなんと70歳だそうで、今の私より歳をとっていたんだ。 弟子入りして教わろうかな。
最初木になっている時は渋柿ですが、木になっている状態でビニール袋を被せ渋抜きをして甘くするそうです。
柿を切って見ると断面にはゴマというのですか黒いつぶつぶがたくさんあります。 当然種なしです。
実は固くて歯ごたえがあり、とても美味しいです。
さて 悩むのは、お返しをどうしよう、ということですね。
もう少したつとりんごがもらえる予定なのでそれ持ってお返しかねて遊びに行ってみようかな。
ついでに言ってしまうと、我が家のネギの苗もこの親戚からもらったものです。
プロというか年期が入っていて市販されている苗よりもとても元気の良いものを作ります。
写真の左下にあるのはHP29c電卓です。大きさ比較のために置きましたがじゃまでしたね。
電卓の上下の長さは13cmです。  この柿を貰う前日スーパーで一つ100円の柿買ってきて食べましたが、それよりもこの方が大きくて美味しいです。

c0335218_19432926.jpg




by telmic-gunma | 2017-11-16 11:20 | HP電卓 | Trackback | Comments(0)

この式 オイラーの等式と呼ばれ数学の式のなかでも最も美しい式の一つだそうです。
わたしは、このシンプルな式の美しさなんとか解りますが この式がどのように導かれたのか、また何の役に立つのか皆目わかりません。
この式 以前ブログに載せた 小川洋子さんの「博士の愛した数式」の中に出てきましたね。

天邪鬼な私としては、この式をHP電卓で計算して成り立つのかいなかを見たいと思いました。
電卓のマニュアルや数学の本、ネットなど、一週間ほど調べてみました。

c0335218_12334551.jpg





調べて解ったことは 次の展開された式の Θ (シータ)が π (パイ)の時になりたつということです。
直接 オイラーの等式を電卓に入力して答えを出す方法は解りませんでした。

c0335218_12335367.jpg
このΘ(シータ)にπ(パイ)を代入すれば cosπ(パイ)は -1 となり sinπ(パイ)はゼロとなりますから電卓の出番もなく
-1 +1でゼロとなりこの式は合っているとなります。

HP電卓でなく 最近の「数式通り」の電卓ならば答えが出るのでしょうか。
ぜひ トライしてみたいですね。


これで終わりでは寂しいのでこの e (ネイピア数)を導く式をHP電卓で計算してみます。

c0335218_12373178.jpg
Xが1の時に e の値になりますので、Xのところはすべて1になって計算は単純になりますね。



全プログラムリスト (HP32S を使用)

変数名
A:   右辺 分母の数値  0, 1, 2, ~ 一つづつ増加する
B: e の積算値


A01 LBL A   *******

A02 0
A03 STO A   右辺 分母の数値  0, 1, 2, ~ 一つづつ増加する
A04 STO B    e の積算値

B01 LBL B   *******
B02 X !     右辺 分母の階乗計算
B03 1/X     右辺 分数計算 
B04 STO +B  右辺 e の積算
B05 1      
B06 STO +A   右辺 現在の桁位置加算  
B07 15     右辺 計算終了させる桁位置の数値     
B08 RCL A   現在の桁位置
B09 X < Y ?   終了位置まで行ったか
B10 GTO B   終了位置前なので次の桁での計算をする
B11 RCL B e の積算値を読み出す
B12 STOP 


これで終わりです。


答えは1秒で出ます。

2.71828182846 なので正解ですね。 演算の繰り返しは15より小さくしてもいいですね。



c0335218_21395957.jpg

庭に咲いているとは言えないかもしれませんが、真っ赤になった「ほおづき」です。
ピントがちょっと合っていませんけれど。
葉っぱはもう枯れています。


c0335218_21394858.jpg



by telmic-gunma | 2017-10-29 20:43 | HP電卓 | Trackback | Comments(2)