Python绘图指南:分形与数据可视化(全彩)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 海岸线

独上高原,眺望沧海,海洋与陆地之间,蜿蜒而行的海岸线有多长呢?这个问题似乎很简单。按照传统的几何和数学观点,有形状的东西应该都可以被测量。例如,我们可以通过尺子来测量方桌的长和宽,从而计算它的周长。海岸线虽曲折,但只要测量足够精确,就可以得到一个具体的长度,但是问题在于,当用不同的度量标准来测量时,每次都会得出完全不同的结果。测量单位越小,测量出的海岸线长度就会越长。当以1km为单位测量海岸线时,近似长度短于1km的迂回曲线就会被忽略掉,而当以1m为单位测量海岸线时,则能测量出这些被忽略掉的迂回曲线,测出的海岸线长度将会更长。以此类推,测量单位越小,测得的海岸线越长,但海岸线长度并不会趋近一个确定的值,而是会无限地增大,所以海岸线的长度是不确定的,或者说在一定意义上海岸线的长度是无穷大的。

为什么会这样呢?因为作为海洋与陆地的分界线,海岸线的形状是极不规则、极不光滑的。海岸线由无数的曲线组成,假设我们用一把固定长度的直尺,例如米尺来测量,海岸线上两点之间小于1m的曲线,就只能用直线来近似地表示,因此测得的长度肯定是不精确的。即使用更短的尺子来测量,同样也无法测量到更细短的曲线。哪怕我们有一把1nm长(1nm大约是1m的10亿分之一)的尺子,情况依旧如此。“长度”这样的度量方式,也许并不适合海岸线这类不规则的图形。

海岸线虽然很复杂,但是有着一个重要的性质——自相似性,即海岸线的任意一部分都包含着与整体相同或相似的细节。如果将一段海岸线的曲线放大,我们会发现,这部分被放大的曲线(我们称之为A曲线)的形状与更大范围内的海岸线的形状惊人地相似。如果继续放大A曲线中更小的一段曲线(我们称之为B曲线),那么B曲线的形状又与A曲线的形状非常相似。换句话说,任意一段海岸线的形状都像整个海岸线按比例缩小的形状。