第24课-计算圆周率π的近似值.ppt

上传人:wj 文档编号:9908520 上传时间:2023-05-21 格式:PPT 页数:28 大小:349.50KB
下载 相关 举报
第24课-计算圆周率π的近似值.ppt_第1页
第1页 / 共28页
第24课-计算圆周率π的近似值.ppt_第2页
第2页 / 共28页
第24课-计算圆周率π的近似值.ppt_第3页
第3页 / 共28页
第24课-计算圆周率π的近似值.ppt_第4页
第4页 / 共28页
第24课-计算圆周率π的近似值.ppt_第5页
第5页 / 共28页
第24课-计算圆周率π的近似值.ppt_第6页
第6页 / 共28页
第24课-计算圆周率π的近似值.ppt_第7页
第7页 / 共28页
第24课-计算圆周率π的近似值.ppt_第8页
第8页 / 共28页
第24课-计算圆周率π的近似值.ppt_第9页
第9页 / 共28页
第24课-计算圆周率π的近似值.ppt_第10页
第10页 / 共28页
第24课-计算圆周率π的近似值.ppt_第11页
第11页 / 共28页
第24课-计算圆周率π的近似值.ppt_第12页
第12页 / 共28页
第24课-计算圆周率π的近似值.ppt_第13页
第13页 / 共28页
第24课-计算圆周率π的近似值.ppt_第14页
第14页 / 共28页
第24课-计算圆周率π的近似值.ppt_第15页
第15页 / 共28页
第24课-计算圆周率π的近似值.ppt_第16页
第16页 / 共28页
第24课-计算圆周率π的近似值.ppt_第17页
第17页 / 共28页
第24课-计算圆周率π的近似值.ppt_第18页
第18页 / 共28页
第24课-计算圆周率π的近似值.ppt_第19页
第19页 / 共28页
第24课-计算圆周率π的近似值.ppt_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第24课-计算圆周率π的近似值.ppt

《第24课-计算圆周率π的近似值.ppt》由会员分享,可在线阅读,更多相关《第24课-计算圆周率π的近似值.ppt(28页珍藏版)》请在冰点文库上搜索。

第24课-计算圆周率π的近似值.ppt

第24课计算圆周率的近似值,1.用迭代法求的近似值。

2.用蒙特卡洛法求的值。

3.设计一个算法计算1900年1月1日之后的任何一天是星期几?

用VB程序实现这一算法。

复习引入,解析算法基本思想:

用解析的方法找出表示问题的前提条件与所求结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。

在设计解析算法时,必须注意保证计算过程描述的正确性。

问题提出,圆周率=3.1415926有无穷多位,历史上有很多科学家计算过这个数,古希腊学者阿基米德、我国杰出的数学家和天文学家祖冲之等,都提出许多求解的方法。

公元前3世纪,古希腊学者阿基米德用圆内接或外切正多边形来近似代替圆,得到近似圆周率。

到了公元5世纪,我国杰出的数学家和天文学家祖冲之在刘徽“割圆术”的基础上,使用更加精密的方法,精确到小数点后七位,求出结果在3.14159263.1415927间,这个的圆周率,在当时是非常了不起的成就。

直到16世纪,才由中亚人计算出精确度为小数16位。

随着计算机的出现,的计算取得了新的突破。

利用计算机技术将值计算到小数点后20多亿位,甚至到上千亿位。

古今中外的数学家们计算的近似值主要有三类方法:

1.利用“正多边形逼近”的方法。

2.使用迭代法。

可利用下列式子计算。

3.使用蒙特卡洛法(Monte-Carlomethod)。

蒙特卡洛法是使用随机模拟实验结果进行统计来求得的近似值的方法。

实践活动,用级数公式,计算圆周率的近似值。

1.算法分析按照级数公式,由若干项求和得到,第1项为,第2项为,第3项为,第4项为分析可得第n项为an与前一项an-1的关系是。

2.算法流程图:

变量n:

输入计算的项数变量pi:

计算的结果变量an:

第n项的值,3.程序界面设计:

控件属性值的设置参考如下表:

4.分析算法流程,编写代码,PrivateSubCommand1_Click()DimPiAsDouble,anAsDoubleDimm,nAsIntegern=Val(Text1.Text)Pi=1an=1Form=2Tonan=an*(m-1)/(2*m-1)计算第n项的值Pi=Pi+an进行累加NextText2.Text=Str(Pi*2)EndSub,5.运行调试程序;,课堂练习,1.使用蒙特卡洛法求的近似值。

利用求单位正方形与内接圆面积的比例关系来求得的近似值。

单位圆的1/4面积是一个扇形,它是边长为1单位正方形的一部分。

如果能求出扇形面积s1在正方形面积s中占的比例k=s1/s,它的值也等于/4,从而就计算得到的值。

怎样求出扇形面积在正方形面积中占的比例k呢?

蒙特卡洛法是在正方形中随机投入很多点,使所投的点落在正方形中每一个位置的机会相等。

有些点将落在扇形内,而另一些点将会落在扇形外,落在扇形内的点数m与所投点的总数n之间比m/n即为k的近似值。

蒙特卡洛(MonteCarlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。

这一方法源于美国在第二次世界大战时研制原子弹的“曼哈顿计划”。

该计划的主持人之一、数学家冯诺伊曼用驰名世界的赌城摩纳哥的MonteCarlo来命名这种方法,为它蒙上了一层神秘色彩。

使用随机函数Rnd随机产生两个小数x、y,可构成一个坐标点(x,y),判断是否落在扇形内的充要条件是x2+y2=1,总计投放n次,根据条件判断统计得到落在扇形内的次数m,再根据两者的比例m/n,求得=4*m/n的近似值。

1)参考程序代码:

PrivateSubCommand1_Click()DimPiAsDouble,xAsDouble,yAsDoubleDimmAsLong,nAsLongRandomizeTimer随机数初始化n=Val(Text1.Text)读入投放次数nIfn=0ThenMsgBox请输入投放次数nExitSubEndIfm=0ForI=1Tonx=Rnd()y=Rnd()Ifx2+y2=1Thenm=m+1判断是否在扇形内NextIPi=4*m/n计算出的近似值Text2.Text=Str(Pi)EndSub,1.用迭代法求的近似值。

算法流程图程序代码设计示例程序,2.用蒙特卡洛法求的近似值。

算法流程图程序代码设计示例程序,3.设计一个算法计算1900年1月1日之后的任何一天是星期几?

用VB程序实现这一算法。

算法流程图界面设计程序代码示例程序,星期计算问题,平时在日常生活中遇到这样的问题,忘记了几月几日是星期几,一般会采用这样的方法,从一个已知的某天开始推算,先计算已知星期几的这一天距要推算的那天共相差几天,然后将天数除以7取余数,最后就可以推算出星期几了。

已知公元元年1月1日是星期一,再计算需推算的日子离元年1月1日相距多少天(W),再用天数W除以7的余数加上1就是星期几了,余0就是星期一,余1就是星期二.,但是在计算天数时会发现由于中间会经历平年(365天)、闰年(366天),每年的不同月份天数也不相同,这样计算量是很大的,计算也十分困难。

德国数学家克里斯蒂安蔡勒(ChristianZeller,1822-1899)在1886年推导出了一个解决此问题的著名的蔡勒公式,w=c/4-2*c+y+y/4+13*(m+1)/5+d-1其中,c是年份的前2位,y是年份的后两位,m是月份,d是日数。

1月和2月要按上一年的13月和14月来算,这时c和y均按上一年取值,表示取整。

如:

推算2009年1月1日是星期几?

C=20,y=08(月按上一年13月来算,同时y取上一年的年份),M=13(月按上一年13月来算),d=1,w=20/4-2*20+8+8/4+13*(13+1)/5+1-1=11,除以7的余数为4,所以推算是星期四,与事实一致。

为方便口算,上式中的13*(M+1)/5也往往写成26*(M+1)/10。

算法流程框图下图所示:

参考程序界面如下:

星期几计算问题界面,程序需要使用到四个文本框,其中三个分别用于输入年、月、日,另一个用于输出计算结果,一个命令按钮,当按下按钮时开始计算,五个标签,分别说明文本框的作用。

各控件属性设置参考如下:

参考程序代码如下:

PublicFunctionleap(yAsInteger)AsInteger判断是否为闰年函数IfyMod100=0Then是返回1,不是返回0IfyMod400=0Thenleap=1Elseleap=0函数说明见书4.4.2节ElseIfyMod4=0Thenleap=1Elseleap=0EndIfEndFunction,PrivateSubCommand1_Click()Dimyearasinteger,month,day,w,c,y,m,d,okAsIntegeryear=Val(Text1.Text)month=Val(Text2.Text)day=Val(Text3.Text)ok=0判断输入的日期是否是有效的日期,根据平年、闰年,不同月份的不同情况来判断If(month=1Ormonth=3Ormonth=5Ormonth=7Ormonth=8Ormonth=10Ormonth=12)And(day=1Andday=1Orday=1Andday=1Andday=28)Thenok=1Ifok=0ThenText4.Text=输入日期有错误,ElseIfmonth=1Ormonth=2Thenyear=year-1month=month+12EndIfc=year100y=yearMod100m=monthd=dayw=Int(c/4)-2*c+y+Int(y/4)+Int(13*(m+1)/5)+d1蔡勒公式Text4.Text=Str(c)+Str(y)+Str(m)+Str(d)+Str(w)w=(w+700)Mod7+1求除以7的余数,w加上700保证余数一定是整数Text4.Text=WeekdayName(w)转换为星期形式EndIfEndSub,PrivateSubText1_Click()Text1.Text=Text2.Text=Text3.Text=“利用WeekdayName函数可将值转换成星期形式:

程序运行结果参考如下:

星期计算问题测试数据表,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2