Koch分形雪花图的面积计算

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

Koch 分形雪花图的面积计算
一、问题叙述
分形几何图形最基本的特征是自相似性,这种自相似性是指局部与整体在形态、功能、
信息、时间、空间等方面具有统计意义上的相似。

在具有自相似性的图形中,图形局部只是整体的缩影,而整体图形则是局部的放大。

而本文我们要分析的是Koch 分形雪花图,包含以下三个问题:
1.描述Koch 分形雪花
2.证明Koch 分形雪花图K n 的边数为
n 1
L 34
n -=⨯
3.求Koch 分形雪花图的面积(数据),求
n n lim A rea (K )
→∞
二、问题分析
在分析Koch 分形雪花图之前,我们首先介绍Koch 分形曲线。

Koch 分形曲线的绘制原
理是:从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的两边代替,形成四条线段的折线,如图2.1所示:
图2.1 对一条线段进行第一次Koch 分形
然后,对形成的四条直线段的每一条的中间的三分之一部分用等边三角形的两边代替,形成十六条线段的折线。

这种迭代继续进行下去可以形成Koch 分形曲线。

在迭代过程中,图形中的点数将越来越多,而曲线的最终显示细节的多少将取决于迭代次数和显示系统的分辨率。

设P1和P2分别是原始的两个端点,现在需要在直线段的中间依次插入点Q1,Q2,Q3以产生第一次迭代图形。

显然,Q1位于P1右端直线段的三分之一处,Q3位于P1点右端直线段的三分之二处,而Q2点的位置可以看作由Q3绕Q1逆时针旋转60度而得到的,故可以处理Q Q 13
经过正交变换而得到Q Q 12 。

算法如下: (1)Q1P 1+P P Q P 1+P P /3;←←(2-1)/3;32(2-1)
(2)T
Q 2Q 1+Q 3-Q A ←⨯(1)
; (3)P 5P 2P 2Q1P 3Q P Q 3←←←←;;2;4。

在算法中,用正交矩阵A 构造正交变换,其功能作用是对向量作旋转,使之成为长度不变的另一向量。

在绘制Koch 曲线的过程中,取旋转的角度为
3
π
,则正交矩阵A 应取为:
c o s ()
s in (
)3
3
A =s in ()
c o s ()33ππππ


- ⎪





1.Koch 分形雪花的描述
Koch 分形雪花的原始图形是等边三角形,它是由三条相等的线段围成的三角形。

根据
前面介绍的一条线段的Koch 分形的原理可知,Koch 分形雪花的形成是对等边三角形的三条边进行Koch 分形,随着迭代次数的增加,即可形成Koch 分形雪花图。

2.证明Koch 分形雪花图K n 的边数为 n 1
L 34
n -=⨯
证:对于一条线段,第1次迭代生成的图形包含4条线段,第2次迭代后生成的共有
16条线段,第3次迭代后共有64条线段,以此类推,第n 次迭代后共有4n 条线段。

所以,第n 个图形(即第n-1次迭代)共有14n - 条线段。

对于该等边三角形,三条线段都进行Koch 分形,进行n-1次迭代 ,生成的雪花图K n 的的直线段数为134n -⨯,也即雪花图K n 边数为: n 1
L 34
n -=⨯。

3.求Koch 分形雪花图的面积 (1)递推法
首先,假设要进行分形的正三角形的边长为a,面积为S ,
则2
4S 。

设第一个图形为K 1,
面积为S 1,则S 1=S;第二个图形为K 2 ,面积为S 2,则102S =S +34()213
S ⨯⨯;第三个图形为K 3,
面积为S 3,则1122S =S +34S 323
⨯⨯⨯(),以此类推,第n 个图形为K n ,面积为S n ,则
1(n 1)2
n 2
S
S
34
(
)S n n
n 1
3
-⨯-=+⨯⨯≥-(2),依次迭代,将S n 1-最终表示成S 1的形式为:
11102122
n 2
(n 1)2S S +34S +34S +
+34
S n 133
3
⨯--⨯=⨯⨯⨯⨯⨯⨯()()()
111102122232
n -2
n -1S +3S 4+4+4+4
1333
3⎡⎤
⨯⨯⨯=⨯⨯⨯⨯⨯⨯⎢
⎥⎣

()2()()()()
括号内的和式为等比数列,首项为2
13⎛⎫

⎝⎭
,公比为2
143⎛⎫
⨯ ⎪
⎝⎭
,一共(n-1)项,所以
111102122232
n -2
n -14+4+4+4
333
3⎡

⨯⨯⨯⨯⨯⨯⨯⎢⎥⎣

()2(
)()()()=
2111214()
3321143n -⎧

⎪⎪⎛⎫⎡
⎤-⨯⎨⎬ ⎪⎢⎥⎝⎭⎣

⎪⎪⎩

⎛⎫-⨯ ⎪
⎝⎭
=
11
4159n -⎡
⎤⎛⎫⎢⎥⨯- ⎪⎢⎥⎝⎭⎣⎦
因此,
13
4S S +1S n 59n -⎡
⎤⎛⎫
⎢⎥=- ⎪
⎢⎥⎝⎭
⎣⎦
=n -1341+1-S
59⎧⎫⎡⎤⎪⎪⎛⎫
⎢⎥⎨⎬ ⎪⎢⎥⎝⎭⎪⎪⎣⎦⎩⎭
其中2
n
1,S =
≥。

所以,当迭代次数趋于无穷大时,
n n lim A rea (K )
→∞
=n lim S n →∞
=1.6S (其中2
S 4
,a 是正三角形的边长)
结论:当n →∞时,Koch 分形雪花图的面积为初始正三角形面积的1.6倍。

(2)格林公式法计算多边形面积法
多边形面积算法:
(
)(,)(,)D
Q P d x d y P x y d x Q x y d y
x
y
Γ
∂∂-
=
+∂∂⎰⎰

令,Q x P y ==-可得区域D 的面积计算公式为:
1
2
S dxdy ydx xdy D ==-+⎰⎰⎰Γ ,其中Γ是围绕多边形D 的逆时针方向的闭合曲线。

对Γ进行划分,11:(,)(,)j j j j j x y x y ++Γ
→ (j=1,2,…,n)
参数方程:(-)+1y (y
y )1x x t x x j j j y t j j j =+⎧⎪
⎨=+-+⎪⎩
(0,1)t ∈
1
1
1
0()(y
y )t j
j j j
j j y d x x
x y
d t
++Γ
⎡⎤-=--+-⎣



=11
1()(y
y )2
j j j j j x x y ++⎡⎤--+
-⎢⎥


1
110()()t j
j j j j j xd y y y x x x d t ++Γ
⎡⎤=-+-⎣
⎦⎰
⎰ =111(y
y )()2j j j j j x x x ++⎡⎤
-+-⎢⎥⎣⎦
11
()y (y
y )j
j j j j j j y d x x d y x x x ++Γ
-+=--+-⎰
1111
y y
j j j j j j j j x x y y x x ++++=-=
所以,多边形面积公式为:
1
11
y 1
y
2
n
j j j j j x S x =++=

顶点按逆时针排列,且()()1111y ,n n x x y ++=,。

根据上述原理,我们用MATLAB 首先编写Koch 分形雪花图形生成程序的编写,然后将生成
的所有的点的横纵坐标放在一个数组中(第一列代表点的横坐标,第二列代表点的纵坐标),应用多边形面积算法求解Koch 分形雪花的面积。

最后验证随着迭代次数的增加,Koch 分形雪花的面积是否收敛于1.6S (S 代表原始正三角形的面积)。

三、MATLAB 实验程序及注释
程序一:
%Koch 函数实现一条线段Koch 分形
function [p1 h1]=Koch(a,b,c,f,h)
%(a,b ),(c,f)表示初始线段的两个端点;h 表示迭代次数
%p1表示迭代h 次后,所有点的坐标;h1表示迭代h 次后节点的个数 p=[a b;c f]; n=2;
%与x 轴平行的那一条线段顺时针转转60度,其他两条逆时针旋转60度 if (a==0)&&(c==10)
A=[cos(pi/3) sin(pi/3);-sin(pi/3) cos(pi/3)]; else
A=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)]; end
for k=1:h%对指定线段的进行h 次迭代 d=diff(p)/3;
m=4*n-3;
q=p(1:n-1,:);
p(5:4:m,:)=p(2:n,:);
p(2:4:m,:)=q+d;
p(3:4:m,:)=q+d+d*A';
p(4:4:m,:)=q+2*d;
n=m;
end
p1=p;
h1=m;
plot(p(:,1),p(:,2),'b');
hold on
程序二:
%Koch分形雪花图的生成程序
function [s,s1,s3,t,h0]=tol(n)
%s表示迭代次数趋于无穷大时,Koch分形雪花图的面积
%s1表示用格林公式求多边形的面积法,求得n次迭代后,Koch分形雪花图的面积%s3表示用迭代法,求得n次迭代后,Koch分形雪花图的面积
%t表示s-s1的面积差值
%h0表示第n次迭代后,Koch分形雪花图的节点个数
%对正三角形的三边进行Koch分形
[p1 h1]=Koch(0,0,10,0,n);
[p2 h2]=Koch(5,5*sqrt(3),10,0,n);
[p3 h3]=Koch(0,0,5,5*sqrt(3),n);
%构造数组p,表示迭代n次后,所有节点点的坐标;
p=p1;
p(h2+1:1:2*h2-1,:)=p2(h2-1:-1:1,:);
p(2*h3:1:3*h3-2,:)=p3(h3-1:-1:1,:);
plot(p(:,1),p(:,2),'b');
fill(p(:,1),p(:,2),'b');
s1=0;
%格林公式求Koch分形雪花图的面积法
for j=1:3*h1-3
s2=p(j,1)*p(j+1,2)-p(j+1,1)*p(j,2);
s1=s1+s2;
end
s1=s1/2;
s=1.6*(1.0/4)*sqrt(3)*100;
s4=(1.0/4)*sqrt(3)*100;
t1=1-(4.0/9)^n;
s3=(1+3*t1/5)*s4;%用迭代法求Koch分形雪花图的面积法
t=s-s1;%计算随着迭代次数的增加,Koch分形雪花图的面积距离极限的逼近程度h0=3*h1-3;%计算n次迭代后,Koch分形雪花图的节点个数
四、实验图形及数据
在本次实验中,我们采用由(0,0),(5,(10,0)三个点构成的正三角形作为Koch分
形雪花图的原始图形,该正三角形的边长为10。

1.Koch分形雪花图
第0次迭代第1次迭代
第2次迭代第3次迭代
第4次迭代第5次迭代
第6次迭代第7次迭代
第8次迭代第9次迭代经过9次迭代,Koch分形的雪花图的绘制基本完成。

2.实验数据结果及分析
用上述编写的MATLAB程序,算出第n次迭代后,用迭代法和格林公式法计算多边形面积法计算出此时图形的面积,并和迭代次数趋于无穷大时的面积比较,比较结果如下表所示。

图的面积;s3表示用迭代法,求得n次迭代后,Koch分形雪花图的面积;s表示迭代次数趋于无穷大时,Koch分形雪花图的面积;t是s-s1的差,表示n次迭代后,Koch分形雪花图对它的极限面积的逼近程度;h0是n迭代后Koch,分形雪花的节点数。

下图为n次迭代后,Koch分形雪花图对它的极限面积的逼近程度。

对以上表格分析可得,用迭代法和格林函数法求得的Koch分形雪花图的面积是一致。

迭代到第10次时,Koch分形雪花图已经达到极限面积的99.99%,求得的面积已非常接近极限条件下的面积。

相关文档
最新文档