MATLAB模拟布丰投针实验
来源:互联网 发布:windows7安装sqlserver 编辑:程序博客网 时间:2024/06/05 04:28
MATLAB模拟布丰投针实验
标签(空格分隔): 算法
Buffon’s Needle
桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < a.
思路:从针据横线的距离与夹角得出。
解决:
1. 假设针的中点到最近横线的距离为y,则
- 因为投针是随机的,所以y服从均匀分布:
2. 假定横线向右为正向,记投针与横线正向的角为
投针与横线有交点,即
布丰投针估算π – 蒙特卡罗模拟
针与横线有交点的概率:
如果做n次投针实验,其中有k次针与横线相交,则针与横线相交的频率为:
MATLAB模拟实验
用布丰投针实验近似计算
代码如下:
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; endendf = k / n;Pi = (2*l*n)/(a*k);
结果如图所示:
如此进行多次实验,进行估计。
如图为进行100次重复投针实验,每次投针1000000次,结果如图所示:
0 0
- MATLAB模拟布丰投针实验
- matlab仿真实验模拟
- 模拟信号调制解调与数字基带信号MATLAB实验
- matlab 实验
- 【实验】虚拟驱动模拟实验
- MATLAB滤波实验
- MATLAB滤波实验
- Matlab 图像处理实验
- Matlab FFT实验
- 【Matlab实验】 创建矩阵
- MATLAB实验作业答案
- Matlab小实验
- RANSAC算法MATLAB实验
- matlab图像处理实验
- MATLAB分割小实验
- Matlab---打印实验图
- MATLAB实验报告
- MATLAB第二次实验报告
- Duplicate class/entity mapping 问题解决方法 2
- HTML4.01与HTML5差异
- BZOJ 1036 [ZJOI2008]树的统计Count==树剖裸题
- SpringMVC简单配置
- javaWeb后台版登陆注册
- MATLAB模拟布丰投针实验
- [Warning] IP address'10.0.9.121' could not be resolved: Temporary failure in name resolution
- nodejs 封装自己的log模块
- Jetty for Mac的安装及Myeclipse下的配置(Myeclipse for mac 插件安装link方法详述)
- 解决ntp的错误 no server suitable for synchronization found
- 通过金矿模型介绍动态规划
- C语言中%d,%o,%f,%e,%x的意义
- js实现冒泡排序
- 自动识别图片验证码