プロが教えるわが家の防犯対策術!

cos θからAcosを使用せずに、tan、Atanを使用してθを求める公式をご教示ください

A 回答 (3件)

底辺をx、斜辺を1とすれば


θ=atan(tanθ)
=atan((√(1-x^2))/x)
=atan(√((1/x)^2-1))
=atan(√((1/((cosθ)^2))-1))
もちろん、#2さんの言われるとおり、第1象限の外では符号の配慮が必要になります。
    • good
    • 0
この回答へのお礼

ありがとうございます。符号に気をつけて計算してみます。

お礼日時:2008/11/28 02:07

cosθは -1~ 1 の値をとるので、Acosは通常0~πで定義されます。


sinθは0~πで正ですから、tanθの符号はcosθの符号で決定されます。
三角関数は2πの周期なのに0~πしか使えないのは、cosθが与えられただけでは、sinθの符号が決定できないためで、それを正にとるのはもちろん便宜的なものです。Acosを-π~0で定義するならば、sinθは負に取られます。
従って、0~πでは、
tanθ = sinθ/cosθ = √(1-cos^2θ) / cosθ
θ= Atan(tanθ) = Atan( √(1-cos^2θ) / cosθ )
となります。
計算機でこれに従ってθを計算すると、-π/2~π/2の区間で答えが出る場合があります。これはAtanの定義域が -π/2~π/2 に取られるのが一般的で、π/2~π が -π/2~0 に焼きなおされるためです。このようなことが可能なのは、sinθの符号がcosθの値だけでは決定できないからです。

これを避けたい、とお考えでしたら、Atan2という関数が一般に用意されているので、それを使います。
Atan2(cosθ、sinθ)
引数にsin,cos両方があるのでその符号が正確に反映され、定義域はーπ~πになります。従って、cosの情報のほかに、sinの符号の情報が必要になります。つまり、sinθ=符号×√(1-cosθ) をAtan2の入力に用います。これは、Atanθ = Atan (符号×√(1-cosθ) / cosθ) を計算機によらずに人間が考えるのと同じになります。

以上から、θをAcosやAtanから求めるには(Asinでもそうですが)、それぞれcos,tanのみの情報では不足で、cos,sinの一方と他の符号が必要になることがお分かりになるでしょう。
    • good
    • 0
この回答へのお礼

ご丁寧な回答ありがとうございます。Atan2を使用してみたいと思います。

お礼日時:2008/11/28 02:09

?!


なんか変ですね。

cosθ と tanθ と arctanx が与えられているときのθは、
θ = arctanx
ではないでしょうか。

つまり、cosθ と tanθ は、計算には不要だということです。


頓珍漢な回答でしたら、すみません。
    • good
    • 0

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