《数学应用之分形课件.ppt》由会员分享,可在线阅读,更多相关《数学应用之分形课件.ppt(39页珍藏版)》请在三一办公上搜索。
1、2023/3/13,黄建华制作,0,4.6.1由生成元生成的分形图形,cantor三分集 生成方法:选取一条直线段F0,将该线段三等分,去掉中间一段,剩下两段。将剩下的两段分别再三等分,各去掉中间的一段,剩下四段。继续这样的操作,直至无穷,则可得到一个离散的点集,称为cantor三分集。程序略。,由生成元产生的分形是一种规则分形,是数学家按照一定规则构造出来的,相当于物理学种的模型。构造特点:最终图形是按照一定规则R对初始F0不断修改得到的。,2023/3/13,黄建华制作,1,4.6.1由生成元生成的分形图形,koch曲线 生成方法:选取一条直线段F0,将该线段三等分,并将中间一段用以该线段
2、为边的等边三角形的另外两条边代替,得到图形F1。再将F1的每一段都按上述方法修改,直至无穷,则最后得到的极限曲线,称为koch曲线。,2023/3/13,黄建华制作,2,4.6.1由生成元生成的分形图形,程序:clear;clf;new=0,1;%定义初始线段的两端kmax=20;%迭代次数 for k=1:kmax old=new;%保存原有各点的坐标 n=length(old)-1;%计算需要改变图形的线段数目 for m=0:n-1%计算各新线段两端点的坐标(5点)diff=(old(m+2)-old(m+1)/3;%取新线段长度向量 new(4*m+1)=old(m+1);%新线段第一
3、点坐标new(4*m+2)=old(m+1)+diff;%新线段第二点坐标new(4*m+3)=new(4*m+2)+diff*(1+sqrt(3)*i)/2);%第三点new(4*m+4)=old(m+1)+2*diff;%第四点endnew(4*n+1)=old(n+1);%最后一点plot(new);axis equal;end,2023/3/13,黄建华制作,3,4.6.1由生成元生成的分形图形,2023/3/13,黄建华制作,4,4.6.1由生成元生成的分形图形,分形树 生成方法:选取一条直线段F0,将该线段三等分,在等分点上各画一条长度为原线段长度三分之一的线段,并与原线段成固定夹
4、角,得到图形F1。再将F1的每一段都按上述方法修改,直至无穷,则最后得到的极限图象,称为分形树。,a,b,c,d,e,o,2023/3/13,黄建华制作,5,4.6.1由生成元生成的分形图形,程序:clear;clf;th=pi/6;%设置角度u=0,0;0,1;%初始线段坐标 rov1=cos(th),-sin(th);sin(th),cos(th);rov2=rov1;%坐标变换矩阵kmax=15;%循环次数for k=1:kmax uuu=;%建立一空数组,保存点坐标 n=length(u)/2;%计算需要改变图形的线段数目 for m=0:n-1%计算各新端点的坐标 p1=(u(2*m
5、+1,:)*2+u(2*m+2,:)/3;%a点 p2=(u(2*m+1,:)+u(2*m+2,:)*2)/3;%b点pp=(u(2*m+2,1)-u(2*m+1,1);(u(2*m+2,2)-u(2*m+1,2)/3;%计算新线段向量,2023/3/13,黄建华制作,6,4.6.1由生成元生成的分形图形,lp=rov1*pp;%第一条树枝偏转向量 lp=p1+lp;%第一条树枝端点C坐标 rp=rov2*pp;%第二条树枝偏转向量 rp=p2+rp;%第二条树枝端点D坐标 uu=u(2*m+1,:);p1;p1;lp;p1;p2;p2;rp;p2;u(2*m+2,:);%按顺序排列新线段两端
6、点的坐标uuu=uuu;uu;endu=uuu;plot(u(:,1),u(:,2);axis(-0.5,0.5,0,1);end,2023/3/13,黄建华制作,7,4.6.1由生成元生成的分形图形,2023/3/13,黄建华制作,8,4.6.2由迭代函数系生成的分形图形,以及相应的一组概率:p1,p2,.,pn(p1+p2+.+pn=1,pi0)。对于任意选取的初始值z0=(x0,y0),以概率pi选取变换wi做迭代:zk+1=(xk+1,yk+1)=wi(xk,yk),k=0,1,2,.则点列zk收敛的极限图形称为一个IFS吸引子,即分形。利用IFS迭代可以生成美丽的分形,而且IFS迭代
7、的程序具有通用性,要想得到不同的分形只需改变变换种的系数和概率值。,由迭代函数系(IFS)产生分形的一般算法是:给定平面上的一组仿射变换wi:,2023/3/13,黄建华制作,9,4.6.2由迭代函数系生成的分形图形,步骤:(1)设定迭代的可视区域为:V=(x,y)|xminxxmax,yminyymax再按分辨率的大小V分成a*b的网格,网格点为(xi,yi),其中:xi=xmin+(xmax-xmin)*i/a,i=0,1,2,.,ayi=ymin+(ymax-ymin)*i/b,i=0,1,2,.,b设迭代N次;(2)设定初始点(x0,y0),不妨取(0,0);(3)在数列1,2,.,n
8、中,以概率pi选取变换wi;(4)将变换作用到点(xk,yk)上,得到新点(xk+1,yk+1);(5)画出点(xk,yk),直到循环结束。,2023/3/13,黄建华制作,10,4.6.2由迭代函数系生成的分形图形,barnsley羊齿叶,程序:clear;clf;n=100000;%设置迭代次数v=rand(n,1);%随机数用于每一步做概率系数x0=0;y0=0;x=x0;zeros(n-1,1);y=y0;zeros(n-1,1);%可视区域点数for i=2:n%按规则计算下一点坐标,2023/3/13,黄建华制作,11,4.6.2由迭代函数系生成的分形图形,vv=v(i);%取概率
9、if vv0.01%概率p=0.01y(i)=0.16*y(i-1);elseif vv0.86%概率p=0.85x(i)=0.85*x(i-1)+0.04*y(i-1);y(i)=1.6-0.04*x(i-1)+0.85*y(i-1);elseif vv0.93%概率p=0.07x(i)=0.2*x(i-1)-0.26*y(i-1);y(i)=1.6+0.23*x(i-1)+0.22*y(i-1);elsex(i)=-0.15*x(i-1)+0.28*y(i-1);y(i)=0.26*x(i-1)+0.24*y(i-1)+0.44;end,2023/3/13,黄建华制作,12,4.6.2由迭
10、代函数系生成的分形图形,endplot(x(1:n),y(1:n),.r,markersize,1);axis off,2023/3/13,黄建华制作,13,4.6.2由迭代函数系生成的分形图形,sierpinski垫,程序:clear;clf;n=100000;%设置迭代次数v=rand(n,1);%随机数用于每一步做概率系数x0=0;y0=0;x=x0;zeros(n-1,1);y=y0;zeros(n-1,1);%可视区域点数for i=2:n%按规则计算下一点坐标,2023/3/13,黄建华制作,14,4.6.2由迭代函数系生成的分形图形,vv=v(i);%取概率if vv0.333%
11、概率p=0.333x(i)=0.5*x(i-1);y(i)=0.5*y(i-1);elseif vv0.666%概率p=0.333x(i)=0.5*x(i-1)+0.25;y(i)=0.433+0.5*y(i-1);elsex(i)=0.5*x(i-1)+0.5;y(i)=0.5*y(i-1);endendplot(x(1:n),y(1:n),.b,markersize,1);axis off,2023/3/13,黄建华制作,15,4.6.2由迭代函数系生成的分形图形,2023/3/13,黄建华制作,16,4.6.2由迭代函数系生成的分形图形,分形树,程序:clear;clf;n=100000
12、;%设置迭代次数v=rand(n,1);%随机数用于每一步做概率系数x0=0;y0=0;x=x0;zeros(n-1,1);y=y0;zeros(n-1,1);%可视区域点数for i=2:n%按规则计算下一点坐标,2023/3/13,黄建华制作,17,4.6.2由迭代函数系生成的分形图形,vv=v(i);%取概率if vv0.05%概率p=0.05y(i)=0.5*y(i-1);elseif vv0.45%概率p=0.4x(i)=0.42*x(i-1)-0.42*y(i-1);y(i)=0.2+0.42*(x(i-1)+y(i-1);elseif vv0.85x(i)=0.42*(x(i-1
13、)+y(i-1);y(i)=0.42*(y(i-1)-x(i-1)+0.2;elsex(i)=0.1*x(i-1);y(i)=0.2+0.1*y(i-1);end,2023/3/13,黄建华制作,18,4.6.2由迭代函数系生成的分形图形,endplot(x(1:n),y(1:n),.m,markersize,1);axis off,2023/3/13,黄建华制作,19,4.6.2由迭代函数系生成的分形图形,levy曲线,程序:clear;clf;n=100000;%设置迭代次数v=rand(n,1);%随机数用于每一步做概率系数x0=0;y0=0;x=x0;zeros(n-1,1);y=y0
14、;zeros(n-1,1);%可视区域点数for i=2:n%按规则计算下一点坐标,2023/3/13,黄建华制作,20,4.6.2由迭代函数系生成的分形图形,vv=v(i);%取概率if vv0.5%概率p=0.5x(i)=0.5*(x(i-1)-y(i-1);y(i)=0.5*(x(i-1)+y(i-1);elsex(i)=0.5*(x(i-1)+y(i-1)+0.5;y(i)=-0.5*(x(i-1)-y(i-1)+0.5;endendplot(x(1:n),y(1:n),.m,markersize,1);axis off,2023/3/13,黄建华制作,21,4.6.2由迭代函数系生成
15、的分形图形,2023/3/13,黄建华制作,22,给定一个初始复数z0,由迭代:zk+1=zk2+c,k=0,1,2,.其中zk为复数,c为复常数 对于给定的初始复数z0,迭代序列zk可能有界,也可能发散到无穷。使得序列zk有界的所有初值z0的集合J称为复平面上的julia集。对于不同的参数c,julia集的形状会有不同。若固定初值z0,则对于不同的参数 c,迭代序列 zk可能有界,也可能发散到无穷。使得序列zk有界的所有参数c的集合M称为复平面上的mandelbrot集。对于不同的参数z0,mandelbrot集的形状也会有不同。,4.6.3由复变函数迭代生成的分形图形,2023/3/13,
16、黄建华制作,23,为了便于绘图,令zk=xk+iyk,c=p+iq,则:xk+1=xk2-yk2+p,yk+1=2xkyk+q记:rk+1=sqrt(xk2+yk2)则序列zk有界相当于序列rk 有界,可用一个上界值M来判断是否有界。julia集绘制步骤:(1)选定p,q,最大迭代次数kmax,上界M,显示分辨率(xmax,ymax)迭代区域xmin,xmax;ymin,ymax,步长hx=(xmax-xmin)/xmax,hy=(ymax-ymin)/ymax,进行循环,4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,24,(2)建立初值与计算机屏幕上点的对应关系:x
17、0=xmin+ihx,y0=ymin+ihy,k=0(3)计算:x1=x02-y02+p,y1=2x0y0+q;k=k+1,r=sqrt(x12+y12)(4)判断:若rM,表明点(x0,y0)产生的序列无界,用白色显示点并转向步骤(2);若k=kmax,表明点(x0,y0)产生的序列有界,用黑色显示点并转向步骤(2);若rM且kkmax,则继续迭代;,4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,25,mandelbrot集程序:clear;clf;x=linspace(-1.5,1.5,300);y=linspace(-2.25,0.75,300);%设置显示范围
18、X,Y=meshgrid(x,y);%设置像素点的坐标n=100;c=X+i*Y;Z=X+i*Y;for k=1:n%迭代过程Z=Z.2+c;endW=abs(Z);pcolor(X,Y,W);%绘制当前颜色矩阵W的伪彩色图shading flat;%画出二维曲面W的阴影,axis(square);colormap prism(256)%创建颜色矩阵,并返回颜色值gtext(mandelbrot图),4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,26,4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,27,mandelbrot集程序修改:clea
19、r;clf;x=linspace(-2,0.5,300);y=linspace(-1.25,1.25,300);%设置显示范围X,Y=meshgrid(x,y);%设置像素点的坐标n=200;c=X+i*Y;Z=0;W=zeros(size(X);for k=1:n%迭代过程Z=Z.2+c;i0=find(abs(Z)2);W(i0)=k;Z(i0)=nan;endi0=find(W=0);W(i0)=nan;pcolor(X,Y,W);shading flat;axis(square);colormap prism(256)gtext(mandelbrot图),4.6.3由复变函数迭代生成的
20、分形图形,2023/3/13,黄建华制作,28,4.6.3由复变函数迭代生成的分形图形,龟图,2023/3/13,黄建华制作,29,mandelbrot集程序再修改:clear;clf;x=linspace(-0.74547,-0.74538,300);y=linspace(0.11298,0.11304,300);%设置显示范围X,Y=meshgrid(x,y);%设置像素点的坐标n=200;c=X+i*Y;Z=0;W=zeros(size(X);for k=1:n%迭代过程Z=Z.2+c;i0=find(abs(Z)2);W(i0)=k;Z(i0)=nan;endi0=find(W=0);
21、W(i0)=nan;pcolor(X,Y,W);shading flat;axis(square);colormap prism(256)gtext(mandelbrot图),4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,30,4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,31,4.6.3由复变函数迭代生成的分形图形,x=linspace(-0.19590,-0.13824,300);y=linspace(1.01480,1.06707,300);,2023/3/13,黄建华制作,32,julia集程序:clear;clf;x=linspac
22、e(-1.5,1.5,300);y=x;%设置显示范围X,Y=meshgrid(x,y);%设置像素点的坐标n=100;c=0.25+0.52*i;Z=X+i*Y;for k=1:n%迭代过程Z=Z.2+c;endW=abs(Z);pcolor(X,Y,W);%绘制当前颜色矩阵W的伪彩色图shading flat;%画出二维曲面W的阴影,axis(square);colormap prism(256)%创建颜色矩阵,并返回颜色值gtext(julia图:c=0.25+i*0.52),4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,33,4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,34,4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,35,4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,36,4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,37,4.6.3由复变函数迭代生成的分形图形,2023/3/13,黄建华制作,38,4.6.3由复变函数迭代生成的分形图形,