fortran95中怎样用蒙特卡洛的方法求积分

fortran95中怎样用蒙特卡洛的方法求积分,第1张

随机的取出足够数量的区间上的点,计算出被积函数f(x)的值,然后做一下平均就可以了。比如说计算π的值,可以由以下积分计算出来:

下面由我给出fortran算法。

program mymainprogram

  implicit none

  real8::t1,t2,a1=00,b1=10

  integer4::n=100000000

  call cpu_time(t1)

  write(,)'result pi=',mentekarol(a1,b1,100000000)

  call cpu_time(t2)

  write(,)'time',t2-t1

contains

function mentekarol(a,b,n)result(s)

  real8,intent(in)::a,b

  real8::s

  real8::sum=0,randnum

  integer4::i,n

  do i=1,n

      call random_seed()

      call random_number(randnum)

      randnum=a+(b-a)randnum

      sum=sum+40/(10+randnumrandnum)

  enddo

  s=sum/n

end function mentekarol

end

计算结果如下:

可见还是比较准确的了。

以上就是关于fortran95中怎样用蒙特卡洛的方法求积分全部的内容,包括:fortran95中怎样用蒙特卡洛的方法求积分、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9492114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存