圆周率(
π
\Large π
π)的计算方法
慈悲心待人,时时有平安;智慧心安己,处处有自在! From 翔文数学 © kumath@outlook.com
\\[1em]
一、圆周率介绍
代数方面
从代数上来讲,圆周率
π
\pi
π 就是一个无理数(irrational numbers, 即无限不循环小数),不能表示为两个整数之比;也是一个超越数(transcendental numbers, 即不能作为某个有理系数多项式方程的根的数),与三角函数有密切关系,并且与无穷级数的和有很大关系。
几何方面
从几何上来说,就是一个比值,特殊图形圆的周长与其直径的比值(ratio of the circumference of a circle to its diameter),也就是单位圆的半周长,还可以是单位圆的面积或圆面积与其半径的平方之比;也有人提出:如果用圆的周长与其半径的比值作为圆周率的话,也不是不可以的。
用希腊字母
π
\pi
π 表示圆周率,它的几何定义就是
π
=
圆周长
圆直径
=
circumference
diameter
\pi =\dfrac{圆周长}{圆直径} =\dfrac{\text{circumference}}{\text{diameter}}
π=圆直径圆周长=diametercircumference
由上可得:圆面积
A
=
π
r
2
;
A=\pi r^2;
A=πr2; 圆周长
C
=
2
π
r
=
π
d
;
C=2\pi r = \pi d;
C=2πr=πd;
权威网站
π
\Large \red \pi
π 是一个数学常数,互联网上有很多关于圆周率的介绍,比较权威的参见 http://www.numberworld.org/y-cruncher/
现代计算机已经计算出
π
\pi
π 的小数位数
有很多计算圆周率的方法,比较常用的有:
测量方法,量出圆周长和直径,用几何方法计算;用多边形逼近方法计算;用无限级数求和方法计算;用蒙特卡罗法计算;…
常用的
π
\pi
π 的近似值有
3.14
,
3.1415926
,
22
7
,
355
113
,
3.14
<
π
<
22
7
3.14, 3.1415926, \dfrac{22}{7}, \dfrac{355}{113}, 3.14<\pi<\dfrac{22}{7}
3.14,3.1415926,722,113355,3.14<π<722。
南北朝时期的祖冲之不满足刘徽的计算结果,成功计算出了圆周率小数点后7位数字,确定了圆周率介于
3.1415926
<
π
<
3.1415927
3.1415926<\pi<3.1415927
3.1415926<π<3.1415927 之间;得到了两个近似分数(有理数)约率
22
7
\dfrac{22}{7}
722 和祖率(也称为密率)
355
113
\dfrac{355}{113}
113355。
2022年6月,Google 云团队 Emma Haruka Iwao 算出了
100
100
100 兆位为
0
\LARGE{\red{0}}
0 (100-trillion decimal place is 0),运行程序是 y-cruncher 程序,采用的算法是 Chudnovsky 算法。运行了
157
157
157 天。一共用了
515
515
515 TB 的存储空间。验证用了公式 Bailey-Borwein-Plouffe formula。
2021年8月19日,由瑞士格力孙应用技术大学 (University of Applied Sciences of the Grisons—UAS Grisons) 打破记录,历时仅 114 天 (4月28日~8月19日),计算到了
62.8
62.8
62.8 万亿位(Trillion digits), 精确位数为
6
2
′
83
1
′
85
3
′
07
1
′
750
62'831'853'071'750
62′831′853′071′750 。 最后10位数字为
7817924264
7817924264
7817924264。
打破了 2020年1月29日由美国阿拉巴马州的 Timothy Mullican 耗时 8 个月(303天)创造的
50
50
50 万亿位!
谷歌工程师 Emma Haruka Iwao 于2019年1月宣布已经计算到了
31.4
31.4
31.4 万亿
=
31.4
×
1
0
12
=
3.14
×
1
0
13
= 31.4 × 10^{12} = 3.14\times10^{13}
=31.4×1012=3.14×1013 位,为了纪念 圆周率日-PAI Day(每年的3月14日)。
下面主要阐述 现代分析方法 对计算圆周率的贡献。
泰勒级数理论(Taylor’s theorem and Taylor series)
多项式逼近任意函数
多项式 (polynomial) 逼近 (approximate) 未知函数
f
f
f 在给定点附近的值,实际上就是找到多项式的系数 (coefficients):
a
0
,
a
1
,
⋯
,
a
n
a_0, a_1, \cdots, a_n
a0,a1,⋯,an
P
n
(
x
)
=
a
0
+
a
1
(
x
−
a
)
+
a
2
(
x
−
a
)
2
+
⋯
+
a
n
(
x
−
a
)
n
+
R
(
(
x
−
a
)
n
+
1
)
\begin{equation} P_n(x)=a_0+a_1(x-a)+a_2(x-a)^2+\cdots+a_n(x-a)^n+R((x-a)^{n+1})\end{equation}
Pn(x)=a0+a1(x−a)+a2(x−a)2+⋯+an(x−a)n+R((x−a)n+1)
靠近给定点
x
=
a
x=a
x=a 逼近函数
f
(
x
)
f(x)
f(x), 此处假定 (assuming) 函数
f
(
x
)
f(x)
f(x) 在
x
=
a
x = a
x=a 有
n
t
h
nth
nth 微分(differentiable). 从而有
f
(
x
)
≈
P
n
(
x
)
f(x)\approx P_n(x)
f(x)≈Pn(x), 下面试着找出系数
a
n
,
n
=
0
,
1
,
2
,
⋯
,
n
a_n, n=0,1,2,\cdots,n
an,n=0,1,2,⋯,n.
>>> f=Function('f')
>>> series(f(x))
f(0) + x*Subs(Derivative(f(_x), _x), _x, 0) + x**2*Subs(Derivative(f(_x), (_x, 2)), _x, 0)/2 + x**3*Subs(Derivative(f(_x), (_x, 3)), _x, 0)/6 + x**4*Subs(Derivative(f(_x), (_x, 4)), _x, 0)/24 + x**5*Subs(Derivative(f(_x), (_x, 5)), _x, 0)/120 + O(x**6)
泰勒级数(Taylor series) 实函数或复函数(a real or complex-valued function)
f
(
x
)
f(x)
f(x) 在
x
=
a
x=a
x=a 有无限阶微分,则可以表示为幂级数 (power series):
f
(
x
)
≈
f
(
a
)
+
f
′
(
a
)
1
!
(
x
−
a
)
+
f
′
′
(
a
)
2
!
(
x
−
a
)
2
+
f
′
′
′
(
a
)
3
!
(
x
−
a
)
3
+
⋯
\begin{equation} f(x) \approx f(a)+{\frac {f'(a)}{1!}}(x-a)+{\frac {f''(a)}{2!}}(x-a)^{2}+{\frac {f'''(a)}{3!}}(x-a)^{3}+\cdots \end{equation}
f(x)≈f(a)+1!f′(a)(x−a)+2!f′′(a)(x−a)2+3!f′′′(a)(x−a)3+⋯
此处
n
!
n!
n! 表示
n
n
n的阶乘 (denotes the factorial),
f
(
n
)
(
a
)
f^{(n)}(a)
f(n)(a) 表示
f
f
f 在
x
=
a
x=a
x=a 处的
n
t
h
nth
nth 微分 (derivative). 可以写成更加紧凑的求和式子:
泰勒级数
f
(
x
)
=
∑
n
=
0
∞
f
(
n
)
(
a
)
n
!
(
x
−
a
)
n
.
f(x)={\displaystyle \sum _{n=0}^{\infty }{\frac {f^{(n)}(a)}{n!}}(x-a)^{n}.}
f(x)=n=0∑∞n!f(n)(a)(x−a)n.
f
f
f 的0阶导数就是它自己
f
f
f,且
(
x
−
a
)
0
=
0
!
=
1
(x − a)^0 = 0!=1
(x−a)0=0!=1. 当
a
=
0
a = 0
a=0, 此时的泰勒级数又叫做 麦克劳林级数 Maclaurin series.
举例 (For instance)
指数函数(exponential function)
指数函数是重要的基本初等函数之一。一般地,
y
=
a
x
y=a^x
y=ax 函数
(
a
(a
(a 为常数且
a
>
0
,
a
≠
1
)
a>0,a≠1)
a>0,a=1) 叫做 指数函数。指数函数的定义域是
x
∈
R
x \in \mathbb{R}
x∈R;值域
(Domain)
(
0
,
+
∞
)
\text{(Domain)}\;(0,+\infty)
(Domain)(0,+∞);单调递增:
a
>
1
a>1
a>1 时, 单调递减:
0
<
a
<
1
0 < a < 1