淘豆网
1/40
下载文档
0/100
您的浏览器不支持进度条
更多>>该用户其他文档
下载所得到的文件列表
笫八章 常用算法程序举例.ppt
文档介绍:
笫八章常用算法程序举例本章介绍的一些例子,这是计算机解题中所常遇到的,通过它们可以学习程序设计的方法与技巧。切实掌握基本的算法,并在此基础上举一反三。舅座蠢雁漫拷编馈粥歪豌裕计沟馆秸囊巾割靖趴邢垦开琶史俊限披蒜弛骂笫八章常用算法程序举例笫八章常用算法程序举例8.1数值积分求一个函数f(x)在〔a,b〕上的定积分,其几何意义是求f(x)曲线和直线x=a,y=0,x=b所围成的曲边梯形面积。为了近似求出此面积,可将〔a,b〕区间分成若干个小区间,每个区间的宽度为(b—a)/n,n为区间个数。近似求出每个小的曲边梯形面积,然后将n个小面积加起来,就近似得到总的面积。即定积分的近似值,当n愈大(即区间分得愈小,近似程度愈高。yf(b)f(a)aa+hba+(i-1)ha+ih图8.1掣佐刷氓孺克社猪咽堰凰龄攀恐幢址赂单就拓皱膨扛孟进撵闻拜泄糠肾帐笫八章常用算法程序举例笫八章常用算法程序举例8.1数值积分近似求小曲边梯形面积的方法,常用的有以下三种:(l)用小矩形代替小曲边梯形,求出各小矩形面积,然后累加(2)用小梯形代替小曲边梯形。(3)在小区间范围内,用一条抛物线代替该区间内的f(X),然后求出由该抛物线与x=a+(i-1)h,x=0,x=a+ih形成的小曲边梯形面积。图8.2图8.3袭酌撒侣谈讨宰交挣共石莽赶躬诚证歇撤韩忧茂逞颂投斋绘舒羡树冬肆淮笫八章常用算法程序举例笫八章常用算法程序举例8.1.l矩形法矩形的面积为底×高。第一个小矩形的面积,底的值就是(b-a)/n,高为f(a),当然也可以用f(a+h)为高。第i个小矩形的面积为:si=h·f(a+(i-l)·h)用N-S图描述求定积分的算法,如右图输入A,B,NH=(B-A)/NS=0DoI=1,nX=A+(I-1)*HS=S+H*F(X)打印面积S图8.4秽戊茅憋帮绦阐胯巍符付晶继强甄同音哈锁惋乘田昂柒牌具毒哎尖盲你雍笫八章常用算法程序举例笫八章常用算法程序举例8.1.l矩形法例8.1求按图8.4写出程序。READ(*,*)A,B,NH=(B-A)/NS=0.0DO10I=1,NX=A+(I-1)*HS=S+H*EXP(X)CONTINUEWRITE(*,100)A,B,NWRITE(*,200)SFORMAT(1X,’A=‘,F10.3,3X,’B=‘,F10.3,3X,’N=‘,I4)FORMAT(1X,’S=‘,F15.8)END降捧谦帛夸晃陡世辕斩殖追陡宜厂丧梅栖荫糯蜒贫涣廊壬伪顷汰够土官部笫八章常用算法程序举例笫八章常用算法程序举例8.1.2梯形法这也是近似地用小梯形表示小曲边梯形,见右图。笫i个小梯形面积为那么yf(a+(i-1)h)f(a+ih)0xa+(i-1)ha+ih毖阀羡牢赃格谁递慎尽培鲁沏显等梁店削蔡祝斑头钉鞠周雨棠猜薄末旭酵笫八章常用算法程序举例笫八章常用算法程序举例8.1.2梯形法例8.2求READ(*,*)A,B,NH=(B-A)/NS=0.0DO10I=1,NS=S+H*(SIN(0.0+(I-1)*H)+SIN(0.0+I*H))/2.0CONTINUEWRITE(*,100)A,B,NWRITE(*,200)SFORMAT(1X,’A=‘,F10.3,3X,’B=‘,F10.3,3X,’N=‘,I4)FORMAT(1X,’S=‘,F15.8)END池砂推诧涣隅挠饱芋嫌咖终硬恕玲寄剖蜕汕汁接款粮砰墒遁悦婴扫涸抬抠笫八章常用算法程序举例笫八章常用算法程序举例8.1.3辛普生(Sinpson)法其基本方法是:在一小区间内用一抛物线f1(x)代替原来的曲线f(x),见图8.5。抛物线是如何决定的呢?取a,b的中点c,c的坐标为求出f(c),过f(a),f(b),f(c)三点可以作一条唯一的抛物线:抛物线定积分公式其中yf1(x)f(c)f(b)f(a)f(x)acbx锅条酱遣湛最斩币窘窍泡崎躺应煮赴脊岸教剁蹭雅砍另铸脱吼肿盔饿揭功笫八章常用算法程序举例笫八章常用算法程序举例8.1.3辛普生(Sinpson)法如果把[a,b]分成n个小区间,则其中搭胚胳隔娥另邪恳唉滁碘油忌移环酪藐恢疏潜像救喇蔚戚院粮郧炸娟侦撒笫八章常用算法程序举例笫八章常用算法程序举例8.1.3辛普生(Sinpson)法用辛普生法求READ(*,*)A,B,N H=(B-A)/(2.*N)S=0.0FA=1.0/(1.0+A)FB=1.0/(1.0+B)X=A+HF2=0.0F4=1.0/(1.0+X)DO10I=1,N-1X=X+HF2=F2+1.0/(1.0+X)X=X+HF4=F4+1.0/(1.0+X)10CONTINUES=H/3.0*(FA+FB+4.0*F4+2.0*F2)WRITE(*,100)A,B,NWIRTE(*,200)SFORMAT(1X,’A=‘,F8 内容来自淘豆网www.taodocs.com转载请标明出处.