当前位置:文档之家› 数学实验 matlab Koch雪花

数学实验 matlab Koch雪花

作业二
实验内容:
对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。

编制程序绘制出它的图形,并计算Koch雪花的面积,以及它的分形维数。

实验过程:
1、代码如下:
function xuehua(k)
for j=0:2
if j==0;
p=[0,0;10,0];
elseif j==1;
p=[5,-5*sqrt(3);0,0];
else j==2;
p=[10,0;5,-5*sqrt(3)];
end
n=1;
A=[cos(pi/3),-sin(pi/3);sin(pi/3),cos(pi/3)];
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=4*n;
clear p
p=[r;q2];
clear r
end
plot(p(:,1),p(:,2))
hold on;
axis equal
end
不同n对应不同的图像如下:
k=1 k=3
总结分析:
Koch雪花的面积:
k=0时
S=
2
4
r
k=1时
S=
2
4
r
+
2
12
r
k=2时
S=
2
r
+
2
+
2
k=3时
S=
2
r
+
2
+
2
+
2
k=n时
S=
2
+
2
+ …
+
2(1)12
1
*4*()
43
n
n
r
r--
-
+
2(1)2
*4*()
43
n
n
r
r-
每一次迭加,所产生的新三角形的边长变为上一次的1
3,数量为上一次的4倍.
S=2
+
2
*(3*
2
1
()
3+12*
2
2
1
()
3+……+3*(1)
4n-*
2
1
()
3n)
=
2
4
r
+
2
4
r
*
(1)2
1
1
[3*4*()]
3
n
i
i
i
-
=

曲线总面积无穷大。

分形维数:
根据迭代的规律得到:相似形个数:m=6 边长放大倍数:c=3,ln ln ln6ln3
d m c
=÷=÷=1.631。

相关主题