3、.1、明确数值积分的精度与步长的关系:复化的求积方法对提高精度是行之有效的,但是在使用求积之前必须给出合适的步长,并且高斯求积公式具有比复化求积公式更高的精度,步长取得太大精度难以保证,步长太小则会导致计算量的增加。2、根据定积分的计算方法,可以考虑二重积分的计算问题:在微积分中,二重积分的计算是用化为累次积分的方法进行的。计算二重数值积分也同样采用累次积分的计算过程。利用二重积分的复化梯形公式设计如下:a,b,c,d为常数,f在D上连续。将它变为化累次积分做等距节点,x轴,y轴分别有:先计算,将x作为常数,有再将y作为常数,在x方向,
4、计算上式的每一项的积分系数,在积分区域的四个角点为1/4,4个边界为1/2,内部节点为1。专业.专注.......三、计算公式关于复化辛普森(Simpson)公式及高斯求积公式在以下给出。1)复化辛普森(Simpson)公式为了便于编程可写成2)高斯求积公式四、结构程序设计/复化Simpson算法#include#includedoubleSIMP1(double,double,int);doubleFUTX(double,double,int);doubleFunc(double);voidmain(
5、){doublea1,b1,x;专业.专注.......intn1;a1=0.0;b1=1.0;n1=20;//可设定具体的分段数n=10或者20printf("%.10f",SIMP1(a1,b1,n1));printf("%.10f",FUTX(a1,b1,n1));//printf("time=%f",Atime/60);}doubleFunc(doublex){return(log(1+x)/(1+x*x));}doubleSIMP1(doublea1,doubleb1,intn1){inti;doubleh,s
6、;h=(b1-a1)/(2*n1);s=0.5*(Func(a1)-Func(b1));for(i=1;i<=n1;i++)s+=2*Func(a1+(2*i-1)*h)+Func(a1+2*i*h);return((b1-a1)*s/(3*n1));}专业.专注.......doubleFUTX(doublea1,doubleb1,intn1){inti;doublet,h;h=(b1-a1)/n1;t=Func(a1)+Func(b1);for(i=1;i<=n1;i++)t+=2*Func(a1+i*h);return((t*h/
7、2));}//高斯求积公式#include#include#includedoubleROMBG(double,double,double,double,double,double);doubleFunc(double);voidmain(){doublea,b,eps,al,ma,mi;//intn1;a=0.0;专业.专注.......b=1.0;eps=1e-5;al=10;ma=10;mi=3;printf("%.10f",ROMBG(a,b,eps,al,ma,mi))
8、;//printf("%.10f",FUTX(a1,b1,n1));//printf("time=%f",Atime/60);}doubleFunc(doublex){return(log(1+