分形实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、对一条横向线段,先将其等分成4段,然后再将第二段向上移,将第三段向下移,再将第四段的相邻端点连接起来,迭代一次后变成图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)
运行结果:
根据迭代规律得到:形似形个数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