这是一个迭代公式,式中的变量都是复数。
图1:曼德勃罗集
只要计算的点足够多,不管把图案放大多少倍,都能显示出更加复杂的局部,这些局部既与整体不同,又有某种相似的地方。图案具有无穷无尽的细节和自相似性。如图2所示形产生过程,其中后一个图均是前一个图的某一局部放大:
图2
图3
如下是产生图3的出发点。
出发点:
实部 Real 0.2537269133080432 ,
虚部 Imag. 0.000365995381749671135
The width of that screen is 9.45e-17
图形是由美国数学家曼徳勃罗教授于1975年夏天一个夜晚,在冥思苦想之余翻看儿子的拉丁文字典时想到的,起拉丁文的原意是“产生无规则的碎片”。曼德勃罗教授称此为"魔鬼的聚合物"。为此,曼德勃罗在1988年获得了"科学行为艺术大奖".
曼德勃罗特集是易并行计算的一个典型例子。采用分治技术,并行算法设计时分为静态任务分配和动态任务分配(可用work-pool or processor farm)。
1.测试用例
其中底部的数据(real_min, imag_min) to (real_max, imag_max)表示复平面窗口,real_min表示实部最小值,,imag_min表示虚部最小值,real_max表示实部最大值,imag_max表示虚部最大值.
2.曼德勃罗特集的计算
显示曼德勃罗特集是处理位映射图像的一个例子。首先要对图像进行计算,且计算量很大。
曼德勃罗特集是复数平面中的点集,当对一个函数迭代计算时,这些点将处于准稳定状态(quasi-stable),即将会增加或减少,但不会超过某一限度。通常该函数为:
式中zk+1是复数z = a + bi的第k+1次迭代,c是确定该点在复平面中位置的复数值。z的初始值为0。
迭代将一直进行下去,直到z的幅值(向量长度,这里为22ba+)大于2或者迭代次数已经达到某种任意的规定的限度。
化简计算:
用zreal表示z的实部,zimag表示z的虚部。则:
3.顺序代码
对一点值的计算并返回迭代次数的例程:
因此,所有给定的曼德勃罗特点必将处在以原点为中心,半径为2的圆中。