文章目录

  • 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≤2l​sinϕ,满足这个关系式的区域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的面积​=21​aπ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模拟蒲丰投针实验计算Π值相关推荐

  1. 布丰投针java实现,MATLAB模拟布丰投针实验

    MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...

  2. MATLAB模拟布丰投针实验

    MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...

  3. 蒲丰投针计算机模拟ppt,蒲丰投针实验模课件.doc

    概率论与数理统计实验 蒲丰投针与蒙特卡罗法 班级 应数12级01班 学号 2012444086 姓名 张旭东 蒲丰投针与蒙特卡罗法 张旭东 2012444086 (重庆科技学院 数学与应用数学 ,重庆 ...

  4. 用一根线模拟浦丰投针实验——Java

    用一根线模拟浦丰投针实验--Java 浦丰投针实验(Buffon's needle problem)   本文先给出正确的推理过程,错误的推导过程放在文章末尾,方便大家探讨.   不多废话,直奔主题. ...

  5. 一文读懂蒲丰投针实验

    这个博客源于概率论复习期间,蒙特卡罗方法的思想起源,这种求π\piπ的思路非常的巧妙 附:历史上用蒲丰投针实验估计圆周率的实验记录,来源 蒲丰投针 蒲丰投针实验是法国数学家.自然科学家"乔治 ...

  6. 强化学习 蒲丰投针实验 蒙特卡洛算法

    目录 一.蒲丰投针实验 1.1背景故事 1.2原理介绍 二.蒙特卡洛方法 2.1方法介绍 2.2经验轨迹 2.3在线学习与离线学习 2.4数学原理 一.蒲丰投针实验 1.1背景故事 1777年,蒲丰请 ...

  7. 蒙特卡洛—模拟蒲丰投针

    蒲丰投针实验: 公式推导: 实现代码: # 其实这里根据已知的pi然后计算出概率算出自己的pi import numpy as np import matplotlib.pyplot as plt i ...

  8. 【游戏仿真实验】Unity仿真蒲丰投针实验,丢针计算圆周率,丢了一百万次针得出的结果是...

    文章目录 一.前言 二.制作场景 1.制作针模型 2.桌面制作 3.平行线制作 三.物理仿真 1.桌面无反弹 2.针掉落 3.针滚动问题 4.针架到平行线上的问题 5.针与针相互影响的问题 四.UI界 ...

  9. 蒲丰投针实验的一些理解

    由于要做ppt这里把自己的代码先暂时放上来,不当之处请多指正! 实验过程: 1)取一张白纸,在上面画上许多条间距为a的平行线. 2) 取一根长度为l(l≤a) 的针,随机地向画有平行直线的纸上掷n次, ...

最新文章

  1. 一行代码简化Python异常信息:错误清晰指出,排版简洁美观 | 开源分享
  2. 在线学html5,HTML5 在线学习自我演进的导弹系统
  3. 2021-01-07 matlab数值分析 数值积分与数值微分 复合梯形公式 复合Simpson公式
  4. 牛客网——华为机试(题8:合并表记录)(Java)
  5. 「老家」山西凤凰城,说话饮食都像极了西安,人称“最不像山西的城市”
  6. 力扣 O(1) 时间插入、删除和获取随机元素 - 允许重复
  7. vue2+vuex+vue-router 快速入门(三) vue 实例介绍
  8. 关于linux无法联网以及xshell无法连接linux的解决
  9. android web sevice,Web Service在Android开发中的应用研究
  10. ATMEGA128芯片标识
  11. 学习心得《稻盛和夫经营学》的读后感2300字
  12. 反反爬技术,破解猫眼网加密数字
  13. 【Oracle】快速向表中插入大量数据Oracle中append与Nologging
  14. (2019春)软件构造:雨课堂试卷(一)
  15. cppunit在vs2019上的配置和使用【Win10】【详细】
  16. Vue 学习笔记(六) P41-P43
  17. 带你理解交换机基本原理和配置
  18. NR随机接入之MSG1
  19. win10设置网络打印机
  20. 挂耳式运动耳机哪个品牌好?挂耳式骨传导运动耳机推荐

热门文章

  1. IC设计中节省静态功耗和动态功耗的方法
  2. 英语考研——让步状语从句
  3. Python程序设计第三章测验总结
  4. matlab rho是什么意思,rho(rho值是什么意思)
  5. 微信小程序 image图片组件实现宽度固定 高度自适应
  6. 教宗通谕《在希望中得救》
  7. python中异常处理-安装包失败
  8. Python Pyinstaller安装与使用
  9. python3.8与pyinstaller_pyinstaller 3.5 在python 3.8 环境下出现不兼容的问题
  10. IDEA查看jks文件