圆周率近似计算matlab,matlab 圆周率的近似计算 实验报告.doc
開放性數(shù)學(xué)實(shí)驗(yàn)報(bào)告
(2016 / 2017學(xué)年 第 2學(xué)期)
題 目:基于MATLAB的圓周率近似計(jì)算
專 業(yè) 通信工程
學(xué)生姓名 楊 坤 馮著豪 周李鑫
班級學(xué)號 B16011115 B16011110 B16011124
指導(dǎo)教師 趙禮峰
指導(dǎo)單位 南京郵電大學(xué)理學(xué)院
日 期 2017/5/20
MATLAB圓周率的近似計(jì)算
B16011115 楊 坤 B16011110 馮著豪 B16011124周李鑫
摘要:圓周率(Pi)是圓的周長與直徑的比值,一般用希臘字母π表示,是一個在數(shù)學(xué)及物理學(xué)中普遍存在的數(shù)學(xué)常數(shù)。π也等于圓形之面積與半徑平方之比。是精確計(jì)算圓周長、圓面積、球體積等幾何形狀的關(guān)鍵值。 在分析學(xué)里,π可以嚴(yán)格地定義為滿足sin x = 0的最小正實(shí)數(shù)x。
計(jì)算圓周率一直是很多人的追求。在電子計(jì)算機(jī)還沒有發(fā)明的時候就有很多先賢用各種方法計(jì)算了圓周率的近似值最著名的應(yīng)該是祖沖之,他計(jì)算出了圓周率的位數(shù)達(dá)到了小數(shù)點(diǎn)后七位。該記錄在世界范圍內(nèi)保持了八百年。
之后圓周率的計(jì)算進(jìn)入了分析法時期,這一時期人們開始利用無窮級數(shù)或無窮連乘積求π,擺脫可割圓術(shù)的繁復(fù)計(jì)算。無窮乘積式、無窮連分?jǐn)?shù)、無窮級數(shù)等各種π值表達(dá)式紛紛出現(xiàn),使得π值計(jì)算精度迅速增加。
在分析法的基礎(chǔ)上,電子計(jì)算機(jī)的出現(xiàn)使得圓周率的計(jì)算精度大幅提高。計(jì)算圓周率已經(jīng)成為評判超級計(jì)算機(jī)的性能指標(biāo)的項(xiàng)目之一。
如今個人計(jì)算機(jī)的性能也達(dá)到了一個極高的程度。學(xué)習(xí)使用計(jì)算機(jī)計(jì)算圓周率可以幫助我們更好地學(xué)習(xí)matlab同時對數(shù)學(xué)也會有更深的理解。
關(guān)鍵詞:圓周率計(jì)算;投點(diǎn)法;定積分計(jì)分法;冪級數(shù);韋達(dá)公式
一、 問題分析
計(jì)算圓周率有很多方法,不同方法之間自然也有好壞之分。在強(qiáng)大的計(jì)算機(jī)性能的支持下,我們能使用不同的方法計(jì)算圓周率并且感受不同方法孰優(yōu)孰劣。首先我們需要了解不同的計(jì)算方法是怎么計(jì)算圓周率的,然后使用matlab編寫代碼幫助我們實(shí)現(xiàn)算法,計(jì)算出圓周率。
二、 實(shí)驗(yàn)方法
1. 投點(diǎn)法:
投點(diǎn)法,顧名思義就是通過投點(diǎn)計(jì)算圓周率。在一個邊長為1的正方形里以1為半徑畫一個四分之一圓,再向正方形里投點(diǎn),在概率的學(xué)習(xí)中我們知道,大量地向這個正方形中投點(diǎn)時,在投的點(diǎn)足夠多的前提下,落在四分之一扇形里的點(diǎn)與投的所有點(diǎn)的個數(shù)之比應(yīng)該為扇形與整個正方形的面積之比。扇形的面積為四分之一圓,即1/4*pi,正方形的面積為1.設(shè)投n個點(diǎn),落在扇形里的點(diǎn)的個數(shù)為count即可推出pi=4*(count/n)。
代碼如下:
count=0;
ezplot('x^2+y^2=1',[0,1,0,1]),hold on ,grid on
n=10000;
for i=1:1:n
x=rand(1,1);
y=rand(1,1);
plot(x,y,'*'),hold on
pause(0.001)
if x^2+y^2<=1
count=count+1;
end
end
p=4*(count/n)
投200個點(diǎn)時多次運(yùn)行分別獲得以下結(jié)果:
3.3600 3.0600 3.1800 3.1400 3.1800
可見這時所得的結(jié)果并不穩(wěn)定,且結(jié)果并不精確于是繼續(xù)實(shí)驗(yàn)投一千個點(diǎn)。
多次實(shí)驗(yàn)后得出以下結(jié)果
3.1040 3.1120 3.2200 3.1520 3.0560 3.1280
此時的精確度仍然不盡人意,于是我們直接投了一萬個點(diǎn)
此時得到了以下結(jié)果
3.1376 3.1355 3.1413 3.1415 3.1490 3.1457
此時基本達(dá)到了兩位小數(shù)的精確度
于是我們更改投點(diǎn)個數(shù)得到以下結(jié)果
投100000個點(diǎn)時:3.1415 3.1414 3.1414 3.1413
當(dāng)我們準(zhǔn)備投更多點(diǎn)時發(fā)現(xiàn)投點(diǎn)法消耗太多計(jì)算機(jī)資源,已經(jīng)無法投太多的點(diǎn)了。投點(diǎn)法計(jì)算圓周率利用了計(jì)算機(jī)的高性能,但是性能的使用效率并不太高。
2. 定積分積分法
0111+x2dx=π4 π=40111+x2dx
將區(qū)間[0,1]分成n等份,在每個小區(qū)間上,選中點(diǎn)為ξi,使用積分的方法計(jì)算π的近似值。
代碼如下:
n=50;%等分積分區(qū)間數(shù)。
i=0:1/n:1;
s=0;
for k=1:length(i)-1
s=s+(1/(1+((i(k)+i(k+1))/2)^2))*1/n;
end
vpa(4*s,20)
設(shè)置不同的區(qū)間數(shù),獲得不同的近似值,對應(yīng)關(guān)系如下:
區(qū)間數(shù)
50
100
200
300
400
500
600
近似值
3.1416
3.1416
3.1415947
3.14159357
3.14159317
3.14159298
3.14159288
相比于投點(diǎn)法,該方法以較高的效率使用了計(jì)算機(jī)資源達(dá)到了更高的精度,當(dāng)n=100,000,000時,精度達(dá)到了小數(shù)點(diǎn)后十二位。
3. 冪級數(shù)
冪級數(shù)的方法有很多,我們學(xué)習(xí)了使用arctan(x)的Maclaurin展開式計(jì)算π的近似值,π=4arctan1=4(1-13+15-…+-1n+12n-1+…
代碼如下
n=10; %展開次數(shù)
s=0;
digits(50) %計(jì)算精度
for k=1:n
s=s+4*(-1)^(k+1)/(2*k-1);
end
vpa(s,20)
改變n的值,計(jì)算不同情況下得出的圓周率近似值
n
10
100
1000
10000
100000
近似值
3.0418
3.131592
3.14059
3.1414926535
3.1415826535897
該計(jì)算方法能比較準(zhǔn)確地得出較高精度的圓周率的近似值
4. 韋達(dá)公式
根據(jù)韋達(dá)在1593年給出的公式 2π=22*2+22*…
代碼如下:
a=sqrt(2);
s=1;
n=100
for i=1:n
s=(s*a)/2;
a1=sqrt(2+a);
a=a1;
end
vpa(2/s,20)
使用該算法計(jì)算圓周率的近似值時,n與所得的近似值如下:
n
10
100
1000
Pi
3.1415914
3.14159265358979385
3.1415926535897932385
事實(shí)上,當(dāng)n為100時所算出的圓周率精度已經(jīng)超過了小數(shù)點(diǎn)后100位,可見其計(jì)算精度之高,效率之快。一下列出n=100時所得結(jié)果精確到100位的輸出值:
3.1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 5923078164 0628620899 8628034825 342117068
三、實(shí)驗(yàn)感想
圓周率的近似計(jì)算一直是一種挑戰(zhàn),經(jīng)過這次研究,我們更加深刻地體會到了數(shù)學(xué)的魅力,同時也對matlab更加熟悉。在不斷的學(xué)習(xí)中,我們成長了很多。
參考文獻(xiàn):
【1】 楊振華,酈志新《數(shù)學(xué)實(shí)驗(yàn)》北京:科學(xué)技術(shù)出版社,2010.2
【2】 趙洪牛《高等數(shù)學(xué)》北京:高等教育出版社
【3】 百度百科:圓周率
6 / 6
展開閱讀全文
總結(jié)
以上是生活随笔為你收集整理的圆周率近似计算matlab,matlab 圆周率的近似计算 实验报告.doc的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORACLE 11g 通过ASH结合A
- 下一篇: 华山论剑之iOS中(数组,字典,SQLi