/*********************************************************************** * * File: gauss5.c (30-Mar-2001) * * Numerische Integration der Funktion * * f(x) = exp(x) * * mit der 5-Punkt Gauss-Legendre Formel * * a,b...Intervallgrenzen * **********************************************************************/ #include #include #define N 5 float f(float x) { return exp(x); } /**********************************************************************/ int main() { const float w[N]={0.236927,0.478629,0.568889,0.478629,0.236927}; const float x[N]={-0.90618,-0.538469,0.0,0.538469,0.90618}; int i; float a,b,s; printf("a,b="); scanf("%f,%f",&a,&b); s=0.0; for(i=0;i<=N-1;i=i+1) { s=s+w[i]*f(0.5*(a+b+x[i]*(b-a))); } s=0.5*s*(b-a); printf("s=%14.7e (%14.7e)\n",s,exp(b)-exp(a)); return 0; } /**********************************************************************/