| 查看: 1149 | 回复: 1 | |||
[交流]
【转帖】Monte Carlo 方法计算数值积分 已有1人参与
|
|
一位朋友说要贴出Monte Carlo计算积分的源程序,我就随便做一个简单的吧,复杂的程序完全可以从这个来演化,我想Monte Carlo积分的最大优势就在于高维积分,以及不规则区域, 可以节约很多计算机时。 下面只是演示一个2重积分,可以扩展到20维的只要添加相应的loop项。 被积函数: exp(sqrt(x^2+y^2)); x 上下限:x^2 < sin(y) y 上下限: y^2 % MONTE CARLO INT % by caoer clear all N =100000; x = 2*rand(N,1)-1; y = rand(N,1); f = 0; fsq = 0; n = 0; for i=1:N if x(i)^2 < sin(y(i)) & y(i)^2 f=f+exp(sqrt(x(i)^2+y(i)^2)); x_plot(n) = x(i); y_plot(n) = y(i); end end f = f/N; p=n/N; a = 2*1; I1 = f*a; % I2 = a*p; %interesting area I = I1/I2 plot(x_plot,y_plot,'o') 蒙特卡洛法用于求积分时,与积分重数无关,这点非常重要。虽然四维以下的积分用蒙特卡洛法效率可能不如传统的一些数值积分方法,但是维数高的时候,蒙特卡洛法比传统方法要有效的多,而且实现起来也非常容易。可以说,计算高维积分是蒙特卡洛方法最成功和典型的应用。 基本的蒙特卡洛法具有计算不可重复性的缺点。这里共享采用等序列分布的蒙特卡洛法,具有计算可重复性,误差阶比采用基本蒙特卡洛法好的优点。就基本的蒙特卡洛法求积分来说,不管积分重数多少,基本上是计算规模增加100倍,精度提高10倍。 |
» 猜你喜欢
职称评审没过,求安慰
已经有41人回复
回收溶剂求助
已经有7人回复
硝基苯如何除去
已经有3人回复
A期刊撤稿
已经有4人回复
垃圾破二本职称评审标准
已经有17人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有22人回复
EST投稿状态问题
已经有7人回复
毕业后当辅导员了,天天各种学生超烦
已经有4人回复
求助文献
已经有3人回复
三无产品还有机会吗
已经有6人回复
» 本主题相关价值贴推荐,对您同样有帮助:
Monte carlo模拟
已经有5人回复
【书籍】《应用随机过程教程及在算法和智能计算中的随机模型》龚光鲁、钱敏平 著
已经有46人回复
【转帖】一道面试题的monte carlo实现
已经有8人回复

luomingqi
木虫 (正式写手)
- 应助: 47 (小学生)
- 金币: 4356.8
- 散金: 20
- 红花: 1
- 帖子: 870
- 在线: 66.5小时
- 虫号: 896596
- 注册: 2009-11-07
- 性别: GG
- 专业: 控制理论与方法

2楼2014-04-01 21:36:40













回复此楼