没有合适的资源?快使用搜索试试~ 我知道了~
蒙特卡罗算法计算Pi.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 114 浏览量
2022-06-15
07:14:39
上传
评论
收藏 145KB PDF 举报
温馨提示
试读
3页
。。。
资源推荐
资源详情
资源评论
呵呵,刚好大二下学期学的,给你讲讲吧。
根据我的理解简单的说就是以部分估计整体,利用随机数来解决问题的方法称为
蒙特卡罗算法,记得课本上讲了个例题:
在数值积分法中,我们利用求单位圆的 1/4 的面积来求得 Pi/4 从而得到 Pi。单
位圆的 1/4 面积是一个扇形,它是边长为 1 单位正方形的一部分(若能画图就好
了!)只要能求出扇行面积 S1 在正方形面积 S 中占的比例 K=S1/S 就立即能得到
S1,从而得到 Pi 的值.
怎样求出扇形面积在正方形面积中占的比例 K 呢?一个办法是在正方形中随机
投入很多点,使所投的点落在正方形中每一个位置的机会相等看其中有多少个点
落在扇形内。将落在扇形内的点数 m 与所投点的总数 n 的比 m/n 作为 k 的近似值。
怎样实现这样的随机投点呢?任何一款计算机语言都有这种功能,能够产生在区
间[0,1]内均匀分布的随机数,在 mathematica 中,产生区间[0,1]内均匀分布
随机数的语句是
Random[ ]
产生两个这样的随机数 x,y,则以(x,y)为坐标的点就是单位正方形内的一点 P,
它落在正方形内每个位置的机会均等,P 落在扇形内的充要条件是 x^2+y^2<=1.
蒙特卡罗算法计算 Pi
n=10000;p=();
Do[m=0;Do[x=Random[];y=Random[];If[x^2+y^2<=1,m++],{k,1,n}];
AppendTo[p,N[4m/n]],{t,1,10}];
Print[p];
Sum[p[[t]],{t,1,10}]/10
注:以上语句的功能是:n=10000,每次投 10000 个点得出 Pi 的近似值存放到数
组 p 中;一共做 10 次得到 10 个近似值,通过语句 Print[p]将这 10 个近似值全
部显示出来观察。最后再求这 10 个近似值的平均值,相当于随机投点 100000
次得到的近似值。
以上是用 Mathenatica 编写的程序,方法就是这样,具体只能你自己体会了。
蒙特卡罗算法
以概率和统计理论方法为基础的一种计算方法。将所求解的问题同一定的概率模
型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象征性
地表明这一方法的概率统计特征,故借用赌城蒙特卡罗命名。又称统计模拟法、
随机抽样技术。由 S.M.乌拉姆和 J.冯·诺伊曼在 20 世纪 40 年代为研制核武器
而首先提出 。它的基本思想是,为了求解数学、物理、工程技术以及管理等方
资源评论
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功