分形实例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2、对一条横向线段,先将其等分成4段,然后再将第二段向上移,将第三段向下移,再将第四段的相邻端点连接起来,迭代一次后变成图3-21.继续迭代得到的分形图,称为Minkouski香肠。编制程序绘制出它的图形,并计算它的分形维数。

图3-21 Minkouski香肠一次迭代

(1)编辑实现上述迭代的函数

在Matlab中,编制一个函数来绘制Minkouski香肠的图形。具体代码如下:function frat1(k)

p=[0,0;10,0];

A=[0,1;-1,0];

n=1;

for s=1:k

j=0;

for i=1:n;

q1=p(i,:);

q2=p(i+1,:);

d=(q2-q1)/4;

j=j+1;r(j,:)=q1;

j=j+1;r(j,:)=q1+d;

j=j+1;r(j,:)=q1+d+d*A;

j=j+1;r(j,:)=q1+2*d+d*A;

j=j+1;r(j,:)=q1+2*d+d*A';

j=j+1;r(j,:)=q1+3*d+d*A';

j=j+1;r(j,:)=q1+3*d;

end

n=n*7;

clear p

p=[r;q2];

end

plot(p(:,1),p(:,2))

axis equal

将这个文件保存,文件名记为frat1.m. (2)绘制Minkouski香肠的图形

代码:frat(3)

运行结果:

代码:frat(5)

运行结果:

(3)计算Minkouski香肠的维数

根据迭代规律得到:形似形个数m=7,边长放大倍数c=4,故维数d=1.4037.因此,Minkouski香肠的维数介于1与2之间。具体计算如下:

d=ln m/ln c=ln 7/ln 4=1.4037

5、自己构造生成元(要有创意),按照图形迭代的方式产生分形图,用计算机编制程序绘出它的图形,并计算维数。

function frat2(k)

p=[-5,5;5,5;5,-5;-5,-5;-5,5];

A=[1.5,-0.5;0.5,1.5];

n=4;

for s=1:k

j=0;

for i=1:n;

q1=p(i,:);

q2=p(i+1,:);

d=(q2-q1)/3;

j=j+1;r(j,:)=q1;

j=j+1;r(j,:)=q1+d;

j=j+1;r(j,:)=q1+d+d*A;

j=j+1;r(j,:)=q1+2*d;

end

n=n*4;

clear p

p=[r;q2];

end

plot(p(:,1),p(:,2)) axis equal

相关文档
最新文档