关键词不能为空

当前您在: 主页 > 高中公式大全 >

三角函数和差化积公式推导圆周率π的计算方法

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2020-10-10 08:30
tags:bbp公式

赞美老师的句子-财政作用

2020年10月10日发(作者:李翰祥)
圆周率π的计算方法
圆周率的计算方法
古人计算圆周率,一般是用割圆法。即用圆 的内接或外切正多边
形来逼近圆的周长。Archimedes用正96边形得到圆周率小数点后3位的精度;刘徽用正3072边形得到5位精度;Ludolph Van Ceulen
用正26 2边形得到了35位精度。这种基于几何的算法计算量大,速
度慢,吃力不讨好。随着数学的发展,数学 家们在进行数学研究时有
意无意地发现了许多计算圆周率的公式。
1、 Machin公式


这个公式由英国天文学教授John Machin于1706年发现。他利用这个公式计算到了100位的圆周率。Machin公式每计算一项可以
得到1.4位的十进制精 度。因为它的计算过程中被乘数和被除数都不
大于长整数,所以可以很容易地在计算机上编程实现。
用马青公式计算Pi至小数点后100位程序

program Pi_Value;
{$$APPTYPE CONSOLE}
将Pi计算精确小数点后100位
Machin公式
1
Pi=16arctan(15)-4arctan(1239)
uses
SysUtils;
const
N=100;
S=2*N+50;
aNum=5;
bNum=239;
type
Num=array [1..S] of byte;
初始化数组
procedure AZero(var arr:Num);
var
i:smallint;
begin
for i:=1 to S do
arr:=0;
end;
除法
procedure Division(var arr:Num;const b:smallint);
var
c,y,i:smallint;
begin
c:=0;
for i:=1 to S do
begin
y:=arr+c*10;
c:=y mod b;
arr:=y div b;
end;
end;
加法
procedure Addition(var arr:Num;const b:Num);
var
i,y,c:smallint;
begin
c:=0;
for i:=S downto 1 do
2
begin
y:=arr+b+c;
if y>=10 then
begin
c:=1;
arr:=y-10;
end
else
begin
c:=0;
arr:=y;
end;
end;
end;
减法
procedure Minus(var arr:Num;const b:Num);
var
i,y,c:smallint;
begin
c:=0;
for i:=S downto 1 do
begin
y:=arr-b-c;
if y<0 then
begin
c:=1;
arr:=10+y;
end
else
begin
c:=0;
arr:=y;
end;
end;
end;
var
tag:boolean;
a,b,Ra,Rb,t:Num;
3
i,j:smallint;
begin
AZero(t);
Ra:=t;Rb:=t;
tag:=true;
writeln('计算中,请等待......');
for i:=1 to N do
begin
a:=t;b:=t;
a[1]:=16;b[1]:=4;
for j:=1 to i*2-1 do
begin
Division(a,aNum);
DiVision(b,bNum);
end;
Division(a,i*2-1);
Division(b,i*2-1);
if tag then
begin
tag:=false;
Addition(Ra,a);
Addition(Rb,b);
end
else
begin
tag:=true;
Minus(Ra,a);
Minus(Rb,b);
end;
end;
Minus(Ra,Rb);
writeln('计算结果如下:');
writeln(Ra[1],'.');
for i:=2 to N+1 do
write(Ra);
readln;
End.
4

还有很多类似于Machin公式的反正切公式。在所有这些公式中,
Machin 公式似乎是最快的了。虽然如此,如果要计算更多的位数,
比如几千万位,Machin公式就力不从心 了。下面介绍的算法,在PC
机上计算大约一天时间,就可以得到圆周率的过亿位的精度。这些算
法用程序实现起来比较复杂。因为计算过程中涉及两个大数的乘除运
算,要用FFT(Fast Fourier Transform)算法。FFT可以将两个大数
的乘除运算时间由O(n2)缩短 为O(nlog(n))。
2、 Ramanujan公式

1914年,印度数学家Srinivasa Ramanujan在他的论文里发表了
一系列 共14条圆周率的计算公式,这是其中之一。这个公式每计算
一项可以得到8位的十进制精度。1985 年Gosper用这个公式计算到
了圆周率的17,500,000位。
1989年,David & Gregory Chudnovsky兄弟将Ramanujan公式
改良成为:

5
这 个公式被称为Chudnovsky公式,每计算一项可以得到15位的
十进制精度。1994年Chu dnovsky兄弟利用这个公式计算到了
4,044,000,000位。Chudnovsky公式 的另一个更方便于计算机编程的
形式是:

3、AGM(Arithmetic- Geometric Mean)算法
Gauss-Legendre公式:
初值:
重复计算:


最后计算:
这个公式每迭代一次将 得到双倍的十进制精度,比如要计算100
万位,迭代20次就够了。1999年9月Takahash i和Kanada用这个
算法计算到了圆周率的206,158,430,000位,创出新的世界纪录 。
4、Borwein四次迭代式:
6
初值:
重复计算:

最后计算:
这个公式由Jonathan Borwein和Peter Borwein于1985年发表,
它四次收敛于圆周率。
5、 Bailey- Borwein-Plouffe算法


这个公式简称BBP公式,由David Bailey, Peter Borwein和Simon
Plouffe于1995年共同发表。它打破了传统的圆周率的算法,可以
计算圆周率的任意 第n位,而不用计算前面的n-1位。这为圆周率的
分布式计算提供了可行性。1997年,Fabri ce Bellard找到了一个比
BBP快40%的公式:
参考百度文库、人民网- 数学故事欣赏
7

8

感谢师恩-函数值域的求法


考研数学一二三哪个难-待遇要求


万圣节的服装-青岛港湾职业技术学院


韩国留学回来就业前景-衡阳师范大学


口腔工艺-50106


导数运算法则-一个小时


初中毕业技校-亚洲与非洲的分界线


电势能和电势的关系-relaxed



本文更新与2020-10-10 08:30,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/413174.html

圆周率π的计算方法的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文