Buffon投针实验

Buffon’s Needle

桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < a. 
思路:从针据横线的距离与夹角得出。 
解决: 
1. 假设针的中点到最近横线的距离为y,则y[0,a2]y∈[0,a2];

  • 因为投针是随机的,所以y服从均匀分布:

f(y)={2a,0,0ya2othersf(y)={2a,0≤y≤a20,others

2. 假定横线向右为正向,记投针与横线正向的角为θθ,则θ[0,π]θ∈[0,π],为均匀分布。 
f(θ)={1π,0,0θπothersf(θ)={1π,0≤θ≤π0,others

投针与横线有交点,即yL2sinθy≤L2sinθ

布丰投针估算ππ – 蒙特卡罗模拟

针与横线有交点的概率: 
P(x)=π0L2sinθ0f(y,θ)dydθ=π0L2sinθ0f(y)f(θ)dydθ =π0L2sinθ02a1πdydθ=2LaπP(x)=∫0π∫0L2sinθf(y,θ)dydθ=∫0π∫0L2sinθf(y)f(θ)dydθ =∫0π∫0L2sinθ2a∗1πdydθ=2Laπ

如果做n次投针实验,其中有k次针与横线相交,则针与横线相交的频率为:knkn,根据大数定理,频率也就为概率。 
2Laπkn2Laπ≈kn 即, π2Lnakπ≈2Lnak

MATLAB模拟实验

用布丰投针实验近似计算pipi的值: 
代码如下:

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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

结果如图所示: 
此处输入图片的描述 
如此进行多次实验,进行估计。 
如图为进行100次重复投针实验,每次投针1000000次,结果如图所示: 
此处输入图片的描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值