Edited at

[C言語] 数値積分(台形公式)

More than 3 years have passed since last update.

GitHubでも公開中。


台形公式


\sum_{i=0}^{n-1} \frac{ \{f(x_i) + f(x_{i+1})\} Δx}{2}


積分$\int_0^b cos^2 x dx$ で $b = 30°, 45°, 90°, 180°, 360°$の場合を台形公式を用いて計算する。

#include <stdio.h>

#include <math.h>
#define f(x) cos(x)*cos(x)

int main(void) {
double a, b, x, x1, dx, s, s1, deg;
int i, n;

printf("角度(°)を入力して下さい。 deg = ");
scanf("%lf", &deg);
printf("分割数を入力して下さい。 n = ");
scanf("%d", &n);

s = 0;
a = 0;
b = deg*(M_PI/180.);

dx = (b-a)/n;

for (i=0; i<n; i++) {
x = a + i*dx;
x1 = x + dx;
s1 = ( ( f(x) + f(x1) )/2 )*dx;
s += s1;
}

printf("n = %d s = %f\n", n, s);

return 0;
}

度数は手入力にしました。