二、幂级数展开法
从十七世纪中叶起,人们开始用更先进的分析方法来求π的近似值,其中应用的主要工具是收敛的无穷乘积和无穷级数。
Mathematica计算:
In[2]= k=20000;S1=N[4*Sum[(-1)^(n-1)/(2n-1),{n,1,k}],18]
Out[2]= 3.14154265358982449
该方法收敛速度太慢,更快的公式有:
Mathematica计算:
In[3]= k=10;
S2=N[4*Sum[(-1)^(n-1)*(1/2)^(2n-1)/(2n-1)+(-1)^(n-1)*(1/3)^(2n-1)/(2n-1),
{n,1,k}],20]
Out[3]= 3.14159265358979323846
3、数值积分方法
由数值积分的方法我们可以知道:
因此,可以利用数字积分法来计算π的近似值。
Mathematica计算:
梯形法:
In[4]= a = 0; b= 1;y[x_]:= 4/(1 + x^2)
n = 1000
pis1 = N[(b-a )/n*(Sum[y[a+i*(b-a)/n], {i,1,n-1}]+(y[a]+y[b])/2),100]
Out[4]= 3.1415924869231265717979608435969622546877898925997631081083727
31390288109790562585631933321397748830
辛普森公式:
In[5]= a = 0; b= 1;y[x_]:= 4/(1 + x^2)
n = 1000;
pis2 = N[(b-a)/6/n*((y[a]+y[b])+2*Sum[y[a+i*(b-a)/n], {i,1,n-1}] +
4*Sum[y[a+(i-1/2)*(b-a )/n],{i,1,n}]),100]
Out[5]= 3.141592653589793238462023343596963516081019055794419480210497
134309960210824915446285805237414852023
4、蒙特卡罗方法
Mathematica计算:
In[6]= n=10000;
S4= Block[{i,m=0},
For[i=n,i>0,i--,m=m+If[Random[]^2+Random[]^2<=1,1,0]];
N[4*m/n,10]]
Out[6]= 3.1352