首页 > 解决方案 > 曼德布罗集在 Python 中

问题描述

我有个问题。我正在为我的课程做一项任务并且我正在尽力而为,但是老师的线索似乎没有帮助,我需要自己寻找问题面临的问题。

首先,我必须将这项任务从我的母语翻译成英语。因此,可能存在一些误解,因为从数学的角度很难解释它。

“有一个 Mandelbrot 集,它是由复数在曲面上定义的点创建的,因此以下递推方程不会趋于无穷大:

{ z0 = 0 // zn+1 = zn^2 + c

您必须制作大小为 600x600 的二维数组 T。该数组 T[k][l] 中的每个元素将表示一个复数 ckl = (−2 + k * 0.005, (−1.5 + l * 0.005)^i)。接下来为 T[k][l] 中的每个元素计算序列中的前 n_max = 100 个数字并将该值保存为 n,对于 |zn| > 2。”

是的,那很痛苦。我对此进行了很多搜索,但我无法使用所有其他 Python 脚本来解决该任务。我最终使用了这个:LINK,并做了这个:

import matplotlib.pyplot as plt


k = 600
l = 600

T = [0][0]


for i in range(k):
    for j in range(k):
        z = 0 + 0j
        c = complex(-2 + i * 0.005, -1.5 + j * 0.005)
        for g in range(100):
            z = z * z + c
            if abs(z) > 2.0:
                T = i
                break


plt.figure(dpi=200)
plt.imshow(T, cmap="hot")
plt.show()

这真的很糟糕,我真的不明白这一点。另外我收到一个错误:TypeError: Invalid shape () for image data。几周前我找到了另一个解决方案,发送了它,但它必须按照脚本中描述的方式完成。请帮助..提前感谢您的时间。如果您需要该任务的任何其他屏幕截图,我会提供。

标签: pythonmandelbrot

解决方案


推荐阅读