3、乙k=l其中无=a+kh伙=0丄…,N—1)。右端记为Tn。当NToo时,1N-lN0=牙[工/(兀川+工/5)幻一乙k=0k=i*[(/(兀皿+^f(x)dx]=f(x)dx即Tn收敛于(x)dx。(2)复化辛浦生公式将区间[d,b]等分成N个子区间[x2k9x2k+2]伙=0丄…,N—1),每个子h—ci区问的小点为兀2如伙=0丄…,N—1),子区间长度为/2=——,在每N个区间[x2k.x2k+2]上用辛浦生公式h/(x)d“-[f(x2k)+4/(xn+1)+f(x2k+2)]o相加后得复化辛浦生公式MLjN-lN-l'b“]k=h其中兀=a+
4、k—伙=0」,・・・,2N—l)。26、设计思想:数借积分实际上都是基于插值的,我们算的都是离散的一些个点与点对应的函数值,于是要求连续的积分是不可能的。记等距分点attincludedoubletrapezia(doublea,doubleb,double(*fun
5、)(double),intm)〃梯形法积分子程序{doubleTn=0.0;doubleh;intk;h=(b-a)/m;for(k=l;k〈m;k++)Tn+=(*fun)(a+k*h);Tn=(*fun)(a)+(*fun)(b)+2*Tn;Tn二h*Tn/2;returnTn;}doublesimpson(doublea,doubleb,double(*fun)(double),intn)//simpson积分子程序//指向函数的指针做行参{doubleT2n,Tn;Tn二trapezia(a,b,fun,n);T2n=trapezia(a,b,f
6、un,2*n);//fun为指针名return(4*T2n-Tn)/3;}doublefunl(doublex){returnsqrt(1+exp(x));}voidmainO{doublea=0,b=2,c,c2,precision;〃积分下限,积分上限,积分结果,积分结果,精度inti,n;//n为区间数double(*p[5])(double);//p为指针数组,数组中元素为指针,指针类型为指向函数的指p[l]二funl;//针,0号未用for(i=0;i<4;i++){printfC请输入要分的区间数:〃);scanf(〃%d〃,&n);prin
7、tf(“用复化simpson公式积分得:“);c二simpson(a,b,p[l],n);printf(〃%f",c);printff用复化梯形公式积分得:〃);c=trapezia(a,b,p[l],n);printf("%f〃,c);printf("************给定精度的情况**************〃);printfC请输入精度要求〃);scanf&precision);printf(z,用复化simpson公式积分得:〃);while(1){c二simpson(a,b,p[1],n);c2=simpson(a,b,p[l
8、],2*n);if(fabs(c~c2)