Peano 曲线与正方形,作为点集,它们之间可以做出1-1 对应来. 于是平面上的点就可以不用两个有序实数(横坐标与纵坐标)表示

来源: marketreflections 2010-10-27 05:50:05 [] [博客] [旧帖] [给我悄悄话] 本文已被阅读: 次 (10138 bytes)
http://202.113.29.5/artsmath/uploads/dzja/ja5.6.pdf;jsessionid=D33C59CCF55EFDB8742B2ADD3BC4AC6A

291
5.6 分形与分数维
教学要求
要求了解简单分形图形与朴素的分数维概念,并从中欣赏数学的美.
知识点
1.几个常见的分形图
2.分数维数的概念
5.6.1. 几个常见的分形图
在近代数学的发展长河中, 与混沌密切相关的一门新的几何学诞生和发展起来了, 这就
是分数维几何学. 1982 年, 美国科学家曼德布罗特(B. Mandelbrot)出版了“自然界的分数维几
何”一书, 从此, 分形或分数维就成了科学家们的一个热门话题.
我们熟悉经典的维数概念, 知道点、直线、平面、立体分别是0 , 1 , 2 , 3 维的. 如果把
时间变量添入我们生活的空间, 那么就出现了4 维空间. 更一般地, 具有n 个自由度的对象,
就是n 维的. 这些维数都是非负整数. 但是在自然界又充满着许多人们熟悉的但又十分变幻
莫测的现象, 它们涉及的几何图形无法用整数维数去解释. 比如天上多变的云彩, 地上河网
水系,复杂形状的海岸线, 人体内的血管分布等等. 因此, 不要以为分数维概念是数学家头脑
中凭空产生的, 它也是在人类生产实践、科学实验与艺术实践的推动下出现的.
从数学本身来说, 经典的欧几里德几何研究圆规与直尺画的图形. 自牛顿~莱布尼兹创
建微积分以来, 微分几何学研究光滑的即可微分的图形. 这些图形都具有特征长度, 如圆的
半径, 正方形的边长, 可微曲线的弧长等等. 但是许多复杂的图形没有这样的特征长度, 但
又有着明显的自相似或扩展对称性结构. 例如从集合论奠基者康托(Cantor)命名的康托集,
你将会看到, 它的长度为0, 但这个集合的点又与1 维的实数集一样多. 你说它是0 维呢, 还
是1 维呢? 无法解释. 只有分数维的理论才能给以科学的说明.
我们不打算也不可能介绍纯理论的分数维概念, 只是从若干常见的分形图形初步了解
分形或分数维几何的基本思想, 而且从中也将获得有趣的艺术欣赏, 体会数学的美感, 还可
了解计算机对于艺术的强大功能.
实验5.6.1 经典康托集.
在区间 [ 0, 1 ]上, 截去中间的1 / 3,即开区间



3
, 2
3
1
,得两个闭区间


∪  


 1 ,
3
2
3
0, 1 ,其
总长度为2/3; 在留下的两段中, 再截去它们各自中间的1 / 3, 即两个开区间



∪ 




2 2 2 32
, 8
3
7
3
, 2
3
1
,得四个闭区间


∪  


∪  


∪  



2 2 2 2 2 2 32
, 9
3
8
3
, 7
3
6
3
, 3
3
2
3
0, 1 ,其总长
度为(2/3) 2; 如此继续, 一般地, 在第n 步, 截去2n-1 开区间
 

 
 − −








n n
n
n n n n 3
, 3 1
3
, , 3 2
3
, 8
3
, 7
3
, 2
3
1 n
L ,得2n个闭区间, 其总长度为(2/3) n.当n →∞
时, 最后所留下的极限集称为康托集, 记作F . 简单地说, F 是从[0 , 1]减去无穷多个开区间
得到的. 显然F 的长度等于0
3
lim 2 = 




→∞
n
n
.另一方面,可以作出F 与实数集之间的一一对应来,
也就是说, F 与实数集有同样多的点. 现在要问, F 的维数是多少? 是0, 还是1? 你再把康托
292
集的构造过程用图表示出来.
实验5.6.2 Weierstrass 函数.
德国数学家K. Weierstrass ( 1815 ~ 1897 ) 在1872 年发现了一个处处连续而又处处不可
微的函数. 我们通常作函数的图象, 即使是分段连续的, 各段上也是光滑的, 即可微的.
Weierstrass 函数的发现, 在数学史上具有重大意义, 它使人们确信, 直观的结论, 必须用严
格的数学逻辑来论证, 直观只是为理性思维提供启迪, 当然这种启迪是十分必要的. 目前
Weierstrass 函数常用的一种形式是
w(x) b( 2) (1 cos(bk x))
k
= Σ d k − +∞
=−∞
− , b > 1 , 1< d < 2 . (5.6.1)
对b = 1.5 , d = 1.2 , 1.5 , 1.8, 请你作出w(x)的图象.
注意, (5.6.1)是极限函数, 作图时可取有限和. 例如可按下述程序作图:
f [b_ , d_ ] := Sum [ b^( (d-2) k ) ( 1-Cos [b^k * x] ) , {k, -100, 100} ]
f1 [x_ ] := f [ 1.5 , 1.8 ] ;
Plot [ N [ f1 [ x ] ] , { x, 0, 1 } ]
将得到图5.24. 然后取定一组参数 ( b , d ) , 对同样的和, 但对不同的区间作图, 比如
x∈[0,1] , [0, 0.2 ], [0, 0.04]. 你将看到这些图形的相似性, 后者是从前者截取的一部分, 这
正是Weierstrass 函数图象的自相似性.
0.2 0.4 0.6 0.8 1
2.5
5
7.5
10
12.5
15
图5.24
实验5.6.3 Koch 雪花曲线
Weierstrass 函数的构造过于复杂, 数学家们沿着这个方向继续深入的研究,Von Koch 于
1904 年用简单的初等方法构造出一种同样是处处连续又处处不可微的曲线, 封闭起来形状
像雪花, 称为Koch ( 雪花 ) 曲线. 其构造过程如下:
取定一条线段E0 (不妨设为单位长), 以中间的 1/3 线段A 为边作正三角形,然后截去A,
得到由四条长1/3 的线段组成的折线E1, 再对E1 的每一线段施行同样的手术, 得到折线E2,
如此继续 ( 即用E1代替E0 ), 直至无穷. 则极限曲线k k
E lim E
→∞
= 就是Koch 曲线.
用Mathematica形成Koch曲线 ( Ek )的程序是:
Clear[LSystem]
LSystem[atom_,rules_,angle_,k_:3] := Module[
{g={},x0,x1,y0,y1,a=0,ps={},str,i},
293
{x0,y0}={x1,y1}={0,0};
str=atom;
Do[str=StringReplace[str,rules],{k}];
For[i=1,i<=StringLength[str],i++,
c=StringTake[str,{i}];
Switch[c,
"F",(* Line one step forward *)
{x1,y1}={x0,y0}+{Cos[a],Sin[a]};
AppendTo[g,Line[{{x0,y0},{x1,y1}}]];
{x0,y0}={x1,y1},
"f",(* Move one step forward *)
{x0,y0}={x1,y1}={x0,y0}+{Cos[a],Sin[a]},
"B",(* Line one step backward *)
{x1,y1}={x0,y0}-{Cos[a],Sin[a]};
AppendTo[g,Line[{x0,y0},{x1,y1}]];
{x0,y0}={x1,y1},
"b",(* Move one step backward *)
{x0,y0}={x1,y1}-{x0,y0}-{Cos[a],Sin[a]},
"T",(*Turn angle CCW *)
a=a+angle,
"t",(*Turn angle CW *)
a=a-angle,
"[",(* Save current state *)
AppendTo[ps,{x1,y1,a}],
"]",(* Restore saved state *)
{x0,y0,a}={x1,y1,a}=Last[ps];
ps=Drop[ps,-1]
]
];
Return[Graphics[g]]
]
Show[LSystem["F",{"F"->"FTFttFTF"},Pi/3]]
例如 k = 1 , 2 , 3 , 4 时, 我们分别得到图5.25 ~ 5.28.
图 5.25 : E1 图5.26 : E2
图5.27 : E3 图 5.28 : E4
294
你能否从一个正三角形或正方形的边界封闭折线出发,运用E1 代替E0 的步骤, 作出Koch
曲线来?我们已经看到,产生Koch 曲线这种分形图形的决定性因素是图 5.25 中的图形E1.
因此我们把E1 称为这种分形的生成元. 如果采用生成元F1( 见图5.29 ) , 则产生康托集.
F0
F1
图5.29
实验5.6.4 Minkowski 香肠
若取生成元为图图5.30 的M1 , 则产生的分形图形称为Minkowski 香肠.
图5.30 : M1
用Mathematica 作Mk,只要将前面作Koch 曲线的程序的最后一句改成
Show[LSystem["F",{"F"->"FTFtFtFFTFTFtF"},Pi/2]]
即可. 若k = 1 , 2 , 3 , 4 , 我们将分别得到图 5.30 ~ 5.33.
图5.31 : M2 图5.32 : M3
图5.33 : M4
实验5.6.5 Peano 曲线
若取生成元为图5.34 的P1 , 则产生的分形图形称为Peano 曲线, 这也是近代数学史上
的一个十分著名的曲线.
295
图5.34 : P1
用Mathematica 作Pk,只要将前面作Koch 曲线的程序的最后一句改成
Show[LSystem["F",{"F"->"FTFtFtFtFTFTFTFtF"},Pi/2]]
即可. 若k = 1 , 2 , 3 , 4 , 我们将分别得到图 5.34 ~ 5.37.
图5.35 : P2 图5.36 : P3
图5.37 : P4
实验5.6.6 树木花草图
若取生成元为图5.38 的T1 , 则产生的分形图形称为树木花草图.
用Mathematica 作Tk,只要将前面作Koch 曲线的程序的最后一句改成
Show[LSystem["F",{"F"->"F[TF]F[tF]F"},Pi/10]]
同时,将a = 0 改成a = Pi/2 即可. 若k = 1 , 2 , 3 , 4 , 我们将分别得到图5.38~5.41.
296
图5.38 : T1
图5.39 : T2 图5.40 : T3 图5.41 : T4
通过对上述几个分形图形的观察研究, 我们大致可以看到它们的一些典型性质, 比如:
具有无限精细的结构, 比例自相似性质, 可以由非常简单的方法定义并由迭代产生.
5.6.2. 分数维数的概念
我们熟悉的维数都是非负整数,在物理学中反映了自由度的数目. 但Cantor 集与Peano
曲线的出现,使人们不得不要突破这种经典观念的束缚. 以Peano 曲线为例, k k
P lim P
→∞
= ,
P 与正方形,作为点集,它们之间可以做出1-1 对应来. 于是平面上的点就可以不用两个有
序实数(横坐标与纵坐标)表示,而只需用一个实数就可表示出来. 那么我们就很难说P 究
竟是1 维还是2 维. 实际上,对任何有限的正整数n,Peano 曲线可以填满n 维立方体.
为了克服上面的困难,必须从根本上重新考虑维数的意义. 目前考虑的方法有多种多
样,但较易理解的一种是相似性维数的概念.
我们从上面几个分形图形已经看到,它们的结构都有内在的几何规律性,特别是比例自
相似性. 为理解相似性维数的意义, 先从最简单的线段、正方形与立方体的经典维数开始.
把线段、正方形与立方体的边二等分,于是线段是其一半长的2 倍,正方形是边长为一半的
小正方形的4 倍,而立方体则是边长为1 ⁄ 2 的立方体的8 倍. 换言之, 线段、正方形与立方
图5.42
297
体分别是由2 个、4 个与8 个相似形组成的. 把2、4、8 分别写成21,22,23,即
2 = 21, 4 = 22, 8 = 23. (5.6.2)
其中的指数1, 2, 3 恰是对应图形的经验维数, 底数2 则是分割边长的等分数, 或其倒数1/ 2
是所占原长度的分数. 于是我们就可突破经验维数必须是整数的观念. 现在我们对(5.6.2)各
式取对数, 得三个图形的维数分别是
ln 2
1 = ln 2 ,
ln 2
2 = ln 4 ,
ln 2
3 = ln8 .
一般地说,如果一个集合F 可分成k 个与原集相似且尺寸大小为1/r 倍的子集, 则F 的
相似性维数是
r
d k
ln
= ln , (5.6.3)
例如, 康托集的维数是 0.6309
ln 3
ln 2 ≈ . 请你写出Koch 曲线, Minkowshi 香肠与树木
花草图的维数.
实验5.6.7 Sierpinski 三角垫.
从一个正三角形S 0 出发, 连接相邻两边中点的联线, 构成一个小正三角形, 从原三角
形中挖掉这个小三角形, 得到的图形( 由三个小正三角形组成, 见图5.43) S1, 就是
Sierpinski 三角垫的生成元. 则Sierpinski 三角垫m m
S S
→∞
= lim 的维数是1.5850
ln 2
ln 3 ≈ . 作Sm
的程序是 :
Clear[Sp]
Sp[nn_Integer]:=Module[{lt,lt1,k,t,n=nn},
lt={{{0,0},{1.,0},{0.5,Sqrt[3.]/2}}};
While[ -- n >0 ,
lt1={};
For[k=1,k<=Length[lt],k++,t=lt[[k]];
lt1=Append[lt1, {t[[1]],(t[[1]]+t[[2]])/2,(t[[3]]+t[[1]])/2}];
lt1=Append[lt1, {t[[2]],(t[[1]]+t[[2]])/2,(t[[3]]+t[[2]])/2}];
lt1=Append[lt1, {t[[3]],(t[[3]]+t[[2]])/2,(t[[3]]+t[[1]])/2}]];
lt = lt1
];
Return[Graphics[Map[Polygon,lt]]]
]
Sp[m+1]//Show
图5.43:S1 图5.44:S2
298
图5.45:S3 图5.46:S4
请你计算Sierpinski 三角垫m m
S S
→∞
= lim 的维数是多少?

所有跟帖: 

物理好图:突破经验维数必须是整数的观念 -marketreflections- 给 marketreflections 发送悄悄话 marketreflections 的博客首页 (427 bytes) () 10/27/2010 postreply 05:54:13

请您先登陆,再发跟帖!

发现Adblock插件

如要继续浏览
请支持本站 请务必在本站关闭Adblock

关闭Adblock后 请点击

请参考如何关闭Adblock

安装Adblock plus用户请点击浏览器图标
选择“Disable on www.wenxuecity.com”

安装Adblock用户请点击图标
选择“don't run on pages on this domain”