Romberg求积法_第1页
Romberg求积法_第2页
Romberg求积法_第3页
Romberg求积法_第4页
Romberg求积法_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在等距基点的情况下,用计算机计算积分值通常都采用把 区安徽中医药大学题目:Romberg求积法c语言编程姓名:-么-kizl -kizl 杨撞撞曲口 学号:13713042班级:13医软(1)班目录1简介 2计算公式3算法描述 4程序流程图5算法程序表示6算法结果截图1. 简介龙贝格求积公式也称为 逐次分半加速法。它是在梯形公式、辛普森公式和柯特斯公式 之间的关系的基础上,构造出一种加速计算积分的方法。作为一种外推算法,它在不增加计算量的前 提下提高了误差的精度.间逐次分半的方法进行。这样,前一次分割得到的函数值在分半 以后仍可被利用,且易于编程。2. 计算公式梯形公式复化辛普森公式=复化科特

2、斯公式龙贝格求积公式其对应的公式为:T2n=1/2( Tn+Hn)(梯形公式)Sn=4/( 4-1)T2n-1(4-1)Tn (辛普森公式)Cn=4八2/(4八2-1)S2n-1/(4八2-1)Sn (柯特斯公式)Rn=4八3/(4八3-1) C2n-1/(4八3-1)Cn (龙贝格求积法公 式)3. 算法描述3.1龙贝格算法基本描述先算出TO( 0),从而计算出T0(1),以此类推,直到计算出 |T0(0)-Tn-1 ( 0)|#in clude#define A(x)(sin(x)/x)/宏定义若常用函数A,B,C,D,E,G #define B(x)(cos(x*x+2*x+1) #de

3、fine C(x)(atan(sqrt(x*x+1)#define D(x)(sqrt(exp(x)+sin(2*x) #define E(x)(x*x*x+3*x*x+5)#define G(x)(log10(x)/pow(2,x)double t20,s20,c20,r20; /定义全局数组double dh,fan,a,b,m; /定义全局变量 int jj=0;char hs;double F(double x)/用 switch 调用若干被积函数switch(hs)case A:fan=A(x);break; case B:fan=B(x);break; case C:fan=C(x

4、);break; case D:fan=D(x);break;case E:fan=E(x);break; case G:fan=G(x);break; default :printf( 输入错误! );return(fan); /返回被积函数值double H(int i)/求和函数并返回和 SUMint j;double zh,SUM=0.0; 定义求和变量SUM并赋初值for(j=1;j=po w(2,i-1);j+)zh=(a+(2*j-1)*(b-a)/pow(2,i);SUM=SUM+F(zh); /调用 F(x)函数SUM=(b-a)*SUM/pow(2,i); return(S

5、UM);double Txin g(i nt k)0 a12 I/ +/梯形公式珥=1b a VFfc - al一2 f A 十(21 一 1)-i=lif(k=0) dh=tjj=(b-a)/2)*(F(a)+F(b);/ 分半次数为零时 T 形公式求积else/Txing 函数递归调dh=0.5*Txing(k-1)+H(k);用循环输出并返回 dht+jj=dh;m=pow(2,jj); printf(T%0.0lf=%0.7lft,m,tjj);/ 输出并返回 dhreturn(dh);double Simpson(int k)/辛普森公式 错误 !未找到引用源。/调用梯形公式int

6、i,j;Txing(k);for(i=0;i=k-1;i+)si=(4.0*ti+1-ti)/3.0;prin tf(n);for(j=0;jv=k-1;j+)m=po w(2,j);prin tf(S%0.0lf=%0.7lf,m,sj);prin tf(t);return(sk-1);返回最后一个值/循环输出sk-1double Cotes(int k)/科特斯公式int i,j;Simpson( k);for(i=0;i=k-2;i+)/递推科特斯ci=(16.0*si+1-si)/15.0;公式prin tf(n);/循环for(j=0;j=k-2;j+)输出m=po w(2,j);p

7、rin tf(C%0.0lf=%0.7lft,m,cj);ck-2return(ck-2);返回最后一个值double Romberg(i nt k)隆贝格公int i,j;式/调用科特斯公Cotes(k);for(i=0;i=k-3;i+)ri=(64.0*ci+1-ci)/63.0;公式/递推隆贝格prin tf(n);for(j=0;j=k-3;j+)输出/循环m=po w(2,j);prin tf(R%0.0lf=%0.7lft,m,rj);prin tf(n);return(rk-3); / 返回最后一个值 rk-3 main()int k;char y;printf( 请从以下公式

8、中选择积分函数: n);printf(A:sin (x)/(x)tB:cos(x八2+2x+1)tC:ata n(sqrt(x八2+1)nn );prin tf(D:sqrt(e八x+s in (2x)tE:x八3+3*xA2+5tG:lo g10(x)/pow(2,x)nn);printf( 请选择函数 F(x) (大写): n ); scanf(%c,&hs);getchar();printf( 请输入您选用的求积公式第一个字母(大 写):n);y=getchar();/根据输入的switch(y) 大写字母判断所选求积公式case T:printf( 请输入分半次数: n);scanf(

9、%d,&k);printf( 请 输 入 积 分 区 间 a,b ab):n);scanf(%lf,%lf,&a,&b);if(a=0) a=0.0000000001;/输入当积分区间为零时默认为一极小数 printf(-n);printf(nTxing=%0.7fn,Txing(k);break;/输出计算结果小数点后保留 7 位case S:printf( 请输入分半次数大于等于 1 的正整数 :n);scanf(%d,&k);printf( 请 输 入 积 分 区 间 a,b ab):n);scanf(%lf,%lf,&a,&b);if(a=0) a=0.0000000001;/输入当积

10、分区间为零时默认为一极小数printf(n);printf(Simpson=%0.7fn,Simpson(k);break;/输出计算结果小数点后保留 7 位case C:printf( 请输入分半次数大于等于 2 的 正整数 :n);scanf(%d,&k);printf( 请 输 入 积 分 区 间 a,b ab):n);scanf(%lf,%lf,&a,&b);if(a=0) a=0.0000000001;/输入当积分区间为零时默认为一极小数printf(n);printf(Cotes=%0.7fn,Cotes(k);break; /输出计算结果小数点后保留 7 位case R:prin

11、tf( 请输入分半次数大于等于 3 的 正整数 :n);scanf(%d,&k);printf( 请 输 入 积 分 区 间 a,b ab):n);scanf(%lf,%lf,&a,&b);if(a=0) a=0.0000000001;/输入当积分区间为零时默认为一极小数 printf(n);printf(Romberg=%0.7fn,Romberg(k);break;/输出计算结果小数点后保留 7 位default:printf(n);printf( 公式输入有误,请查证!n);printf(n);6.算法结果截图丿j Jb J j jI肓丿人以I、公耳中述辛枳力、也飲:A: sinZ B:

12、cos C:*tnsqrtD:sqi*tex*s inE:x*3 3*x2+5G: loglBCx)/po 讨 2x请选择函数F (大写): 请输人您选用的求积公式第一个字母(大写):R请输入分半次数大于等于3的正整数: 请输入积分区间4b且(ab):0,1Press any key to continueT1=0.9207355T21=0-9397933 T =0.9445135TI8=0-9456909S1=0.9461459 S2=0.746086? S41=0.9460833 C1=0.9460830C2=0.9460831R1=0.9460831 Ronberg*0.9460831P

13、ress any key to continue请从以下公式中选择积分S数:H: sin/B:cos C:atansqrtP:sqrtex+sinE:x3*3*x2+5 G:logl0/pow请选择函数F (大写):B请输入您选用的求积公式第一个字母(大写):R请输入分半次数大于等于3的正整数3请输入积分区间A.b且(Mb):1,2rtl=-0.7823869 T21=0.1085312 T41=0-2118591T81=0.2341875S 11=0.4055040S【2】=02463017S【4】=02416303ICtl 1=0-2356882C21=0.2413188Rd =e.241

14、4082 Konbeig=0.2414082请从以下公式中选择积分a数:A: sin/ B:cos C:atansqrtP:sqptex+sinE:x3+3*x2+5 G:logl0/pow2.x请选择函数PQ (大写): c请输人您选用的求积公式第一个字母(大写):R请输入分半次数大于等于3的正整数:3请输入积分区间4b且(Xb):2,3rci3-1.2073905SCI1-1-2125727Cl=l.2125997Rll=l.2125996 Ronberg=l.2125996T2-l-2112921T43-l.2122725 Tt8-l.2125178S【21-1.2125992 S41-

15、1-2125996C21=l.2125996Press any key to continue请川丿下公式中选择积片a杏讥H = SinxJ/Cx B:cosx2 +2x*15 C:atansqi*tP:sqrtex+sinE:+3*x*2*5G: logl0/pow请选择函数巩X(大写): D请输人您选用的求积公式第一个字母(大写),R请输入分半次数大于等于3的正整数3请输人积分区间4b且(Mb) SU335502742tlJ5-5520974 。门话5865866Rri=5-5851229 Ronheig=5 .5S51229T2】57528299TC41-5.6265307 TCS3-5

16、.5954585S2-5.5844310 S45.5851011C2=5-5851458请从此Z寸冲选择和A函数:ft : fiin/B:cofi C:AtAn*t P:sqrtex+sinE:x3+3x *5 G:logl0/pow请选昇函数F3 (大写),F请输儿您选ffi的求炭公式第一个字* (大写):R情输A分兰次数大于等于3的正報妇3i青输上积分区间仏山且(ah):2,4r 1=142.19OUHUHMT2 J=13O.M9HUHl14=127.0(9UUH1181=126.25000005(11-126.0000000S 21-126.0000000S4*12G.0600906Cd -126.0060000R1 3-126.0080000Ronbery-126.0000000C2 1-126.0000000P,ess Any key to contimie请从D,下公式中选择积分a数,H: sin/B:cos C:atansqrtP:sqi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论