せっかくなので、前に作った微分を再現したプログラムでも載せてみます。
#include
//f(x)=x^2
double f(double x){
return x*x;
}
//微分を再現する関数
double bibun(double f(double ), double x){
double num[2];
num[0] = (f(x+0.0001)-f(x))/0.0001;
num[1] = (f(x)-f(x-0.0001))/0.0001;
return (num[0]+num[1])/2;
}
int main(){
printf("x\tf(x)\tf'(x)\n");
for(double i=0;i<20;i++){
printf("%.0f\t%.1f\t%.1f\n",i,f(i),bibun(&f,i));
}
return 0;
}
実行結果:
x f(x) f'(x)
0 0.0 -0.0
1 1.0 2.0
2 4.0 4.0
3 9.0 6.0
4 16.0 8.0
5 25.0 10.0
6 36.0 12.0
7 49.0 14.0
8 64.0 16.0
9 81.0 18.0
10 100.0 20.0
11 121.0 22.0
12 144.0 24.0
13 169.0 26.0
14 196.0 28.0
15 225.0 30.0
16 256.0 32.0
17 289.0 34.0
18 324.0 36.0
19 361.0 38.0