泰勒展开 | 从〈三体〉到泰勒展开:维度的奥秘

注:本文为 “泰勒展开 | 维度森林” 相关合辑。
略作重排,如有内容异常,请看原文。


《三体》读后思考 - 泰勒展开 / 维度打击 / 黑暗森林

dog250 原创于 2017-07-22 16:35:48 发布

前言

两个月前,我的妻子购买了几本书,其中包括《三体》。这部小说在书架上放置了一个月后,我在看完一本关于加解密算法的书且无其他书籍可读时,开始阅读《三体》第一部。原本以为会在第二天放下,却意外地利用零散时间读完了整个三部曲。

读完后,我久久不能平静,甚至开始翻找之前写的物理学笔记和论文(关于光学和量子物理的),但未能找到,内心焦急万分,甚至想过抽个周末飞回上海寻找。妻子带着孩子去北京参加比赛,留我独自在家,临走时还帮他塞满了冰箱的啤酒。今天是周末,没有工作的遗留,也没有家务事,我认为是时候写一些关于《三体》的思考了。

将思绪整理成文章是一项较为困难的任务。有时写完后才发现文中并未涵盖全部思路,于是就需要不断地补遗,这比写技术总结难得多。不过,我仍想尝试一下,若有遗漏之处,只能后续再进行补遗和润色。

正文

在拖沓中看完了《三体》的全部三部,给我的感觉除了宏大还是宏大。第一部主要交代了大环境以及故事上演的前传,一切因罪恶而生,一切因恨而始发。然后在第二部中,面壁计划、威慑纪元、黑暗森林似乎只是将地球上自美苏争霸开始以来的故事在宇宙中重新上演,揭示了在宇宙的暗处还有很多更狠的角色,这就为第三部埋下了伏笔。第三部是彻底烧脑的杰作,不像其他几乎所有的科幻作品,在危机到来时,终究会出现一个超级英雄拯救世界,《三体》并非如此,三体让太阳熄灭了,这是另一种幸运,因为在 “黑暗森林” 中,只有 “死神永生”!前后呼应,一气呵成,最终的结局是开放式的,这也是多元化当代小说的一种必然趋势。

在整体构思和框架布局上,《三体》是非常优秀的。虽然作者刘慈欣的文笔在叙事上稍显拖沓,但也展现了几个个性鲜明的人物形象,也还算过关。当然,这方面是远远无法和《盗墓笔记》系列相比的。不过本文不准备讨论这些,这些内容今后会专门写一篇文章。本文是想解释三个概念,即画像、降维打击以及黑暗森林,其中涉及的内容会比较多且比较杂,也不一定都是正确的。本文只是记录了一个思考的过程,它并不是学术论文或者技术文档,算是一篇随笔。

1. 画像与泰勒展开

和往常的文章风格一样,我不准备在文中罗列各种已经命题的解法、证法,这些从教科书上都能看到。我想提供一个直观的观感,可以让不懂微积分的人也能有一个感性的认识。或许,在最好的情况下,我的文字可能让一些已经放弃学习高数的人猛然觉得:“原来是这样!”

画师作画和工程师不同,画师不会去测量,只是去感悟、去观察就好了,然后把大脑里加工后的东西用线条展现出来。

在古希腊,曾经有一个毕达哥拉斯学派。在他们的眼里,宇宙就是数与数的关系构成的,数是组成宇宙的基本元素。他们试图用各种方法去直观地用数表示各种关系,从而发明了超级多的**“具有几何意义”**的算术。然而有一天,一位名叫希帕索斯的门徒,发现了一个不可名状的关系,导致了整个哲学体系面临崩塌的危险。这个希帕索斯也为惹这么大的事付出了生命的代价。现在我们知道,这个希帕索斯所谓的不可名状的关系就是 2 \sqrt {2} 2 。现在我们还知道,数学界早就可以为毕达哥拉斯学派眼里 “不可名状的关系” 来 “画像” 了。

自然对数 e e e 是个什么东西,如何去描述它,它也是不可名状的,就像 2 \sqrt {2} 2 π \pi π 一样… 还记得云天明讲给程心的那三个故事吗?针眼画师画像的故事,如果给他一个 e e e,他要怎么把它画出来?

幸运的是,在我们这个真实的世界,就曾经有一位针眼画师,布鲁克・泰勒,他向 e e e 扔去了一块二向箔,于是 e e e 就被他刻画出来了。

我们来猜测一下,他是怎么做到的。通过阅读《三体》小说以及学过的一些数学知识,加上我自己的思考,总结出了两点原则:

  1. 自然是全息的、分形的,从一个点可以窥见整个世界;
  2. 自然是多维的,通过不断地降维,我们就可以完全认识它。

就以上两点,我们来看看怎么从一个点出发,去用简单的线条刻画复杂的不可名状的东西。为了描述方便,用数学函数来代替整个世界。

首先,先来定义一下什么是简单的,什么是复杂的不可名状的。简单地说,像 a x n + b x m + c x p + … ax^n + bx^m + cx^p + \dots axn+bxm+cxp+ 这种二项式就是简单的,因为它是可以手算的,完全靠四则混合运算就能搞定。而那些相反的,像 π \pi π e e e、正弦函数、余弦函数等三角函数这些就是复杂的。如果问 sin ⁡ ( 20 ) \sin (20) sin(20) 等于几,要么查表,要么用计算器,反正用四则混合运算搞不定…

如果能用二项式的组合去拟合任意曲线,那么这种组合的方法将会成为画师最强有力的画笔,而这是完全可能的。只需要一些可以映射到坐标系 y y y 轴任意位置的二项式函数,用这些函数组合起来就可以得到任意函数的拟合函数。我有一个示意图如下:

将这些最基本的二项式函数曲线经过伸缩平移之后,就可以通过它们的组合拟合任何函数曲线了。那么,就用正弦函数来举例吧,正弦函数如下:

f ( x ) = sin ⁡ ( x ) f (x) = \sin (x) f(x)=sin(x)

最神奇的东西就是受精卵了。它竟然能从一个那么小的、肉眼看不见的小细胞,长成一百多斤的人。显微镜下看到的那一颗颗受精卵是如此的相同,以至于猜想它们将来最多长大成一个个大肉球是合理的想法… 然而,最终却出现了美女、帅哥、天才、傻子… 一颗小受精卵里面究竟蕴含着多少信息啊?!

我试图在本文中通过 sin ⁡ x \sin x sinx 来解释。画出 sin ⁡ x \sin x sinx 的图像如下:

标注函数图像上的一个点,为了方便起见,选择原点,然后叠加一条直线 y = x y = x y=x 在同一个坐标系中,同样取该直线上的经过原点的那个点:

试问, y = sin ⁡ ( x ) y = \sin (x) y=sin(x) y = x y = x y=x 上的这两个点有什么区别?答案是没有区别!

暂且打住,经过原点的直线多了,随便举一个例子, y = 3 x y = 3x y=3x,这条直线上经过原点的点坐标也是 ( 0 , 0 ) (0, 0) (0,0),它和 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) ( 0 , 0 ) (0, 0) (0,0) 是不是也相同呢?答案是完全不同!当我们说两条曲线上对应的两个点相同的时候,有两层含义:

  • 两个点的坐标相同;
  • 两个点的走势相同。

很明显 y = 3 x y = 3x y=3x 这条直线与 y = x y = x y=x 是完全不同的:

事实上很容易证明下面的等式是成立的(本文不会给出证明,参考随便一本讲微积分的书):

lim ⁡ x → 0 sin ⁡ ( x ) x = 1 \lim_{x \to 0} \frac {\sin (x)}{x} = 1 x0limxsin(x)=1

lim ⁡ x → 0 sin ⁡ ( x ) 3 x = 1 3 \lim_{x \to 0} \frac {\sin (x)}{3x} = \frac {1}{3} x0lim3xsin(x)=31

这就意味着在 ( 0 , 0 ) (0, 0) (0,0) 点附近,可以用 y = x y = x y=x 而不能用其他直线来近似模拟 y = sin ⁡ ( x ) y = \sin (x) y=sin(x)

然而当我们把视角逐渐拉远,就会发现,当 x x x 取值偏离 ( 0 , 0 ) (0, 0) (0,0) 点时, y = sin ⁡ ( x ) y = \sin (x) y=sin(x) y = x y = x y=x 两条曲线很快分道扬镳了,这种粗糙的模拟在更大的范围内显然是不对的。既然我们承认自然界从一个点可以窥见全世界,那么接下来就是怎么做的问题了。

答案就是切割、降维!当然,在数学上就是不断求导,其实不喜欢 “求导” 这种说法。我们需要用切割、降维,或者说求导(以后就说求导吧,这样更专业些)方法,把蕴含在这单独的一个点中的信息给拽出来,我们现在在做的事情就是从一颗受精卵里拽出一个成人,从一颗粒子中观看整个世界。

对一个函数求导可以得到另一个函数,该点的坐标代入这另一个函数所得到的函数值表示原函数在该点的走势,这个走势包含的意思包括两个方面,曲线延展的强度大小和曲线延展方向,换句话说,它是个矢量。有了这个走势信息,我们就能预测在稍微偏离原点时,函数曲线的大致走向了,这就使得对整个 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) 的画像向前又描了一笔。事实上, y = x y = x y=x 这条直线就是 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) 在原点处的切线,它可以在原点附近近似代替 y = sin ⁡ ( x ) y = \sin (x) y=sin(x),换句话说这条直线的斜率 1 是对 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) 求导得到导函数 y = cos ⁡ ( x ) y = \cos (x) y=cos(x) x = 0 x = 0 x=0 时的 y y y 值,它预示着 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) 的走势就是从原点开始仰角 45° 斜向上,除此之外就不再有任何信息了。

既然我们知道了这个信息,那么我们就可以通过导函数 y = cos ⁡ ( x ) y = \cos (x) y=cos(x) 再次求导,得到原函数 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) 走势的走势,而这个走势的走势在离开原点再远一点的 x x x 点处体现。很遗憾,我们选的原点代入导函数的导函数 y = − sin ⁡ ( x ) y = -\sin (x) y=sin(x) 后结果为 0,不过没关系,继续就是了,再对它求导,导函数是 y = − cos ⁡ ( x ) y = -\cos (x) y=cos(x) x = 1 x = 1 x=1 代入,得到 -1,我们得到了 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) x = 0 x = 0 x=0 处的 “走势的走势的走势”,下面看下效果:

好了,现在让我们继续,能不能再求出 “走势的走势的走势的走势” 呢?这样刻画 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) 画像的过程又可以往前走一笔了… 再进一步,我们继续求 “走势的走势的… 的走势”…“走势的走势… 的走势” 这将在拟合过程中和原点渐行渐远,最终,当这个递归足够深的时候,我们就可以说:你看,我画出了 y = sin ⁡ ( x ) y = \sin (x) y=sin(x)!我们来试试看:

可见,随着 n n n 阶求导的深入,用 x n x^n xn 配剂配出来的曲线越来越拟合 y = sin ⁡ ( x ) y = \sin (x) y=sin(x),我们有理由说,如果这个过程无限继续下去,最终我们会得到和 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) 完全拟合的曲线。当然我们知道这永远不会停止,就像程心的发问一样,太阳系的二维化什么时候停止,得到了一个令人悲哀的回答:永远不会停止。

还记得我们的宗旨吗?用二项式函数曲线去拟合任意函数曲线,也许你会问当最终的表达式写出来前,是如何确定每一个二项式项的系数的,其实这个并不是理论的重点,而纯粹是一个 “技术” 活儿,完全可以通过待定系数法确定系数,以下是一个简单的推导过程,并不严谨,但可以说明问题:

假设 y = f ( x ) y = f (x) y=f(x) 可以展开成以下形式:

f ( x ) = f ( p ) + a 1 ( x − p ) + a 2 ( x − p ) 2 + a 3 ( x − p ) 3 + … f (x) = f (p) + a_1 (x - p) + a_2 (x - p)^2 + a_3 (x - p)^3 + \dots f(x)=f(p)+a1(xp)+a2(xp)2+a3(xp)3+

其从 1 到 n n n 阶导数分别为:

f ( 1 ) ( x ) = 0 + a 1 + 2 a 2 ( x − p ) + 3 a 3 ( x − p ) 2 + … f ( 2 ) ( x ) = 0 + 0 + 2 a 2 + 3 ! a 3 ( x − p ) + … f ( 3 ) ( x ) = 0 + 0 + 0 + 3 ! a 3 + … \begin{align*} {{f}^{(1)}}(x) & =0+{{a}_{1}}+2{{a}_{2}}(x-p)+3{{a}_{3}}{{(x-p)}^{2}}+\ldots \\ {{f}^{(2)}}(x) & =0+0+2{{a}_{2}}+3!{{a}_{3}}(x-p)+\ldots \\ {{f}^{(3)}}(x) & =0+0+0+3!{{a}_{3}}+\ldots \end{align*} f(1)(x)f(2)(x)f(3)(x)=0+a1+2a2(xp)+3a3(xp)2+=0+0+2a2+3!a3(xp)+=0+0+0+3!a3+

观察上面的序列,会得到:
 
f ( 1 ) ( p ) = 1 ! a 1 f ( 2 ) ( p ) = 2 ! a 2 f ( 3 ) ( p ) = 3 ! a 3 f^{(1)}(p) = 1!a_1\\ f^{(2)}(p) = 2!a_2\\ f^{(3)}(p) = 3!a_3 f(1)(p)=1!a1f(2)(p)=2!a2f(3)(p)=3!a3

所以:

a 1 = f ( 1 ) ( p ) 1 ! a 2 = f ( 2 ) ( p ) 2 ! a 3 = f ( 3 ) ( p ) 3 ! a_1 = \frac {f^{(1)}(p)}{1!}\\ a_2 = \frac {f^{(2)}(p)}{2!}\\ a_3 = \frac {f^{(3)}(p)}{3!} a1=1!f(1)(p)a2=2!f(2)(p)a3=3!f(3)(p)

最终,就会得到泰勒公式:

f ( x ) = f ( p ) + f ( 1 ) ( p ) 1 ! ( x − p ) + f ( 2 ) ( p ) 2 ! ( x − p ) 2 + f ( 3 ) ( p ) 3 ! ( x − p ) 3 + … f (x) = f (p) + \frac {f^{(1)}(p)}{1!}(x - p) + \frac {f^{(2)}(p)}{2!}(x - p)^2 + \frac {f^{(3)}(p)}{3!}(x - p)^3 + \dots f(x)=f(p)+1!f(1)(p)(xp)+2!f(2)(p)(xp)2+3!f(3)(p)(xp)3+

这个推导过程,有个前提,在技术上,只要保证原函数的各阶导数与二项式展开后的表达式的各阶导数相等,就可以说明展开后的表达式曲线已经无限拟合原函数曲线了。觉得这个前提的假设是合理的,不然又能怎样呢?至少它是两条曲线拟合的必要条件。用这个简易推导的结论套在上面关于 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) 的拟合上,基本就什么都清晰了。

多阶导数的不断求解是一个不断修正的过程,画过素描的应该都知道这个过程是怎么进行的。

到此为止,应该把这个说清楚了,并且我们已经知道了 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) 到底长什么样子了,这一切就是布鲁克・泰勒的泰勒级数所要展示的画卷。

泰勒发现了自然界的秘密,从一个点看世界。如果我们把世界的元素在时间轴上拉伸,就可以看出,每一个元素,不管再渺小都是沿着时间轴按照自己的内在趋势发展的。因此当我们把所谓的趋势也维度化的时候,就会发现,每一维度的趋势组成了一个正交基,在数学上,这正是通过一个函数表达式的各阶导数来展现的。通俗点说,这个正交基就是:

(原值,趋势,趋势的趋势,趋势的趋势的趋势,趋势的趋势的趋势的趋势,趋势的趋势的趋势的趋势的趋势,…)

再次回到受精卵,正是不同的受精卵在以上各阶趋势维度上的分量不同,导致了最终长大后都成了独一无二的个体… 另外,我们所谓的无理数,也是通过这种方式来 “隐藏自己” 的。如果说一个生物体的生长过程就是一个 “泰勒展开” 过程的话,那么刻画一个无理数就必须由你自己来做了,泰勒级数提供了一个可以将它拽出来的方法,至少你可以体验将它揪出来的过程,因为你不可能将它完全拽出来,它是无限长的,任何人都永远拽不完!

除了泰勒展开,还有更好玩的,那就是傅立叶展开。

如果说泰勒展开是把任意曲线用 “各阶趋势” 的分量求和表示的话,那么傅立叶展开则试图将任意曲线表示成 “波形的叠加”。跟主音吉他手讨论这个问题,主音说,一个音就是无数个音。

和泰勒的思想一样,一就是所有。

泰勒展开和傅立叶展开,区别是什么?按照不同的规则作画,规则不同而已,国画和油画的区别?随便怎么说吧,反正就是这个意思。

2. 歌者的降维打击

歌者是卑微的,剩下的只有吟唱和击打,歌者没有愤怒,歌者微笑着,唱着歌,很坦然地熄灭了太阳。

我们高中有一个走路步伐比较猛的同学,比较能打架,后来做了刑警,他打架的时候一般不是气冲冲地打,而是唱着歌,微笑着,时而嘴里夹着咒骂,一般摇摆身躯一边打,但是跟尼古拉斯赵四不同,他唱歌摇摆的时候已经已经开打了… 歌者正是这样的风格。这部小说中,我喜欢的人不多,大致就是叶文洁、史强、章北海、歌者、AA、智子这六人。如果你也看过小说,就会发现,这六人有个共同点,那就是做事理智,不含糊,几乎从不煽情,几乎从不动容,和汪淼、逻辑、程心、云天明、关一帆、三体联络员这些事儿精的矫情之人完全不同。但在这六人中,只有歌者是一边感慨一边工作,而且感慨丝毫不耽误工作。

“…

很有意思,很有意思!

歌声中,歌者用力场触角拿起二向箔,漫不经心地把它掷向弹星者。

在《三体》中,歌者采用了一种完全不同的方式来作画,称之为 “歌者展开” 似乎是合理的,然而歌者只是一个卑微的角色,所以叫做 “二向箔展开” 更加合适。

名称不重要,现在的问题是,就像逻辑、程心他们在冥王星保存地球博物馆遗迹时所期望的那样,已经二维化的太阳系真的可以在以后被还原吗?

首先,我们看一下蓝色空间号在四维干掉水滴的事,没看过小说的只要了解到一个事实就好了,在高一维的空间中,可以肆意突破低维的任意障碍。我以下图举例:

对于一维的人而言,二维的攻击者是突然出现的,即便你在一维设置了个永久且坚固的障碍,也还是会被二维的攻击者轻易绕过,从另一个维度绕过。水滴就是这样惨死的。

这只是一个方面,事情的另一方面是,所谓的降维并不是简单的垂直映射和投影,因为这必然会丢失一个维度的信息,然而信息不可能凭空丢失,它是守恒的。另外,降维打击也不是一个 “踩扁” 的过程,因为就算踩得再扁,也还是会有厚度的,毕竟再剧烈的操作都是在实施攻击的维度内进行的,在同一维度,不可能凭空让一个维度消失,因此,降维打击实际上是一个重新映射的过程,比如可以把二维平面的点 ( x , y ) (x,y) (x,y) 映射成一维平面的方程组:

{ a x = c 1 b y = c 2 \begin {cases} ax = c_1 \\ by = c_2 \end {cases} {ax=c1by=c2

这就是降维打击!或者说按照上一节说的泰勒展开的原则,降维也是一个求导的过程,那么什么样的存在是可以抵挡降维打击的呢?其实很简单:

  1. 适应 —— 掌握映射规则,自己在降维后的空间里继续生存;
  2. 改变 —— 掌握积分规则,它求导你就积分,与之对抗;
  3. 随缘 —— 把自己变成 y = e x y = e^x y=ex,金刚不坏( y = e x y = e^x y=ex 导数是自身)。

在小说中,歌者从种子长老那里获知,他们自己也在二维化了,然而却没有毁灭,相反这是为了战争的胜利… 因为他们自己掌握了映射规则,他们可以在二维世界继续生存,他们是做了一系列前置工作后主动降维的。然而地球文明不可能瞬间掌握映射规则,所以在二维化的一瞬间,就什么都没有了。

这里曾经有一个疑问,那就是,即便地球文明掌握了二维化的映射规则,人体能挡得住那种强度的物理攻击吗?就像人被吸入黑洞或者进入虫洞到达另外一个地方一样,在那一瞬间,人的肉身就会解体,即便残骸到了另一个世界又能如何?因此即便掌握了映射规则,如果不做前置工作,个体的死亡依然是不可避免的。能存活的可能只是地球文明的人类按照逆二维化规则保存下来的 “自己文明的证明” 吧。

我们已经看到了从低维到高维的意义以及从高维到低维的映射,那么问题是,一个低维的物体能顺利在高维空间存在吗?以我们三维空间为例,我们的物理规律比如距离的平方反比律,关于体积的立方律,为什么是平方,为什么是立方,这些都是跟空间维度有关的。如果到了四维空间,距离岂不成了立方反比律了?再考虑构成我们世界的基本粒子,无一不是遵循着这些与空间维度有关的各种物理规律。一旦到达高维空间或者低维空间而不做任何前置工作的话,基本粒子之间的作用力规律会完全疯掉吧… 基本粒子都疯了,一个卑微的凡人如何保持体面?

3. 黑暗森林和猜疑链

刘慈欣的《三体》第二部说出了很多我们的心声。

职场就是个黑暗森林,不管同事之间的关系再好,如果可能,谁都想不由分说,灭了对方,因为资源总量是一定的,每个人都要在职业道路上往上走,除非,除非你发表安全声明。然而通过第三部《死神永生》我们知道,所谓的安全声明就是禁锢自己,而这在职场上是不可能的。

理解了这个,我便觉得大多数公司的薪资保密制度确实是多此一举了。按照黑暗森林法则(前提你得相信它),每个人最安全的做法就是隐藏自己,隐瞒自己的一切,长者不也是很赞同 “闷声发大财” 这一说吗?有谁会跟别人透露自己真实的薪资?

如果对方告诉你他可以拿到 2 万,而此时你只有 1.5 万的时候,你会相信他说的吗?你告诉他你只有 1.5 万的时候,他会相信你吗?你怎么知道他是怎么想你的,万一他相信了,他又是怎么揣测你又是怎么想他的… 这个链条会一直递归到你的大脑栈溢出,这是一种没有意义的能量损耗。所以说按照收益最大化的原则,要么隐瞒,要么先下手为强。

其实,黑暗森林的猜疑链只是整个黑暗森林的一个局部,优胜劣汰,弱肉强食,这是亘古不变的真理,与之相对应,便出现了各种应对措施,比如法、术、势、阴谋、阳谋、王道、霸道、厚黑… 不管采用什么措施,最终记住一点就好,那就是马太效应,来自《新 约・马 太 福 音》:

国王的委托
从前,一个国王要出门远行,临行前,交给 3 个仆人每人一锭银子,吩咐道:“你们去做生意,等我回来时,再来见我。”
 
仆人的回报
国王回来时,第一个仆人说:“主人,你交给我的一锭银子,我已经赚了 10 锭。” 于是,国王奖励他 10 座城邑。第二个仆人报告:“主人,你给我的一锭银子,我已经赚了 5 锭。” 于是,国王奖励他 5 座城邑。
 
第三个仆人的无为
第三个仆人报告说:“主人,你给我的 1 锭银子,我一直包在手帕里,怕丢失,一直没有拿出来。”
 
国王的裁决
于是,国王命令将第三个仆人的 1 锭银子赏给第一个仆人,说:“凡是少的,就连他所有的,也要夺过来。凡是多的,还要给他,叫他多多益善。”

学会隐藏自己吧,黑暗森林里没有坦诚。

4. 还有一些没说的

既然文中提到了泰勒展开,那就不能不提余项,然而这是教科书的做法,一般而言先讲各种定理、公式,然后继续说如何用这些定理、公式来解题。所谓的余项,是估计计算误差的,各种中值定理(比如拉格朗日中值定理)只要能说明这个误差(比如拉格朗日余项)趋向于 0 就可以了,这只是为了数学的严谨性,但是引入这个余项的概念,对我们理解将一个无理数无穷尽地展开是不利的,因为我的前提就是这个展开动作是永远不会停止的,这也就使余项不再有存在的必要了。

我尽量不把那些复杂的东西包含在文中,比如线性代数、秩、偏振光… 我记起,当时的几大本子的笔记绝大部分都是写量子力学、偏振光的,如果今天写那些,估计这个周末要完全泡汤,又有极大的可能性会影响工作日的工作,所以只能打住,我也对自己感到抱歉,其实闭上眼睛,我是多么快乐地回忆起那时高中、大学的两个教物理的刘老师,历历在目,恍若昨日!

后记

后记就不写了,我写了一个续集,详见另一篇文章《关于泰勒展开的细节 - 《三体》读后感的读后感…》,在该文的最后,我依照很多朋友的建议,用 gnuplot 做了一个 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) 泰勒展开式简易的 gif 动画,非常感谢这个很帅的建议!


泰勒公式的展开细节解析 --《三体》读后感的读后感…

dog250 原创于 2017-08-05 08:58:22 发布

声明

本文原计划作为《三体》读后感的 “补遗” 一节,但因篇幅过长,为避免喧宾夺主,故单独成文。实际上,本文已与《三体》小说关联不大,而是一篇纯粹的数学探讨。鉴于文中涉及大量关于 “趋势的趋势的趋势”“走势的走势的走势的走势”“导数的导数的导数的导数的导数…” 的内容,为保持一致性,故将题目命名为 “《三体》读后感的读后感…”,后续可能还有续篇。

第一部分 泰勒展开解释

许多读者对文中关于泰勒展开的阐述提出了疑问,主要集中在以下问题上:

为什么可以从一个单独的点不断求导画出整个函数的曲线?即 “一点是如何蕴含整个世界” 的。

在数学领域,这一问题的证明相对简单。从定量角度而言,任意一本微积分或数学分析教材均可提供令人满意的答案。在《《三体》读后思考 - 泰勒展开 / 维度打击 / 黑暗森林》一文中,我也已给出简易推导。然而,在逻辑自洽的基础上,人们往往渴望探索其实际意义,例如追问其物理意义、几何意义,甚至更本质的意义。这种对意义的追寻,赋予了数学以哲学探索的韵味,而我认为,这正是数学的魅力所在。

在日常生活中,双截棍表演虽常见,但如今鲜少有人深入了解鞭术。实际上,可将鞭子视为当 N N N 趋近于无穷大时的 N N N 截棍,其操作难度更高。我为了解释泰勒展开,曾查阅了一些关于鞭术的资料。具体而言,执鞭人仅在原地按照一定规则上下左右甩动鞭子,一条长鞭便能展现出各种优美的曲线,其原理何在?

从物理学角度分析,这是若干列波从执鞭处向鞭子另一端传播的结果,传播过程中在不同点产生了定向效果。但这一解释似乎并不足够令人满意,真正的问题在于:执鞭人的手需要怎样的动作,才能使鞭子整体呈现出那样的效果?

我无法回答此问题,因为自身并不精通鞭术,身边也无专业人士。然而,这一问题与本文开头提出的 “从一个点蕴含整体行为” 的问题本质上是相同的。

我的观点是:**既然走势可以让人预测曲线上邻接的下一点的大致位置,那么走势的走势便可以相对精确地预测邻接下一点的具体位置,紧接着,走势的走势的走势便可以告诉人们这种趋势可以延续到什么时候,再继续…**这似乎超出了人们的想象力… 下面我们还是用简单的数学来表示吧。我们先从 1 阶导数、2 阶导数、3 阶导数的几何意义说起。

先看 1 阶导数,我们知道,它是经过曲线上某点的切线的斜率:

这里写图片描述

我们来看这个 1 阶导数可以预测到多远处呢?如果我们仅仅知道该点的坐标以及有这么一个该点的 1 阶导数的值,我们几乎什么都预测不了,除了知道在该点处有沿着切线向上的趋势之外,这没能为我们画出这个曲线带来帮助,似乎下面的曲线都能满足,然而真正正确的只有一个:

这里写图片描述

换句话说,1 阶导数只能将邻接的下面的点定位到两个范围中的一个:

这里写图片描述

所以,我们需要进一步的信息,我们继续求 2 阶导数,看看能挖掘出什么新玩意儿。

2 阶导数是 1 阶导数的导数,换句话说,它代表了检测点切线的变化趋势,有了这个趋势,我们是不是可以相对精确地预测邻接的点的位置了呢?我们先看 2 阶导数的几何意义为何。学过数学的都知道,2 阶导数表示了曲线的凸凹,对于凸函数,2 阶导数是负数,它表示切线的斜率会越来越小,而对于凹函数,2 阶导数是正数,它表示切线的斜率越来越大:

这里写图片描述

因此,有了 2 阶导数,我们对接下来的曲线走势定位就更加精确了,我们可以进一步缩小邻接的点的取值范围:

这里写图片描述

具体的坐标由 2 阶导数的具体值来约束。

到了这一步,进一步将曲线往前延伸似乎是无望的,因为:

  1. 首先,我们不知道代表检测点凸凹性的 2 阶导数的值在将来会不会逆转,即我们不知道曲线会不会由凸变凹或者由凹变凸;
  2. 其次,即使假设函数的凸凹性不变,我们也不知道接下来曲线是越来越凸 / 凹呢?还是反过来呢?

毕竟,我们只求得了检测点的 1 阶和 2 阶导数,注意,它们都只是一个数字,而不是一个带有自变量的新的函数,所以我们通过 1 阶导数和 2 阶导数,得到仅仅是 2 个值,仅此而已,如果我们能得到关于曲线任意一点的 2 阶导数的函数表达式,那么我们当然可以预测曲线 2 阶函数的走势,但在本文中,我不会那么做,我就假设,我们没有这个函数表达式,只有一个检测点的 2 阶导数的值!怎么办?

我们继续看 3 阶导数。在此之前,我必须要澄清一个观点。

我曾在知乎上查阅相关资料,也特意请教过一些搞数学的老师或者朋友,得到的解答可能都是从某个地方看到的一致性解答,说 3 阶、4 阶、5 阶… 导数这些没有几何意义和物理意义,数学只追求逻辑上的完整、自包容,而不是去追求什么几何意义、物理意义。我并不赞成这个说法,以霍金为例,他的虚时间模型虽然只是数学上的技巧,但最终目标却是为他的有限无界的宇宙几何模型服务,这说明,完成逻辑完整性证明和寻找其意义同等重要,可能后者还会更重要,我没有看到哪一个伟大的物理学发现背后仅仅是纯粹的思辨性的数学,不管是牛顿的引力场,还是爱因斯坦的引力场,还是霍金的量子引力,在逻辑严谨性支撑的前提下,都有一个漂亮得体的几何模型作为表象。

3 阶导数不难求,继续对 2 阶导数表达式求导,然后代入检测点的 x x x 值即可,然而 3 阶导数的意义是什么?其实仔细想想,并不难理解,这正如 2 阶导数主导 1 阶导数的变化从而把 1 阶导数自认为正确的 “以直代曲” 的直线模拟拉成弯曲的或者凸或者凹的曲线一样,3 阶导数同样主导 2 阶导数的变化,它可以表示 “曲线是继续凸下去或者继续凹下去,还是会在某一个 x x x 值后逆转,由凸变凹或者由凹变凸”。用语言表示比较苍白难以理解,于是我画了个图示:

这里写图片描述

好了,有了 3 阶导数,我们似乎进一步将曲线向前推进了,至少是预测出了一种趋势,然而这个趋势是必然的吗?考虑到一种情况,比如当前检测点的 2 阶导数值为 1,表示曲线在检测点是凹的,而同时 3 阶导数的值为 -1,这表示可能接下来邻接点的 2 阶导数会比 1 小一点,最终会变成 0 甚至负数,这意味着曲线会由凹变凸,即经历一个拐点,但这种预测一定会发生吗?

不一定!But why?

虽然当前检测点的 3 阶导数值为 -1,但这并不意味着它会一直保持 -1,如果它一直保持 -1,那么我们的预测正确,但是如果曲线的 3 阶导数在该检测点是递增的呢?这意味着会发生下面的情况:

在曲线从检测点 x 0 x_0 x0 开始,2 阶导数变为 0 甚至负数之前,其 3 阶导数就已经从 -1 递增到 0 以上了,这说明虽然曲线的凹性越来越显得不那么凹,有变平变凸的趋势,但这种趋势的趋势越来越弱,还没等曲线变成凸的,这种作用便消失了,曲线将会继续保持凹型发展下去…

上面的判断简直可以弥补 3 阶导数的误差,曲线进一步前进,很帅!那么如何判断 3 阶导数的走势呢?简单,求 4 阶导数!

进一步,以上这样发展会持续多久呢?好吧,求 5 阶导数吧,可以再推进一步。我们对曲线走势的掌握离开检测点随着越来越高阶导数的求解渐行渐远,6 阶导数,7 阶,8 阶,9 阶… 我们对曲线走势的预测将越来越接近原先的函数。

我来画一个实际的例子结束讨论:

这里写图片描述

这是否有点像鞭术大师执鞭表演,力道和甩鞭模式从大师的手掌开始沿着鞭体传播,模式的频率越低,影响的越远。除了鞭术,还有双截棍,如果玩双截棍的时候打到了自己,那么一定是哪个导数没有求好,比如 4 阶导数搞错了…

在了解了曲线的走势后,剩下的就是用二项式去拟合了。其实,这种二项式叠加的拟合方式并没有什么特殊的含义,只是因为它是可以做到的而已,你同样可以用傅立叶变换的方式将一个函数在频域上展开,因为那也是一种可能的方式。其实任何两个或者多个带有实际效应的表达式叠加在一起,整体而言都会表现出各个叠加体局部的性质,这里重要的是一个纯数学上的技巧,即如何确定二项式的系数,可以肯定的是系数跟各阶导数是相关的,剩下的问题就是待定系数法求解了,这并不是需要赘述的内容。

综上,在这个待定系数的角度,二项式拟合任何曲线实属凑出来的,因为凑出来的二项式叠加表达式的各阶导数值恰好等于原函数的各阶导数值。

然而这并不能让不断寻找意义的人满意,如果非要在纯数学之外去寻找这样做的意义,那么我们可以从中值定理入手去理解。说好了不谈这些诸如中值定理的,但事实上,想彻底理解一个数学概念,这些概念是避不开的,问题是,我们如何更简单地(而不是更复杂地)去理解它们。

以拉格朗日中值定理为例,它的中值定理是这样的:

如果函数 f ( x ) f (x) f(x) ( x 0 , x ) (x_0, x) (x0,x) 上可导, [ x 0 , x ] [x_0, x] [x0,x] 上连续,则必有一 ξ ∈ [ x 0 , x ] \xi \in [x_0, x] ξ[x0,x] 使得:

f ( x ) = f ( x 0 ) + f ′ ( ε ) ( x − x 0 ) f (x) = f (x_0) + f'(ε)(x - x_0) f(x)=f(x0)+f(ε)(xx0)

按照这个思路展开,既然在直观的 1 阶导数情形下,拉格朗日中值定理拥有几何意义,那么在 2 阶导数均拟合的情况下,是否可以有下面的描述呢:

如果函数 f ( x ) f (x) f(x) ( x 0 , x ) (x_0, x) (x0,x) 上可导, [ x 0 , x ] [x_0, x] [x0,x] 上连续,则必有一 ξ ∈ [ x 0 , x ] \xi \in [x_0, x] ξ[x0,x] 使得:

f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + f ′ ′ ′ ( ε ) 3 ! ( x − x 0 ) 3 f (x) = f (x_0) + f'(x_0)(x - x_0) + \frac {f''(x_0)}{2!}(x - x_0)^2 + \frac {f'''(ε)}{3!}(x - x_0)^3 f(x)=f(x0)+f(x0)(xx0)+2!f′′(x0)(xx0)2+3!f′′′(ε)(xx0)3

这个式子可以推广到 N N N 阶,这是一种很常见的思路,把一个式子一般化后推广,然后小心求证其合理性,待到证明完成,便可以进一步地解释现象,这种思路承接了近代绝大部分的科学技术进步!

我来给出上式子的一个几何解释,虽然我们想象不到 2 阶导数依照其几何意义如何画出来,但是我们可以把原始的函数本身升一个维度,然后用积分的思想去理解 2 阶导数的几何意义。

理解我在说什么了吗?我的意思简单点说,就是积分式的 1 阶导数(其实是导函数)就是被积函数,被积函数的 1 阶导数就是积分式的 2 阶导数,而我们知道积分式是有几何意义的,它表示面积,而被积函数则表示曲线,再进一步积分式的 2 阶导数则表示曲线上某点切线的斜率… 这样,相当于我们将 2 阶导数看成了切线斜率,将 1 阶导数看成了曲线本身,而原始函数看成了曲线与 x x x 轴围成的面积:

F area = f ( x ) = ∫ x 0 x g ( x ) d x f ′ = g ( x ) f ′ ′ = g ′ = 切线斜率  \begin{align*} {{F}_{\text{area}}} =f(x) & =\int_{{{x}_{0}}}^{x}{g}(x)dx \\ {f}' & =g(x) \\ {f}'' & ={g}'=\text{切线斜率 } \end{align*} Farea=f(x)ff′′=x0xg(x)dx=g(x)=g=切线斜率 

这样我们就可以用拼接图形求总面积的方式来在更高的维度表达类似拉格朗日中值定理的式子了。我们看一个图示:

这里写图片描述

我们依照上面的图示,试着求一下 O x D A OxDA OxDA 的总面积,首先我们将其表示成各个小块的和的形式:

S O D A = S O x 0 P 0 A + S x 0 x C P 0 + S P 0 C B + S P 0 B D S_{ODA} = S_{Ox_0P_0A} + S_{x_0xCP_0} + S_{P_0CB} + S_{P_0BD} SODA=SOx0P0A+Sx0xCP0+SP0CB+SP0BD

然后我们依照图示中的几何关系来分别求各个小块的面积,幸运的是,以直代曲的思想在此体现得淋漓尽致,我们要求的只是简单的三角形、矩形的面积,而我们知道这些完全用加减乘除四则混合运算就足够了,是不是很符合二项式叠加的思想呢?殊途同归!首先看 S O x 0 P 0 A S_{Ox_0P_0A} SOx0P0A,由定义,我们知道它就是 f ( x 0 ) f (x_0) f(x0),接下来看 S x 0 x C P 0 S_{x_0xCP_0} Sx0xCP0,它是个矩形,边长分别为 x − x 0 x - x_0 xx0 L P 0 x 0 LP_{0x_0} LP0x0,而 L P 0 x 0 LP_{0x_0} LP0x0 按照定义,它就是 g ( x 0 ) g (x_0) g(x0),而 g ( x 0 ) g (x_0) g(x0) 又是什么呢?很显然根据上面的微积分关系,它就是 f ′ ( x 0 ) f'(x_0) f(x0),到此为止我们可以把面积求和算式写成如下的样子了:

S O D A = f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + S P 0 C B + S P 0 B D S_{ODA} = f (x) = f (x_0) + f'(x_0)(x - x_0) + S_{P_0CB} + S_{P_0BD} SODA=f(x)=f(x0)+f(x0)(xx0)+SP0CB+SP0BD

还剩下两项,现在来看 S P 0 C B S_{P_0CB} SP0CB,它是个三角形,我们知道它的底边长就是 x − x 0 x - x_0 xx0,而高则是 L C B LC_B LCB,同时我们知道切线的斜率就是 f ′ ′ ( x 0 ) f''(x_0) f′′(x0),那么 L C B LC_B LCB 显然就是 f ′ ′ ( x 0 ) ( x − x 0 ) f''(x_0)(x - x_0) f′′(x0)(xx0),我们把它代入到上面的式子:

S O D A = f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + 1 2 f ′ ′ ( x 0 ) ( x − x 0 ) + S P 0 B D S_{ODA} = f (x) = f (x_0) + f'(x_0)(x - x_0) + \frac {1}{2} f''(x_0)(x - x_0) + S_{P_0BD} SODA=f(x)=f(x0)+f(x0)(xx0)+21f′′(x0)(xx0)+SP0BD

最后还剩一项了,即 S P 0 B D S_{P_0BD} SP0BD,它太小了,并且貌似不是很容易计算,因为它不是三角形,也不是任何用直线围成的,它的上沿是一条曲线… 这可怎么办?我们注意到,当 x x x x 0 x_0 x0 趋于接近的时候,这块小面积就趋近于 0 了,这便是可以忽略不计了,这就是极限的思想,当然这不是本文的主题。我在画上面的示意图的时候,特意将 x x x x 0 x_0 x0 拉开了一定的距离,这是为了直观,在真正的微积分运算中,这段距离就是无穷小,那么图形 S P 0 B D S_{P_0BD} SP0BD 的面积也就是无穷小了,暂且记为 O ( S P 0 B D ) O (S_{P_0BD}) O(SP0BD),最终的式子为:

S O D A = f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + 1 2 f ′ ′ ( x 0 ) ( x − x 0 ) + O ( S P 0 B D ) S_{ODA} = f (x) = f (x_0) + f'(x_0)(x - x_0) + \frac {1}{2} f''(x_0)(x - x_0) + O (S_{P_0BD}) SODA=f(x)=f(x0)+f(x0)(xx0)+21f′′(x0)(xx0)+O(SP0BD)

这样,当切分的区间越来越细致时, O ( S P 0 B D ) O (S_{P_0BD}) O(SP0BD) 越来越趋向于 0(这个很容易用积分中值定理从直观上看出来,事实上, O ( S P 0 B D ) O (S_{P_0BD}) O(SP0BD) 的值就等于 f ′ ′ ′ ( ε ) 3 ! ( x − x 0 ) 3 \frac {f'''(ε)}{3!}(x - x_0)^3 3!f′′′(ε)(xx0)3)。

好了,这就是一个在 2 阶情况下,中值定理大致的几何印象。循着这个思路推广下去,泰勒公式就在眼前了。

虽然我们想象不出来 N N N 阶中值定理的几何意义,但是正像物理学中经常提及超维一样,我们也可以把二维的笛卡尔坐标系拓展成 “无限维度空间中的超立方体”。这样的假设下,似乎还不是特别令人满意,但也就只能这样了。

事实上,我这里可以给出一点提示,利用积分中值定理可以证明泰勒公式在意义层面的合理性,利用分部积分从我上面给出的 2 阶导数直观几何意义开始,可以逐渐导出完整的泰勒公式!我不会在本文正文中去表达这些内容,因为怕公式太多。当你看线条找不出线条,夹角之间的关系时,试试面积,升个维度试试。

最后,记住一个结论, N N N 阶导数的几何意义物理意义要比如何用泰勒多项式表达任意表达式更加重要,后者只是说明它 “恰好能做到” 而已,除了泰勒多项式,傅立叶展开也可以达到同样的效果,另外,还可能有别的。

在观察二项式拟合任意函数的时候,我们知道 “它恰恰可以做到”,现在的问题是如何感性的认识到这一点,即 “它为什么就可以做到?”,我们以下面的两个多项式为例,来点感性认识:

f ( x ) = x 2 f ( x ) = x 3 f (x) = x^2\\ f (x) = x^3 f(x)=x2f(x)=x3

我们把它们画在一个图里:

这里写图片描述

可以看得出,2 次多项式的曲线表明它是关于 y y y 轴对称,而 3 次多项式的曲线表明它是关于原点 O O O 对称的。这个时候,我们试试两个二项式加和的图像时什么,为了保持对比,我把原始的两个二项式留在了图里:

这里写图片描述

感觉 2 次的多项式完全被 3 次多项式碾压覆盖,表现不出任何它自己的特征,我们可以清晰地看到,在 x x x 取值小于 0 的时候,根本表现不出 2 次曲线的行为,这似乎不是一个好消息,因为直观地看,次数越高的多项式在整体的求和表达式中越占据主导地位,那些次数较低的多项式都只是配角,负责曲线水平或者垂直的移动而已… 这似乎打破了 “任意次多项式求和表达式” 可以拟合任何曲线的神话。

然而,我们没有考虑缩放。

直观地看,虽然 3 次曲线在 x x x 变化时,其 y y y 值的变化剧烈程度要大于 2 次曲线(从其 1 阶导数上便能看得出,2 次曲线是 2 x 2x 2x,3 次曲线是 3 x 2 3x^2 3x2),如果我们能适当地,恰到好处的把二者的差异通过缩放平滑掉,那么结果如何呢?考虑到我们只能用四则混合运算,非常简单,给 3 次多项式除以一个大于 1 的系数,减小它的 y y y 效应,或者给 2 次多项式乘以一个大于 1 的系数,从而增加它的 y y y 效应,我们来看看结果如何。先看缩小 3 次曲线效应的结果:

这里写图片描述

再看增加 2 次曲线效应的结果:

这里写图片描述

这基本上达到了我们的预期。

到这里,我们知道,二项式的加和表达式是 “可以” 拟合任何曲线的,而泰勒展开式的那些系数则是一组 “恰到好处” 的系数,它保证了原表达式和展开表达式的各阶导数都是相等的!

我想,我终于把该表述的都说完了,有人提到说让我用动画去表示曲线的拟合,这个确实要比用图形和文字更加震撼,然而 It is beyond my ability,我并不会这些东西,我所用的 gnuplot 都要折腾好久,我并没有什么更好的简单的工具来帮我做更加直观的东西,所以就只能通过画草图和文字加以赘述,实为能力所限,实在抱歉。

我们考虑一个形象的表述来结束关于这个话题的讨论,那就是牛顿定律的 位移 / 时间 {位移}/{时间} 位移/时间 公式:

v = a t s = f ( t ) = v 0 t + 1 2 a t 2 \begin{align*} v & =at \\ s & =f(t)={{v}_{0}}t+\frac{1}{2}a{{t}^{2}} \end{align*} vs=at=f(t)=v0t+21at2

我们知道,位移时间的 1 阶导数就是速度,2 阶导数就是加速度,在恒力 F 0 F_0 F0 作用下,2 阶导数是一个不随时间变化的定值,那么问题是,时间 t t t 后的位移由谁决定,仔细想想就会明白,如果我们忽略恒力导致的加速度 a a a,即忽略 位移 / 时间 {位移}/{时间} 位移/时间 的 2 阶导数,那么时间 t t t 后的位移为:

s t = v 0 t t s_t = v_{0t} t st=v0tt

很显然,在恒力的作用下,这与真实的位移结果差很多,距离当前时间越远,结果误差就越大,很显然,在离当前时间 t 0 t_0 t0 的适当远 t t t 处,位移 / 时间的 2 阶导数便派上了用场,在恒力作用下,它可以精确计算相对于当前时间的位移。

以上的讨论仅仅是在恒力作用下牛顿第二定律导出的结论,然而如果施加的力不是恒定的,而是一个关于时间 t t t 变化的变力 F = f ( t ) F = f (t) F=f(t),那么此时仅仅 2 阶导数便不足以刻画时间 t t t 后精确的位移了,此时要想预测时间 t t t 后的位移,随着 t t t 距离当前时间的远去,位移时间的 3 阶导数,4 阶导数… 便派上了用场,注意,变化率的变化率使得我们能在越来越远的地方预测趋势,这个正是和上文中关于泰勒展开的讨论是一致的。

值得一提的是,牛顿在当初导出微积分重要结论的时候,就是为了研究物理运动的,特别是天体的运动,因此关于 位移 / 时间 {位移}/{时间} 位移/时间 在微积分上的结论应该是从《自然哲学的数学原理》中可以看到的第一手结论。

第二部分 另外一种刻画的方式

一般而言,我们在画一个函数的图像时,基本就两点:

  1. 首先求解各阶导数,判断其增减性,凸凹性,极值,拐点等,并且描出这些点;
  2. 其次,拟合若干个可以判断的具体点。

这样,大致的曲线就画出来了,可以看到,这种画法跟素描的方式非常像,简直就是素描!先画轮廓,然后进一步细化。然而我觉得这不是云天明故事中针眼画师的画法,这也不是我的画法。

不管怎样,虽然两种不同的画法在操作细节上是截然不一致的,但是结果是,两种方案的结论是完全一致的,函数被刻画了,性质坦然地舒展了,还有什么性质没有暴露呢?嗯,也许在无穷远处的无穷小的误差可能会引发逻辑上的争论。但此事并不经常,也不绝对。

在正文中我是通过一个单独的点来蕴含整体模式的,然而在数学上,多数的建议却是,采用了素描的方式从粗到细地去刻画。两类的效果是一致的。

第三部分 关于导数和频率

我们知道,1 阶导数就是函数在 x x x 变化时,对应到 y y y 变化的效应,而 2 阶导数则是 x x x 变化时,对应到函数 1 阶导数的变化效应,以此类推。最后我们发现,整个 N N N 阶导数对应是一系列不同频率的变化效应,而整个原始的函数曲线正是这些不同频率的效应的叠加,用这个思路去解释傅立叶展开是非常合理的,然而我们发现它竟然也可以对应地去解释泰勒展开!

随着求导阶数的增加,效应频率也在不断降低,最终这些不同频率的效应将反馈到函数曲线上的任意一点,而这就完整勾勒出了整条曲线。如果能掌握了这个道理,那么那些执鞭者便可以从单点甩出任意曲线了,我们都知道,频率越高,传播距离越短,频率越低,传播距离越长,当然执鞭者也知道这个道理。这一切在数学上的反映,那就是:

求导越深,频率越低,影响越远,曲线越拟合。

爆炸!旋转升降座椅一定会爆炸!赶紧换椅子。

很多人在看了这些文章后,都给了一些建议,比如说加入一些动画,我起初是不擅长这些的,然而主音吉他手告诉我说 gnuplot 里做 gif 超级简单,于是我在周一下班后仔细研究了一下,确实很简单,虽然还没有完全掌握关键的语法,但是比葫芦画瓢还是可以的。

以下是一个 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) 的泰勒展开的 gif 动画,红色代表原始的 y = sin ⁡ ( x ) y = \sin (x) y=sin(x),绿色曲线的每一帧表示多了一阶的导数,也就是展开式中多了一项,可以看得出,随着求导的深入,绿色曲线将越来越拟合原始的正弦曲线,能拟合到什么程度呢?答案是 “你想到什么程度,就能到什么程度”

这里写图片描述

附录

A. 分部积分法推导泰勒公式

我们从正文中提到的中值定理的变形体入手:

f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + 误差余项 f (x) = f (x_0) + f'(x_0)(x - x_0) + \text {误差余项} f(x)=f(x0)+f(x0)(xx0)+误差余项

为了简单起见,我忽略掉了余项 O ( S P 0 B D ) O (S_{P_0BD}) O(SP0BD),注意,只是在写法上忽略了余项,事实上它是会一直存在的,这个余项会随着推导的进行,一直往后逼,越来越小。

我们首先希望推倒多米诺骨牌的第一块试试看,升个维度,把导数写成积分的形式,我们有:

f ( x ) = f ( x 0 ) + ∫ x 0 x f ′ ( x − r )   d r f (x) = f (x_0) + \int_{x_0}^x f'(x - r) \, dr f(x)=f(x0)+x0xf(xr)dr

请注意, r r r 是计算积分使用的变量,它和计算整个叠加和所用的 x x x 是不同的。以上就是整个多米诺骨牌布景了,现在该推倒第一块了!使用分部积分法则:

∫ u   d v = u v − ∫ v   d u \int u \, dv = uv - \int v \, du udv=uvvdu

现在设:

u = f ′ ( x − r ) u = f'(x - r) u=f(xr)

v = r v = r v=r

于是:

∫ x 0 x f ′ ( x − r )   d r = ( f ′ ( x − r ) r ) x 0 x − ∫ x 0 x r   d f ′ ( x − r ) \int_{x_0}^x f'(x - r) \, dr = (f'(x - r) r)_{x_0}^x - \int_{x_0}^x r \, df'(x - r) x0xf(xr)dr=(f(xr)r)x0xx0xrdf(xr)

按照积分区间整理上式子:

∫ x 0 x f ′ ( x − r )   d r = f ′ ( x 0 ) ( x − x 0 ) + ∫ x 0 x f ′ ′ ( x − r ) r 2 2   d r 2 \int_{x_0}^x f'(x - r) \, dr = f'(x_0)(x - x_0) + \int_{x_0}^x f''(x - r) \frac {r^2}{2} \, dr^2 x0xf(xr)dr=f(x0)(xx0)+x0xf′′(xr)2r2dr2

代入最终表达式:

f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + ∫ x 0 x f ′ ′ ( x − r ) r 2 2   d r 2 f (x) = f (x_0) + f'(x_0)(x - x_0) + \int_{x_0}^x f''(x - r) \frac {r^2}{2} \, dr^2 f(x)=f(x0)+f(x0)(xx0)+x0xf′′(xr)2r2dr2

好了,多米诺骨牌的第一块已然推倒了… 接下来就观测吧!

给出点提示:注意上面式子的第三部分:

∫ f ′ ′ ( x − r ) r 2 2   d r 2 \int f''(x - r) \frac {r^2}{2} \, dr^2 f′′(xr)2r2dr2

如果我们再次设 u = f ′ ′ ( x − r ) u = f''(x - r) u=f′′(xr) v = r 2 v = r^2 v=r2 呢,继续享受上面的分部积分过程吧

大致意思就是这样,过程就不详细写了。

B. 泰勒公式失效的场景 (这个附录会很长)

是滋补鸡汤还是慢性毒药,刚刚喝完的时候是无法获知的,然而,当你喝下去这碗汤后 3 天,如果它是鸡汤,你无法在这么短的时间内体会到它带给你的益处,如果它是毒药,你将死去…

是时候把物理意义扯出来了。

在正文中,我强调的那些可以 “从一点窥见整个世界” 的曲线其实是有条件的,那就是它的定义域必须是全体实数,且处处可导,若不是这样的话,情况就会复杂得多,这些复杂的情况在本附录讨论。在详细讨论前,有个声明。

由于本文并不是在同一时间写的,中间间隔了一个工作周,在这一周中我学会并喜欢上了 Geogebra,所以我放弃了 gnuplot,以下的图示全部来自于 Geogebra。让我们开始吧!

首先看一个简单的反比例函数 y = 1 x y = \frac {1}{x} y=x1,我们看下它的图像:

这里写图片描述

且问曲线如何从 A A A 点 “按照趋势” 延伸到 B B B 点? A A A 点和 B B B 点之间有一堵墙,该墙不可逾越!因为分母不能是 0,所以 y y y 轴理所当然就是这堵不可逾越的墙了,换句话说, y y y 轴左右两边是隔离的两个世界,在数学上,这个 x = 0 x = 0 x=0 的点就叫做奇点

奇点的意义在于,在该点,曲线是没有定义的,在这种点处,求导什么的都是毫无意义的,这些点真的就是 “奇异” 的点,任何计算,任何公式,定律都毫无意义(下文中将会赋予奇点以意义!)。

知道了奇点的概念后,再说一个例子。

5 \sqrt {5} 5 比较好玩,然而我便犯了一个低级的错误。我信口开河 “把 y = x 1 2 y = x^{\frac {1}{2}} y=x21 泰勒展开,把 5 代入不就可以了吗”,为了在计算中不引入根号,瞬间想到了在 x = 1 x = 1 x=1 处展开… 计算是简便了,然而结果对吗?

我们先来看一段动画,即在 x = 1 x = 1 x=1 处展开 y = x 1 2 y = x^{\frac {1}{2}} y=x21 的最多 n = 50 n = 50 n=50 阶逼近的过程(Geogebra 做这个非常帅!简单直接易上手!):

这里写图片描述

n = 1 n = 1 n=1 n = 50 n = 50 n=50,把 x = 5 x = 5 x=5 代入均得不到正确的结果。可见,结论并不是我们之前预期的那样,在 “ x = 1 x = 1 x=1 这一个点窥见整条曲线”,显然 “能窥见” 的曲线范围仅仅局限在大致 ( 0 , 2 ) (0, 2) (0,2) 这个区间里。到底发生了什么?在进一步阐释物理意义之前,我还有点建议,如果你没有接触过复分析,收敛圆,收敛半径,审敛法这些,那么正好,如果你接触过这些但只是懂概念,能推导,那么建议暂时忘掉,如果你精通这些,那么不建议继续阅读下去。

…….

霍金的宇宙模型中,奇点是所有经典物理定律完全失效的地方,它既是,它同时又是所有!霍金认为,量子理论可以解释奇点里发生的事,毕竟物理学不是哲学,人们显然不能接受纯粹的无或者无穷。奇点蕴含了整个宇宙本身,在创世之初的那一瞬间,奇点就是整个宇宙,它是时间,它是空间,它是上帝本体!

宇宙的膨胀意味着时间的膨胀和空间的膨胀,既然是膨胀,肯定需要多余的物质和能量,当我们吹气球的时候,气球之所以会膨胀,那是因为有气体不断地注入气球内部,同时气球球壁还有足够的厚度可以展开,总之,整个过程是需要物质(球壁)和能量(吹气)的!宇宙外面是什么并不是我们讨论的范围,霍金认为宇宙就是宇宙,是一个自洽的整体,那么显然没有在宇宙外面吹气的那个人,宇宙也不会有球壁… 促使宇宙膨胀的物质和能量来自哪里?

来自奇点
来自奇点!
来自奇点!
奇点早就蕴含了一切!

用霍金宇宙的奇点思想理解数学上的奇点概念,是朴素的。一条连续且光滑的曲线,它由它的奇点蕴含并生成,以 y = 1 x y = \frac {1}{x} y=x1 为例,它由两条连续且光滑的曲线构成, x = 0 x = 0 x=0 是该函数的一个奇点,也是唯一的奇点,那么 x = 0 x = 0 x=0 处便蕴含并可生成整个两条曲线了。

你可以把奇点想象成一个无线维度浓缩在一起的一个点,就像面团一样,可以展开到任何维度,可以擀成饺子皮,可以拉成拉面,可以团成馒头… 现在我们用奇点的概念来描述一下函数 y = x 1 2 y = x^{\frac {1}{2}} y=x21 的曲线的生成过程:

这里写图片描述

如果不加干预,整个曲线会一直展开下去,直到遇到定义域的边界,那么在泰勒公式的干预下,事情有所不同,当我们说将原函数在 x = a x = a x=a 处泰勒展开的时候,实际上我们是接管了整个展开过程, x > a x > a x>a 的后面的曲线将不再从奇点拉出,而是由泰勒公式预测出来并展开,此时奇点的物质和能量将停止向外释放,原始函数的曲线生成将停止,此后,泰勒展开的过程将用另外一条曲线去替代原始函数的曲线。需要注意的是,当我们将函数 f ( x ) f (x) f(x) x = a x = a x=a 处泰勒展开的时候,并非只针对 x > a x > a x>a 的点有效,而是所有定义域的点都有效,毕竟泰勒展开式和原始函数是完全不同的两个函数!

由上面的过程性描述可知,如果将 f ( x ) f (x) f(x) x = a x = a x=a 处泰勒展开了,那么泰勒公式仅仅能看到的是曲线从其奇点开始到 x = a x = a x=a 结束这个区间的部分,其余的部分它是看不到的。这意味着什么?

这意味着,泰勒公式仅仅可以利用曲线来自奇点的从奇点到这个展开点之间的小区间的 “物质” 和 “能量”,这些能量有多少决定了泰勒公式能量曲线往后(离开奇点的方向上)延展多远,如果说从奇点到泰勒展开点,能量已经释放了 E E E,那么泰勒公式就只能利用大小等于 E E E 的能量去展开原函数:

这里写图片描述

事实上也确实这样,抛开这些烧脑的东西,在我们日常生活中也经常会碰到类似的情况。

当一个人讲话的时候,一些喜欢接话头的人就会插嘴说,我知道你想说什么,我来说吧。然而这种出风头的策略并非总是奏效。如果原来讲话的人刚开始说话,那么插话的人往往也预测不了太多的内容,然而如果最开始讲话的人说了很久,那么一些暗中观察的插话者往往能预测很多的内容并接着说下去。回到我们的泰勒展开,也就是说,展开点离开奇点越远,那么泰勒公式拟合的就越远,这背后的思想就是能量守恒,奇点已经将能量积累到了展开点,那么泰勒公式也就仅仅能用这么多能量(事实上所谓的能量就是各阶导数信息)来展开,这么多能量能跑多远呢?积累过程跑了多远,那就还能跑那么远!想想单摆运动吧,就这个道理。

那么 y = sin ⁡ ( x ) y = \sin (x) y=sin(x) y = e x y = e^x y=ex 这些函数的奇点在哪里?这些函数的奇点在无穷远处。这意味着,在任意一个展开点,函数曲线本身都已经积累了无穷的能量(即信息),这说明泰勒公式可以将其完全展开到无穷。

离奇点越近,各种趋势越不易表现出来,奇点附近刚开始积累趋势,趋势尚未表现,这就是能量和运动的观点,我就是这样避开了那些收敛圆,收敛半径这些概念的。

C. 到底什么是数学

如果你觉得数学纯思辨性的类似哲学的东西,那么你可以忽略我下面的所述,如果不是,请看完它,哪怕是心里压着邪火,保持着愤怒。

只有在古希腊数学才是纯思辨哲学的分支,从罗马帝国的地中海世界开始,一直到今天,数学都只是工具,解题工具。当然这里说的解题并非我们考试中的解题,而是实实在在的处理数据时必须要解决的难题。

不要把炼丹术和占星术看作是迷信这种不可救药的东西,它们和数学的关系源远流长。首先指出,现代数学和古希腊数学完全不是一个概念,甚至几乎没有什么关联,所以在理解现代数学本质的概念的时候,千万不要去想什么毕达哥拉斯学派什么的。炼丹术和占星术是现代化学和天文学的先祖,当它们无法用咒语欺骗国王的时候,它们就必须拿出证据来保住自己的饭碗,这无形中将它们推向了现代科学的 “深渊”。千万不要将哥白尼,伽利略,牛顿… 他们看成是拥有现代科学品质的明事理的人,在他们的年代,他们无一例外都披着神学的外衣,只是他们在处理一些棘手问题的时候,偶然间发现了一些所谓的真相,要让这些真相在逻辑上变得合理,他们必须处理大量的数据从而期望导出一些隐藏在这些数据背后的关系。在处理数据的时候,他们无一例外地被数据和关系的复杂性困扰,于是乎他们搞出一些处理技巧,这些技巧就是现代数学的前身,因此可以说炼丹术和占星术引导了现代物理,现代物理激发了现代数学,这其中一脉相承的就是神学和哲学的不断渗透和对抗。

明白了这些之后,你会发现现在中学大学里的数学课程的教法是多么没有意义。这些课程看似很深邃,然而都是毫无意义的。我记得我上大学的时候(当时还是本科,后来才 “进修到大专”),老师给我们讲梯度散度旋度,最后的输出就是背诵了一大堆的定理和公式,我问老师这些有什么用,老师说这些期末考试是必考点,以后考研也会考… 后来我退学后跑到了女朋友(小小的妈妈)学校外面的村子里租了个房子,刚过去时,正逢她们班要期末考试了,也要考高等数学,什么洛必达法则,牛顿 / 莱布尼兹公式… 爆炸,她们是日语教育专业啊!考这玩意儿毛用啊!

然而抱怨是苍白的,我依然要拖着疲惫的身躯去给她们讲高等数学,对了,还包括她的同班男生,反正就是我女朋友全班… 讲着讲着我就上瘾了(其实也没讲多久),当有人问我学这些有什么用的时候,我总是微笑着回答,这些都是必考点,以后你们考研也会考,说这话时我特别自豪,微笑里带着些许嘲讽和洒脱,因为我 TMD 再也不用考试和考研了!我不知道当时这样回答我的老师是不是也是这么想的。

….

在以后的学习生涯中,我彻底摒弃了学校里的那一套,因为我再也不用考试了,而且也不会再参加任何形式的考试。所以我变得天马行空,我从马鞍面导出了 Linux Netfilter 的设计模型,最终确认我也是这么想的,然后我想仅仅是精通 iptables 的配置或者看完 conntrack 的代码是多么 Low 啊,于是我便更进一步探索了 Cisco 和 Netfilter 在设计上的差异,最终实现了基于 Netfilter 的 Cisco 模型… 在我学习最小二乘法的时候,我试图理解平方的深意,后来我看了牛顿的《原理》之后,发现了平方律和立方律简直就是构成我们世界的基本元素啊!

王姐姐说牛顿是外星人,我表示赞同。然而牛顿是怎么思考的?!

1905 年,爱因斯坦的奇迹年,主角是一位不修边幅,收入不高的专利局小职员,有点像《三体》小说作者刘慈欣,在火电站工作,不好好上班天天上班时间写小说… 然而就是这个爱因斯坦道出了现代数学的本质,它只是工具!爱因斯坦从来没有系统学习过现代数学,他只是在用到的时候去请教身边的数学专家,他真的就是把数学当扳手使的。我不晓得其它的人怎么想,我只知道,狄拉克的算符,费曼的积分,霍金的虚时间轴,这些都是数学上的技巧,你要是问有什么物理意义,我觉得他们本人都说不出,只是这么处理很方便,仅此而已吧。

那么,既然现代数学只是个工具,岂不是很 Low?!No!每一个数学上的突破,均代表了一系列的总结,最终会引领新的突破,这方面,数学已经替代了哲学。在我工作的计算机领域,任何一个想法,如果你不能用数学表示出来,那便是不可处理的,请问不可处理的东西能完成 KPI 吗?于是便有了数学建模。然而模型的建立谈何容易。

(TODO)


via:

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值