###前提・実現したいこと
数値積分のプログラムを作りたいです。
勉強の一環としてなので誤差はあまり気にしません。
どこかのページのプログラムを参考に作成しました。
###発生している問題・エラーメッセージ
cos関数で積分結果がおかしくなります。
sin関数ではおおよそ正しい値が出ます。
Java
1public static void main(String[] args) { 2 //長方形近似による数値積分 3 4 int n=100000; //分割数 5 double a=0.0; //積分範囲の始まり 6 double b=Math.PI; //積分範囲の終わり 7 double dx=(b-a)/n; //間隔 8 double sum=0.0; 9 10 for (double x=a; x<b; x+=dx) { 11 sum += f(x)*dx; 12 } 13 14 System.out.printf("積分値は"+sum); 15 16 } 17 public static double f(double x) { 18 // 積分する関数 19 x = Math.cos(x); 20 return x; 21 }
###試したこと
sin関数、xの関数の積分はおおよそ正しく積分できました。
cos関数の結果の出力なども試してみました。
どこかで符号が変わるのでしょうか?
ご存知の方いらっしゃいましたらご教示お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。