中国古算书《周髀算经》(约公元前2世纪)的中有“径一而周三”的记载,意即取
(1)pi的计算方法扩展阅读:
圆周率是指平面上圆的周长与直径之比 (ratio of the circumference of a circle to the diameter) 。用符号π(读音:pài)表示。中国古代有圆率、周率、周等名称。(在一般计算时π=3.14)
圆周率的历史:
古希腊欧几里得《几何原本》(约公元前3世纪初)中提到圆周率是常数,中国古算书《周髀算经》( 约公元前2世纪)中有“径一而周三”的记载,也认为圆周率是常数。
历史上曾采用过圆周率的多种近似值,早期大都是通过实验而得到的结果,如古埃及纸草书(约公元前1700)中取π=(4/3)^4≈3.1604 。
第一个用科学方法寻求圆周率数值的人是阿基米德,他在《圆的度量》(公元前3世纪)中用圆内接和外切正多边形的周长确定圆周长的上下界,从正六边形开始,逐次加倍计算到正96边形,得到(3+(10/71))
把圆周率的数值算得这么精确,实际意义并不大。现代科技领域使用的圆周率值,有十几位已经足够了。如果以39位精度的圆周率值,来计算宇宙的大小,误差还不到一个原子的体积。
以前的人计算圆周率,是要探究圆周率是否循环小数。自从1761年兰伯特证明了圆周率是无理数,1882年林德曼证明了圆周率是超越数后,圆周率的神秘面纱就被揭开了。
π在许多数学领域都有非常重要的作用。
Ⅱ π是怎么算出来的
“兀”(3.1415)是由我国古代数学家祖冲之的割圆术求出来的。
我国古代数学家祖冲之,以圆的内接正多边形的周长来近似等于圆的周长,从而得出π的精确到小数点第七位的值。
π=圆周长/直径≈内接正多边形/直径。当正多边形的边长越多时,其周长就越接近于圆的周长。祖冲之算得的π值在绝大多数的实际应用中已经非常精确。
纵观π的计算方法,在历史上大概分为实验时期、几何法时期、解析法时期和电子计算机计算法几种。
实验时期:约产于公元前1900年至1600年的一块古巴比伦石匾上记载了圆周率 = 25/8 = 3.125,而埃及人似乎更早的知道圆周率,英国作家 John Taylor (1781–1864) 在其名着《金字塔》中指出,造于公元前2500年左右的胡夫金字塔和圆周率有关。例如,金字塔的周长和高度之比等于圆周率的两倍,正好等于圆的周长和半径之比。
几何法时期:古希腊大数学家阿基米德(公元前287–212 年)开创了人类历史上通过理论计算圆周率近似值的先河。他逐步对内接正多边形和外接正多边形的边数加倍,直到内接正96边形和外接正96边形为止。最后,他得出3.141851 为圆周率的近似值。
这种方法随后被2位中国古代数学家发扬光大。公元263年,中国数学家刘徽用“割圆术”,求出3072边形的面积,得到令自己满意的圆周率≈3.1416。
而南北朝时期的数学家祖冲之进一步求出圆内接正12288边形和正24576边形的面积,得到3.1415926<π<3.1415927的精确值,在之后的800年里祖冲之计算出的π值都是最准确的。
解析法时期:这是圆周率计算上的一次突破,是以手求π的解析表达式开始的。法国数学家韦达(1540-1603年)开创了一个用无穷级数去计算π值的崭新方向。无穷乘积式、无穷连分数、无穷级数等各种π值表达式纷纷出现,使得π值计算精度迅速增加。
1706年,英国数学家梅钦率先将π值突破百位。到1948年英国的弗格森(D. F. Ferguson)和美国的伦奇共同发表了π的808位小数值,成为人工计算圆周率值的最高纪录。
计算机时期:自从第一台电子计算机ENIAC在美国问世之后,立刻取代了繁杂的π值的人工计算,使π的精确度出现了突飞猛进的飞跃。1955年,一台快速计算机竟在33个小时内。把π算到10017位,首次突破万位。
技不断进步,电脑的运算速度也越来越快,在60年代至70年代,随着美、英、法的电脑科学家不断地进行电脑上的竞争,π的值也越来越精确。在1973年,Jean Guilloud和Martin Bouyer以电脑CDC 7600发现了π的第一百万个小数位。
2011年10月16日,日本长野县饭田市公司职员近藤茂利用家中电脑将圆周率计算到小数点后10万亿位,刷新了2010年8月由他自己创下的5万亿位吉尼斯世界纪录。56岁的近藤茂使用的是自己组装的计算机,从10月起开始计算,花费约一年时间刷新了纪录。
和其大写Π混用,后者是指连乘的意思。
把圆周率的数值算得这么精确,实际意义并不大。现代科技领域使用的圆周率值,有十几位已经足够了。如果以39位精度的圆周率值,来计算宇宙的大小,误差还不到一个原子的体积 。
以前的人计算圆周率,是要探究圆周率是否循环小数。自从1761年兰伯特证明了圆周率是无理数,1882年林德曼证明了圆周率是超越数后,圆周率的神秘面纱就被揭开了。
π在许多数学领域都有非常重要的作用。
π是个无理数,即不可表达成两个整数之比,是由瑞士科学家约翰·海因里希·兰伯特于1761年证明的。 1882年,林德曼(Ferdinand von Lindemann)更证明了π是超越数,即π不可能是任何整系数多项式的根。
圆周率的超越性否定了化圆为方这古老尺规作图问题的可能性,因所有尺规作图只能得出代数数,而超越数不是代数数。
Ⅲ PI算法是怎样计算出一个值
你的标题取的不好,我还以为是计算圆周率PI的呢
比例积分算法中P,I值的选取要根据系统的传递函数,通常根据经验取就行。控制值如公式中所示解法,e是偏差值即期望转速减去当前转速。如题中当前转速应该就是350,你说的预置转速不知道是不是就是期望转速,如果是的话,那么e就是500-350=150。
200分足矣,何谈RMB。如有疑问,可以hi我
Ⅳ 怎样计算个人收入PI
计算公式:
PI(个人收入)=NI(国民收入)-企业未分配利润-公司所得税-社会保险税费+转移支付
个人收入的构成实际上是国民收入减去一部分应当作为生产要素报酬支付给个人而没有支付的部分,再加上个人实际获得的不属于生产要素报酬的收入。
(4)pi的计算方法扩展阅读
生产要素报酬意义上的国民收入并不会全部成为个人的收入。从国民收入中减去公司未分配利润、公司所得税及社会保险税(费),加上政府给个人的转移支付,大体上就得到个人收入。
一个国家一年内个人年得到的全部收入。个人从各种途径所获得的收入的总和,包括工资、租金收入、股利股息及社会福利等所收取得来的收入。反映了该国个人的实际购买力水平,预示了未来消费者对于商品、服务等需求的变化。个人收入指标是预测个人的消费能力,未来消费者的购买动向及评估经济情况的好坏的一个有效指标。
Ⅳ 求计算 π 的公式
1 π =3.14
2 π =6.28
3 π =9.42
4 π =12.56
...........
圆周率的计算方法
古人计算圆周率,一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长。Archimedes用正96边形得到圆周率小数点后3位的精度;刘徽用正3072边形得到5位精度;Ludolph Van Ceulen用正262边形得到了35位精度。这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。下面挑选一些经典的常用公式加以介绍。除了这些经典公式外,还有很多其他公式和由这些经典公式衍生出来的公式,就不一一列举了。
Machin公式
这个公式由英国天文学教授John Machin于1706年发现。他利用这个公式计算到了100位的圆周率。Machin公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。
Machin.c 源程序
还有很多类似于Machin公式的反正切公式。在所有这些公式中,Machin公式似乎是最快的了。虽然如此,如果要计算更多的位数,比如几千万位,Machin公式就力不从心了。下面介绍的算法,在PC机上计算大约一天时间,就可以得到圆周率的过亿位的精度。这些算法用程序实现起来比较复杂。因为计算过程中涉及两个大数的乘除运算,要用FFT(Fast Fourier Transform)算法。FFT可以将两个大数的乘除运算时间由O(n2)缩短为O(nlog(n))。
关于FFT算法的具体实现和源程序,请参考Xavier Gourdon的主页
Ramanujan公式
1914年,印度数学家Srinivasa Ramanujan在他的论文里发表了一系列共14条圆周率的计算公式,这是其中之一。这个公式每计算一项可以得到8位的十进制精度。1985年Gosper用这个公式计算到了圆周率的17,500,000位。
1989年,David & Gregory Chudnovsky兄弟将Ramanujan公式改良成为:
这个公式被称为Chudnovsky公式,每计算一项可以得到15位的十进制精度。1994年Chudnovsky兄弟利用这个公式计算到了4,044,000,000位。Chudnovsky公式的另一个更方便于计算机编程的形式是:
AGM(Arithmetic-Geometric Mean)算法
Gauss-Legendre公式:
初值:
重复计算:
最后计算:
这个公式每迭代一次将得到双倍的十进制精度,比如要计算100万位,迭代20次就够了。1999年9月Takahashi和Kanada用这个算法计算到了圆周率的206,158,430,000位,创出新的世界纪录。
Borwein四次迭代式:
初值:
重复计算:
最后计算:
这个公式由Jonathan Borwein和Peter Borwein于1985年发表,它四次收敛于圆周率。
Bailey-Borwein-Plouffe算法
这个公式简称BBP公式,由David Bailey, Peter Borwein和Simon Plouffe于1995年共同发表。它打破了传统的圆周率的算法,可以计算圆周率的任意第n位,而不用计算前面的n-1位。这为圆周率的分布式计算提供了可行性。1997年,Fabrice Bellard找到了一个比BBP快40%的公式:
Ⅵ π是如何算出来的
好像是一个公式吧,π = 4 * ( 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + …… )
只要你机器够劲,一直算下去,得到的π值就会越来越精确。
不清楚这是不是根据割圆术得出的式子,但我的C++程序设计书上的确有这个公式,而且我也实验过,用那个公式写出的程序可以计算得很精确。
刚刚又试了一次,我的迅驰1.3G算到3.14159265只用了2秒,那些超级计算机算到2万位应该不是什么难事。
Ⅶ π的计算方法
圆周率π可用圆内接正多边形边数趋于无穷来计算逼近,这里初始多边形采用正三边形 (正三角形);也可以用π的级数来计算。
Ⅷ 如何计算PI的精确值
作单位圆,再作其内接正N边形(N为2的正整数次方)
先计算其内接正N边形周长,可用公式C=N*2R*sin(180/N)计算,其中R为单位圆半径1。
sin(180/N)可以连用N次半角公式计算(因为N为2的正整数次方)
最后用C/2便可得出圆周率的近似值(因为N可以无限大的取值,所以我们可以无限接近圆周率)
Ⅸ π是怎么算出来的请问各位大师
“π”(3.1415)是由我国古代数学家祖冲之的割圆术求出来的。
我国古代数学家祖冲之,以圆的内接正多边形的周长来近似等于圆的周长,从而得出π的精确到小数点第七位的值。
π=圆周长/直径≈内接正多边形/直径。当正多边形的边长越多时,其周长就越接近于圆的周长。祖冲之算得的π值在绝大多数的实际应用中已经非常精确。
π是个无理数,即不可表达成两个整数之比,是由瑞士科学家约翰·海因里希·兰伯特于1761年证明的。 1882年,林德曼(Ferdinand von Lindemann)更证明了π是超越数,即π不可能是任何整系数多项式的根。
圆周率的超越性否定了化圆为方这古老尺规作图问题的可能性,因所有尺规作图只能得出代数数,而超越数不是代数数。
65年,英国数学家约翰·沃利斯(John Wallis)出版了一本数学专着,其中他推导出一个公式,发现圆周率等于无穷个分数相乘的积。2015年,罗切斯特大学的科学家们在氢原子能级的量子力学计算中发现了圆周率相同的公式。
Ⅹ 选用三种数值积分方法计算圆周率pi 。
用4了四种方法,另外还加了个龙格贝。。
大人大量给分吧~
#include <iostream>
using namespace std;
double getPI0(int h){
double l = 1.0/h;
int i,j;
double s = 0;
for(i = 0; i < h; i++){
s += l*(4/(1+((2*i+1)*l/2)*((2*i+1)*l/2)));
}
return s;
}
double getPI1(double h){
double l = 1.0/h;
int i,j;
double s = 0;
for(i = 0; i < h; i++){
s += l*(4/((1+i*l*i*l)))/2+l*4/(1+((i+1)*l*(i+1)*l))/2;
}
return s;
}
double getPI2(double h){
double l = 1.0/h;
int i,j;
double a,b;
double s = 0;
for(i = 0; i < h; i++){
a = i*l;
b = i*l+l;
double fa = 4/(1+a*a);
double fb = 4/(1+b*b);
double fab = 4/(1+(a+b)*(a+b)/4);
s += l*(fa+4*fab+fb)/6;
}
return s;
}
double fj(double a,int j){
int i;
double r = 1;
for(i = 0; i < j; i++){
r *= a;
}
return r;
}
double longBeiGe(double r){//r为给定的误差限
double * tm;
double * t;
tm = new double[1];
t = new double [2];
tm[0] = getPI1(1);
t[0] = getPI1(2);
t[1] = (4*t[0]-tm[0])/3;
int i = 1,j = 0;
while(t[i]-tm[i-1]>r){
tm = t;i++;
t = new double [i+1];
t[0] = getPI1(fj(2,i+1));
for(j = 1; j <= i; j++){
t[j] = (fj(4,j)*t[j-1]-tm[j-1])/(fj(4,j)-1);
}
}
return t[i];
}
int main(){
cout<<"用这三个方法做多少次运算?"<<endl;
int n;
cin>>n;
for(int i = 0; i < n; i++){
cout<<"第"<<(i+1)<<"次"<<endl;
cout<<" 用中点法:PI="<<getPI0(i+1);
cout<<" 用梯形法:PI="<<getPI1(i+1);
cout<<" 用辛普森法:PI="<<getPI2(i+1)<<endl;
}
cout<<"使用龙贝格积分"<<endl;
cout<<"要计算到多少精度?如0.0001"<<endl;
cin>>n;
cout<<"PI = "<<longBeiGe(n)<<endl;
return 0;
}