三角関数を用いて掛け算を行う その2 [今日のアニソン]
三角関数を用いて掛け算を行う その2
三角関数表と次の三角関数表を用いて、掛け算を行う方法を紹介した。
その際、実際に、この方法を用いて5150×3090の計算を計算してみたところ、精度よく計算できなかった。
これは掛け算に使われた数の桁数が互いに4桁と非常に短いためではないかと考え、次の掛け算で再挑戦してみることにする。
766044443×529919264=405941707425849952
9桁同士の掛け算だにゃ。これならば、きっと正しい答えを導き出してくれるに違いない。
そして、ここで三角表を見て、
であるa、bを探すと、a=50°、b=32°、
したがって、
ここで再び、三角対数表を取り出し、cos18°とcos82°の値を調べると、0.951056516と0.139173101だから、
したがって、
左から9桁目の数字が8と7で違っているけれど(しかし、その差はわずかに1)、この計算法の有効数字がこの程度だから、この桁の数字が少し違うのはしょうがない。
科学計算で使用されるFORTRANの単精度(実数型32ビット)の計算の場合、0.01×100は1にならない。
それに比べれば、この計算法は十分すぎるほどの精度を誇っているといって過言はないと思う。
「ネムネコ、ちょっと待った!!」
「何だにゃ、おじゃま虫。」
「お前、計算が一致するように、三角関数表にあるsin50°とsin32°の数字を整数化し、766044443、529919264という数字を引っ張りだしただろう。だったら、最初から、三角関数を用いたこの計算が有効数字程度で一致するように仕組まれているじゃないか。」
「たまたまの一致だにゃ。これは偶然。だから、妙な言いがかりは付けないでもらおうか!!」
対数を使うと、この掛け算は次のようになる。
有効数字9桁で計算した場合、この掛け算に関しては、対数を用いた掛け算の計算よりも三角関数を用いた計算の方が精度よく計算されているにゃ。
対数を利用した計算に勝ったケロ!!
ちなみに有効数字10桁で計算すると、4.059417074×10¹⁷になる。
コメント 0