Matlab模拟蒲丰投针实验计算Π值
文章目录
- 1.前言
- 2.实验目的
- 3.实验原理
- (1)问题描述
- (2)问题求解
- 4.实验过程
- 5.实验结果
- 6.实验结论
- 7.Matlab代码
1.前言
学习了概率论,决定自己动手编程实现蒲丰投针实验来计算π\piπ的值,其中本文代码部分参考了这篇文章.
2.实验目的
通过仿真模拟实现蒲丰投针实验来计算 πππ 值.
3.实验原理
(1)问题描述
平面上画着许多间距为aaa的平行线,随机地向此平面任投掷一长度为l(l<a)l(l<a)l(l<a)的针NNN次,观察针与直线相交的次数记为nnn,计算此针与任意直线相交的概率。
(2)问题求解
以xxx表示针的中点到最近的一条平行线的距离,ϕ\phiϕ表示针与平行线的夹角。可知0≤x≤a2,0≤ϕ≤π,0≤x≤\frac{a}{2},0≤\phi≤\pi,0≤x≤2a,0≤ϕ≤π,以SSS表示长宽分别为a2\frac{a}{2}2a和πππ的长方形,要使针与平行线相交,必须保证x≤l2sinϕx≤\frac{l}{2}sin\phix≤2lsinϕ,满足这个关系式的区域GGG为下图(图中bbb即为lll)中黄色部分,则所求概率即表示为p=G的面积S的面积=12∫0πlsinϕdϕ12aπ=2lπap=\frac{G的面积}{S的面积}=\frac{\frac{1}{2}\int_0^\pi l\sin \phi d\phi}{\frac{1}{2}a \pi}=\frac{2l}{\pi a}p=S的面积G的面积=21aπ21∫0πlsinϕdϕ=πa2l.用频率nN\frac{n}{N}Nn代替概率ppp即可得π=2lNan\pi=\frac{2lN}{an}π=an2lN,并以此来计算π\piπ值.
(图来源网络,侵删)
4.实验过程
根据实验原理用Matlab编写程序,通过蒙特卡洛法生成规定量的随机数模拟蒲丰投针实验的结果,通过不断增加试验次数来得到更加精确结果.
5.实验结果
aaa | nnn | PiPiPi | |
---|---|---|---|
第一次 | 1 | 10000 | 3.148779847809 |
第二次 | 1 | 10000 | 3.147128245476 |
第三次 | 1 | 100000 | 3.149440974227 |
第四次 | 1 | 100000 | 3.140539125883 |
第五次 | 1 | 1000000 | 3.144044393907 |
第六次 | 1 | 1000000 | 3.145742237881 |
第七次 | 1 | 10000000 | 3.139098147566 |
第八次 | 1 | 10000000 | 3.142210146825 |
第九次 | 1 | 20000000 | 3.140213681074 |
第十次 | 1 | 30000000 | 3.141194329202 |
6.实验结论
由实验结果可以看出,可以看出当nnn足够大时,频率接近概率,蒲丰投针模拟实验可以得到较为精确的πππ值。
7.Matlab代码
l = 0.6; %针长度
a = 1; %平行线宽度,l和a均可修改,只要满足l<a即可
n = 100000; %做n次投针试验
y = unifrnd(0, a/2, 1, n); %在[0, a/2]内服从均匀分布随机产生n个数
theta = unifrnd(0, pi, 1, n); %在[0, pi]内服从均匀分布随机产生n个数
k=sum(y<(l/2)*sin(theta));%记录针与平行线相交的次数
pival = (2*l*n)/(a*k);
z=sprintf('%.12f',pival);
disp(z)
Matlab模拟蒲丰投针实验计算Π值相关推荐
- 布丰投针java实现,MATLAB模拟布丰投针实验
MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...
- MATLAB模拟布丰投针实验
MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...
- 蒲丰投针计算机模拟ppt,蒲丰投针实验模课件.doc
概率论与数理统计实验 蒲丰投针与蒙特卡罗法 班级 应数12级01班 学号 2012444086 姓名 张旭东 蒲丰投针与蒙特卡罗法 张旭东 2012444086 (重庆科技学院 数学与应用数学 ,重庆 ...
- 用一根线模拟浦丰投针实验——Java
用一根线模拟浦丰投针实验--Java 浦丰投针实验(Buffon's needle problem) 本文先给出正确的推理过程,错误的推导过程放在文章末尾,方便大家探讨. 不多废话,直奔主题. ...
- 一文读懂蒲丰投针实验
这个博客源于概率论复习期间,蒙特卡罗方法的思想起源,这种求π\piπ的思路非常的巧妙 附:历史上用蒲丰投针实验估计圆周率的实验记录,来源 蒲丰投针 蒲丰投针实验是法国数学家.自然科学家"乔治 ...
- 强化学习 蒲丰投针实验 蒙特卡洛算法
目录 一.蒲丰投针实验 1.1背景故事 1.2原理介绍 二.蒙特卡洛方法 2.1方法介绍 2.2经验轨迹 2.3在线学习与离线学习 2.4数学原理 一.蒲丰投针实验 1.1背景故事 1777年,蒲丰请 ...
- 蒙特卡洛—模拟蒲丰投针
蒲丰投针实验: 公式推导: 实现代码: # 其实这里根据已知的pi然后计算出概率算出自己的pi import numpy as np import matplotlib.pyplot as plt i ...
- 【游戏仿真实验】Unity仿真蒲丰投针实验,丢针计算圆周率,丢了一百万次针得出的结果是...
文章目录 一.前言 二.制作场景 1.制作针模型 2.桌面制作 3.平行线制作 三.物理仿真 1.桌面无反弹 2.针掉落 3.针滚动问题 4.针架到平行线上的问题 5.针与针相互影响的问题 四.UI界 ...
- 蒲丰投针实验的一些理解
由于要做ppt这里把自己的代码先暂时放上来,不当之处请多指正! 实验过程: 1)取一张白纸,在上面画上许多条间距为a的平行线. 2) 取一根长度为l(l≤a) 的针,随机地向画有平行直线的纸上掷n次, ...
最新文章
- 一行代码简化Python异常信息:错误清晰指出,排版简洁美观 | 开源分享
- 在线学html5,HTML5 在线学习自我演进的导弹系统
- 2021-01-07 matlab数值分析 数值积分与数值微分 复合梯形公式 复合Simpson公式
- 牛客网——华为机试(题8:合并表记录)(Java)
- 「老家」山西凤凰城,说话饮食都像极了西安,人称“最不像山西的城市”
- 力扣 O(1) 时间插入、删除和获取随机元素 - 允许重复
- vue2+vuex+vue-router 快速入门(三) vue 实例介绍
- 关于linux无法联网以及xshell无法连接linux的解决
- android web sevice,Web Service在Android开发中的应用研究
- ATMEGA128芯片标识
- 学习心得《稻盛和夫经营学》的读后感2300字
- 反反爬技术,破解猫眼网加密数字
- 【Oracle】快速向表中插入大量数据Oracle中append与Nologging
- (2019春)软件构造:雨课堂试卷(一)
- cppunit在vs2019上的配置和使用【Win10】【详细】
- Vue 学习笔记(六) P41-P43
- 带你理解交换机基本原理和配置
- NR随机接入之MSG1
- win10设置网络打印机
- 挂耳式运动耳机哪个品牌好?挂耳式骨传导运动耳机推荐