YTread Logo
YTread Logo

Fractals are typically not self-similar

Fractals are typically not self-similar
谁不喜欢分形呢 它们集简单和复杂于一身 并往往带有无限重复的规律 程序员尤其喜爱分形 因为你只要用短得惊人的代码 就可以制造出人手永远无法匹敌的复杂图像 然而很多人并不真正知道分形的定义 至少不知道分形几何之父 本华·曼德博所想的那个定义 人们往往误以为 分形就是完全自相似的形状 例如这个雪花似的形状 名叫科赫雪花 它包含了三个部分
fractals are typically not self similar
每个部分都是完全自相似的 也就是说放大来看的话 你会看到和原来完全一样的形状 又如著名的谢尔宾斯基三角形 它包含有三个和自身一样的部分 我首先澄清一下 自相似图形当然是很美的 而且这些简化模型对理解真正的分形很有帮助 不过曼德博所思考的是一个更广义的概念 他的概念并不是为了美 而更是为了实用 他想准确地描述出自然界中的粗糙度 可以说
分形几何是对微积分的反抗 微积分的核心假设是 物体只要被放得够大 看起来就会很光滑 但曼德博认为这太理想化了 或者说没这个必要 导致模型忽略了实物中更微妙的细节 可细节也很重要 他发现 自相似图形可以作为描述某些粗糙度的简单模板 然而要是把分形单单想成完美的自相似图形 也是太理想化了 这又恰恰违背了分形几何实用性的初衷
分形的真正定义与非整数维度的概念有关 这就是我今天要讲的内容 在对"维度"一词给出适当的定义之后 你将会看到 谢尔宾斯基三角形大约是1.585维 科赫曲线大约是1.262维 而英国的海岸线大约是1.21维 一般来说 图形的维度可以是任意正实数 不一定是整数 我还记得我第一次听到有人这么谈论非整数维度的时候 觉得这太瞎扯了 不是吗 数学家肯定又是在胡说八道了
维度只有是自然数的时候才有意义可言 对吧 线是一维的 平面是二维的 我们所在的空间是三维的 如此类推 实际上 在线性代数课上 刚学过维度的正式定义的学生都会同意 维度只能是正整数 当然 非整数维度的概念的确是生造的 毕竟 数学里的一切都是生造的 但关键在于它对描述世界到底有没有实际的作用 我希望你在听了非整数维度的定义之后会同意
这个概念在生活中无处不在 为了方便理解 先来看看完美自相似的图形 我先从四个图形讲起 其中三个还并非分形 线段 正方形 立方体 还有谢尔宾斯基三角形 这些图形都是自相似的 一条线段可以分成两段 每一段都跟原先一模一样 只不过是原先的一半大 正方形可以分成四个小正方形 每一个都跟原先一模一样 只不过是原先的一半大 同样地 立方体可以拆分为八个小立方体
每一个也是只有一半大 而谢尔宾斯基三角形的核心特征就是 它由三个小一号的自身构成 而且每个小三角形的边长 都是原先边长的一半 对比一下度量这些图形的方式 挺有意思的 我们说小线段的长度是原先的二分之一 小正方形的面积是原先的四分之一 小立方体的体积是原先的八分之一 那么小谢尔宾斯基三角形呢 这个的度量方式我们稍后再说 我想要一个词语 用来作为长度
面积和体积的推广 它能用来描述这些图形 以及其他更多形状 一般在数学中 这个词是"测度" 不过一个更加直观的说法是"质量" 就是说 把这些形状都想象成是用金属做的 细钢丝 薄钢板 实心方块 还有某种谢尔宾斯基钢丝网 分形维度的关键在于 要理解它们的质量是如何随着缩放而改变的 而从自相似图形说起的好处是 它们的质量很好对比 线段缩小到一半的话
质量也缩小到了1/2 很直观 因为两个小的正好拼成一个大的 正方形缩小到一半的话 质量缩小到了1/4 也很直观 因为四个小的就可以拼成原先的样子 同理 把立方体缩到一半之后 质量就变成了1/8=(1/2)3 因为八个小立方体才能拼成原先的立方体 而如果把谢尔宾斯基三角形缩小成一半 我说它的质量变成了原先的1/3 你应该不会觉得没有道理吧 你看
三个小三角形就刚好可以拼成原先的样子 不过如果是线段 正方形和立方体的话 质量变化的倍数正好是1/2的整数次方 实际上 这个指数就是图形的维度 进一步的话 可以这么说 比如说 一个形状是二维的真正含义 或者它之所以是"二"维 就指的是当它被缩放s倍时 质量就会缩放s的二次方倍 同样 当说一个图形是三维的的时候 或许就意味着如果把它缩放s倍
fractals are typically not self similar
质量就会缩放s的三次方倍 用上这个维度的定义的话 谢尔宾斯基三角形的维度是多少呢 我们想说 当把它缩小到1/2倍之后 它的质量就会缩小到1/2的多少次方倍 这个"多少"就是它的维度 但因为它是自相似的 我们知道质量变成了1/3倍 那么哪个数字D 满足1/2的D次方等于1/3呢 这也就是在问 2的多少次方等于3 而这类问题正好是对数所能解答的 用计算器来算以2为底 3的对数
你能得出这个数大约是1.585 从这个角度看 谢尔宾斯基三角形并不是一维的 即便你可以定义一条遍历其中所有点的曲线 而且它也不是二维的 虽然它处在二维平面上 实际上 它是1.585维的 想描述其质量的话 长度或者面积都不怎么合适 论长度的话 它无限长 但论面积的话却是0 所以你得用某个1.585维版本的"长度"来描述它 我们再看看另一个自相似分形 科赫曲线
它包含了4条一模一样的缩小版曲线 每一条都是原先的曲线的1/3大小 所以缩小倍数是1/3 而质量则缩小到了1/4 于是如果维度是D的话 那么1/3的D次方就应当是1/4 也就是在问3的几次方等于4 用计算器来算以3为底 4的对数 结果约为1.262 因此可以说科赫曲线是1.262维的图形 下一个也很有趣 这个就像是直角版的科赫曲线 它由8个缩小了的原图形构成 每个都缩小到了1/4倍
所以要算其维度的话 应该是某数字D 使得1/4的D次方等于1/8 因为质量缩小到了1/8倍 于是这里的答案是以4为底 8的对数 刚好是3/2 所以这个分形正好是1.5维的 不是太难理解吧 它的确有点怪 但我们只不过是在对比缩放前后 图形质量的变化罢了 讲到这里为止 我所描述的可以叫做"自相似维度" 它的好处在于 起码让"非整数维度"的说法多了几分道理 然而还有一个问题
这个概念还不够通用 这么说吧 我们在推断一个图形的质量应当怎么变化时 依靠的是形状的自相似性 也就是说 几个缩小版的图形可以拼回原样 但这么大的局限性反倒不必要 毕竟 绝大多数的二维形状根本不是自相似的 以一个圆盘为例 我们都知道它是二维的 可以说 这是因为在把它放大到2倍之后 由于它的质量正比于面积 其质量就放大到了放大倍数的平方 即4倍
但这并不代表你就可以 拿四个小圆盘拼成一个大圆盘 那我们要怎么知道大圆盘的质量就是原来的4倍呢 想回答这个问题 我们就需要用更严谨的数学语言来定义质量 毕竟我们并不是在谈论什么物质实体 对吧 我们所说的是在抽象空间中的纯几何物体 这里可以有好几种定义方法 而下面这种比较常用 首先用一个网格覆盖整个平面 然后标记出所有碰到圆盘的格子
然后数出一共有多少格 在脑海中 我们早就知道圆盘是二维的了 而碰到圆盘的格子数 就应当和面积成正比 一个巧妙的验证方法是 把圆盘放大若干倍 例如两倍 然后数出有多少个格子碰上了这个大圆盘 你应该能发现 这个数字大约增加到了放大倍数的平方倍 而在我们的例子中 这也就是4倍 不过 说实话屏幕上的内容看上去并没有说服力 但这只是因为网格太粗糙了
要是你用更精细的网格 就能更有效地达到我们测量出圆盘的大小的目的 这么一来 圆盘放大到2倍 碰到的格子数增加到4倍的规律 就应该更为显而易见了 不过我不得不承认 当我在制作这个视频时 我一点也没预料到这个值会如此缓慢地逼近4 有一种方法可以用来考虑这个 如果你关于放大倍数 作圆盘碰到的格子数量的函数图像的话 你的数据应该能很好地拟合成一条抛物线
因为被碰到的格子数 大约和放大倍数的平方成正比 当放大倍数越来越大 也就是网格越来越密的时候 数据点就能更好地拟合成抛物线 回到分形上 我们在谢尔宾斯基三角形上也做同样的事 数出有多少个格子碰上了它 那么你觉得在把三角形放大两倍之后 被碰到格子数量会如何变化呢 嗯 大三角碰到的格子数除以小三角碰到的格子数 应该约为3 毕竟
fractals are typically not self similar
大三角只不过是把3个小三角拼起来罢了 你也可以把它想做是2的分形维度次方 也就是我们刚刚看到的1.585次方 那么 假如你关于这个情况中的放大倍数 作谢尔宾斯基三角形碰到的格子数的函数图像的话 你的数据就应该能很好地拟合成曲线y=x1.585 再乘以某个比例常数 但重要的是 我之所以讲这个 是因为对于非自相似 但有粗糙度的图形 我们也可以如法炮制
英国的海岸线就是一个经典的例子 假如你把海岸线画到平面上 数数碰上了多少个格子 再把它放大 接着重新数出碰到的格子个数 你会发现 海岸线碰到的格子数 大约正比于放大倍数的1.21次方 值得一问的是 在现实中我们应当如何算出这个数值 例如 要是我给你个图形 你又精通编程的话 你要怎么求出这个维度呢 我想说的是 如果你把图形放大s倍 那么图形碰到的格子数量
应该等于某常数乘上s的某维度次方倍 我们要求的就是这个维度 那么 假如手头的数据看上去能拟合出一条x的某次方曲线的话 想要直接看出到底是多少次方还是很难 于是一个常用的技巧就是把等式两侧同时取对数 这样一来 维度就不再是一个指数了 我们就会得到一个很简洁的线性关系 这就意味着 假如你关于log(放大倍数) 作log(碰上的格子数)的图像的话
那这个函数就会拟合出一条直线 其斜率就是维度 也就是说 你首先需要把图形放大许多不同的倍数 并且每次都数出海岸线碰到了多少个格子 然后在log-log坐标系中的画出散点图 接着就能做线性回归 并找到所有数据的最佳拟合直线 于是这条直线的斜率 就能告诉你最初图形维度的测量值了 和抽象的完美人造图形相比 我觉得这样想非整数维度会更加真实直观
而当你完全接受了这样一个维度的概念之后 朋友 你就已经准备好了解分形的真正定义了 本质上说 分形就是维度不是整数 而是某个非整数值的形状 这样一来厉害的是 我们就可以用数字来说 这些形状很粗糙 而且即使被放大了还会照样粗糙 严格来说 还有一个更准确的定义 我会把它放到评论里 但这个非整数维度的概念 几乎能完美地体现我们想要描述的粗糙度
但这里还有一个小麻烦 我没讲过但却值得一提 那就是我刚刚所说的通过数格子算出来的维度 有时会根据你放大的倍数而有所改变 比如这个三维空间中的图形 远看就像一条线 顺带一提 在三维空间里数格子时 你就要用小立方体网格 而不是小正方形的了 不过方法还是一样的 当形状的粗细小于方块的尺寸时 它看似是一维的 换言之 碰到的方块数和长度成正比 但把它放大之后
它看上去就会更像一根管子 管子的表面会碰上方块 因此它看起来就是二维的 也就是说它碰上的方块数和放大倍数的平方成正比 但它并不是一根管子 而是由细丝绕成的一个致密的螺线圈 所以当你进一步放大 直到方块能捕捉到这些线条的细节时 它看起来就又像是一维的了 也就是说它碰到的方块数量和放大倍数成正比 因此想确定下来一个图形的维度 就有些难办
于是这里就可能有稍微不同的定义和惯例 在纯数学的范围中 维度的确有不少定义 但它们都侧重于当图形被放得越来越大时 图形维度的极限 或者用之前的图像来说 你要看的就是当图像越来越靠右时 斜率的极限 因此 一个纯几何图形要是能称得上是分形的话 那么它即使被放大到无穷大 看上去仍然会同样粗糙 不过在现实中 比如在考虑英国海岸线的时候
考虑放大的极限其实并没有什么道理 因为放大到一定程度之后 就变成挨个数原子了 这种情况下 你就需要考虑一个足够大的尺度范围 从缩得很小一直到放得很大 然后计算不同尺度下的维度即可 在这个更实际的情形中 要说一个形状是分形 那么测出来的维度就需要在许多不同的尺度下都大致恒定 例如 英国海岸线并不只有远看时才是1.21维 就算被放大了一千倍
它的粗糙程度也大约是1.21 正是从这一点看来 许多自然中的形状才都是自相似的 尽管并不是完美的自相似 完美自相似的图形在分形几何中还是占有重要地位的 这些例子容易描述 信息量小 而且能表现出这种粗糙的性质 即在不同尺度下 或者无论被放得多大 都存在的粗糙性 这就很重要了 它给了我们用来描述分形现象的基本工具
但我觉得最好也不要把它们看作是分形的代表性范例 因为其实 广义上的分形 范围要广得多 我真的认为这就是那种 在你了解之后 能让你看世界的眼光变得截然不同的那种思想 这个数字 这个非整数维度所传达的 是一种定量描述粗糙度的方法 例如 挪威的海岸线大约是1.52维 而此时用数字就能说明它比英国的海岸线要远远曲折得多 一片平静的海面 维度可能只是稍微大于2
而当风浪滔天时 它的维度就可以达到2.3 实际上 非整数维度不仅仅只是在自然中很常见 它似乎能从根本上区分 大自然中的物体和完全人造的物体 在视频的最后 我想给你们看看π星人的一个逗逼分形动画 但首先 我要感谢一下这个频道的赞助者 首先我要感谢在Patreon上捐献了的各位 资助者可以在我制作"微积分的本质"系列的同时抢先看到视频 此外
观众的许多有建设性的意见反馈 也让我受益良多 本视频同时由Affirm公司赞助 它是一家金融科技公司 我曾经就在那里工作过 最近他们也有了很大的发展 他们一直在招收有才能的软件工程师和数据科学家 我相信 在出于兴趣来看分形维度视频的各位当中 一定有这样的技术人才 我刚说过 当年我在开始专注研究数学之前 还在他们的数据科学团队中待过
我可以负责任地说他们相当厉害 我之前也和一些高智商的团队工作过 但Affirm的顶尖大脑和技术人才的云集 绝对非同寻常 我猜这就是 聪明人吸引聪明人 良性循环的一个好例子 你们懂吧 他们处理消费者信用的方法相当新颖 似乎还没有其他人这么做过 假如有能人志士肯帮他们出一份力的话 他们会相当欢迎 假如你有兴趣申请的话
我在屏幕上和视频简介里留下了他们的求职页面链接 这是一个特殊的链接 如果你通过它进入页面的话 我和Affirm就会知道你是从这个视频中听说到他们的 其实也就是为了知道这种推广的效果如何 所以就算你不打算马上申请 而是想稍后再看看 为了有效的数据 我还是希望你能去看一下那个页面 总之就尽量去看一看吧 最后 下面是说好的分形动画