Prompt
約26.565°という値を「手計算で」出さなければいけないとき、どのような方法で計算するんだろう?πの近似値が与えられるとして…
三角関数を手計算するなんて恐ろしいことになりそうな予感がするけど…
君の直感は正しいよ!三角関数を「手計算で」求めるのは、想像以上に骨の折れる作業なんだ。特に、約26.565°のようなキリの悪い角度の値を出すのは、非常に困難だよ。
でも、情報工学を学ぶ君には、その「恐ろしい」手計算の裏側にある、いくつかの数学的な手法を紹介するよ。もちろん、πの近似値がわかっている前提でね!
手計算の主な方法:テイラー展開(マクローリン展開)
「手計算」と言っても、単純な四則演算だけで求めるのは不可能に近いから、実際には無限級数を利用したテイラー展開や、その特殊なケースであるマクローリン展開を使うのが一般的だよ。これは、複雑な関数を、計算しやすい多項式で近似する手法なんだ。
例えば、(アークタンジェント、 の逆関数)は、以下の無限級数で表すことができるよ。
具体的な計算手順
君の問題の場合、 だったから、 の値を手計算で求めればいいんだ。
-
項の代入: 上の級数に を代入する。
-
第1項:
-
第2項:
-
第3項:
-
第4項:
-
… と、この計算を精度が十分になるまでひたすら繰り返す。
-
-
総和の計算: 各項を足し合わせる。
-
-
度数法への変換: この値は「ラジアン」という単位で表されているから、これを一般的な「度」に変換する必要があるよ。
-
変換式:
-
を使うと、
-
-
-
なぜこれが「恐ろしい」のか?
君が「恐ろしい」と感じたのは、まさにこの作業の膨大な計算量にあるんだ。
-
割り算の繰り返し: 多くの項を計算するために、割り算を何度も行う必要がある。
-
精度の問題: 小数点の計算が続くため、途中で四捨五入などの丸め誤差がどんどん蓄積されていく。高い精度を出すには、さらに多くの項を計算し、より多くの桁を保持する必要がある。
-
無限ループ: 厳密には無限に続く級数だから、どこまで計算すれば十分な精度になるかを判断するのも難しい。
これらの理由から、手計算は非常に非効率で、現代ではコンピューターの役割になっているんだ。
この級数展開という手法は、三角関数だけでなく、指数関数や対数関数など、多くの数学関数をコンピューターが計算する際の基本的な原理でもあるよ。君が普段使っている電卓やプログラミング言語の関数も、この「恐ろしい」計算を瞬時にやってくれているんだね。