- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
祖冲之和圆周率的计算.doc
祖冲之和圆周率的计算
任务
通过对“圆周率”级数求法的一种算法的介绍,掌握运用“累加器”算法求解级数问题的一般方法。
所谓“圆周率”是指一个圆的周长与其直径的比值。古今中外,许多人致力于圆周率的研究与计算。为了计算出圆周率的越来越好的近似值,一代代的数学家为这个神秘的数贡献了无数的时间与心血。
一、计算圆周率的各种方法
早在我国的三国时代,数学家刘徽就用“割圆术”求出了比较精确的圆周率。他发现:当圆内接正多边形的边数不断增加后,多边形的周长会越来越逼近圆周长,而多边形的面积也会越来越逼近圆面积。于是,刘徽利用正多边形面积和圆面积之间的关系,从正六边形开始,逐步把边数加倍:正十二边形、正二十四边形,正四十八边形……,一直到正三○七二边形,算出圆周率等于三点一四一六,将圆周率的精度提高到小数点后第四位。
祖冲之(公元429-500年),是中国南北朝时期著名的数学家、天文学家。他在刘徽研究的基础上,进一步地发展,经过既漫长又烦琐的计算,一直算到圆内接正二四五七六边形,而得到一个结论:圆周率的值介于三点一四一五九二六和三点一四一五九二七之间,成为世界上最早把圆周率推算出七位数字的科学家,直到一千年以后,才有西方的数学家达到和超过祖冲之的成就。同时,他还找到了圆周率的约率:22∕7、密率:355∕113。
以前人们计算圆周率,是要探究圆周率是否循环小数。自从1761年Lambert证明了圆周率是无理数,1882年Lindemann证明了圆周率是超越数后,圆周率的神秘面纱就被揭开了。现在人们计算圆周率,多是为了验证计算机的计算能力。
古人计算圆周率,一般是用割圆法。但这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。我们选取其中的一个公式,用VB编程来实现这个公式。
英国天文学教授John Machin于1706年发现了一个计算圆周率的公式,称为Machin公式,他利用这个公式计算到了100位的圆周率。
还有很多类似于Machin公式的反正切公式。
以下即为Machin公式:
活动建议
你能直接画出这个算法的流程图吗?
分析其中的arctgx公式可以知道,这是一个级数公式,而在程序设计中则可以用一个“累加器”算法来实现。
用流程图来表现,则在流程图中,必定有判别框,并根据判别条件成立与否分别设置了重复部分操作内容的分支流程。
二、算法的程序实现
为了实现这个算法,则需要编制相应的程序,在程序中除了需要用到赋值语句、输入输出语句、其它计算语句外,还必须用到循环语句。
范例:我使用VB来编写程序实现这个算法。
算法中用到了一条输入语句、两个循环语句、一个输出语句以及多个赋值语句。
(1)建立窗体和输入、输出、命令按钮组件对象。
(2)编写“Command1”触发的程序代码。
在“Private Sub command1_click()”和“End Sub”之间输入以下的程序代码。
Dim i As Integer, n As Integer, pi As Double, arc1 As Double, arc2 As Double, x As Single
i = Text1.Text
x = 1 / 5
arc1 = 0
For n = 1 To I
arc1 = arc1 + (-1) ^ (n - 1) * x ^ (2 * n - 1) / (2 * n - 1)
Next
x = 1 / 239
arc2 = 0
For n = 1 To I
arc2 = arc2 + (-1) ^ (n - 1) * x ^ (2 * n - 1) / (2 * n - 1)
Next
pi = 16 * arc1 - 4 * arc2
Label1.Caption = pi
第一行,定义了两个整数类型的数值变量I和n,一个单精度浮点数变量x,以及三个双精度浮点数变量pi、arc1和arc2。其中pi用于表示圆周率的值。
第二行,将text1文本框中的数据转换为整型数值并赋值给整型变量i.。
第三行,将x赋值为“1/5”。
第四行,将arc1赋值为“0”。因为arc1是一个乘加器,所以其初值应该是0。
活动建议
想一想:能否根据VB源程序,画出相对应的实现machin公式流程图呢?
第五行,表示开始一个循环,循环变量n从1开始,步长为1,依次取值到I,一共循环I次。
第六行,arc1 = arc1 + (-1) ^ (n - 1) * x ^ (2 * n - 1) / (2 * n - 1),
这是一个累加器的算法,它将变量arc1的原值加上表达式的值,然后将加法运算的结果重新赋值给变量arc1作为arc1的新值。
Machin公式中的级数代数式,转换成表达式则为:
(
文档评论(0)