/* ATK IV - Numerical Programming (2006) */ /* Excercise 5.2b - Derivatives */ #include #include #define Pi 3.141592 #define N 80 void deriv2(double h, double y[], double dy[], int n); void deriv3(double h, double y[], double dy[], int n); int main(void){ double y[N+1]; double dy[N+1],dy2[N+1]; double h; double a=0.0; double b=2*Pi; double x=a; int i; h = (b-a)/N; for(i=0;i<=N;i++){ y[i]=sin(x); x+=h; } deriv2(h,y,dy,N); deriv3(h,y,dy2,N); x=a; for(i=0;i<=N;i++){ printf("%f %f %f\n", dy[i], dy2[i], cos(x)); x+=h; } return 0; } void deriv2(double h, double y[], double dy[], int n){ int i; dy[n]=(y[n]-y[n-1])/h; for(i=0;i