一说起圆周率π,很多人就想到祖冲之老爷子的割圆术。
说实话,祖大人也挺无奈的,从我们小学就开始割圆,一直割到大学还在割。
但割圆术只适合手算,如何用电脑算π呢?
泰勒展开泰勒展开在科学计算中简直有着匪夷所思的变态威力。
之前我有一篇文章介绍了什么是泰勒展开,它可以把复杂函数转换成加减乘除,比如sinx:
之所以要展开,是因为通用计算机本质上只能计算加减乘除。
用泰勒展开计算π首先想到的思路就是,反三角函数,根据定义有:
那么,接下来的问题就是,
如何计算arctan(1)
有人说,直接调用C语言库函数atan(double,double)不就行了。
确实,这可以完成计算,然而,这是一种令人不齿的开挂行为,就好像我问怎么跑完马拉松,你说你开车一溜烟就跑完了一样。
库函数是别人写好的,我们现在是思索如何实现计算,而不是考虑如何调用。
至此,我们只好请出祖传配方,把arctan(x)进行泰勒展开:
然后,令x = 1,得到: