【发布时间】:2016-10-28 13:13:05
【问题描述】:
这是我得到的任务:
复数可以在二维空间上表示。考虑 c=x+1j*y 形式的复数 cc(j 是虚数单位),其中 x∈[−2,0.5] 和 y∈[−1,1]。想象在这个空间中有一个二维网格,网格的每一步都是 10^(-2) 。对于与网格的一个节点对应的每个 c,计算迭代函数 Z_{n+1} = Zˆ2_n + c,其中 n∈[1,100] 和 Z_0=0 。如果 Z_n 发散(即 |Z_n| 是 NaN,否则将其着色为白色,则将与 c 对应的单元格用黑色着色来绘制网格。
因为我不是数学系的学生,所以我遇到了麻烦。到目前为止,我可以做到这一点:
import numpy as np
x_values = np.arange(-2, 0.5, 0.01)
y_values = np.arange(-1, 1, 0.01)
M = np.zeros((len(x_values), (len(y_values))), dtype = "complex")
for x in range(len(x_values)):
for y in range(len(y_values)):
M[x][y] = x_values[x] +1j*y_values[y]
你能告诉我如何定义一个函数,它采用像我们所拥有的那样的网格/数组,初始化 z=0,然后初始化 100 次(即对于范围内的 n(100)):z = z** 2 + 网格 然后在循环之后返回 z。 然后绘制图像:
【问题讨论】:
-
您的所有方程式似乎都被粘贴了两次,使它们无法阅读。请调整并重新格式化。
-
听起来你的任务是实现一个 Mandelbrot 集(或者可能是一个 Julia 集)计算器。
-
尽可能地调整了问题