coding UTF-8; // 文字コード宣言 (文字化け予防) // import Math; // VCSSLでは必要 (Vnanoでは実行ソフト側で必要に応じて設定) // ======================================================================= // 以下、積分内容や出力関連の設定 // ======================================================================= // 被積分関数 (積分対象の関数) double f(double x) { return x * cos(x); } double A = 0.0; // 積分区間の下端 (x軸上の左端) double B = 40.0; // 積分区間の上端 (y軸上の左端) int N = 10000; // 数値積分における区間分割数 (刻み数) // ======================================================================= // 以下、データ出力関連の設定 // ======================================================================= int PRINT_POINTS = 1000; // 出力する座標点の数 (グラフのプロット点数) int PRINT_INTERVAL = N / PRINT_POINTS; // [自動設定] ループ内での出力周期 // ※ 実際の点数は、最終値を別途出力するため、上記から1点だけ多くなります。 // また、N が PRINT_POINTS で割り切れない場合、点数は多少増減します。 // ======================================================================= // 以下、積分の値を数値的に求める処理 // ======================================================================= double delta = (B - A) / N; // 足し上げる微小区間の幅 (刻み幅) double value = 0.0; // この変数に積分値を足し上げていく // 積分区間をN分割した微小区間を、左(下端)から右(上端)へ順に辿るループ for(int i=0; i