複合台形公式を用いて半径0.5mの円の面積を求めるプログラムを作成する課題が出たので、
サンプルコードをもとに以下のようなプログラムを作成しました。
刻み幅hを変化させると、値がどのように変わるのかを調べようと思い、BUNKATSUの値をいじったのですが、
求めたい値(integ)に変化がありませんでした。
#include <stdio.h>
#include <math.h>
#define BUNKATSU 10
#define HENIKIMIN 0.0
#define HENIKIMAX 0.5
double fx(double x);
int main(void){
int i;
double n,a,b,h,x,integ1,integ;
n=(double)(BUNKATSU);
a=(double)(HENIKIMIN);
b=(double)(HENIKIMAX);
h=(double)((b-a)/n);
integ1=0.0;
for(i=1;i<n;i++){
x=a+i*h;
integ1+=(2.0*fx(x));
}
integ=h/2.0*(fx(a)+fx(b)+integ1);
printf("%e\n",integ);
}
double fx(double x){
return (2.0*M_PI*x);
}
よろしくお願いします。
※fx関数とmain関数のprintfを以下のようにすると、BUNKTSUの値を変えた時にintegの値が変わりました。