多重积分Fortran子程序-------VEGAS.F流程图.pdfVIP

多重积分Fortran子程序-------VEGAS.F流程图.pdf

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

多重积分 Fortran 子程序-------VEGAS.F 流程图 说明:这里只是对子程序的算法和如何分层做详细介绍,对打印 输出和其他一些东西都做略过。还有这个子程序中涉及的变量很多, 而且变量的意义也变化,所以下面涉及到的变量我都会在画流程图前 加以适当的说明。 1.子程序所涉及的变量及其的意义: 有用输入参数: FXN:被积函数。 ACC:所要求的精度。 NDIM:被积函数的变量的个数。 NCALL:投点的总数。 ITMX:要求的叠代的次数。 NPRN:打印的要求(具体要求略过)。 子程序内部的参数及其意义: TI(AVGI):数值积分的结果。 IT:叠代的次数。 X(I,J):各随机变量的分布,J 表示各个变量。 ERR(SD):数值积分的误差。 ALPH0:变化区间的参数。 RAND(20):[0,1]的随机数列。 X(J):用于积分的坐标等。 2.主要的程序模块和各模块的功能 总的流程图: 3.各模块的流程图 1.初始化设定各个参数 2.初始化内部的分布 3.初始化叠代值 4.计算各个随机点的 位置 X(J),计算各 个随机点的函数值。 5.计算积分值 和积分的误差 6.误差和叠 代次数是否 符合要求 7.按误差改变各区 间的大小,重新获 得一个变量的分布 结束 8.打印输出结果 是 否 1)初始化设定各个参数 该部分的主要工作就是给各参数输入初始值,下面简述各个初 始化的参数以及各参数的意义或在以下何模块里要用到。 ALPH=1.5; 这是在 7 中用到,作为变换分布的参数。 CALLS=NCALL; 投点的总数。 XND=ND=50; 区间分为 50 份。 NDM=ND-1=49; 为以下处理方便。 IT=0; 叠代初始为零。 SI=0; SI2=0; SWGT=0; SCHI=0; SCALLS=0; 以上五个变量均是叠代参数,在 5 中用。 2)初始化内部分布: 变量的意义: RC:分层的间隔。 NDIM:变量的个数。 XI(I,J):变量的区间的分布。 XND: 区间分层数。 XNDM=XND-1。 DR: 求和号。 初始化的分布是一个均匀分布,实现的流程图如下: 3) 初始叠代参数: 这不仅仅是初始化的过程了,而是大的循环的一部分,每改变 一次变量的分布,就需要初始化叠代参数一次。下面简述各个 初始化的参数以及各参数的意义或在以下何模块里要用到。 J=NDIM RC=1/XND J=1 XI(ND,J)=1 DR=0 J++ I=NDM DR=DR+RC XI(I,J)=DR I++ CONTINUE Y N Y N IT=IT+1; 叠代的次数。 TI=0; 积分值清零。 SFUN2=0; 在 4,5 中求误差时要用。 D(I,J)=0; 对 D 矩阵清零,在 4,5,7 中要用。 4)计算各个随机点的位置 X(J),计算各个随机点的函数值。 这里主要是算各个随机点的位置 X(J)和各个随机点的函数值, 并为下面的求误差作好准备。总的流程图如下: 下面分别看计算各个随机点的位置 X(J)和计算各个随机点的函数 值的流程图: A)各个随机点的位置 X(J) 变量定义: JJ=NCALL CONTINUE 计算各个随机点的位置 X(J) 计算各个随机点的函数值。 JJ++ Y N NDIM: 变量的个数。 XI(I,J): 变量的分布。 WGT: 权重。 流程图: WGT=1 J=NDIM 产 生 随 机 数 列 RAND(N) XN=RAND(J)*XND+1 取 XN 的整数部分到数列 IA(J) 让 XIM1=0 IA(J)1 XIM1=XI(IA(J)-1,J) 表示区间的距离 X0=XI(IA(J),J)-XIM1。 X(J)=XIM1+(XN-IA(J))*X0。 权重 WGT=WGT*X0*XND。 J++ CONTINUE 这里是用随机数经过 RAND(J)*XND+1 的变换值的整数部分 IA(J) 选择了分层区间,用其小数部分来选择了坐标点在该分层区间的具体 位置。该部分得到 X(J),和该点的权重。 B)计算各个随机点的函

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档