怎么计算π的值:
用莱布尼兹公式、韦达公式和斯特林公式分别迭代,当结果与π确切值之间误差小于0.005时结束迭代,通过分析三个公式的迭代次数得出最优的迭代公式。
1、莱布尼兹公式: (7)
1-5131-14++=π 根据数列得出:∑∞=---=111
21)1(4n n n π 通过程序实现如下(laibulizi.m ):
for n=1:1000
n
a(n)=(-1).^(n-1)./(2*n-1);
%y=vpa(4*sum(a),30)
%error=vpa(y-pi,30)
y=4*sum(a)
error=y-pi
if (error<=0.005&&error>=-0.005)
break ;
end
end ;
运行结果为:
2、韦达公式:⋅⋅⋅⋅⋅⋅+++=2
222222222π 通过分析公式可知:)2
(cos 22221+=⋅⋅⋅+++i π 则:∏∞=+=11)2
cos(2i i ππ
通过程序实现如下(weida.m ):
clear;
x=1;
for i=1:100;
i
x=x*cos(pi/2^(i+1));
pai=2/x
error=pai-pi
if (error<=0.005&&error>=-0.005)
break ;
end
end
运行结果为:
3、斯特林公式:π2!lim =⋅∞→n
n n e n n n 程序实现如下(sitelin.m ):
for n=1:150
n
a=exp(n);
b=factorial(n);
c=sqrt(n);
d=(a*b)/((n^n)*c);
p=(d^2)/2
err=p-pi
if err<=0.005
break ;
end
end
分析:通过运行结果进行分析,当误差小于0.05时,使用莱布尼兹公式迭代了200次,得到的结果为3.1366,通过韦达公式迭代了5次,结果为3.1403,通过斯特林公式迭代了105次,结果为3.1466。
通过比较得出韦达公式最快。
注:使用误差为0.005是因为在计算斯特林公式时计算到143项时结果就变成了无穷,所以选择了一个比较大的误差进行判断,其他两个公式(高斯公式和拉马努金公式)由于编程计算失败,故没有进行比较。