您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > 龙贝格积分法C语言(西安交大)
#includestdio.h#includemath.hvoidmain(){inti;floata,b,fa,fb;doubleT,T1,S,S1,C,C1,R,R1,e;doublefx1(doublex);printf(请输入积分下界a=\n);/*输入X的下界*/scanf(%f,&a);printf(请输入积分下界b=\n);/*输入X的上界*/scanf(%f,&b);printf(请输入计算精度e=\n);scanf(%lf,&e);fa=fx1(a);/*计算fx函数上下界的值*/fb=fx1(b);printf(a=%3.7f\nb=%3.7f\nfa=%3.7f\nfb=%3.7f\ne=%3.10f,a,b,fa,fb,e);/*输出上、下界值,上下界fx函数值,计算精度e*/printf(\n);/*程序开始*/T1=(b-a)*(fa+fb)/2;for(i=0;;i++){doublefx2(doublei,doublea,doubleb);doubleTkk;Tkk=fx2(i,a,b);/*调用fx函数*/T=T1/2+Tkk;T1=T;S=T+(T-T1)/(pow(4,1)-1);S1=S;if(i=1){C=S+(S-S1)/(pow(4,2)-1);C1=C;}if(i=2)R=C+(C-C1)/(pow(4,3)-1);if(abs(R-R1)0.0000001)/*判断是否满足计算精度,满足则退出迭代,不满足则继续*/break;R1=R;}printf(积分计算数值为\n);/*输出计算结果*/printf(%2.7f\n,T);}doublefx1(doublex)/*编写一个被积函数fx*/{doublefx;fx=1/(1+x);return(fx);}doublefx2(doublei,doublea,doubleb)/*编写T的高次迭代函数*/{//doublefx1(doublez);doublem,l;doubleTk,Tkk,z;m=pow(2,i);Tk=0;for(l=1;l=m;l++){z=a+(2*l-1)*(b-a)/(2*m);Tk+=fx1(z);}Tkk=(b-a)*Tk/(m*2);return(Tkk);}
本文标题:龙贝格积分法C语言(西安交大)
链接地址:https://www.777doc.com/doc-1731706 .html