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