#include<stdio.h> #include<math.h> double Function(double x)//所要计算积分的函数f(x) { if(x==0)//sin(x)/x在0处的取值为1 return 1; else return sin(x)/x; } //复化梯形公式 double Trapz(double a,double b,int n) { double h=(b-a)/n; double T=0; for(int i=1;i<n;i++) { T=T+Function(a+i*h); } T*=2; T=(Function(a)+Function(b)+T)*h/2; return T; } //复化辛普森公式 double MulripleSimpson(double a,double b,int n) { double h=(b-a)/n; double T=0; for(int i=0;i<n;i++) { T=T+Function(a+i*h)+4*Function(a+(i+0.5)*h)+Function(a+(i+1)*h); } T=T*h/6; return T; } void main() { printf("使用复化梯形公式可得:%f\n",Trapz(0,1,8)); printf("使用复化辛普森公式可得:%f\n",MulripleSimpson(0,1,4)); }
原文:http://blog.csdn.net/tengweitw/article/details/43311685
作者:nineheadedbird
原文地址:http://blog.csdn.net/tengweitw/article/details/43311685