计算pi
数学π公式

数学π公式数学π公式引言•数学中最重要且著名的数之一就是π(pi)。
•π是一个无理数,其近似值约为。
•在数学中,π经常出现在各种公式中,并具有广泛的应用。
π的定义•π被定义为圆的周长与其直径的比值。
•π可以用无限小数的形式表示:……•无论是在几何学、三角学还是其他数学领域,π都起着重要的作用。
π的公式以下是一些常见的π公式:1. π的级数公式π=4∑(−1)n 2n+1∞n=0•这个级数公式是由莱布尼茨(Leibniz)独立发现的。
2. π的无穷乘积公式π2=∏2n2n−1∞n=1⋅2n2n+1•这个公式是由瓦拉赫(Wallis)于1655年提出的。
3. π的积分公式π4=∫11+x21dx•这个积分公式是由莱布尼茨于17世纪提出的。
π的应用•π广泛应用于数学、物理学、工程学等多个领域。
•在几何学中,π经常出现在圆的面积和周长的计算中。
•在三角学中,π用于计算正弦、余弦和正切等函数。
•在物理学中,π在计算圆和球体的性质时发挥着重要的作用。
•在工程学中,π被用于计算各种弧线和电路的特性等。
结论•π作为一个重要的数学常数,在数学中具有广泛的应用。
•π的公式及其应用在数学领域中非常重要。
•通过研究π的特性,人们可以深入了解更多关于数学和自然的奥秘。
以上就是关于数学中π公式的简要介绍。
π虽然只是一个数,却包含了无限的信息和应用价值。
希望通过本文的介绍,读者对π的重要性有所认识,能够进一步探索π在数学世界中的更多奇妙之处。
π的近似值•虽然π是一个无理数,无法用有限的小数表示,但可以使用近似值来代表。
•最常用的π的近似值是,常用于数学和科学计算中。
•为了更高精度的计算,还可以使用更长的近似值:9。
π的计算方法•对于一些简单的情况,可以使用几何方法来计算π的近似值。
•例如,可以通过测量圆的周长和直径,然后计算其比值来估算π的值。
•还可以使用蒙特卡洛方法来计算π的近似值,通过随机模拟圆的面积和正方形的面积之间的比值来逼近π。
计算圆周率 Pi (π)值, 精确到小数点后 10000 位

计算圆周率Pi (π)值, 精确到小数点后10000 位只需要30 多句代码!(浏览77154 次)Victor Chen, (C++ 爱好者)大家都知道π=3.1415926……无穷多位, 历史上很多人都在计算这个数, 一直认为是一个非常复杂的问题。
现在有了电脑, 这个问题就简单了。
电脑可以利用级数计算出很多高精度的值, 有关级数的问题请参考《高等数学》,以下是比较有名的有关π的级数:其中有些计算起来很复杂, 我们可以选用第三个, 比较简单, 并且收敛的非常快。
因为计算π值, 而这个公式是计算π/2的, 我们把它变形:π = 2 + 2/3 + 2/3*2/5 + 2/3*2/5*3/7 + ...对于级数, 我们先做个简单测试, 暂时不要求精度:用C++ Builder 新建一个工程, 在Form 上放一个Memo1 和一个Button1, 在Button1 的OnClick 事件写:按Button1在Memo1显示出执行结果:Pi=3.1415926535898这个程序太简单了, 而且double 的精度很低, 只能计算到小数点后10 几位。
把上面的程序改造一下, 让它精确到小数点后面1000 位再测试一下:在Form 上再放一个按钮Button2, 在这个按钮的OnClick 事件写:按Button2 执行结果:Pi=03. 14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534 21170679 82148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954 93038196 44288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602 49141273 72458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194 15116094 33057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183 01194912 98336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676 69405132 00056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968 92589235 42019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816 09631859 50244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776 6914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921 64201989这下心理有底了, 是不是改变数组大小就可以计算更多位数呢?答案是肯定的。
pi的计算

5.圆周率的随机模拟计算方法 (蒙特卡罗法)
cs=0 n=500 %随机取点数 for i=1:n a=rand(1,2); if a(1)^2+a(2)^2<=1 cs=cs+1 end end 4*cs/n
1
0
1
依次取n 500,1000,3000,5000,50000取算得 圆周率的近似值分别为 3.18400000000000 3.10400000000000 3.13866666666667 3.12080000000000 3.14376000000000
1 ( 1)n (6n)! 13591409 545140134n 12 , 3 3 3 n n 0 ( 3n)!( n! ) 640320 2
并在1994年计算到了4044000000位.它的另一 种形式是
426880 10005 . (6n)!(545140134 n 13591409) 3 3n ( n ! ) ( 3 n )! ( 640320 ) n 0
例3 完成下面的实验任务
(1) 用MATLAB软件计算函数arctan x的Maclaurin 展开式,计算的近似值.
( 2)利用下面的等式计算 的值,并与( 1)比较.
2 1 2 ( 1)n1 (a ) (b) , 2, 2 8 n1 ( 2n 1) 12 n1 n
分析法时期
这一时期人们开始摆脱求多边形周长的繁难 计算,利用无穷级数或无穷连乘积来算 π 。 1593年,韦达给出
这一不寻常的公式是 π 的最早分析表达式。甚至 在今天,这个公式的优美也会令我们赞叹不已。它 表明仅仅借助数字2,通过一系列的加、乘、除和 开平方就可算出 π 值。
循环函数实现莱布尼茨公式计算pi

循环函数实现莱布尼茨公式计算pi
莱布尼茨公式是一种用来计算圆周率π的方法,它是由德国数学家莱布尼茨在17世纪提出的。
这个公式利用无穷级数的概念,通过不断计算级数的和来逼近圆周率π的值。
为了更好地理解和实现莱布尼茨公式,我们可以使用循环函数来进行计算。
循环函数是一种在编程中常用的结构,它可以让一段代码重复执行多次,从而简化复杂的计算过程。
我们需要明确莱布尼茨公式的表达式:π/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...。
根据这个公式,我们可以通过循环函数来逐项计算级数的和,最终得到π的近似值。
在编写循环函数时,我们需要设置一个变量来表示级数的项数,然后利用循环结构不断更新和累加每一项的值。
通过不断增加项数,我们可以逼近π的值,并最终得到一个比较准确的近似结果。
需要注意的是,为了提高计算精度,我们可以设定一个阈值,当计算到某一项的值小于该阈值时,结束循环。
这样可以避免无限循环造成的计算时间过长,并且保证计算结果的准确性。
通过以上步骤,我们就可以利用循环函数实现莱布尼茨公式来计算π的近似值。
这种方法不仅可以帮助我们更好地理解数学公式的计算过程,还可以锻炼我们编程的能力和思维逻辑。
总的来说,莱布尼茨公式是一种重要的数学工具,通过结合循环函数的计算方法,我们可以更好地应用这个公式来求解圆周率π的值。
希望本文能够对读者有所启发,让大家更加深入地了解数学计算和编程的奥秘。
实验二 怎样计算Pi

数学实验实验报告学院:数学与统计学院班级:数学与应用数学3班学号:0314姓名:康萍时间:实验二怎样计算一、实验目的分别用下列三种方法计算π的近似值,并比较三种方法的精确度: 数值积分法:通过使用编写梯形公式和辛普森公式的程序语言计算π。
泰勒级数法:利用反正切函数泰勒级数计算π。
蒙特卡罗(Monte Carlo )法:通过使用编写蒙特卡罗公式的程序语言来计算π。
二、实验环境基于Windows 环境下的软件。
三、实验的基本理论和方法1、数值积分法以单位圆的圆心为原点建立直角坐标系,则单位圆在第一象限内的部分G 是一个扇形,由曲线])1,0[(12∈-=x x y 及两条坐标轴围成,它的面积4π=S 。
算出了S 的近似值,它的4倍就是π的近似值。
而扇形面积S 实际上就是定积分4112π=-⎰dx x 。
与π有关的定积分有很多,比如211x +的定积分411102π=+⎰dx x 就比21x -的定积分更容易计算,更适合于用来计算π。
一般地,要计算定积分()dx x f ba ⎰,也就是计算曲线()x f y =与直线b x a x y ===,,0所围成的曲边梯形G 的面积S 。
为此,用一组平行于y 轴的直线()b x x x x x a n i x x n n i =<<<<<=-≤≤=-1210,11 将曲边梯形T 分成n 个小曲边梯形,总面积S 分成这些小曲边梯形的面积之和。
如果取n 很大,使每个小曲边梯形的宽度都很小,可以将它上方的边界()()i i x x x x f ≤≤-1近似的看作直线段,将每个小曲边梯形近似的看作梯形来求面积,就得到梯形公式。
如果更准确些,将每个小曲边梯形的上边界近似的看作抛物线段,就得到辛普森公式。
具体公式如下:梯形公式 设分点11,,-n x x 将积分区间],[b a 分成n 等份,即()n i n a b i a x i ≤≤-+=0,/。
蒙特卡洛投点法计算pi( π )的值

蒙特卡洛投点法计算pi( π )的值
蒙特卡洛投点法是一种常用的数值计算方法,用于计算复杂问题的数值解,特别是在物理学、工程学和统计学等领域中。
该方法的主要思想是,通过在随机数生成器中生成大量随机数,并利用这些随机数模拟真实数据,从而得到问题的数值解。
对于计算π(π) 的值,可以使用蒙特卡洛投点法进行计算。
具体步骤如下:
1. 构造一个π(π) 的模拟模型,该模型应该能够模拟π(π) 的真实特性,例如可以通过构造一个包含π(π) 的方程组来进行模拟。
2. 在模拟模型中生成大量随机数,这些随机数应该足够多地覆盖π(π) 的真实值。
3. 计算π(π) 的模拟值,可以使用任何π(π) 的估计方法来进行计算,例如可以使用三角函数估计法、指数估计法或对数估计法等。
4. 对模拟值进行统计分析,例如可以使用平均值、标准差或其他统计量来进行计算。
5. 根据模拟值和统计分析结果,计算π(π) 的真实值。
蒙特卡洛投点法是一种高效的数值计算方法,可以用于计算π(π) 的真实值。
但由于π(π) 的值非常小,因此需要生成大量的随机数才能得到可靠的计算结果。
计算pi

实验四你会用几种方法计算PI(圆周率)的值一、问题分析若想计算π的值,就要将跟π有关联的联系在一起,找到与π近似等价的式子,利用计算其值来得到π的值,还有对于含有π的面积、体积等关系式,可以尽量使用较规则的图形来代替进行面积、体积的求解。
二、模型建立2.1数值积分法找一个积分值等于π的定积分,则只要利用定积分计算出的值,就可以得到π的近似值。
2.2幂级数法利用arctanx的泰勒展开式,计算π的近似值。
当x=1时,arctan1=2.3迭代法1976年的迭代算法:2.4 随机模拟法(蒙特卡罗方法)用随机模拟求单位圆面积向单位正方形随机投n块小石头,n很大时小石头大致均匀第分布在正方形中,如果有k块落在单位圆内,单位圆面积的近似值三、解决问题所需的基本理论和方法(1)对于定积分,则只要计算出的值,就可以得到π的近似值,也就是计算出与直线y=0,x=0,x=1所围成的曲边梯形,而对于此类计算往往采用数值积分梯形公式计算。
梯形公式:将积分区间n等分将所有梯形面积加起来得到Trapz(x):输出数组x,输出按梯形公式x的积分(单位步长)Trapz(x,y):计算y对x的梯形积分,其中x、y定义函数关系y=f(x)(2)利用arctanx的泰勒展开式,计算π的近似值。
函数taylor用于实现Taylor级数r=taylor(f,n,v),指定自变量v和阶数nr= taylor(f,n,v,a),指定自变量v、阶数n,计算f在a的级数(3)级数法由于利用arctanx的幂级数展开法的收敛较慢,可采用公式的计算来求pi值。
(4)特殊公式(BBP)四、设计算法、编程求解4.1数值积分法梯形公式Matlab代码:format longx=0:0.1:1; % x=0:0.01:1; x=0:0.02:1; x=0:0.001:1; x=0:0.0001:1;y=sqrt(1-x.^2);pi=4*trapz(x,y)4.2幂级数法Matlab代码:(1)format longsyms xf=atan(x);t= taylor(f,10,x,0); % t= taylor(f,100,x,0); t= taylor(f,500,x,0);t= taylor(f,1000,x,0); t= taylor(f,10000,x,0); x=1;pi=4*eval(t)(2)format longsyms xf=atan(x);t= taylor(f,10,x,0);x=1/5;s1=eval(t);x=1/239;s2=eval(t);pi=16*s1-4*s2当n=10时,pi =3.141592682404399format longa=1;b=1/sqrt(2);s=1/2;for n=1:1:10n,y=a;a=(a+b)/2;b=sqrt(b*y);c=a^2-b^2;s=s-2^n*c;pi=2*a^2/send4.4蒙特卡罗方法Matlab代码:format longs=0;n=10; % n=100; n=1000; n=10000; n=100000; n=1000000 for i=1:na=rand(1,2);if a(1)^2+a(2)^2<=1s=s+1;endendpi=4*s/n4.5 BBP公式format longsyms xy=1/16^x*(4/(8*x+1)-2/(8*x+4)-1/(8*x+5)-1/(8*x+6));s=0;for x=0:1:10s1=eval(y);x,s=s+s1end五、分析求解结果由上表可知,蒙特卡罗方法计算出的pi值与真实值的误差相差较大并且收敛速度很慢;对于级数法,但由于所选择的的级数方法、公式不同,得到的结果也就不同,收敛速度较慢,而的收敛速度就较快;数值积分法和迭代法准确度较高,但数值积分法的收敛速度没有迭代法快、精度高,所以一般情况下采用迭代法求近似值较准确。
遗传pi值计算

遗传pi值计算1. 什么是pi值?Pi值是指在一群物种或基因组中,任意两个基因座的核苷酸序列不同的概率。
它是评价遗传多样性的重要指标之一。
通常用于描述蛋白质编码基因(exons)、转录因子结合位点(TFBS)等类别基因区间的多样性。
2. pi值的意义pi值能够反映种群或基因组的遗传多样性程度,反映基因突变的频率。
因此,pi值是评估种群遗传多样性、了解物种和种群的进化历史和生态环境以及发生物种起源和分化的过程中的基因变异和自然选择影响等方面有很重要作用。
3. 如何计算pi值?Pi值的计算需要进行多序列比对,由此推断不同个体之间的遗传差异。
常用的方法有两种:(1)传统方法传统方法包含两步:首先,计算每对序列之间的碱基差异数;其次,将差异数除以比对的碱基数得到pi值。
pi值可以按照突变类型进行分类,如:转换(Ts)和转换(Tv)。
(2)基于DNA序列的分子进化分析方法分子进化分析程序利用模型计算基因突变的概率,并构建两个序列之间的分子进化树和相应的Evolutionary Distance。
常用的分子进化程序有Mega和PAUP等。
4. pi值的应用pi值的应用很广泛,它能够评价基因座的多样性,观察物种遗传多样性的时空动态变化,辅助物种分类和系统发育重建等。
下面列出一些pi值在生物研究中的典型应用:(1)评估物种遗传多样性pi值通常用来估计不同物种之间或同一物种内的遗传多样性。
通过比较pi值的大小,可以了解不同物种之间的遗传距离,进一步推断物种的分类和进化历史。
(2)种群遗传学研究pi值能够评估种群内个体遗传差异,研究物种的种群动态。
例如,pi值的大小和分布可以给出物种在遗传多样性、生境选择和协变选择等方面所受到的影响。
(3)基因选择研究pi值可以作为基因选择研究中的一个依据,来分析不同基因(甚至不同格式基因)之间的遗传多样性及其与自然选择的关系。
例如,同样受到自然选择影响的基因可以有相似的pi值测度,有助于找到这些基因的共同演化模式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的探索精确计算π值的方法,并且比较不同方法之间的不同之处和优缺点。
掌握数值积分的辛普森公式。
二、问题描述1. 任务11) 用反正切函数的幂级数展开式结合有关公式求π,若要精确到40位、50位数字,试比较简单公式和Machin 公式所用的项数。
2) 验证公式111=arctan arctan arctan 4258π++ 试试此公式右端做幂级数展开完成任务1所需要的步数。
2. 任务2用数值积分计算π,分别用梯形法和Simpson 法精确到10位数字,用Simpson 法精确到15位数字。
3. 任务3用Monte Carlo 法计算π,除了加大随机数,在随机数一定时可重复算若干次后求平均值,看能否求得5位精确数字?设计方案用计算机模拟Buffon 实验4. 任务4利用积分20(1)!!sin !!2n n xdx n ππ-=⎰ ,n 为奇数 推导公式224422213352121n n n n π=-+ ……… 用此公式计算π的近似值,效果如何?5. 任务5利用学过的知识(或查阅资料),提出其他计算π的方法(先用你学过的知识证明),然后实践这种方法。
对你在实验中应用的计算π的方法进行比较分析。
6. 任务6e 是一个重要的超越数1e lim 1)n n n→∞=+( 1111...2!!(1)!e e n n θ=++++++ 试用上述公式或其他方法近似计算e 。
三、问题解法1. 任务11) 根据幂级数展开的相关知识,易知:24122211(1)1n n x x x x--=-+-+-++……… 因为21(arctan )'1x x =+,故可以求得arctan x 的幂级数展开式为: 35211arctan (1)3521n n x x x x x n --=-+-+-+-……… 当x=1时,-11111--(-1)4352-1n n π=+⋯⋯++⋯ 当叠加了十万次以后得到结果π=3.141582654…只有五位有效数字,可见其精度与效率极低。
如果想要精确计算π的数值的话,非常有必要寻找改进以后的方法,这就引出了两个能够提高计算效率的公式——简单公式:11=arctan arctan 423π+ Machin 公式: 11=4arctan arctan 45239π- 对以上两式进行arctan 的幂级数展开可以非常快速的求得π比较精确的数值。
下面比较π精确到40位和50位数字时两个公式各需要计算多少项。
用简单公式得到40位有效数字需要叠加62项:3.141592653589793238462643383279502884197用简单公式得到50位有效数字需要叠加79项:3.1415926535897932384626433832795028841971693993751用Machin 公式得到40位有效数字需要叠加27项:3.141592653589793238462643383279502884197用Machin 公式得到50位有效数字需要叠加35项:3.1415926535897932384626433832795028841971693993751从上面简单的对比可以看出Machin 公式要优于简单公式,简单公式要优于不用公式的arctan 幂级数展开。
在得到相同精度的条件下,Machin 公式所需要的叠加步数要显著少于简单公式,并且在计算精度越高的情况下,优势越明显。
道理很简单,因为Machin 公式计算的收敛速度要显著快于普通公式。
简单公式决定收敛速度的是12n⎛⎫ ⎪⎝⎭,而Machin 公式决定收敛速度的是15n ⎛⎫ ⎪⎝⎭,因为15n ⎛⎫ ⎪⎝⎭的收敛速度快于12n ⎛⎫ ⎪⎝⎭,故Machin 公式计算pi 的时候收敛速度要快于普通公式。
所以Machin 公式比普通公式更加精确,并且在计算高精度的时候有更大优势。
2) 根据三角函数公式有:111tan(arctan arctan arctan )258111tan(arctan arctan )2581111tan(arctan arctan )2581123111123++++=-++==- 故111=arctan arctan arctan 4258π++ 用这个公式计算π值得到的结果与使用简单公式得到的结果完全相同:在62项得到40位有效数字,在79项得到50位有效数字。
2. 任务2 因为已知1201=41+x A dx π=⎰,故可以应用数值积分来计算π的近似值。
梯形法:12102[2(...))]n n y y y y y nπ-=+++++ Simpson 法:022********[()2(...)4(...)]3m n m y y y y y y y y m π--=+++++++++ 其中:211k ky x =+ 用matlab 计算后发现梯形法要将积分区间16811等分以后可以得到10位有效数字,而simpson 法只要22等分即可,精确到15位数字则需要做152等分。
可见Simpson 法要比梯形法更优越。
下面来分析一下Simpson 法优越的原因。
Simpson 公式法在达到相同精度的时候所用的区间分划远小于梯形法,这主要是Simpson 法所生成的曲线与原来函数的曲线吻合程度比较高。
3. 任务3Monte Carlo 法:在正方形 0<x <1,0<y<1上随机投大量的点,那么落在四分之一园内的点数数m 与在正方形内的点数n 之比m/n 应为π/4,故:π=4 m/n 。
计算机模拟:产生区间[0,1]上数目为n 的一组随机数(x,y),计算满足22y x +<1的数m 。
用matlab 模拟了910随机投点以后得到π的近似值为3.1417,只有四位有效数字,但是却需要很可观的计算时间,因此,想通过增加投点次数来实现π值的精确计算是不可行的。
下面尝试一下重复若干次以后取平均值能否提高精度。
我尝试了一下每一百次取一下平均,计算一百万次,结果依然不理想.有的时候能够达到5位精度,但是绝大多尝试都无法达到希望的5位精度。
要用计算机模拟Buffon 实验,可利用matlab 生成两个随机数列,分别模拟针中心到较近平行线距离y 及针与平行线夹角θ,将θsin ≤y 的情况的次数除以所有情况的总数就是2/π。
Buffon 投针实验精度依然不高,模拟一千万次以后得到π的近似值为3.1419。
4. 任务4首先要更正一下,原题中有一个小错误:公式成立的条件“n 为奇数”应该改为“n 为偶数”。
下面证明一下这个公式并导出一个新的近似计算π的公式。
根据分部积分公式,有:222200sin (1)cos sin nn xdx n x xdx ππ-=-⎰⎰ 将cosx 替换为sinx ,然后移项化简得:222001sin sin n n n xdx xdx n ππ--=⎰⎰ 这样就得到了一个递推公式。
易知:20sin 1xdx π=⎰2012dx ππ=⎰ 因此2020n-1)!!sin x n !!n-1)!!sin x n !!2n n dx n dx n πππ⎧=⎪⎪⎨⎪=⎪⎩⎰⎰ (为奇数(为偶数 下面推导π的近似值计算式:由n 为偶数时有:220(2)!!=sin 2(21)!!k k xdx k ππ-⎰ 又当k 的值很大时:lim 2lim 21k k k k →∞→∞=+,故可以用与之相邻的奇数代替这个偶数。
有:2120(2)!!sin (21)!!k k xdx k π+=+⎰ 这样就得到了π值的近似计算式:(2)!!(2)!!2(21)!!(21)!!k k k k π=-+ 也就是:224422213352121n n n n π=-+ ………用matlab 计算了一下n=10000的情况,结果是3.14151。
又计算了一下n=100000的情况,这时已经能感觉到程序明显的停顿,但是结果是3.14158,有效数字并没有增加。
从以上的结果可以看出,这种算法并不具有优越性,不仅不如辛普森积分公式,甚至不如Monte Carlo 法。
之所以得到这样的结果,主要是因为当n 取得很大的值的时候,2n/(2n+1)项已经十分接近1,这样对π的计算值逼近真实值贡献很小。
从这可以看出这种算法的特点是在开始的时候可以比较快速的逼近π的真实值,越到后来逼近真实值越困难。
也就是说在后面计算过程中,效率越来越低。
总之,这不是一个好的算法。
5. 任务5我在网上找到了一个计算π非常强的公式——拉马努金公式这个公式每迭代一次可以增加π计算值的14位精度,这是非常强大的。
从前几个任务的分析我们很容易得出,评价一个公式计算π近似值的优劣主要是看得到相同精度的情况下,谁用的循环次数更少。
如果想要使循环次数少的话就要让计算式的收敛速度变快,所以寻找一个好的计算π值的算法关键是要找到一个收敛速度快的公式。
Machin 公式的收敛是15指数收敛,收敛速度已经非常快了。
但是再看一下拉马努金公式,他的主要收敛项是41396,这个收敛速度是非常惊人的,因此用这个公式计算π的值效率是惊人的,可以很快逼近π的真实值。
在需要精确计算π值的场合应该优先考虑使用拉马努金公式。
在以上计算π值的方法中精确度最差的可以算是Monte Carlo 法了,如果想精确到5位数字还要在运气好的时候才能实现,但是这并不意味着在实际应用中Monte Carlo 法没有优点。
Monte Carlo 在金融等实际问题中有很广泛的应用,金融中的问题可能是一个很复杂的问题。
如果一个问题有500个甚至是更多的变量,求出其解析解是不可能的,这时候Monte Carlo 法就发挥了它巨大的优越性。
在用Monte Carlo 法计算π值的过程中,我们发现随机过程次数的增加似乎并不能非常显著的增加π值结果的精确度。
在matlab 的环境下,即使有无穷次的随机过程依然无法得到π的精确值。
因为matlab 生成的随机数的位数有限,因此生成的随机数中无理数是无法包含的,这样也就是说生成的随机数列其实是离散的。
也就是在一个平面网格上投点,而不是在平面圆域上投点,这样得到的π值精度是有限的。
6. 任务6超越数e 的算法比较简单,就是指数函数的泰勒级数展开。
因为展开以后阶乘的倒数,因此收敛速度也非常快,可以很快得到e 的近似值。
四、附录——实验中用到的matlab 源码1. Arctan 幂级数展开法function y=tpi(k)for n=1:ka(n)=(-1)^(n-1)/(2*n-1);endy=vpa(4*sum(a));2. 简单公式function f=simple(k,j)for n=1:ka(n)=(-1)^(n-1)*(1/2)^(2*n-1)/(2*n-1)+(-1)^(n-1)*(1/3)^(2*n-1)/(2*n-1);end f=vpa(4*sum(a),j);3.Machin公式function y=machin(k)for n=1:ka(n)=((-1)^(n-1)*(1/5)^(2*n-1)/(2*n-1))*4-(-1)^(n-1)*(1/239)^(2*n-1)/ (2*n-1);endy=vpa(4*sum(a));4.梯形法function f=trapezia(n,j)for k=0:nx(k+1)=k/n;y(k+1)=1/(1+x(k+1)^2);endvpa(f=2/n*(2*sum(y)-y(1)-y(n)),j)5.Simpson法function f=simpson(n,j)for k=0:2*n;x(k+1)=k/(2*n);y(k+1)=1/(1+x(k+1)^2);endfor i=1:nif i<=n-1a(i)=y(2*i+1);endb(i)=y(2*i);endf=vpa(2/(3*n)*(y(1)+y(2*n+1)+2*sum(a)+4*sum(b)),j)6.Monte Carlo法function y=monte(k)m=0;for n=1:kif rand(1)^2+rand(1)^2<=1m=m+1;end;end;4*m/k7.平均Monte Carlo法function y=monte2(k,t)for r=1:tm=0;for n=1:kif rand(1)^2+rand(1)^2<=1m=m+1;end;end;g(r)=4*m/k;endsum(g)/t8.模拟Buffon投针实验function f=buffon(n)m=0;for k=1:nif rand(1)<=sin(rand(1)*pi/2) m=m+1;endendf=n/m*29.Willas公式法function f=fpi(n)t=1;for i=1:na(i)=2*i/(2*i-1);b(i)=2*i/(2*i+1);t=t*a(i)*b(i);endf=2*t;10.超越数e的泰勒展开function f=normale(n)e=0;a(1)=1;for i=1:na(i+1)=1/(prod(1:i));endf=sum(a);。