/* From: "COMPUTATIONAL PHYSICS, 2nd Ed" by RH Landau, MJ Paez, and CC Bordeianu Copyright Wiley-VCH, 2007. Electronic Materials copyright: R Landau, Oregon State Univ, 2007; MJ Paez, Univ Antioquia, 2007; & CC Bordeianu, Univ Bucharest, 2007 Support by National Science Foundation */ // eqstring.c: Solution of wave equation using time stepping // comment: Output data is saved in 3D grid format used by gnuplot #include #include #define rho 0.01 // density per length #define ten 40.0 // tension #define max 100 // time steps main() { int i,k; double x[101][3]; FILE *out; // save data in string.dat out = fopen("eqstring.dat","w"); // initial config for (i = 0; i<81; i++) x[i][0]= 0.00125*i; for (i = 81; i<101; i++) x[i][0]= 0.1-0.005*(i-80); // 1st step for (i = 1; i<100; i++) {x[i][1]= x[i][0]+0.5*(x[i+1][0]+x[i-1][0]-2.0*x[i][0]);} // all later time steps for (k = 1; k