#include #include #include #define N 101 #define MAX_X 1.0 #define IT 1000 int main() { FILE *fp; char filename[256]; int i, j, it = IT; int n = N; double f[N] = {0.0}, fn[N] = {0.0}; double dx, x; dx = (MAX_X - 0.0)/(double)(N - 1); // input initial data for(i = 0; i < n; i++){ x = dx*(double)i; f[i] = sin(2.0*M_PI*x); } // iteration for(i = 0; i < it; i++){ for(j = 0; j < n; j++){ if(j == 0) fn[j] = 0.0; else if(j == n - 1) fn[j] = 0.0; else fn[j] = (f[j - 1] + f[j + 1])/2.0; } if(i%10 == 0){ sprintf(filename, "./output/output%03d.dat", i/10); if((fp = fopen(filename, "w")) == NULL){ printf("Fail to file open\n"); exit(1); } for(j = 0; j < n; j++) fprintf(fp, "%lf %lf\n", j*dx, f[j]); } // update data for(j = 0; j < n; j++) f[j] = fn[j]; } return 0; }