// evaluate a lagrange interpolant at many points #include #include #include using namespace std; double f( double x ); // function to be interpolated double bf( double x, int i, vector y ); // lagrange basis function double f( double x ) { return 1.0/(1+25*x*x);} double bf( double x, int i, vector y ) { // lagrange basis function int n = y.size(), j; double v = 1; for( j=0; j> n; vector y(n+1); double x, dx = 2.0/(numout-1), h =2.0/n, val; double pi = 4*atan(1.0); double ph = pi/n; // generate the n+1 interpolation points for(i=0; i<=n; i++ ) y[i] = -1.0 + i*h; for( j=0, x=-1.0; j