#include #include // number of variables #define N 2 double kappa = 0.01; double omega = 1.0; int step = 0; // y[0] = x(t) // y[1] = (dx/dt)(t) // x'' + 2*kappa*x' + omega*omega*x = 0 // (df/dx)(x) void dfdx(double x, double y[], double dydx[]){ dydx[1] = -2.0*kappa*y[1] - omega*omega*y[0]; dydx[0] = y[1]; } // calc f(x+h) from given f(x), f'(x) void eular_step(double y[], double x, double h){ int i; double dydx[N]; // printf("step:%d (t, x) = %lf, %lf\n", step, x, y[0]); dfdx(x, y, dydx); for(i=0; i