当前位置:首页 > 数学实验
K(如K?16)(或者给定灰度级L).
(2)设定一个上界值M?2.
(3)将矩形区域R:?{(x,y)|?M?x,y?M}分成a?b的网格,分别以每个网点(fi,gi),fi??M?2M2M?i,gi??M??j,i?0,1,2,?,abj?0,1,2,?作为参数值(p,q)利用riter做迭代(实际上,只需对满足
p2?q2?4的初始点迭代).每次得带的初值均为(x0,y0)?(0,0).如果对所有
22n?N,xn?yn?M2,将图形的(i,j)像素点用黑色显示.否则,如果从迭代的
某一步n0开始有xn0?yn0?M2,则利用第种颜色显示相应像素(或者用相应的灰度级显示).
编写绘制Julia集的程序.对不同的参数(p,q)(:0,1),(-1,0),(0.11,0.66),(-0.10281,0.95732),(-1.25,-0.01)观察Julia集的不同局部放大,你能看到某些自相似现象吗?
绘制Mandelbrot集.然后,任意选取他的一个局部将其放大,然后再将放大图形的局部放大.由此观察Julia集与Mandelbrot集有何关系.进一步,取参数位于Mandelbrot集的不同部位(如内部、外部、边界、某个孢芽的内部等),观察相应的Julia集的形状变化.
2.3 IFS迭代
让我们以下面的一个简单的绘图游戏来说明IFS迭代.
在平面上任取不共线的三点A,B和C,并确定三个相应的概率
pA?0.50,pB?0.47,pc?0.03.任取一个点Z0,按下述步骤在平面上画出新的点列Zn,n?1,2,?Zn?1以概率pA选定为A与Zn的中点,以概率pB选定为B与Zn的中点,以概率pc选定为C与Zn的中点.即
?Zn?A?2, 以概率pA,??Z?B??n, 以概率pB,
2??Zn?C?2, 以概率pC.?Zn?1如果我们按上述步骤迭代下去,最终得到的图形会是什么样子呢?如果迭代仅仅只有一千次或一万次,我们将会看到乱七八糟的一片.因此,有人把这个游戏称为”混沌游戏”.但当迭代次数在一百万次以上时,图形将渐渐开始清晰.下图给出了迭代一亿次的结果.它正是我们前面提到的Sierpinski三角形的逼近图形!
上述绘图游戏中的迭代即是IFS迭代.IFS迭代的一般提法是: 给定一组变化?i:
?i(x,y)?(a11ix?a12iy?b1i,a21ix?a22iy?b2i),i?1,2,?,n以及相应的一
组概率p1,?pn(p1???pn?1,pi?0).对于任意选取的初始值Z0?(x0,y0),以及概率pi选取变换?i做迭代
Zn?1?(xn?1,yn?1)??i(xn,yn),n?0,1,2,?
则点列Zn,n?0,1,?收敛的极限图形称为一个IFS吸引子.利用迭代不仅可以生成许多有趣的图形,而且可以应用于分形图像的压缩.下面,我们给出IFS迭代绘制分形的方法.
设计算机屏幕的可视窗口为
V?{(x,y)|xmin?x?xmax,ymin?y?ymin},
按分辨率大小的要求将V分成a?b的网格,网格点为(xi,xi),这里
xi?xmin?(xmax?xmin)i/a,i?0,1,?a,yi?ymin?(ymax?ymin)i/b,j?0,1,?b.
用Vij表示矩形区域{(x,y)|xi?x?xi?1,yj?y?yj?1}.假设我们采取具有L(如L=256)级灰度的黑白图像绘制,总共的迭代次数为N,其中落于区域Vij中的点的个数为?ij.再记
??max?iji,?0?,1a,?j?1,?b0?,1 ,则像素(i,j)的灰度G(i,j)与落于Vij中的点数成正比: G(i,j)???ij??L,
于是即给出了IFS迭代产生的分形的L级灰度图像.
IFS迭代生成Sierpinski三角形的Mahemtica程序为:
输出图形为:
四、 实验总结
通过本实验,我们看到迭代的应用是广泛的,简单的一条曲线或者一个函 数,经过多次迭代以后都会产生奇妙的、不可想象的结果.与此同时,迭代产生的图形是非常漂亮(在本实验中我们可以看到这一点)的,在做实验的同时,我们也可以享受一下由迭代所生的实验结果的美妙.做迭代实验不仅是知识的学习,更是视觉的享受.
共分享92篇相关文档