论文部分内容阅读
摘要: Julia集是分形理论中具有重要地位的集合,近些年来有很多对于变换f(z)=z2+c生成分形图形的扩展研究,主要针对高阶非线性复映射迭代函数f(z)=zn+c,给出利用具体的逃逸时间算法生成分形图的具体步骤以及生成的Julia集图案。
关键词: Julia集;逃逸时间算法;分形;函数迭代
中图分类号:TP391.41 文献标识码:A 文章编号:1671-7597(2011)0920183-01
1 概述
分形几何中,许多重要的分形是由迭代产生的。因为迭代可以使一些看似简单的函数产生色彩斑斓、千变万化而又具有任意高分辨率结构的艺术图案,Julia集即为其中一种。近些年来有很多对于变换f(z)=z2+c生成分形图形的扩展研究,取得了很多理论成果和美丽的图形,但提到实现的算法时却步骤简单,本文即是在对迭代公式的扩展:f(z)=zn+c(n>2)的基础上,给出了实现算法的详细步骤。
2 Julia集概念与性质
复平面C上的简单变换(函数)可以生成一些结构复杂的集合。Julia集提供了利用简单函数的迭代过程却能生成复杂结构的集合的典型例子。其定义如下:设是阶数大于1的多项式,表C中那些轨道不趋于无穷点的点的集合,即:,称此集为对应于f的充满的Julia集,的边界称为多项式f的Julia集,记为
即: 。[1]
在计算机上绘制Julia集图形,需将复平面上的数据引入到平面直角坐标系中。对于高次复迭代函数f(z)=zn+c(n>2),迭代函数形式可表示为:zk+1=zkn+c(zk,c∈C,k=0,1,2,…)。
其中,Zk为第k次迭代后的复数xk+yki,C为常数cx+cyi,则每次给定的初始值Z0,代入公式可得到Z1,经过k次迭代后可得到复数序列:Z2,Z3,……,Zk,当c≠0且其实部和虚部都取较小的实数时,这个序列将有如下情况:
① 如果Z0的模也很小,当迭代次数达到足够多的时候,则迭代序列接近吸引子。
② 如果Z0的模比较大,达到一定迭代次数时,则迭代产生的复数的模趋向于无穷大。
这时我们就可以把平面上取到的初值点分成了两部分,①中的点构成的点的集合就是Julia集,而②中的点就构成了Fatou集。所以Julia集是复迭代过程f(z)=zn+c,当c为某一固定值时的一个吸引域,是一条分形曲线,由此得到了逃逸时间算法的基本思想。
逃逸时间算法的基本思想是对于一个不变集A,选取迭代步数为一个充分大的整数N,一个估计包含A的区城W及一个以原点为圆心、以充分大的R为半径且包含区城W的圆(把圆外区域记为V),对W中的每一点进行计算机迭代计算,若点z任W的轨道经小于或等于N次的迭代就达到了区域V,则z为逃逸点;如果达到N次迭代后z的轨道仍未到达V,则认为z是A上的点,此类点集构成了混沌吸引子。[2]
3 Julia集的逃逸时间算法
对于二次复迭代函数f(z)=z2+c,按照逃逸时间算法,实现还是比较简单的,但对于高阶情况,很多文章利用复变函数基本理论提出了高阶Julia集的解决方法,[3]对于f(z)=zn+c(n>2),显得较为复杂,也有通过复数高阶展开式而给出了实现方法,[4]每种情况需要单独处理比较繁琐,在此我们直接根据复数相乘的基本规则,给出了简单并且通用的求解方法。具体步骤如下:
1)参数初始化:
给定显示窗口范围MaxCol x MaxRow;给出复映射阶数n;给定复参数c,给定收敛界限即逃逸半径R的值;给定逃逸时间限值即迭代次数界限M,也是可显示的颜色数N+l,其中以0表示黑色;
2)确定迭代初值z0的取值范围,即:对于复数z0=x+yi,设置xmin,xmax,ymin,ymax,使得x∈[xmin,xmax],y∈[ymin,ymax],设置步阶长度令deltax=(xmax-xmin)/(MaxCol-1);deltay=(ymax-ymin)/(MaxRow
-1);
3)对有所有的点(nx,ny),nx=0,1,…,MaxCol -1,及ny=0,1,…,MaxRow-1,完成如下的循环:
第一步:令x0=xmin+nx*deltax,y0=ymin+ nx* deltay,zreal=temp= x0, zimag=y0,k=n-1,m=0
第二步:zreal= zreal*x0zimag*y0
zimag=2*temp*zimg;
zreal=temp; k=k-1
若k>0则重复第二步,本步骤目的为完成zn的迭代
第三步:按式zt+1=ztn+c完成迭代运算,zt+1=xt+yti同时m←m+1;
第四步:计算r=xt2+yt2;
判断:若r 若r>=R,则选择颜色m,转到第五步:
若m=M,则选择颜色0,转到第五步;
第五步:对点(nx,ny)即Zi显示颜色m,在视窗内取到下一点再转到第一步。
按照上述算法步骤,我们使用VC++6.0进行了实现,生成图形如图1。
图1f(z)=z6+c Julia分形图
4 结论
值得注意的是复迭代过程f(z)=zn+c中c的取值直接影响Julia分形图的形状。[5]逃逸时间算法是一种具有深刻理论背景,又行之有效的绘制分形图的方法,以上算法中,我们给出的颜色选择比较简单,相当于一个有N+1种颜色,设置过程性中利用逃逸时间函数的特性,逃逸的时间直接与一种颜色对应,对不同的逃逸时间着上不同的颜色,这种颜色方案得到的图形颜色块分界线明显,形成不同层次的逃逸区,为更深人地研究M分形图的混沌轨道提供了可能。
参考文献:
[1]曾文曲、王向阳,分形理论与分形的计算机模拟[M].东北大学出版社,2001:(7).
[2]迟东旋等,IFS吸引子构造混沌分形图的分类研究,2004中国控制与决策学术年会论文集.
[3]张宗杰、杨永生,Julia集的逃逸时间生成方法研究[J].苏州科技学院学报(自然科学版),2010(12).
[4]孙博文,分形算法与程序实现[M].科学出版社,2004(11).
[5]陈宁、孙晶、孙艳玲,构造具有Zn-1对称的复动力系统[J].沈阳建筑大学学报(自然科学版),2008(9).
关键词: Julia集;逃逸时间算法;分形;函数迭代
中图分类号:TP391.41 文献标识码:A 文章编号:1671-7597(2011)0920183-01
1 概述
分形几何中,许多重要的分形是由迭代产生的。因为迭代可以使一些看似简单的函数产生色彩斑斓、千变万化而又具有任意高分辨率结构的艺术图案,Julia集即为其中一种。近些年来有很多对于变换f(z)=z2+c生成分形图形的扩展研究,取得了很多理论成果和美丽的图形,但提到实现的算法时却步骤简单,本文即是在对迭代公式的扩展:f(z)=zn+c(n>2)的基础上,给出了实现算法的详细步骤。
2 Julia集概念与性质
复平面C上的简单变换(函数)可以生成一些结构复杂的集合。Julia集提供了利用简单函数的迭代过程却能生成复杂结构的集合的典型例子。其定义如下:设是阶数大于1的多项式,表C中那些轨道不趋于无穷点的点的集合,即:,称此集为对应于f的充满的Julia集,的边界称为多项式f的Julia集,记为
即: 。[1]
在计算机上绘制Julia集图形,需将复平面上的数据引入到平面直角坐标系中。对于高次复迭代函数f(z)=zn+c(n>2),迭代函数形式可表示为:zk+1=zkn+c(zk,c∈C,k=0,1,2,…)。
其中,Zk为第k次迭代后的复数xk+yki,C为常数cx+cyi,则每次给定的初始值Z0,代入公式可得到Z1,经过k次迭代后可得到复数序列:Z2,Z3,……,Zk,当c≠0且其实部和虚部都取较小的实数时,这个序列将有如下情况:
① 如果Z0的模也很小,当迭代次数达到足够多的时候,则迭代序列接近吸引子。
② 如果Z0的模比较大,达到一定迭代次数时,则迭代产生的复数的模趋向于无穷大。
这时我们就可以把平面上取到的初值点分成了两部分,①中的点构成的点的集合就是Julia集,而②中的点就构成了Fatou集。所以Julia集是复迭代过程f(z)=zn+c,当c为某一固定值时的一个吸引域,是一条分形曲线,由此得到了逃逸时间算法的基本思想。
逃逸时间算法的基本思想是对于一个不变集A,选取迭代步数为一个充分大的整数N,一个估计包含A的区城W及一个以原点为圆心、以充分大的R为半径且包含区城W的圆(把圆外区域记为V),对W中的每一点进行计算机迭代计算,若点z任W的轨道经小于或等于N次的迭代就达到了区域V,则z为逃逸点;如果达到N次迭代后z的轨道仍未到达V,则认为z是A上的点,此类点集构成了混沌吸引子。[2]
3 Julia集的逃逸时间算法
对于二次复迭代函数f(z)=z2+c,按照逃逸时间算法,实现还是比较简单的,但对于高阶情况,很多文章利用复变函数基本理论提出了高阶Julia集的解决方法,[3]对于f(z)=zn+c(n>2),显得较为复杂,也有通过复数高阶展开式而给出了实现方法,[4]每种情况需要单独处理比较繁琐,在此我们直接根据复数相乘的基本规则,给出了简单并且通用的求解方法。具体步骤如下:
1)参数初始化:
给定显示窗口范围MaxCol x MaxRow;给出复映射阶数n;给定复参数c,给定收敛界限即逃逸半径R的值;给定逃逸时间限值即迭代次数界限M,也是可显示的颜色数N+l,其中以0表示黑色;
2)确定迭代初值z0的取值范围,即:对于复数z0=x+yi,设置xmin,xmax,ymin,ymax,使得x∈[xmin,xmax],y∈[ymin,ymax],设置步阶长度令deltax=(xmax-xmin)/(MaxCol-1);deltay=(ymax-ymin)/(MaxRow
-1);
3)对有所有的点(nx,ny),nx=0,1,…,MaxCol -1,及ny=0,1,…,MaxRow-1,完成如下的循环:
第一步:令x0=xmin+nx*deltax,y0=ymin+ nx* deltay,zreal=temp= x0, zimag=y0,k=n-1,m=0
第二步:zreal= zreal*x0zimag*y0
zimag=2*temp*zimg;
zreal=temp; k=k-1
若k>0则重复第二步,本步骤目的为完成zn的迭代
第三步:按式zt+1=ztn+c完成迭代运算,zt+1=xt+yti同时m←m+1;
第四步:计算r=xt2+yt2;
判断:若r
若m=M,则选择颜色0,转到第五步;
第五步:对点(nx,ny)即Zi显示颜色m,在视窗内取到下一点再转到第一步。
按照上述算法步骤,我们使用VC++6.0进行了实现,生成图形如图1。
图1f(z)=z6+c Julia分形图
4 结论
值得注意的是复迭代过程f(z)=zn+c中c的取值直接影响Julia分形图的形状。[5]逃逸时间算法是一种具有深刻理论背景,又行之有效的绘制分形图的方法,以上算法中,我们给出的颜色选择比较简单,相当于一个有N+1种颜色,设置过程性中利用逃逸时间函数的特性,逃逸的时间直接与一种颜色对应,对不同的逃逸时间着上不同的颜色,这种颜色方案得到的图形颜色块分界线明显,形成不同层次的逃逸区,为更深人地研究M分形图的混沌轨道提供了可能。
参考文献:
[1]曾文曲、王向阳,分形理论与分形的计算机模拟[M].东北大学出版社,2001:(7).
[2]迟东旋等,IFS吸引子构造混沌分形图的分类研究,2004中国控制与决策学术年会论文集.
[3]张宗杰、杨永生,Julia集的逃逸时间生成方法研究[J].苏州科技学院学报(自然科学版),2010(12).
[4]孙博文,分形算法与程序实现[M].科学出版社,2004(11).
[5]陈宁、孙晶、孙艳玲,构造具有Zn-1对称的复动力系统[J].沈阳建筑大学学报(自然科学版),2008(9).