★★★★★電卓マニア★★★★★at HOBBY
★★★★★電卓マニア★★★★★ - 暇つぶし2ch216:名無しの愉しみ
11/09/22 01:15:03.12
とりあえず電卓一つの機種決めて、そいつについて徹底的に語り合ってみせてくれ。ファイッ!

217:名無しの愉しみ
11/09/22 17:25:08.30
お題:Sharp EL-501E
猿蟹合戦の臼に似ている

218:名無しの愉しみ
11/09/23 18:37:36.99
EL-501Eはふたのデザインが悪い。しまう時、でかい[ON]スイッチに触って電源が入ってしまうことがよくある。

219: ◆Wztoem6ZrP.p
11/09/29 01:00:56.30
そろそろお題を作ってみた
Sharp/EL-501JとCanon/F502G用
e^(25.32)+1-e^(25.32) = 1
e^(25.33)+1-e^(25.33) = 0
ここから結果が異なる
e^(27.63)+9.123-e^(27.63) =
e^(27.63)+10.123-e^(27.63) =
e^(27.64)+10.123-e^(27.64) =

220:名無しの愉しみ
11/09/29 06:49:34.95
>>219
EL-501Jの場合
0
10
0

F604の場合(F-502Gと同じはず)
0
10.12
0

221:名無しの愉しみ
11/09/29 08:37:08.82
>>219
この式の意図は?

222:名無しの愉しみ
11/09/29 09:59:39.48 eO6ul4Md
(・∀・)


223:名無しの愉しみ
11/09/29 20:19:20.87
さっぱりわからん

224:名無しの愉しみ
11/09/29 23:37:43.19
>>219
正しくはどうなるのかな?

225: ◆Wztoem6ZrP.p
11/09/30 02:21:11.57
うたた寝して貼るの遅れた。まず最初の2式。
e^(25.32)+1-e^(25.32)=1
e^(25.33)+1-e^(25.33)=0 について

10^11 = e^25.3284360...より
e^(25.32) < 99,999,999,998 < e^(25.33)
よって(e^(25.32)+1)は加算数が仮数部内でフローせずe^(25.32)を引けば1が残る
一方e^(25.33) > 10^11より次式は加算数がフローし、加算されずe^(25.33)を引けば0
よってEL-501JとF502Gはともに仮数部11桁

226: ◆Wztoem6ZrP.p
11/09/30 02:22:15.00
次の3式
e^(27.63)+9.123-e^(27.63)
e^(27.63)+10.123-e^(27.63)
e^(27.64)+10.123-e^(27.64)
EL-501Jは0/10/0 (一桁補足のため)
F502Gは0/10.12/0
こちらも基本的に同じ。
10^12 = e^27.6310211...より
e^(27.63) < 999,999,999,989 < e^(27.64)
よって最初と最後の式は仮数部以下の数値の加算がフローして加算値が残らない
しかし真ん中は10は2桁目が仮数部にかかるために加算値10が残る
その後F502GはKahan加算アルゴリズムと同様に切捨の3桁を減算の後に付加
EL-501Jは切捨1桁しか付加しないから,この場合0になるため数値変化しない

実はKahan加算アルゴリズム使えば仮数部よりはるかに長い桁数の加算減算が可能である
しかし最近は仮数部に対して2,3桁多い範囲程度で収めることが多い.

227: ◆Wztoem6ZrP.p
11/09/30 02:46:01.05
[Kahan加算アルゴリズムと同様に...]の説明
今回の計算は下記のように表せる
A+B-C=?
しかし例えばBに仮数部以下の数字がある場合
電卓はA+Bの計算はBの仮数部内の数値bをAに加えることで行う。すなわち
A+B≒A+b (但しB=b+δ(B)としδ(B)は加算Bの残り)
最近の電卓はこの加算残りを次の計算後に再評価する。
A+B-C=(A+b)-C+δ(B)
但しこのδ(B)を下何桁まで保存するかが電卓により異なる。
EL-501Jは1桁分でF502Gは3桁。それが答えが異なった原因。
但し仮数部bが0以下だと計算もされずにδ(B)も保存されない。
さらに実際には同様に各計算での加減算残りをA=a+δ(A),C=c+δ(C)として電卓は評価するだろうが
この場合A=C(よってδ(A)=δ(C))によりAとCの項の効果は相殺されるので考慮していない。

228:名無しの愉しみ
11/09/30 12:29:41.15
難しくてよくわからないんだけど、結局

1)EL-501JとF-502Gは仮数部11桁で演算(加算・減算)する

2段目の真ん中の式の結果を見ると、

2)加算・減算処理の結果をEL-501Jは仮数部1桁、F-502Gは仮数部3桁まで処理結果を保存している

ということ?

229:228
11/09/30 13:20:27.20
>>228
これって、物理的な仮数部の桁数の問題じゃなくて演算処理方法が2つの電卓には違いがある、ということなのかな?

230:名無しの愉しみ
11/09/30 21:37:07.19
前に
200000*(1*0.06/360)^(360*30)
をやったとき、E-501EもF-502Gも12桁精度で同じ答えが出たと思ったけど、物理的には11桁しかないということか?

231:225 ◆Wztoem6ZrP.p
11/10/01 01:38:16.57
説明が悪くて申し訳ない。
EL-501J/F-502G共に仮数部11桁/演算12桁。

>>228
1)その通り。仮数部は11桁なのを確認できた。
2)その通り。桁落ちした値をそれぞれ補うアルゴリズムがあるものの
 桁落ちした値をEL-501Jは1桁、F-502Gは3桁考慮するという差異がある
>>229
 そう。上手くまとめてくださいました。
>>230
 計算の内部演算桁は12桁で記憶領域の仮数部は11桁。
 RAMが高かった頃の設計の電卓と最近の設計の電卓は
 仮数部桁数と内部演算桁数に差異があることが多いようです。

232:名無しの愉しみ
11/10/01 10:39:46.07
>>228の結果だけ見れば、保有する桁数はF-502G>EL-501Eとなり、なんとなくF-502Gのほうが精度が高いように思えるのだが、
sin-1(cos-1(tan-1(tan(cos(sin(9))))))

(1+1/60000)^(e^15)
4.58927750000E+23 Sharp EL-501E
4.58928115100E+23 CANON F-502G
では、EL-501Eのほうがほんの僅かではあっても正解に近い値を示す。
これはSharpの演算ロジックのほうがCanonを上回っているという結論で良いのでしょうか?

233:名無しの愉しみ
11/10/01 14:10:35.14
>>232
語弊があったかな。
Kahan加算アルゴリズムの類いを使えばどれだけでも桁数増やせる
しかし元の演算精度に対する誤差も考慮しSharpは1桁,Canonは3桁で切っただけ。
この件はどちらが精度が良いという訳でなく設計思想の問題。
実際両者の計算値に差異が生じることもあると思うが
どちらが良いかは計算次第で運の問題かと。

実際に(1+1/60000)^(e^15)はEL-501E/Jが近いが
sin-1(cos-1(tan-1(tan(cos(sin(9))))))は
8.99999864382 F502G
8.99999863704 EL-501J
でF502Gの方が近い

234:名無しの愉しみ
11/10/01 18:55:52.42
>>233
なるほど単純な話ではないのですね。

235:名無しの愉しみ
11/11/05 18:42:02.20
>>234
もうちょっとましな返しをすれば会話が続いたかもしれないのに・・・

236:名無しの愉しみ
11/11/08 00:00:52.24
標準入力電卓の良いところとしてcosボタン連打で不動点だす要領で
他のボタンでできないか調べたけどcos以外は0と1以外の不動点を示す関数なさそう。
実はそれで止まってしまったw


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch