数学实验 matlab Koch雪花
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业二
实验内容:
对一个等边三角形,每条边按照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