数学建模生日问题.doc_第1页
数学建模生日问题.doc_第2页
数学建模生日问题.doc_第3页
数学建模生日问题.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学建模实验报告试验名称:生日问题问题背景描述:在100个人的团体中,如果不考虑年龄的差异,研究是否有两个以上的人生日相同。假设每人的生日在一年365天中的任意一天是等可能的,那么随机找n个人(不超过365人)。求这n个人生日各不相同的概率是多少?从而求这n个人中至少有两个人生日相同这一随机事件发生的概率是多少?实验目的:用计算机求解概率计算问题;当幂方次数较大时用多项式拟合方法确定求概率的近似计算公式;了解随机现象的计算机模拟技术。实验原理与数学模型:这是一个古典概率问题,n个人中每一人的生日都可能在365天中任何一天,样本空间中样本点总数为365,考虑n个人的生日两两不同,第一个人的生日可能在365天中任一天,第二个人的生日不能与第一个人生日相同,第二个人生日可能在364天中任何一天,类推可得,n个人生日两两不同的这一事件的总共有365*364*(365-n+1). 故这n个人的生日各不相同的概率(可能性)以下面公式计算:P (1)因而,n个人中至少有两人生日相同这一随机事件发生的概率为:P(n)= (2)但是在利用公式进行计算时,所用的乘法次数和除法次数较多,可以考虑用多项式做近似计算。这需要解决多项式拟合问题。主要内容(要点):1、 求出n个人中至少有两个人生日相同的概率P(n)的近似公式;2、 根据P(n)的近似公式,用计算机分别计算出当团体人数取n=1,2,100时的概率值:P(1),P(2),P(100)。在Matlab环境下用指令plot(p)绘制图形,描述概率值随团体人数变化的规律;3、 特殊概率值的计算。在有40个学生的班上,至少有2个同学生日相同的概率是多少?60个人的团体中,至少有两个人生日在同一天的概率又是多少?在80个人的团体中,情况又如何?4、 用5次多项式拟合方法寻找一个近似计算概率的公式;5、 考虑团体总人数对概率值的影响;计算机仿真(数值模拟)。实验过程记录(含:基本步骤、主要程序清单及异常情况记录等):1、 利用(2),用计算机分别计算出当团体人数取n=1,2,100时的概率值:P(1),P(2),P(100),并绘制图形。Matlab程序具体如下:for k=1:100p(k)=1-prod(365-k+1:365)/365k;endplot(p)并以shengriyi.m为文件名保存,然后在Matlab工作环境下输入如下指令: shengriyi结果所得图形如下:2、 特殊概率值的计算。由于前面已经计算了概率值P(k)(k=1,2,100),所以只需键入P(40),P(60),P(80)即可。如输入如下指令: p(40)ans =0.8912一个40个同学的学生班上,至少有两个同学生日相同的概率是P(40)=0.8912;同理可求出60个人的团体中,至少有两个人生日相同的概率是P(60)= 0.9941;在80个人的团体中,至少有两人生日相同的概率是P(80)=0. 0.9999。3、 参考上图,用五次多项式拟合方法寻找近似计算概率的公式。在Matlab环境下键入下列指令(该指令为求五次多项式拟合的多项式系数): n=1:100; c5=polyfit(n,p,5)c5 =-0.0000 0.0000 -0.0001 0.0023 -0.0046 -0.0020该多项式即为:在Matlab环境下继续键入下列指令: p5=polyval(c5,n); /用多项式近似计算100个概率值 plot(n,p,n,p5,.) /画出拟合多项式的图象与概率曲线作比较结果所得的图象如下所示:用五次多项式作近似计算P(30)、P(50)和P(70),指令和结果如下: p5(40)ans =0.8895 p5(60)ans = 0.9985 p5(80)ans =0.99434、在某团体中,要保证“至少有两人生日相同”的概率大于99%,可以利用第一个步骤以算出的100个概率值,键入如下指令: find(p0.99),可得结果为:ans = Columns 1 through 27 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 Columns 28 through 44 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100从结果可看出,该团体总人数若超过57人,则这个团体中至少有两人生日相同的概率将大于99%。5、 算机仿真(数值模拟)。随机产生30个正整数,介于1到365之间(用这30个数代表一个学生班的30个同学的生日),然后统计数据,观察是否有两人以上的人生日相同。当30人中有两人生日相同时,计算机输出为“1”,否则输出为“0”。如此重复观察100次,可得频率。下面是做计算机模拟的Matlab源程序: n=0;for m=1:100 y=0; x=1+fix(365*rand(1,30); for i=1:29 for j=i+1:30 if (x(i)=x(j),y=1; break,end end end n=n+y;endf=n/mshengrier.m为文件名保存在Matlab工作空间中,并在Matlab环境下键入j,回车,可输出结果:=0.6500实验结果报告与实验总结:通过本试验的学习,对一般较简单的Matlab语句有了更深得了解,对一些循环语句也有了一定的认识,但对于语句与语句之间在循环判断条件下如何进行连接,以及如何写出正确的语句还存在着一定的困难。然而从这个实验中也有了不少的收获,在Matlab环境下计算概率值,但当幂方很大的时候,就较难用乘幂直接求出,其已超出计算机的最大数,最终只能作近似计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论