- ベストアンサー
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)); } } どうしたら良いでしょうか!?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#16765
回答No.3
動かしてみたのですが、 1の近似値(?)になってるので丸め誤差などが起きているのではないですか?
その他の回答 (3)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.4
単純に計算誤差&数値の保持精度の誤差でしょう だって、 ( 1 - cos2x ) / 2 + ( 1 + cos2x ) / 2 を簡単にすると、計算するまでもなく1ですから。
質問者
お礼
なるほどー
noname#16765
回答No.2
すみません! Math.cos(x)やってましたね! 結果が1の近似値になってるのですか? それなら問題ないと思います
質問者
お礼
あ、はい! ご回答ありがとうございます!
noname#16765
回答No.1
import java.io.Math; などがいるのでは?
お礼
なるほど!