Множество Мандельброта в Python

У меня проблема. Я делаю задание для своих уроков и стараюсь изо всех сил, но подсказки учителей, кажется, не помогают, и мне нужно искать проблему самому, сталкиваясь с проблемой.

Для начала мне нужно было перевести это задание с моего родного языка на английский. Поэтому из-за этого могут быть некоторые недоразумения, поскольку это было трудно объяснить с математической точки зрения.

«Существует множество Мандельброта, которое создается точками, заданными на поверхности комплексными числами, так что следующее рекуррентное уравнение не стремится к бесконечности:

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

Вам нужно сделать двумерный массив T размером 600x600. Каждый элемент этого массива 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 data data. Я нашел другое решение пару недель назад, отправил его, но это должно быть сделано так, как описано в скрипте. Пожалуйста, помогите .. спасибо за ваше время заранее. Если нужны еще скриншоты задания, предоставлю.


person Snorku    schedule 18.05.2020    source источник
comment
........Гронт? ?   -  person user366312    schedule 21.05.2020
comment
Здесь: T = [0][0] переменная T является целым числом 0, потому что первое [0] представляет собой список из одного целого числа 0, а второе извлекает данные по своему 0му индексу, который является целым числом 0   -  person ForceBru    schedule 21.05.2020
comment
Тогда я должен сделать это: T = [[0]*l for i in range(k)] ?   -  person Snorku    schedule 21.05.2020