美文网首页想法
Python3 趣味系列题14----分形

Python3 趣味系列题14----分形

作者: AiFany | 来源:发表于2019-08-12 17:45 被阅读0次
    julia_140.png

    分形(Fractal)一词,是由美国数学家曼德勃罗先生(Mandelbrot)创造出来的。分形几何学是一门以非规则几何形态为研究对象的几何学。按照分形几何学的观点,一切复杂的对象虽然看似杂乱无章,但他们具有相似性。简单地说,就是把复杂对象的某个局部进行放大,其形态和复杂程度与整体相似。

    本文给出基于复动力系统,例如Mandelbrot集、Julia集;基于迭代函数系统,例如科赫雪花、谢尔宾斯基三角形。

    一、基于复动力系统

    因为复数可以用平面直角坐标系上的点来表示。横坐标轴表示复数的实数部分,纵坐标轴表示复数的虚数部分,则复数 A+Bi就对应了平面上的点 (A, B),其中复数A+Bi的模就是A^2 + B^2 的算数平方根。这个平面直角坐标系也就成为了复平面。

    • Julia集

    所谓Julia集就是复平面上的点经过如下形式:

    image

    的无数次迭代得到的复数的模不大于2的点构成的集合。其中Z代表复平面上的点,C是任意的复数。对于不同的C值,不同的迭代次数,所得到的图像是不同的。下面给出几种不同的C值对应的图像。之所以限定模值为2,是因为随着迭代次数的增大,模大于2的点肯定会发散。为了图片的美观,根据不同的模值定义不同的颜色。

    image image
    • Mandelbrot集

    生成Mandelbrot集和Julia集的原理是类似的,唯一的不同在于,迭代的表达式变为:

    image

    其中Z0表示复平面上的每个点。计算Mandelbrot集,也就是记录每个点在迭代过程中得到的复数的模值大于2时的迭代次数,然后根据迭代次数进行绘图,不同的迭代次数用不同的颜色表示,即可绘制出图。

    在Julia集中,C值是任意给定的复平面上的一点,对于所有复平面上的点Z而言,都是一样的。而Mandelbrot集中C就是该点Z,对于所有复平面上的点Z而言,都是不一样的。Julia集每个图形表示的是一个C值,而C值肯定是Z0值中的一个。因此Mandelbrot集是Julia集的高度概括,也就是任意一个C值对应的Julia图形,肯定可以在Mandelbrot集的图形中找到与其对应的图像。下面给出Mandelbrot集的图像:

    image

    下面给出

    image

    时的Mandelbrot集的图像:

    image

    下面给出次数为2时的Mandelbrot集局部放大时的图像:

    image image

    二、基于迭代函数

    基于迭代函数就是根据一定的规则,迭代生成分形图像。下面以谢尔宾斯基三角形和科赫雪花为例:

    • 谢尔宾斯基三角形

    由波兰数学家谢尔宾斯基在1915年提出。

    迭代规则:

    1,取一个底色为黑色的三角形,一般为等边三角形;
    2,沿三边中点的连线,将它分成四个小三角形;
    3,将中间的那一个小三角形底色变为白色;
    4,对其余三个小三角形重复步骤2,3;
    5,重复以上步骤;
    

    图示:

    image

    除了迭代法之外,也可以利用随机的方法获得。

    随机方法规则:

    1,在平面上选取3个点,并标出,为了美观,这3个点可以为等边三角形的顶点;
    2,在平面上任意选取一个点作为第4个点,作为候选点,在平面上标出;
    3,在数字1,2,3中随机选择一个数字。数字1,2,3的分别点1,2,3对应;
    4,选中的点和当前候选点的中点作为新的候选点,并在平面上标出;
    5,重复步骤3,4;
    

    图示:

    image
    • 科赫雪花曲线

    最早出现在海里格·冯·科赫1904年的论文中。

    规则:

    1,对于一个等边三角形,把每一边都三等分;
    2,将每个边的中间一段,向外旋转60度,作为等边三角形的一边,绘制出等边三角形;
    3,将中间的这一段去掉;
    4,重复上述步骤;
    

    图示:

    image
    点击获得更多趣味谜题以及基于Python3的解决方案代码。欢迎Follow,感谢Star!!! 扫描关注微信公众号pythonfan,获取更多。 image image

    相关文章

      网友评论

        本文标题:Python3 趣味系列题14----分形

        本文链接:https://www.haomeiwen.com/subject/pjxpjctx.html