数学ライブラリを使用せずに C++ を使用して sin(x) の値を計算するように依頼されました。それらのエントリ (たとえば 2 ラジアン) を取得し、sin 関数の値を 2 に戻すにはどうすればよいでしょうか?
ありがとう。
1 つのオプションは、正弦にテイラー級数を使用して近似を取得することです。
sin(x) = x - x 3 / 3! +× 5 /5!-× 7 /7!+× 9 /9!- ...
この多項式の最初の 5 項または 6 項を評価し、x が小さい場合、sin xの非常に優れた近似値が得られるでしょう。x を (-π、+π) の範囲内に収めようとすることで、x を小さく保つことができます。
利用可能なはるかに優れたアプローチがあります。標準的な方法の 1 つは、高速かつ正確になるように最適化された一連のアプローチであるCORDICを使用することです。
お役に立てれば!
Taylor Seriesを使用して数値近似を調べることができます。具体的には、一般化されたTaylor/MacLaurin Seriesを読むことができます
要するに:
sin(x) = x − x^3/3! + x^5/5! − x^7/7! + x^9/9!
通常、それをいくつかの項に拡張し、妥当な誤差範囲内に収めることができます。エラーは指数関数的に減少するため、4、5、または 6 項でも正確な結果が得られます。用語が多いほど、より正確になります。
これは、コンピューターが三角関数、積分、およびその他の多くの複雑な式を評価できる 1 つの方法です。あなたに尋ねた人は誰でも、コンピューターがこれらの機能を処理する方法をある程度理解することを目指していると思います.