MATLAB模拟布丰投针实验
MATLAB模拟布丰投针实验
标签(空格分隔): 算法
Buffon's Needle
桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < a.
思路:从针据横线的距离与夹角得出。
解决:
- 假设针的中点到最近横线的距离为y,则\(y\in[0,\frac{a}{2}]\);
- 因为投针是随机的,所以y服从均匀分布:
\begin{cases}
\frac{2}{a}, & \text{$0 \leq y \leq \frac{a}{2}$} \\
0, & \text{others}
\end{cases}
\]
- 假定横线向右为正向,记投针与横线正向的角为\(\theta\),则\(\theta \in[0, \pi]\),为均匀分布。
\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:n
if y(i) < (l/2)*sin(theta(i))
k = k + 1;
end
end
f = k / n;
Pi = (2*l*n)/(a*k);
结果如图所示:

如此进行多次实验,进行估计。
如图为进行100次重复投针实验,每次投针1000000次,结果如图所示:

MATLAB模拟布丰投针实验的更多相关文章
- 多普勒失真信号采样Matlab模拟分析
多普勒失真信号采样Matlab模拟分析 方案 水声通信指的是使用声信号在水中数据传输. 相对而言.电磁信号在水中吸收严重衰减过快,光信号受水中悬浮颗粒的影响,也无法完毕远距离传输. 这两种信号的传播距 ...
- 模拟生产搭建Standby RAC实验环境(11.2.0.4 DG)
模拟生产搭建Standby RAC实验环境(11.2.0.4 DG) 环境:RHEL 6.5 + Oracle 11.2.0.4 GI.DB 1.需求背景介绍 2.准备工作 3.主库配置 4.备库配置 ...
- csdn vip文章:使用matlab模拟镜头失真
原文地址 https://blog.csdn.net/lircsszz/article/details/80249017 最近在研究图像校正,现将镜头失真中常见的径向畸变(radial distort ...
- 【模拟,时针分针秒针两两夹角】【没有跳坑好兴奋】hdu - 5387 (多校#8 1008)
算是最好写的一道题了吧,最近模拟没手感,一次过也是很鸡冻o(* ̄▽ ̄*)o 注意事项都在代码里,没有跳坑也不清楚坑点在哪~ #include<cstdio> #include<cst ...
- AD采样模块采集带模拟量真空表值的实验
实验采用带模拟量,分辨率为1-5V,量程为0--101kpa的真空表 数据采集模块采用DAM-8021, 16位模块 算法描述如下: 真空表读数范围: 0到-101kpa 模拟量输出: 1-5V 一 ...
- 五通信算法:五种编码增益比较matlab模拟
1. 卷积编码增益性能.BER 信道环境:AWGN 信噪比SNR :0:0.1:6 MATALB仿真架构:源比特 +卷积码 +BPSK +AWGN +Viterbi +BER 说明:卷积编码,不同的R ...
- Buffon投针问题
- 蒙特卡罗方法、蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)初探
1. 蒙特卡罗方法(Monte Carlo method) 0x1:从布丰投针实验说起 - 只要实验次数够多,我就能直到上帝的意图 18世纪,布丰提出以下问题:设我们有一个以平行且等距木纹铺成的地板( ...
- [matlab]Monte Carlo模拟学习笔记
理论基础:大数定理,当频数足够多时,频率可以逼近概率,从而依靠概率与$\pi$的关系,求出$\pi$ 所以,rand在Monte Carlo中是必不可少的,必须保证测试数据的随机性. 用蒙特卡洛方法进 ...
随机推荐
- 如何把一个java工程打成一个jar包(转载)
1.jar包有入口(即有main()函数) 选中要打包的工程--->右键选择Export---->java----->Runnable java file----->next- ...
- android 学习随笔二十九(自定义监听 )
package com.itheima.momo.dialog; import com.itheima.momo.R; import android.app.AlertDialog; import a ...
- echo date
echo -n 不换行 echo -n '123';echo '456' #结果:123456 echo -e 启用下列反斜杠转义的解释 \b 退格 \t制表 \n 换行 \r 回车 echo -e ...
- JSP/Servlet 中的汉字编码问题
JSP/Servlet 中的汉字编码问题 1.问题的起源 每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的 ASCII,中国的 GB2312 -80,日本的 JIS 等,作为该国家/区 ...
- jQuery DataTable-JavaScript API
虽然大多数时候你的Javascript交互将通过使用datatable初始化对象作为描述在使用这个网站的部分,有时,你会发现它有用一些外部控制表.可以使用以下函数从jQuery.dataTable对象 ...
- 如何修改ECSHOP后台管理中心的Title信息
下图中红色圈定的部分就是本次修改要改的地方 修改方法其实很简单的:打开语言包文件 /languages/zh_cn/admin/common.php 将 $_LANG['app_name'] = ' ...
- html+css复习之第1篇
1. 保证在火狐浏览器字体<12px,苹果横屏的时候字体显示大小还是12px html { background: #fff; -webkit-text-size-adjust: 100%; - ...
- android5.x以上 状态栏透明的问题
1.先在style中把 statusBarColor 设置为透明 如下 <item name="android:statusBarColor">@android:co ...
- 局域网 其它主机ping不通win7, 解决
默认情况下,Windows 7出于安全考虑不允许外部主机对其进行Ping测试. 允许ICMP回显 设置如下: 1. 打开win7防火墙设置界面 2. 左边的菜单中选择 [高级设置] 3. 在弹出的 [ ...
- Uva 11754 Code Feat
题意概述: 有一个正整数$N$满足$C$个条件,每个条件都形如“它除以$X$的余数在集合$\{Y_1, Y_2, ..., Y_k\}$中”,所有条件中的$X$两两互质, 你的任务是找出最小的S个解. ...