蒙泰卡罗模拟应用求解pi近似值
定义
我们又可以称之为统计模拟方法,将所求解的问题同⼀定的概率模型相联系,⽤电⼦计算机实现统计模拟或抽样,以获得问题的近似解。
我们把需要求解的一个问题放到一个模型中,在模型中找出能近似表示这个值的特征。我们使用大量的随机数(这个随机数不仅仅指一个数,更广泛的指模型中发生的一次随机事件,我们将这个随机事件产生的效果简化为数,这个随机事件在这个模型产生的数值我们用随机数来代替)来模拟这个模型,随机数的数量越多,那么模拟的结果更加精确。
原理
由大数定理可知,当样本容量足够大时,事件的发生频率即为其概率。
布丰投针
一个经典的例子就是布丰投针,用于求解圆周率。
设我们有一个以平行且等距木纹铺成的地板,随意抛一支长度比木纹之间距离小的针,求针和其中一条木纹相交的概率。并以此概率来求解pi。
取一张白纸,在上面画上许多条间距为a的平行线。
取一根长度为l(l≤a) 的针,随机地向画有平行直线的纸上掷n次,观察针与直线相交的次数,记为m。
计算针与直线相交的概率,概率公式如下。
p=2lπa=mnp = \frac{2l}{\pi a} = \frac{m}{n} p=πa2l=nm
我们根据相交的次数来求解pi值。
matlab 模拟
我们现在需要将布丰投针这个模型里发生的投针试验简化为数据。
我们每一次投针的不同之处在于针与平行线之间的夹角c,以及针的中心与其最近的平行线的距离a。我们根据这两个值来判断针与线是否相交。
这样我们就找到了每一次投针试验后产生的数据
针与平行线之间的夹角c
针的中心与其最近的平行线的距离a
针与线是否相交,即下面的公式。
x≤l/2∗sin(c)x \le l/2 * sin(c) x≤l/2∗sin(c)
length = 1;% 针的长度
a = 3; % 平行线距离
n = 5200000; % 投针试验的次数,n越大求出来的pi越准确
m = 0; % 用于记录针与平行线相交的次数
x = rand(1, n) * a / 2 ; % 针的中点和最近的一条平行线的距离
angle = rand(1, n) * pi; % 针和最近的一条平行线的夹角
for i=1:n if x(i) <= length / 2 * sin(angle (i)) % 判断是否相交m = m + 1; end
end
p = m / n; % 针和平行线相交出现的频率
predict_pi = (2 * length) / (a * p);
disp(predict_pi)
% 3.1408
蒙泰卡罗模拟应用求解pi近似值相关推荐
- 蒙特.卡罗方法求解圆周率近似值原理与Python实现
对于某些不能精确求解的问题,蒙特.卡罗方法是一种非常巧妙的寻找近似解的方法. 以求解圆周率的问题为例,假设有一个单位圆及其外切正方形,我们往正方形内扔飞镖,当扔的次数足够多以后,"落在圆内的 ...
- python计算圆周率_python模拟蒙特·卡罗法计算圆周率
蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题. 假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x, ...
- Python---利用蒙特.卡罗方法计算圆周率近似值
利用蒙特.卡罗方法计算圆周率近似值 什么是蒙特.卡罗方法? 答:蒙特卡罗方法是一种计算方法.原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值. 正方形内部有一个相切的圆,它们的面积之比是π ...
- 蒲丰投针问题和蒙特·卡罗方法
蒲丰投针问题和蒙特·卡罗方法 1.蒲丰投针问题 法国数学家蒲丰在18世纪提出的一种计算圆周率的方法.具体方法是首先在白纸上画满间距相等的平行直线,然后取出一把小针,每个小针的长度都小于等于平行直线的间 ...
- Algorithm之MC:Monte Carlo method蒙特·卡罗方法的简介、实现、应用
Algorithm之MC:Monte Carlo method蒙特·卡罗方法的简介.实现.应用 目录 随机算法 MC的简介 MC的应用 随机算法 随机算法分为两大类:蒙特卡罗算法和拉斯维加斯算法,都是 ...
- 蒙特 卡罗方法matlab,蒙特·卡罗方法中的数学之美,你一定不想错过
原标题:蒙特·卡罗方法中的数学之美,你一定不想错过 有方教育--我们致力于为中学生提供学界和业界前沿的学术科研教育内容,帮助学生参加海外科研项目,在提升申请竞争力的同时,获得领跑优势. 一.概述 蒙特 ...
- python语言程序设计——蒙特·卡罗方法求圆周率
虽然在python的math库中存在着圆周率的表示,但是在实际生活中又有谁可以完整的背出圆周率呢,圆周率又是怎样被计算出来的呢? 首先数学家们发现了圆周率的近似方程如下: 而这段代码自然可以用计算机中 ...
- Q73:蒙特•卡罗积分(Monte Carlo Integration)
73.1 基本技巧(The Basic Technique) 这5个采样点各自对应的估算值如下: 如上五部分估算值(绿色阴影面积.天蓝色阴影面积.蓝色阴影面积.紫色阴影面积.红色阴影面积)的平均值即为 ...
- Root作对数坐标图及蒙卡随机模拟
Root作对数坐标图及蒙卡随机模拟 说明 蒙卡模拟 说明 采用root 作对数坐标图,通常会出现横坐标不是均等宽度分布,这是由于在定义historgram,在设置bin的个数和上下限时默认时均有分割, ...
最新文章
- Enterprise Library 2.0 技巧(1):如何使用外部配置文件
- 计算几个数相加和为16
- ft2232驱动安装方法_关于Win10无法安装英伟达驱动的处理方法
- 乐易家智能机器人价格_安川焊接机器人价格多少钱?核心是质量好
- P5283-[十二省联考2019]异或粽子【可持久化Trie,堆】
- plantuml 方法图_UML与软件建模:第四次作业(学习PlantUML活动图绘制方法)
- 实体店如何做好门店引流
- [基础]全局组、域本地组、通用组的区别与联系
- 浅析天际网、IT260、微人脉等中国职业社交网站
- android获取textview的行数
- php生成成语,在线成语词典 洪恩在线成语词典小偷程序php版
- setoolikt制作钓鱼网站
- JRebel进行热部署时修改的mapper.xml或者mapper的注解不生效
- 视频编解码(一):ffmpeg编码H.264帧类型判断
- 蓝桥杯刷题以及算法解析的网址
- JS验证用户真实姓名
- html实现下拉跳转
- iOS 自动生成各种尺寸的App Icon 和 Launch Image( App Icon Gear)
- 图像处理时为什么灰度化 【文末赠书】
- 抖音小店VS淘宝店铺,哪个更有优势?