笫八章常用算法程序举例

笫八章常用算法程序举例

ID:42280680

大小:316.56 KB

页数:40页

时间:2019-09-11

笫八章常用算法程序举例_第1页
笫八章常用算法程序举例_第2页
笫八章常用算法程序举例_第3页
笫八章常用算法程序举例_第4页
笫八章常用算法程序举例_第5页
资源描述:

《笫八章常用算法程序举例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、笫八章常用算法程序举例本章介绍的一些例子,这是计算机解题中所常遇到的,通过它们可以学习程序设计的方法与技巧。切实掌握基本的算法,并在此基础上举一反三。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.18.1数值积分近

2、似求小曲边梯形面积的方法,常用的有以下三种:(l)用小矩形代替小曲边梯形,求出各小矩形面积,然后累加(2)用小梯形代替小曲边梯形。(3)在小区间范围内,用一条抛物线代替该区间内的f(X),然后求出由该抛物线与x=a+(i-1)h,x=0,x=a+ih形成的小曲边梯形面积。图8.2图8.38.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*

3、F(X)打印面积S图8.48.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)END8.1.2梯形法这也是近似地用小梯形表示小曲边梯形,见右图。笫i个小梯形面积为那么yf(a+(i-1)h)f(a+ih)0xa+(i-1)ha+ih8.1.2梯形法例8.2求READ(

4、*,*)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)END8.1.3辛普生(Sinpson)法其基本方法是:在一小区间内用一抛物线f1(x)代替原来的曲线f(x),见图8.5。抛物线是如何决定的呢?取a,b的中点c,c的坐标为求出f(c),过f(a),f(b),f(c)三点可以作一条唯一

5、的抛物线:抛物线定积分公式其中yf1(x)f(c)f(b)f(a)f(x)acbx8.1.3辛普生(Sinpson)法如果把[a,b]分成n个小区间,则其中8.1.3辛普生(Sinpson)法用辛普生法求READ(*,*)A,B,NH=(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,

6、B,NWIRTE(*,200)SFORMAT(1X,’A=‘,F8.2,2X,^‘B=‘,F8.2,2X,’N=‘,I4)FORMAT(1X,’S=‘,F16.7)END8.2解一元方程 8.2.1迭代法用迭代法求一元方程f(X)的根,其基本方法如下:(l)将f(X)改写成求X的式子:X=g(X)形式。(2)大致估计出一个根X的范围,给X定一个初值X0,把它代入上式等号的右边,求出X的第一次近似值X1。(3)再将X1代入g(X)得X2。这样一次一次地将求出的新值又作为下一次的初值代入g(X)。直到前后两次求出的X值很接近,即为止。ε是一个给定的很小的数。这时xn+1就是所求的近似值。例

7、8.4用迭代法求解x3+2x2+2x+1=0先找出x=g(x)式子,可得到:x=(-x3-2x2-1)/28.2.1迭代法估计在0附近有一个根。设x0=0。在设计算法时,应考虑一个问题,有可能经过许多次迭代后仍不收敛。为防止无休止的迭代下去,应规定一个最高的循环次数,如达到此次数仍不能满足就不再进行下去,应打印出“经xx次迭次后仍未收敛”。应当说明:对同一个f(X),可以写出不同的X=g(X)形式。例如,对X3+2X2+2X+1=0,可以写出:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。