欢迎来到天天文库
浏览记录
ID:1480158
大小:548.00 KB
页数:13页
时间:2017-11-11
《第5章 逃逸时间算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章逃逸时间算法5.1基本思想5.2Julia集的逃逸时间算法5.3Mandelbrot集的逃逸时间算法5.4基于牛顿迭代的Julia集的逃逸时间算法1参考书:《分形算法与程序设计》逃逸时间算法的基本思想F(z)=z2+c当c=0时,由于z是复数,即z=x+yi,则有z2=z×z=(x+yi)×(x+yi)=x2+y2i2+2xyi=(x2-y2)+(2xy)i设复数z=x+yi的绝对值,即
2、z
3、=SQR(x2+y2)
4、F(z0)
5、=
6、x02-y02+2x0y0i
7、=SQR((x02-y02)2+(2x0y0)2)=SQR(x04+y04-2x02y02+4x02y02)=SQR((x
8、02+y02)2)=
9、z0
10、2若0<
11、z0
12、<1,
13、F(z0)
14、<
15、z0
16、,对于每一次迭代z趋向0,即z向0收敛。若
17、z0
18、>1,经过迭代z会趋向无穷,z向无穷逃逸。若
19、z0
20、>1,z是平面上的单位圆。5.12参考书:《分形算法与程序设计》逃逸时间算法的基本思想当c≠0时,其吸引子不再是0,而是一个区域,称混沌区。如图,假设有一个充分大的整数N,当未逃逸区域M中的初始点a经过小于N次迭代就达到未逃逸区域M的边界,甚至超出了边界,我们就认为点a逃逸出去了;而如果经过N次迭代后a的轨迹仍未到达M的边界,我们就认为,a是A上的点。用这样的方法,描绘出A的边界图形,这便是逃逸时间算法的基本思想。
21、5.13参考书:《分形算法与程序设计》5.2Julia集的逃逸时间算法4参考书:《分形算法与程序设计》5.2Julia集的逃逸时间算法算法:Julia标题:Julia集的逃逸时间算法参数:K(逃逸时间)m(逃逸半径)Mx,My(绘图范围)xs,xl,ys,yl(窗口范围)p,q(复平面上C的坐标)变量:x0,y0(坐标变量)r(膜变量)函数:SetP(x,y,color)(画点函数)BEGIN//初始化K=100m=500Mx=800My=600xs=-1.5xl=1.5ys=-1.5yl=1.5p=0.23q=0.043xb=(xl-xs)/Mxyb=(yl-ys)/My5参考书:《分
22、形算法与程序设计》5.2Julia集的逃逸时间算法FORnx=0TOMxFORny=0TOMyx0=xs+nx*xby0=ys+ny*ybk=0Loop1:xk=x0*x0-y0*y0+pyk=2*x0*y0+qk=k+1r=xk*xk+yk*ykx0=xky0=ykIFr>mTHENH=k;gotoLoop2ENDIFIFk==KTHENH=rGOTOLoop2ENDIFIFr<=m&&k23、的逃逸时间算法算法:Mandelbrot标题:Mandelbrot集的逃逸时间算法参数:K(逃逸时间)m(逃逸半径)Mx,My(绘图范围)xs,xl,ys,yl(窗口范围)p,q(复平面上C的坐标)变量:x0,y0(坐标变量)r(膜变量)函数:SetP(x,y,color)(画点函数)BEGINpl=0.9ps=2.3ql=1.2qs=-1.2K=100m=500Mx=800My=600p=(pl-ps)/Mxq=(ql-qs)/MyFORnp=0TOMxFORnq=0TOMyp0=ps+np*pq0=qs+nq*qk=08参考书:《分形算法与程序设计》5.3Mandelbrot集的逃逸24、时间算法x0=0y0=0Loop1:xk=x0*x0-y0*y0+p0yk=2*x0*y0+q0k=k+1r=xk*xk+yk*ykx0=xky0=ykIFr>mTHENH=kGOTOLoop2ENDIFIFr<=mANDk25、是f(z)=(2z3+1)/3z2则z的三个根分别是w1=1,w2=ei2π/3,w3=ei4π/3,三个根的吸引域A(w1),A(w2),A(w3)的交界便是牛顿函数的Julia集。经过迭代,在A(wi)上的点都会被吸引到点wi上。设一个较大的迭代次数N,以及一个距离小量r,当迭代次数达到N,其与根点的距离小于r的被认为是收敛到某根上了,否则被认为是逃逸了。11参考书:《分形算法与程序设计》5.4基于牛顿迭代的Julia集的逃逸时
23、的逃逸时间算法算法:Mandelbrot标题:Mandelbrot集的逃逸时间算法参数:K(逃逸时间)m(逃逸半径)Mx,My(绘图范围)xs,xl,ys,yl(窗口范围)p,q(复平面上C的坐标)变量:x0,y0(坐标变量)r(膜变量)函数:SetP(x,y,color)(画点函数)BEGINpl=0.9ps=2.3ql=1.2qs=-1.2K=100m=500Mx=800My=600p=(pl-ps)/Mxq=(ql-qs)/MyFORnp=0TOMxFORnq=0TOMyp0=ps+np*pq0=qs+nq*qk=08参考书:《分形算法与程序设计》5.3Mandelbrot集的逃逸
24、时间算法x0=0y0=0Loop1:xk=x0*x0-y0*y0+p0yk=2*x0*y0+q0k=k+1r=xk*xk+yk*ykx0=xky0=ykIFr>mTHENH=kGOTOLoop2ENDIFIFr<=mANDk25、是f(z)=(2z3+1)/3z2则z的三个根分别是w1=1,w2=ei2π/3,w3=ei4π/3,三个根的吸引域A(w1),A(w2),A(w3)的交界便是牛顿函数的Julia集。经过迭代,在A(wi)上的点都会被吸引到点wi上。设一个较大的迭代次数N,以及一个距离小量r,当迭代次数达到N,其与根点的距离小于r的被认为是收敛到某根上了,否则被认为是逃逸了。11参考书:《分形算法与程序设计》5.4基于牛顿迭代的Julia集的逃逸时
25、是f(z)=(2z3+1)/3z2则z的三个根分别是w1=1,w2=ei2π/3,w3=ei4π/3,三个根的吸引域A(w1),A(w2),A(w3)的交界便是牛顿函数的Julia集。经过迭代,在A(wi)上的点都会被吸引到点wi上。设一个较大的迭代次数N,以及一个距离小量r,当迭代次数达到N,其与根点的距离小于r的被认为是收敛到某根上了,否则被认为是逃逸了。11参考书:《分形算法与程序设计》5.4基于牛顿迭代的Julia集的逃逸时
此文档下载收益归作者所有