预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

#include"stdio.h" #include"math.h" floatf(floatx) { returnsin(x); } voidfun(intn,floatA,floatB) { intm; floatfvalue; m=n; if(m==1) { fvalue=(B-A)/2.0*(f(A)+f(B)); printf("\n所求定积分的值为:%f\n",fvalue); } if(m==2) { fvalue=(B-A)/6.0*(f(A)+4*f((A+B)/2.0)+f(B)); printf("\n所求定积分的值为:%f\n",fvalue); } if(m==3) { fvalue=(B-A)/8.0*(f(A)+3*f(A+(A+B)/3.0)+3*f(A+2*(A+B)/3.0)+f(B)); printf("\n所求定积分的值为:%f\n",fvalue); } if(m==4) { fvalue=(B-A)/90.0*(7*f(A)+32*f(A+(A+B)/4.0)+12*f(A+(A+B)/2.0) +32*f(A+3*(A+B)/4.0)+7*f(B)); printf("\n所求定积分的值为:%f\n",fvalue); } } main() { intN; floatA,B; printf("请输入节点个数:"); scanf("%d",&N); printf("\n"); if(N==1) printf("你打算利用的是梯形公式!"); if(N==2) printf("你打算利用的是Simpson公式!"); if(N==3) printf("你打算利用的是Newton公式!"); if(N==4) printf("你打算利用的是Cotes公式!"); printf("\n\n请输入区间的端点值:AandB:"); scanf("%f%f",&A,&B); printf("\n"); fun(N,A,B); } 这是第一种N-C公式 //复化simpson求积公式// #include"stdio.h" #include"math.h" #defineMax100 floatf(floatx) { returnexp(pow(x,-1)); } main() { inti,N; floatA,B,X[Max],Y[Max],simpson=0; printf("请输入等分数N:"); scanf("%d",&N); printf("\n请输入区间AandB:"); scanf("%f%f",&A,&B); for(i=0;i<=2*N;i++) { X[i]=A+i*(B-A)/(2.0*N); Y[i]=f(X[i]); } simpson=Y[0]+Y[2*N]; for(i=1;i<2*N;i+=2) { simpson+=4*Y[i]; } for(i=2;i<2*N;i+=2) { simpson+=2*Y[i]; } simpson*=(B-A)/(N*1.0)/6.0; printf("\n利用复化simpson公式求积结果为:%f\n\n",simpson); }