cx,cy的意思就是参数Z的实部和虚部的值。这个程序中令cx=1,cy=0,则迭代方程还是Zn+1 =Zn^k+C,n趋向正无穷时就有z=z^n+c了
这程序设c的模小于2,迭代次数小于50次
用了个Block函数将z作为局部分量和全局变量区分清楚
通过画密度函数画出c的图像
实际上,这个程序可简化成
M1[x_,y_]:=
Block[{z,k=0},
z=x+y*I;
While[(Abs[z]<2.0)&&(k<50),++k;
z=z^2+(x+y*I)];
Return[k];
]
M2[px_,py_,p_]:=
Block[{t},
t=DensityPlot[M1[xx,yy],{xx,-1.5,0.5},{yy,-1.2,1.2},p,
Mesh->False,ColorFunction->Hue];
Return[t]
]
Mandelbrot=M2[x,y,{PlotPoints->120,PlotLabel->"Mandelbrot集"}]
你看看行不行
先简化一下公式,对于 Z[n+1] = Z[n] * k (注:方括号里面表示下标)
这是数学上的描述,表示序列中的下一个数字基于前一个数字计算得出。
但是在程序中,就得写 Z = Z * k。
变量范围,表示这个公式的输入的变量的范围。你可以换几个值试试。你看下这个:http://www.easyx.cn/samples/View.aspx?id=31
类似的,这里面给出了几组初值,不同的初值可以得到不同的迭代序列,画出不同的图案。
最后,cx=1, cy=0 代表迭代的初值,就是复数中的实部和虚部。
额 不懂