| 查看: 1157 | 回复: 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倍。 |
» 猜你喜欢
Materials Today Chemistry审稿周期
已经有5人回复
溴的反应液脱色
已经有7人回复
国自然申请面上模板最新2026版出了吗?
已经有11人回复
推荐一本书
已经有12人回复
基金申报
已经有4人回复
计算机、0854电子信息(085401-058412)调剂
已经有4人回复
纳米粒子粒径的测量
已经有7人回复
常年博士招收(双一流,工科)
已经有4人回复
参与限项
已经有5人回复
有没有人能给点建议
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
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












回复此楼