中國古算書《周髀算經》(約公元前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;
}