// =================================================================== // trapezoid.sci: 台形公式による数値積分を行う関数 // ------------------------------------------------------------------- // <引数> f: 被積分関数 // a: 積分区間の始まり // b: 積分区間の終わり // N: 区間[a,b]での小区間の数 // <返り値> I: 積分値 // =================================================================== function I = trapezoid(f, a, b, N) h = (b - a) / N; // 積分の小区間の幅 x = a:h:b; // 補間点におけるx軸の値 y = f(x); // 補間点におけるy軸の値 I = h * (y(1) + 2 * sum(y(2:N)) + y(N+1)) / 2; // 式(3.4)で表される積分の値 endfunction