常用算法的程序设计举例.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
常用算法的程序设计举例

第八章 常用算法的程序设计举例;一、数值积分;近似求小曲边梯形面积的方法:; read(*,*) a,b,n x=a h=(b-a)/n f0=exp(x) s=0.0 do 10 i=1,n si=f0*h s=s+si x=x+h f0=exp(x) 10 continue write(*,100) a,b,n write(*,200) s 100 format(1x,a=,f10.3,3x,b=, $ f10.3,3x,n=,i4) 200 format(1x,s=,f15.8) end; read(*,*) a,b,n x=a h=(b-a)/n s=0.0 do 10 i=1,n si=(sin(x+(i-1)*h)+ $ sin(x+i*h))*h/2.0 s=s+si 10 continue write(*,100) a,b,n write(*,200) s 100 format(1x,a=,f10.3,3x, $ b=,f10.3,3x,n=,i4) 200 format(1x,s=,f15.8) end;其他几种 程序变形;3. Sinpson法;如果将(a,b)分成四个小区间:; read(*,*) a,b,n h=(b-a)/(2.0*n) s=0.0 fa=1.0/(1.0+a) fb=1.0/(1.0+b) x=a+h f2=0.0 f4=1.0/(1.0+x) do 10 i=1,n-1 x=x+h f2=f2+1.0/(1.0+x) x=x+h f4=f4+1.0/(1.0+x) 10 continue s=h/3.0*(fa+fb+4.0*f4+2.0*f2) write(*,100) a,b,n write(*,150) s 100 format(1x,a=,f8.2,2x,b=,f8.2, $ 2x,n=,i4) 150 format(1x,s=,f16.7) end;二、解一元方程(解非线性函数); 有的g(x)是收敛的,而有的g(x)是不收敛的。同一个g(x),对某些x0是收敛的,对有的x0则是不收敛的。 如果g(x)具有一阶导数连续,且对于所有的x,若|g’(x)|≤q1(q为一个定数),那么x=g(x)对于任意的x0均收敛,且q愈小,收敛速度愈快。如果不满足对所有的x存在|g’(x)|≤q1 ,则可能对有的x0收敛,对有的x0不收敛。 因此要恰当的选择g(x)形式和初值x0。;2. 牛顿迭代法;3. 二分法;4. 弦截法(割线法); 以上方法都是近似求根,得到不是准确值而是近似值。但只要给定的误差足够小,就可以认为它们之间足够近似。 事实上,只有少数的方程才能用解析的方法求出准确的根值。 计算机可以解任何有实根的一元方程,它采用的基本方法就是迭代,经过多次迭代,使近似根逐渐趋近于真实根。迭代可以用循环实现,正好充分发挥计算机快速运算的特点。;三、求函数极值; f1=x1*x1-4.0*x1+5.0 f2=x2*x2-4.0*x2+5.0 if(f1.gt.f2) then f=f2 x=x2 else f=f1 x=x1 end if write(*,204) x,f 200 format(12x,x1,14x,f1, $ 13x,x2,13x,f2/) 202 format(1x,4f15.7) 204 format(0,x=,f10.6,5x, $ f(x)=,f10.7) end ;五、计算机模拟; 小球以10m/s沿 45°斜抛,落地反 弹方向同前,速度 减小10%,求前三 次周期轨迹。; if(abs(y).gt.0.001) then t=t-dt dt=0.1*dt t=t+dt x=v*t+x0 y=v*t-0.5*g*t**2 else write(*,100) t,x,y flag=.false. end if end if goto 5 end if v=0.9*v t=0.0 x0=x write(*,*

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档