REF · 方法

盒计数维数BOX-COUNTING DIMENSION

把"有多粗糙"变成一个别人能复核的数

被引用于:Topic 32 尺度不变与分形

01它问的是什么问题(The Question It Poses)

"这条海岸比那条曲折"、"这块材料比那块多孔"、"这张片子上的血管比那张稀疏"——这些判断你一眼看得出来,却说不清凭的是什么。经典几何在这里帮不上忙:在欧几里得的框架里,任何一条曲线的维数都是 1,无论它拐多少个弯;任何一张面都是 2,无论它有多少个洞。粗糙这件事被这套语言整个漏掉了。

盒计数问的是:能不能造一个量,对光滑曲线给 1、对填满平面的东西给 2、对介于两者之间的东西给一个介于两者之间的数?而且这个量必须能在一张真实的照片、一份真实的地图上算出来——不需要事先知道这个图形是怎么生成的。这一条是它比"自相似份数法"(放大 k 倍变成 N 份)更有用的全部原因:后者要求你已经知道生成规则,而现实里你通常只有一张图。

02规则本身(The Rules)

  1. 把图形铺进一张边长为 ε 的方格网。
  2. 数有多少个格子被图形碰到——碰到就算 1,碰多碰少不区分。记作 N(ε)
  3. ε 缩小(常用减半,或每次除以固定倍数),回到第 2 步,得到一串 (ε, N(ε))。
  4. 画双对数图:横轴 log(1/ε),纵轴 log N(ε)。
  5. 取图上直线那一段的斜率,那就是盒计数维数 D。写成公式是 D = log N(ε) ÷ log(1/ε) 在 ε 趋于 0 时的极限。

第 5 步里"直线那一段"这几个字是整套方法的重点,也是最常被跳过的一步。真实数据的双对数图两头一定会弯:格子大到接近整个图形时,N 逼近常数;格子小到接近图像的像素(或材料的颗粒)时,你数的是分辨率而不是形状。能读斜率的只有中间那一段,而报告里必须写出这一段的上下限。

03跑起来会看到什么(What You See When It Runs)

先用三个已知答案的图形校准一下:一条斜线(应该给 1)、一块实心方块(应该给 2)、一条科赫曲线(精确值 log4÷log3 ≈ 1.26)。

同一张网格,三种图形 一条斜线 格长 12 → 10 格长 6  → 20 D ≈ 0.97 一块实心方块 格长 12 → 100 格长 6  → 400 D ≈ 2.00 科赫曲线 格长 12 → 24 格长 6  → 56 D ≈ 1.22 格长减半:线的格数翻倍,方块变四倍,科赫曲线变 2.3 倍 — 那个倍数的指数就是维数。
格长减半时,三种图形的格数分别变成 2 倍、4 倍、2.3 倍。指数不同,就是维数不同。

把四组格长的结果都放到双对数图上,三条线各自笔直,斜率互不相同——这就是这个方法能用的全部理由。

把三组数放上双对数图 — 斜率就是维数 斜线 D≈0.97 实心方块 D≈2.00 科赫曲线 D≈1.22 12 6 3 1.5 格子边长(越往右格子越小)→ 被碰到的格数(对数) 三条线的高低无所谓,只有斜率有意义。科赫曲线的精确值是 1.26,这里量到 1.22 — 有限画幅上的系统性低估。
线的高低取决于图形有多大,与维数无关;只有斜率有意义。

注意科赫曲线这一栏:精确答案是 1.26,图上量出来是 1.22。这个差不是画错了,是方法本身的系统性偏差——在有限画幅、有限格长范围内,盒计数总是稍微低估。想把它推近 1.26,得把格长继续缩小好几个数量级,而这在真实数据上通常做不到。所以任何一个报出来的 D,都应该被理解成"在这个尺度窗口内的斜率",而不是这个图形的固有属性。

04它解释了现实中的什么(What It Explains)

地形与海岸。不同海岸的 D 排出来的顺序和肉眼判断一致(南非约 1.05,英国西海岸约 1.25,挪威峡湾约 1.52),而且这个数能直接告诉你换尺子会有多大影响:D 越大,你换一次地图分辨率,测得的长度跳得越厉害。

多孔材料与界面。催化剂载体、活性炭、电池电极的孔结构,其盒计数维数与比表面积直接相关。工程上关心的往往不是 D 本身,而是 D 的变化——同一种材料在两种工艺下 D 差了多少,就是界面被做皱了多少。

医学影像里的形态学指标。视网膜血管网、骨小梁、肿瘤边缘、支气管树,都有人用盒计数量出一个数当形态指标。它的价值在于把"看起来更稀疏/更不规则"变成一个能进统计模型的连续变量,而不是靠阅片者打分。

临界系统的几何。渗流刚刚贯通时那个巨簇,在二维格子上的分形维数是精确已知的 91/48 ≈ 1.90 → 参考 · 渗流模型。这类结果反过来给盒计数提供了校准物:如果你的程序在模拟渗流簇上量不出 1.90,那是程序的问题,不是数据的问题。

它不能解释什么(What It Cannot Explain)

延伸阅读(Further Reading)