• ベストアンサー

3角関数における2倍角公式の表現

Javaを用いた3角関数の計算がうまくできません。 ●式● sin^2(x) + cos^2(x) = 1  ※sin^2(x) = ( 1 - cos2x ) / 2, cos^2(x) = ( 1 + cos2x ) / 2   角度 x は任意 上記のような2倍角の公式を計算したいのですが 1 になりませんっ ●ソース● public class CS2x { public static void main(String[] args) { double t = 30; double x = 2 * t; System.out.println("Cos^2(x)+Sin^2(x)=" + ((1 - Math.cos(x)) / 2) + ((1 + Math.cos(x)) / 2)); } } どうしたら良いでしょうか!?

質問者が選んだベストアンサー

  • ベストアンサー
noname#16765
noname#16765
回答No.3

動かしてみたのですが、 1の近似値(?)になってるので丸め誤差などが起きているのではないですか?

peacesells
質問者

お礼

なるほど!

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

単純に計算誤差&数値の保持精度の誤差でしょう だって、 ( 1 - cos2x ) / 2 + ( 1 + cos2x ) / 2 を簡単にすると、計算するまでもなく1ですから。

peacesells
質問者

お礼

なるほどー

noname#16765
noname#16765
回答No.2

すみません! Math.cos(x)やってましたね! 結果が1の近似値になってるのですか? それなら問題ないと思います

peacesells
質問者

お礼

あ、はい! ご回答ありがとうございます!

noname#16765
noname#16765
回答No.1

import java.io.Math; などがいるのでは?

関連するQ&A