アプリ版:「スタンプのみでお礼する」機能のリリースについて

よく教科書の後ろに載ってるsin,cosの値の表ってどうやって求めるんですか?

A 回答 (4件)

おそらく級数展開という微積分で習う手法で計算すると思います。

たとえば、Maclaulin級数ではSin x=x/1!-x^3/3!+x^5/5!-x^7/7!+....という感じです。どこまでこの数式(無限級数)を続けるかは誤差との相談です。

電卓がた高価な時代は数表とか計算尺とかを使っていたそうですが、このように根底にある数学が感じられたのでしょうね。
    • good
    • 1

#3 です.



三角関数だと,
ニュートンラフソンのままだと,ちょっとわかりずらいですね.
といって,テーラー(マクローリン)展開は,万能ですが,計算機
では,スピードも重要です.実数計算はできるだけやめて,
整数計算にするとかの工夫があります.

例えば,円を書くサブルーチンは,整数だけを使って書かれています.
x=sinθ,y=sinθとやって書いてもいいのですが,数値演算プロセッサを内蔵していない時代のコンピュータは,
実数計算や,三角関数などの計算はすごく遅かったので,いろいろなアルゴリズムが考え出されました.


PDFなどに直接リンクを張ることは,このサイトでは禁止されていますので,
検索方法を書きます.

http://www.google.com
で,下記のキーワード
「数値計算 三角関数 アルゴリズム」
いろいろ出てきます.

特に,「関数計算アルゴリズムの検証」というサイトでは,
intelのCPUはpentium以前は,漸化式のアルゴリズムでしたが,
pentium以降は,(テーラーなどの)多項式近似が使われているとありました.
私も参考になりました.

アルゴリズムは重要です.これが悪いと,一桁計算時間が変わることはザラです.
    • good
    • 0

例えば,電卓でどうやって計算しているかを考えれば


いいですね.

私は,sin,cosの求め方は良く知りませんが,
√でしたら,わかります.

反復計算で解に到達させます.
ニュートンラフソンの式といいます.

f(x)=x^2-2

f(x)=0 は,x=√2ですね.

f'(x)=2x

f(x)=f(x0)+f'(x)*(x-x0) = 0
x = x0 -f(x0))/f'(x)

初期値 x0をきめてから,xを求め,そのxをx0として
この式を繰り返し適用すると,いつしか,収束していきます.(値が変化しなくなる. 厳密解ではf(x)=0よりあきらかです.)

ちょっと,数学的な説明はあやしいですが,このあたりのアルゴリズムはうでの見せ所です.
実際は,もっといろんなやり方を使うと思います.

すでに出ているように,
級数展開して,多項式近似する場合も有るでしょう.
ただ,上記のニュートンラフソンの収束スピード(計算回数)には
かなわないので,√の計算では,この式を用いることが多いようです.
sinとかだと,どちらが効率がいいのかわかりません.


初期値の選び方や,反復時(繰り返し計算)の式の選び方は経験が必要です.
    • good
    • 1

初歩的には直角三角形を描いて長さを測るでしょう。


これではtan89°なんて図が描けるわけもなく
最終的には#1の方がおっしゃるように
数式を使って計算するでしょう。

どんな式になるかは微分を習ってからになります。
高校ぐらいではやらない。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!