MATLAB模拟布丰投针实验
MATLAB模拟布丰投针实验
标签(空格分隔): 算法
Buffon's Needle
桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < a.
思路:从针据横线的距离与夹角得出。
解决:
- 假设针的中点到最近横线的距离为y,则\(y\in[0,\frac{a}{2}]\);
- 因为投针是随机的,所以y服从均匀分布:
\[ f(y) = \begin{cases} \frac{2}{a}, & \text{$0 \leq y \leq \frac{a}{2}$} \\ 0, & \text{others} \end{cases} \]
- 假定横线向右为正向,记投针与横线正向的角为\(\theta\),则\(\theta \in[0, \pi]\),为均匀分布。
\[ f(\theta) = \begin{cases} \frac{1}{\pi}, & \text{$0 \leq \theta \leq \pi$} \\ 0, & \text{others} \end{cases} \]
投针与横线有交点,即\(y \leq \frac{L}{2}sin\theta\)
布丰投针估算\(\pi\) -- 蒙特卡罗模拟
针与横线有交点的概率:
\(P(x) = \int_{0}^{\pi}\int_{0}^{\frac{L}{2}sin\theta}f(y,\theta)dyd\theta = \int_{0}^{\pi}\int_{0}^{\frac{L}{2}sin\theta}f(y)f(\theta)dyd\theta \\ = \int_{0}^{\pi}\int_{0}^{\frac{L}{2}sin\theta}\frac{2}{a} * \frac{1}{\pi}dyd\theta = \frac{2L}{a\pi}\)
如果做n次投针实验,其中有k次针与横线相交,则针与横线相交的频率为:\(\frac{k}{n}\),根据大数定理,频率也就为概率。
$ \frac{2L}{a\pi} \approx \frac{k}{n}$ 即, \(\pi \approx \frac{2Ln}{ak}\)
MATLAB模拟实验
用布丰投针实验近似计算\(pi\)的值:
代码如下:
l = 0.6; %针的长度
a = 1; %平行线的宽度
n = 1000000; %做n次投针试验
k = 0; %记录针与平行线相交的次数
y = unifrnd(0, a/2, 1, n); %在[0, a/2]内服从均匀分布随机产生n个数
theta = unifrnd(0, pi, 1, n); %在[0, pi]内服从均匀分布随机产生n个数
for i=1:nif y(i) < (l/2)*sin(theta(i)) k = k + 1;end
end
f = k / n;
Pi = (2*l*n)/(a*k);
结果如图所示:
如此进行多次实验,进行估计。
如图为进行100次重复投针实验,每次投针1000000次,结果如图所示:
转载于:https://www.cnblogs.com/little-YTMM/p/5685139.html
MATLAB模拟布丰投针实验相关推荐
- 布丰投针java实现,MATLAB模拟布丰投针实验
MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...
- Matlab模拟蒲丰投针实验计算Π值
文章目录 1.前言 2.实验目的 3.实验原理 (1)问题描述 (2)问题求解 4.实验过程 5.实验结果 6.实验结论 7.Matlab代码 1.前言 学习了概率论,决定自己动手编程实现蒲丰投针实验 ...
- 蒲丰投针实验原理_布丰投针实验 MATLAB仿真 以及报告
布丰投针实验原理.仿真过程以及 MATLAB仿真代码.完整的布丰投针实验报告. 以下内容无关: -------------------------------------------分割线------ ...
- 用一根线模拟浦丰投针实验——Java
用一根线模拟浦丰投针实验--Java 浦丰投针实验(Buffon's needle problem) 本文先给出正确的推理过程,错误的推导过程放在文章末尾,方便大家探讨. 不多废话,直奔主题. ...
- R语言对布丰投针(蒲丰投针)实验进行模拟和动态可视化生成GIF动画
最近我们被客户要求撰写关于动态可视化的研究报告,包括一些图形和统计输出. 介绍 布丰投针是几何概率领域中最古老的问题之一.它最早是在1777年提出的.它将针头掷到有平行线的纸上,并确定针和其中一条平行 ...
- 蒲丰投针计算机模拟ppt,蒲丰投针实验模课件.doc
概率论与数理统计实验 蒲丰投针与蒙特卡罗法 班级 应数12级01班 学号 2012444086 姓名 张旭东 蒲丰投针与蒙特卡罗法 张旭东 2012444086 (重庆科技学院 数学与应用数学 ,重庆 ...
- 布丰投针试验的仿真和误差估计
布丰投针试验 一.试验原理 1.试验步骤 2.理论概率及π\piπ的计算与误差 二.Python代码的实现 一.试验原理 1.试验步骤 1.选一个长度为lll的针.再选取一张白纸,上面划分许多平行 ...
- 一文读懂蒲丰投针实验
这个博客源于概率论复习期间,蒙特卡罗方法的思想起源,这种求π\piπ的思路非常的巧妙 附:历史上用蒲丰投针实验估计圆周率的实验记录,来源 蒲丰投针 蒲丰投针实验是法国数学家.自然科学家"乔治 ...
- 强化学习 蒲丰投针实验 蒙特卡洛算法
目录 一.蒲丰投针实验 1.1背景故事 1.2原理介绍 二.蒙特卡洛方法 2.1方法介绍 2.2经验轨迹 2.3在线学习与离线学习 2.4数学原理 一.蒲丰投针实验 1.1背景故事 1777年,蒲丰请 ...
最新文章
- Nat. Genet. | 基于遗传学主导的方法定义免疫相关性状的药物靶标
- iOS根据Debug和Release状态的变化来屏蔽日志输出
- kafka备份机制——zk选举leader,leader在broker里负责备份
- Celery 使用(一)
- id int primary key auto_increment是什么意思
- 前端学习(2948):webpack创建简单项目
- 西门子安装未找到ssf文件_V5.3安装时显示NO SSF FILE FOUND对话框,我该怎么解决啊? 谢谢!-工业支持中心-西门子中国...
- jq之animate()队列
- 在linux下使用360随身wifi 2 | 李凡希的blog,在Linux下使用“360随身WiFi 2”
- java对象前后改变_java对象改变而不设置它们
- python字典创建,删除,增加,合并等方法的调用
- How To Replace The Firefox Icon With Your Logo
- 软件测试人员如何在“金三银四”跳槽季找到理想工作?
- mysql的驱动connect放在哪里_MySQL的JDBC驱动程序下载地址
- Devexpress GridView 提交焦点列
- 运维自动化部署Cobbler之服务安装篇
- 信息安全技术及应用 常规加密技术
- 罗克韦尔Studio5000遇上西门子Process Simulate:数字化仿真与虚拟调试案例
- xslx-style导出,表头样式表格样式,指定条件
- ProxySQL 排错 Max connect timeout reached while reaching hostgroup 10 after 10000ms