神奇的椭圆迭代问题

作者:, 发表于

【提示:GIF动画图片较大,有时需等会儿才能显示动画效果。】

最近人人网上流行一个神奇的椭圆,有不少同学给了不同的扩展。我把看到的在这里总结一下。

这个「神奇的椭圆」最早应该是来自Cornell大学的一篇论文FROM RANDOM POLYGON TO ELLIPSE: AN EIGENANALYSIS。这篇论文证明了,平面上任何一个多边形(可自交),不断取各边的中点重新连线,同时按比例放大,往复操作最终会趋近于一个椭圆。以下是一个例子的动态图

证明方法并不难,只用到一些线性代数的知识。如果不喜欢看英文,人人网的谢雨辰写了一篇减缩版的中文版证明

线性代数的方法并未揭露出这个问题的本质。令人拍案叫绝的是,人人网的王赟从信号处理的角度,用傅立叶分析给该问题以新的解释,结论更直观(但需要事先了解所使用的数学方法)。而且,这种方法可以解决类似的问题,比如如果不是取中点而是用别的迭代方式会怎么样:

  • 如果每次迭代是把每个顶点关于下一个顶点取镜像得到新的顶点,偶数各点时最终结果退化到两个点,奇数个点时最后收敛到一个刺猬。
  • 如果每次迭代,是把相邻两个顶点的中点关于下一个顶点取镜像得到新顶点:当顶点个数为7的倍数而又不太多(如14,21,28)时,图形会收敛成一颗七角星。

甚至我们可以反过来设计什么样的迭代方式,能收敛到我们所想要的样子(比如五角星)。

上面线性代数和信号处理的思路都可以直接应用到三维的情况。在三维空间中,不断取重点最后也会收敛到一个椭圆

事情到这里还没完。人人网的张文琦三维的情况上继续扩展。这时候考虑的是一个二维网格(首尾相连,最简单的例子是一个环面上均匀分布的经纬线行程的网格),每次迭代都是取每个方格的中心点形成一个新的二维网格。用数学公式表示:有 \(n\times m\) 个顶点 \(p_{i,j}\)\(0\leq i < n\)\(0\leq j < m\)\(n\times m\) 个面片 \(T_{ij}\)\(p_{ij}, p_{i+1,j}, p_{i, j+1}, p_{i+1, j+1}\) 组成,其中 \(p_{n, j} = p_{0,j}, p_{i,m}=p_{i,0}\) 。每一次的迭代都是取各个面片四个顶点的中心点形成新的网格,即

\[p'_{i,j} = \frac{p_{ij} + p_{i+1,j} +p_{i, j+1} +p_{i+1, j+1}}{4}\]

张文琦通过模拟发现,这种方法最后得到的是一个斜的椭圆形轮胎面。下面是一个例子的动态图

三维里的曲面迭代

这个具体是何原因还有待进一步探索。我觉得这个用上面信号处理的思路是可以做的,这个问题本质上还是点的变换(跟面其实没多大关系)。

2013-10-14 6:57PM 补充:

人人网的王赟已经用跟前面一样的滤波的方法,解决了上面问题。从滤波的角度看,最后留下来的是两个波的叠加,每个波都是一个椭圆。这样形成的曲面并不是张文琪所说的椭圆形轮胎面,而是一个elliptic translational celestial。它是指一个椭圆沿着另外一个椭圆平行移动形成的曲面(一般说的环面则是一个圆绕着沿着另一个圆旋转移动形成的曲面,注意这里面的区别)。最后的结果长下面这个样子:

elliptic translational celestial

王赟的文章里有详细的分析,还提供了Matlab代码画图。有兴趣的可以移步观赏

Q.E.D.


上一篇:一个线性代数的应用实例2009年5月24日
利用线性代数可以给某些问题很精妙的证明,Matrix67就给出了一个这样的例子,这也让我想起以前看见的另外一个例子,分享如下: 是否存在不全相等

下一篇:从AB和AC的相关系数推导BC的相关系数范围2014年4月26日
有三个随机变量A、B、C,已知A和B之间的相关系数为r,A和C之间的相关系数也等于r。问B和C的相关系数的取值范围。


  • 支持使用微薄、微信和QQ的账户登陆进行评论。由各自网站直接认证,不会泄露你的密码。
  • 登陆后可选择分享评论到所绑定的社交网络,如微薄、人人和QQ空间。
  • 评论提交后无法修改。如需修改,请删除原评论再重新提交。
  • 评论支持LaTeX代码,行内公式请用\(a+b=c\),行间公式请用\[a+b=c\]。公式只支持英文字符。