public class IntegralForPlot { // ======================================================================= // 以下、積分内容の設定 // ======================================================================= // 被積分関数 (積分対象の関数) static final double f(double x) { return x * Math.cos(x); } static final double A = 0.0; // 積分区間の下端 (x軸上の左端) static final double B = 40.0; // 積分区間の上端 (y軸上の左端) static final int N = 10000; // 数値積分における区間分割数 (刻み数) // ======================================================================= // 以下、データ出力関連の設定 // ======================================================================= static final int PRINT_POINTS = 1000; // 出力する座標点の数 (グラフのプロット点数) static final int PRINT_INTERVAL = N / PRINT_POINTS; // [自動設定] ループ内での出力周期 // ======================================================================= // 以下、積分の値を数値的に求める処理 // ======================================================================= public static void main(String[] args) { double delta = (B - A) / N; // 足し上げる微小区間の幅 (刻み幅) double value = 0.0; // この変数に積分値を足し上げていく // 積分区間をN分割した微小区間を、左(下端)から右(上端)へ順に辿るループ for(int i=0; i