返回列表 回复 发帖
小扫描矩形框架文件修改了一下,原文件删除,主要解决扫描速度不平稳问题。
从头学分形-2小扫描矩形框架修改文件.gsp (10.28 KB)
本贴主要采用模块化思想,层层加载,然后按需做小改动。
在定位与缩放文件中加载扫描框架文件,加载方法可用工具文件或复制粘帖,然后合并扫描中心,形成扫描平台。接下来加载ET算法文件或加载ET-DEM算法文件,再接下来加载色带文件。然后扫吧!
未命名.JPG
未命名.JPG
6、逃逸时间(ET)算法。
et算法.gsp (7.93 KB)
et算法工具.gsp (14.32 KB)
这是M集可视化算法的核心文件。要仔细解读。
对逃逸时间ET我是这样理解:以原点O为圆心r为半径作圆,当点c在圆内时,在力f的作用下(我将二次函数f=z^2+c看做力,物理本来就用F表示力)走出圆若需走三步,则该点c的et为3,若r加大走出圆的步子就需增多,则et变大,越靠近圆周走出圆的步子越少,表现为et越小,当处在圆外时,不用走一步就已经在圆外了,故et为0。当然有一种情况是无论走多少步也走不出圆外,则该点属于m集,et为迭代次数n。当然你也可以不画圆,画其它图形,这通过改变p的算法实现,这时ET也将变化,因为走出该图形的步子发生了变化。这样你对n、r、p、et就有了理解。P0的作用是提取et。Z0必须定位于0点,是因为该点为临界点,做其它M集也要将Z0定位于临界点(即f'(z)=0的零点),否则做不出M集。为什么必须定位于临界点,我的感性理解是该点的瞬时变化率为0,从该点出发能看出函数f对点c连续作用的影响,排除了其它因素的干扰。具体原因我也不知道,知道的老师请告知。
63# 柳烟

柳老师好,交流合作真好,你的UF文件我又要研读一阵子了。
问题13   Mandelbrot集的边界的维数为2,如何计算出来的?M集边界周长多少?M集面积多少?如何计算?
问题14   DEM算法中的距离公式如何得到的?
问题12的想法:
任何一个二次多项式f(z)=az^2+bz+c(a<>0)经过一个线性变量替换,可以变形为f(z)=z^2+c的形式,因此,只讨论多项式f(z)=z^2+c的迭代就行了。其它二次式迭代的M集相似于经典M集。

et算法(az^2+bz+c).gsp (12.22 KB)

68# xiaongxp

DEM,文件处理好一并上传,我想把本帖中的文件尽我所能做到成熟又干净,方便大家。
67# xiaongxp

谢谢向老师的资料。人多力量大。
7、et-dem算法:
DEM/M =Distance Estimation Method for Mandelbrot set = Milnor algorithm
距离估计法是刻画M集边界较成熟的算法,它的速度相对来说较快,精确度高,因此是刻画边界的最佳方法。对于该方法,关键是距离dist的计算,经过反复实验用以下两个公式都行,但公式2更好,它可以用于广义M-J集。公式具体含义看文件。
1、dist0 = 2 * |Z0| * log|Z0| / |d0|

2、dist1 = 2 * |Z1| * log|Z1| / |d1|
未命名.JPG

dem不带拉回数据文件.gsp (13.84 KB)

et-dem算法.gsp (21.41 KB)

问题15 dem能用来刻画N集的边界吗?若能算法如何呢?
8、分次迭代
如何提高扫图速度呢?分次迭代或叫接力迭代是可行的方法。它可以对逃逸区和收敛区提前结束迭代。对于边界附近的点,它是否属于M集必须有足够的迭代次数,且放大倍次越高,或说点的精确度越高的边界点它是否属于M集就越需要足够的迭代次数,所以分次迭代对边界点的提速也无能为力,这也就是为什么放大倍数越高速度越慢,分枝越多越靠近边界速度越慢的原因。
前面的456问也可以说明边界点附近扫图速度为什么慢:
4.        在M集和非M集之间,分界线在哪里?有没有一个明确的界线,将M集和非M集划分开来?或者说,能明确地给出这个界线的解析式吗?又或者说,有没有一个明确而简便的方法,使我们可以对任意一个复数C,给出其是否属于M集呢?
5.        如果没有这样的简单方法,也没有这样明确的界线。对于一个给定复数C,是否除了实际验算,就无法给出明确的答案呢?
6.        就算根据前面的定义实际验算,结论也是复杂的。如果经过一定次数的迭代运算,Z的绝对值超出了设定的常数R。那么很好,这个C不属于M集。
但也有可能,就算经过10000次运算,其绝对值还是很小。那么,就可以说C属于M集了吗?不一定!有可能,在接下来的10001次或以后,就可以发现Z的绝对值超出了R。
按理,上述迭代过程是个非常确定性的过程,而且很简单。所以,对于任意一个给定的C,其是否属于M集,应该是确定的。但实际上,对于某些C值,我们有可能无论经过多少次迭代,都无法给出结论,而我们又不能说,这个C就不属于M集了,因为说不定增加迭代次数,就发现超出R了。我有点迷茫和困惑了,这就是混沌吗?
返回列表