数学实验 matlab Koch雪花

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档