以前所谈到的维度都是用“0”或大于“0”的整数(0,1,2,3,…)来按顺序下定义。
其实,也可以按照小数点以下的分数来顺序定义维,而且的确也有这样定义的维。
以立方体为例,
把立方体增大至原来的2倍,那就是每个
边长变为原来的2(2^1)倍,
表面积变为原来的4(2^2)倍,
体积变为原来的8(2^3)倍。
可以看出,这里的指数同维度数是一致的。
利用这个性质,
德国数学家菲勒克斯·豪斯多夫(1868-1942)提出了一种新的定义维的方法,
其基本意思是:
“把图形放大到原来的x倍,
如果某个量因此而变为原来的x^n倍,
那么就确定这个量是n维”。
按照这个定义所确定的维度有一个专门名称,叫做“豪斯多夫维”。
按照豪斯多夫维,通常的直线或曲线是一维,通常的平面图形是二维,维数仍然是整数。
但是,有一类被称为“分形”的特殊图形,它们的豪斯多夫维就不是整数。
所谓分形,也可以说是具有“自相似性”的图形,
将其无论怎样放大,所得到的图形在整体上都与原来的图形具有相同的结构。
海岸线、山脉、云朵等都是自然界中分形的实例。
最经典的分形例子叫“谢宾斯基三角形”。
Sierpinski(谢宾斯基)三角形,其中蕴含涉及数列等非常有趣的、多方面知识。在附图中的三角形,可称作谢宾斯基。
在图示5个三角形中,黑色三角形的个数依次构成一个数列的前5项。在以上5个三角形中,黑色三角形的个数依次为1,3,9,27,81。
该数列的前四项都是3的指数幂,且指数为序号减去1。因此,该数列的通项公式可表示为: An=3^(n-1)
这个图形的豪斯多夫维是大约1.58维
将这个图形放大至原来的2倍,结果得到的是原来3个图形拼合起来的图形。
这就是说,图形放大到原来的2倍,面积增加到原来的3倍。
我们知道,2^(1.58)≈3,因此这个图形的豪斯多夫维是大约1.58维。
在维和维之间还存在着分形图形
分形(Fractal)一词的创始人,美国数学家Mandelbrot 1967年在Science上发表了著名的文章《英国海岸线有多长》(how Long Is The Coast Of Britain),从此使“分形”的概念变得十分流行。
什么是分形呢?简单地说,就是说自然中存在的线、面、体,并不像古希腊人和欧氏几何期望的那样是光滑平整的,而是“坑坑洼洼”的。
Mandelbrot有一句名言:“云彩不是球体,山岭不是锥体,海岸线不是圆周,树皮并不光滑,闪电更不是沿着直线传播的。
扩展阅读:
数学上的分形 (Fractal) 是指“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少会大略)是整体缩小尺寸的形状”。数学家们已经创作出许多美丽的分形图案,有一个网站Fractal Animation,专门收集分形的视屏。我国还分形频道:http://www.fractal.cn/net/。
在自然界里也有许多分形的事物。连线给出了一组大自然创作的分形艺术,转到这里。如果你喜欢的话,一定要看连线的原文,那里有更多的图片,还有讲解。

绿菜花 (Romanesco Broccoli)
Source: Flickr/Tin.G

盐硷地 (Salt Flats)
Source:Flickr/Tolka Rover

鹦鹉螺化石 (Ammonite Sutures)
Source: Flickr/cobalt123

群山 (Mountains)
Source: NASA/GSFC/JPL, MISR Team.

蕨类植物 (Ferns)
Source: Flickr/cobalt123

云彩 (Clouds)
Source: Jeff Schmaltz/MODIS Land Rapid Response Team/NASA

叶子 (Leaves)
Source: Flickr/ CatDancing

峡谷 (Canyons)
Source: GeoEye/Space Imaging

闪电 (Lightning)
Source: Flickr/thefost

孔雀羽毛 (Peacock Feathers)
Source: Flickr/Digimist

雪花 (Snowflakes)
Source: Flickr/mommamia

瀑布 (Waterfall)
Source: Flickr/catdancing

三角洲 (River Delta)
Source: NASA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 |
分形学:可以无穷放大的 Mandelbrot Set (曼德布洛特集) VC 源代码 |
|
|
代码如下:
// 需要安装 EasyX 库,Visual C++ 6.0 编译通过 #include <graphics.h> #include <conio.h>
// 定义常量 #define ITERATIONS 1000 // 迭代次数,越高,图像越精细 #define MAXCOLOR 64 // 颜色数
///////////////////////////////////////////////// // 定义复数及乘、加运算 /////////////////////////////////////////////////
// 定义复数 struct COMPLEX { double re; double im; };
// 定义复数“乘”运算 COMPLEX operator * (COMPLEX a, COMPLEX b) { COMPLEX c; c.re = a.re * b.re - a.im * b.im; c.im = a.im * b.re + a.re * b.im; return c; }
// 定义复数“加”运算 COMPLEX operator + (COMPLEX a, COMPLEX b) { COMPLEX c; c.re = a.re + b.re; c.im = a.im + b.im; return c; }
///////////////////////////////////////////////// // 定义颜色及初始化颜色 /////////////////////////////////////////////////
// 定义颜色 int Color[MAXCOLOR];
// 初始化颜色 void InitColor() { // 使用 HSL 颜色模式产生角度 h1 到 h2 的渐变色 int h1 = 240, h2 = 30; for(int i=0; i<MAXCOLOR/2; i++) { Color[i] = HSLtoRGB((float)h1, 1.0f, i * 2.0f / MAXCOLOR); Color[MAXCOLOR-1-i] = HSLtoRGB((float)h2, 1.0f, i * 2.0f / MAXCOLOR); }
|
|
|
|
|
2 |
分形学:可以无穷放大的 Mandelbrot Set (曼德布洛特集) VC 源代码 |
|
}
///////////////////////////////////////////////// // 绘制 Mandelbrot Set (曼德布洛特集) ///////////////////////////////////////////////// void Draw(double fromx, double fromy, double tox, double toy) { COMPLEX z, c; for(int x=0; x<640; x++) { c.re = fromx + (tox - fromx) * (x / 640.0); for(int y=0; y<480; y++) { c.im = fromy + (toy - fromy) * (y / 480.0); z.re = z.im = 0; for(int k=0; k<ITERATIONS; k++) { if ( z.re*z.re + z.im*z.im > 4.0 ) break; z = z * z + c; } putpixel(x, y, (k >= ITERATIONS) ? 0 : Color[k % MAXCOLOR]); } } }
///////////////////////////////////////////////// // 主函数 ///////////////////////////////////////////////// void main() { // 初始化绘图窗口及颜色 initgraph(640, 480); InitColor();
// 初始化 Mandelbrot Set(曼德布洛特集)坐标系 double fromx, fromy, tox, toy; fromx = -2.1; tox = 1.1; fromy = -1.2; toy = 1.2; Draw(fromx, fromy, tox, toy);
// 捕获鼠标操作,实现放大鼠标选中区域 MOUSEMSG m; bool isLDown = false; int selfx, selfy, seltx, selty; // 定义选区
while(!kbhit()) { m = GetMouseMsg(); // 获取一条鼠标消息
switch(m.uMsg) { // 按鼠标中键恢复原图形坐标系 case WM_MBUTTONUP: fromx = -2.1; tox = 1.1;
|
|
3 |
分形学:可以无穷放大的 Mandelbrot Set (曼德布洛特集) VC 源代码 |
|
fromy = -1.2; toy = 1.2; Draw(fromx, fromy, tox, toy); break;
// 按鼠标左键并拖动,选择区域 case WM_MOUSEMOVE: if (isLDown) { rectangle(selfx, selfy, seltx, selty); seltx = m.x; selty = m.y; rectangle(selfx, selfy, seltx, selty); } break;
// 按鼠标左键并拖动,选择区域 case WM_LBUTTONDOWN: setcolor(WHITE); setwritemode(R2_XORPEN); isLDown = true; selfx = seltx = m.x; selfy = selty = m.y; rectangle(selfx, selfy, seltx, selty);
break;
// 按鼠标左键并拖动,选择区域 case WM_LBUTTONUP: rectangle(selfx, selfy, seltx, selty); setwritemode(R2_COPYPEN);
|
|
|
|
|
|
|
4 |
分形学:可以无穷放大的 Mandelbrot Set (曼德布洛特集) VC 源代码 |
|
isLDown = false; seltx = m.x; selty = m.y;
if (selfx == seltx || selfy == selty) break;
// 修正选区为 4:3 int tmp; if (selfx > seltx) {tmp = selfx; selfx = seltx; seltx = tmp;} if (selfy > selty) {tmp = selfy; selfy = selty; selty = tmp;}
if ( (seltx - selfx) * 0.75 < (selty - selfy) ) { selty += (3 - (selty - selfy) % 3); selfx -= (selty - selfy) / 3 * 4 / 2 - (seltx - selfx) / 2; seltx = selfx + (selty - selfy) / 3 * 4; } else { seltx += (4 - (seltx - selfx) % 4); selfy -= (seltx - selfx) * 3 / 4 / 2 - (selty - selfy ) / 2; selty = selfy + (seltx - selfx ) * 3 / 4; }
// 更新坐标系 double f, t; f = fromx + (tox - fromx) * selfx / 640; t = fromx + (tox - fromx) * seltx / 640; fromx = f; tox = t; f = fromy + (toy - fromy) * selfy / 480; t = fromy + (toy - fromy) * selty / 480; fromy = f; toy = t;
// 画图形 Draw(fromx, fromy, tox, toy);
break; } }
getch(); closegraph(); } |
|
扩展阅读:
超弦论的研究进展(Developments in Superstring Theory)
https://blog.sciencenet.cn/blog-278395-415275.html
上一篇:
观云识地震-3721的百度空间 地震预测/分析 目录下一篇:
古文诗词歌赋楹联赏析 开篇