女士们,先生们,老少爷们儿们!在下张大少。

计算圆周率π有很多种方法,在下今天聊的这种或许是最麻烦的一种……说出来你可能不信,这种方法使用的是曼德博集合(见下图),不了解曼德博集合的老少爷们请翻看在下前一篇文章:《张大少涂鸦(番外之一) 强力拆解曼德博集合》
看到这玩意儿,你或许一脸懵逼,这跟圆周率π有啥关系?啊哈,你一定是想用中间那个貌似像圆的家伙blabla。。。
放心,在下不用那个。咱堂堂宇宙文明带路党怎会耍此等雕虫小技。在下用的并不是这个图案,而是用的曼德博集合!用这个集合的一大堆数字来估算π!
那么圆周率在哪里呢?就在c=0.25那一点!此处是曼德博集合的尖点,即心窝的那个位置。我们要关注的就是c>0.25的这部分实数,即下图中的红色部分。显然,这部分不在曼德博集合中,因此将z=0迭代后函数值必然是发散的。我们需要计算的是,z=0迭代多少次之后函数值会大于2。
现在我们就看看,如果c取大于0.25的实数会如何。
我们首先从c=0.25+1=1.25开始,把z=0带入。可以看到,只要两次就会超过2,真是蛮快的!
第2次,我们把c的数值靠近尖点100倍,让c=0.25+0.01=0.26试试,看看会如何。这次函数迭代了30次突破了2。
第3次,我们把c的数值再靠近尖点100倍,让c=0.25+0.0001=0.2501,这次函数迭代了312次突破了2。
第4次,我们把c的数值再再再靠近尖点100倍,让c=0.25+0.000001=0.250001,这次函数迭代了3140次突破了2。
聪明的你应该已经看出什么端倪了吧【斜眼】。
如果还一脸懵逼,那么我们再来第5次,把c的数值再再再再再靠近尖点100倍,让c=0.25+0.00000001=0.25000001,这次函数迭代了31414次超过了2。
我们把这5次的结果整理一下:
神奇之处在于,如果我们把小数点点在正确的位置,就会发现迭代次数在向圆周率π值收敛!
所以这个超级麻烦的方法就是,在曼德博集合的尖点附近找一些数值,重复迭代到函数z=z^2+c中,直到函数值冲破2,这将会引领你得到圆周率π的近似值。
这种方法并非巧合,数学家表示,其基本原理是:将C(n+1)=C(n)^2+C(n)这个递归公式写成差分方程,再近似成微分方程,方程的解跟反正切函数有关,带入无穷大就会得到圆周率π。
反正在下这种学渣是无法理解的,老少爷们就看个乐吧……
参考资料:Numberphile的数学视频
青山不改,绿水长流,在下告退。
转发随意,转载请联系张大少本尊。


还没有评论,来说两句吧...