【发布时间】:2015-03-29 01:39:45
【问题描述】:
这是我在这里的第一篇文章,所以如果我没有遵守规则,我很抱歉
我最近学习了 python,我知道基础知识,我喜欢编写著名的集合并绘制它们,我已经为 hofstadter 序列和逻辑序列编写了代码,并且在这两个方面都取得了成功
现在我已经尝试在没有任何复杂参数的情况下编写 mandelbrot 序列,但实际上是“手动”完成的
例如,如果 Z(n) 是我的复数 (x+iy) 变量,而 C(n) 是我的复数 (c+ik)
我将序列写为 {x(n)=x(n-1)^2-y(n-1)^2+c ; y(n)=2.x(n-1).y(n-1)+c}
from math import *
import matplotlib.pyplot as plt
def mandel(p,u):
c=5
k=5
for i in range(p):
c=5
k=k-10/p
for n in range(p):
c=c-10/p
x=0
y=0
for m in range (u):
x=x*x-y*y + c
y=2*x*y + k
if sqrt(x*x+y*y)>2:
break
if sqrt(x*x+y*y)<2:
X=X+[c]
Y=Y+[k]
print (round((i/p)*100),"%")
return (plt.plot(X,Y,'.')),(plt.show())
p 是我想要的复杂参数的宽度和数量,u 是迭代次数
这就是我得到的结果:
我认为这与我想要的有点接近。
现在我的问题是,我怎样才能使函数更快?我怎样才能让它变得更好?
非常感谢!
【问题讨论】:
标签: python mandelbrot