关于泰勒展开的细节-《三体》读后感的读后感...

上周写完了《《三体》读后思考-泰勒展开/维度打击/黑暗森林》后收到一些邮件,进一步思考了关于泰勒展开的意义。也许我掌握的那些网络技术比如Linux Netfilter,NAT之类,太过底层太过小众,所以大家几乎都是没有感兴趣的,倒是这种科普性质的文章和那些吐槽类的文章,会引发一系列的互动,这对我来讲是好事,因为我喜欢跟人交流技术和思想。

声明

本来这篇文章应该添加在《三体》读后感后的“补遗”一节呢,后来觉得太长了,有点喧宾夺主的意思,就单独写了一篇文章。
??其实吧,这篇文章已经跟《三体》小说没有太大的关系了,这纯粹是一篇关于数学的文章,但是由于本文要涉及大量关于“趋势的趋势的趋势”,“走势的走势的走势的走势”,“导数的导数的导数的导数的导数…”,为了保持一致性,我将本文的题目写成了“《三体》读后感的读后感…”,可能后面还有,未完待续!

第一部分.泰勒展开解释

很多人对我解释的泰勒展开提出了自己的疑问,这些疑问大致都是对下面的问题表示不解:
为什么可以从一个单独的点不断求导就可以画出整个函数的曲线?即“一点是如何蕴含整个世界”的。
诚然,这个问题其实在数学上是及其容易证明的,在定量的角度,随便找出一本讲微积分或者数学分析的书都可以得到令人满意的回答,我在文章《《三体》读后思考-泰勒展开/维度打击/黑暗森林》中也给出了一个简易的推导。然而,在满足了逻辑上的自洽后,我们很多人对一件逻辑上合情合理的事情便有了探索其实际意义的欲望,比如我们会问,它的物理意义是什么,它的几何意义是什么,甚至更基本的,它的意义是什么?就这么问着问着,便似乎有了一点哲学探索的味道,在我看来,这便是最精彩的!
?? 很多人都看过双截棍表演,但现如今很少有人了解鞭术了,其实你可以把鞭子看成是N趋近于无穷大时的N截棍,玩起来更难。其实我也不是很懂,就是为了解释这个泰勒展开才稍微看了一点关于鞭术的东西,具体来讲,执鞭人手执鞭子在原地只是上下左右按照一定的规则甩鞭,一条很长的鞭子就会整体展现成各种漂亮的曲线,他是怎么做到的?
?? 当然,从物理上讲,这当然是若干列波从执鞭处向鞭子的另一端传播,传播的过程在不同的点产生了定向的效果,然而似乎不是一个很好的足以让人满意的解释,我们的问题是,那个执鞭人的手需要怎么个动作,才能让鞭子整体上看来是那种效果?
??这个问题我是回答不了,因为我不懂鞭术,身边也没有懂的人,但是这个问题似乎和本文一开始的那个问题讲的是同一回事,即从一个点来蕴含整体的行为。

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

so,我们需要进一步的信息,我们继续求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值即可,然而3阶导数的意义是什么?其实仔细想想,并不难理解,这正如2阶导数主导1阶导数的变化从而把1阶导数自认为正确的“以直代曲”的直线模拟拉成弯曲的或者凸或者凹的曲线一样,3阶导数同样主导2阶导数的变化,它可以表示“曲线是继续凸下去或者继续凹下去,还是会在某一个x值后逆转,由凸变凹或者由凹变凸”。用语言表示比较苍白难以理解,于是我画个图示:

这里写图片描述

好了,有了3阶导数,我们似乎进一步将曲线向前推进了,至少是预测出了一种趋势,然而这个趋势是必然的吗?考虑到一种情况,比如当前检测点的2阶导数值为1,表示曲线在检测点是凹的,而同时3阶导数的值为-1,这表示可能接下来邻接点的2阶导数会比1小一点,最终会变成0甚至负数,这意味着曲线会由凹变凸,即经历一个拐点,但这种预测一定会发生吗?
??不一定!But why?
??虽然当前检测点的3阶导数值为-1,但这并不意味着它会一直保持-1,如果它一直保持-1,那么我们的预测正确,但是如果曲线的3阶导数在该检测点是递增的呢?这意味着会发生下面的情况:
在曲线从检测点x0开始,2阶导数变为0甚至负数之前,其3阶导数就已经从-1递增到0以上了,这说明虽然曲线的凹性越来越显得不那么凹,有变平变凸的趋势,但这种趋势的趋势越来越弱,还没等曲线变成凸的,这种作用便消失了,曲线将会继续保持凹型发展下去…
??上面的判断简直可以弥补3阶导数的误差,曲线进一步前进,很帅!那么如何判断3阶导数的走势呢?简单,求4阶导数!
进一步,以上这样发展会持续多久呢?好吧,求5阶导数吧,可以再推进一步。我们对曲线走势的掌握离开检测点随着越来越高阶导数的求解渐行渐远,6阶导数,7阶,8阶,9阶…我们对曲线走势的预测将越来越接近原先的函数。

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

这里写图片描述


这是不是有点像鞭术大师执鞭表演,力道和甩鞭模式从大师的手掌开始沿着鞭体传播,模式的频率越低,影响的越远。除了鞭术,还有双截棍,如果玩双截棍的时候打到了自己,那么一定是哪个导数没有求好,比如4阶导数搞错了…
??在了解了曲线的走势后,剩下的就是用二项式去拟合了。其实,这种二项式叠加的拟合方式并没有什么特殊的含义,只是因为它是可以做到的而已,你同样可以用傅立叶变换的方式将一个函数在频域上展开,因为那也是一种可能的方式。其实任何两个或者多个带有实际效应的表达式叠加在一起,整体而言都会表现出各个叠加体局部的性质,这里重要的是一个纯数学上的技巧,即如何确定二项式的系数,可以肯定的是系数跟各阶导数是相关的,剩下的问题就是待定系数法求解了,这并不是需要赘述的内容。
??综上,在这个待定系数的角度,二项式拟合任何曲线实属凑出来的,因为凑出来的二项式叠加表达式的各阶导数值恰好等于原函数的各阶导数值。
??然而这并不能让不断寻找意义的人满意,如果非要在纯数学之外去寻找这样做的意义,那么我们可以从中值定理入手去理解。说好了不谈这些诸如中值定理的,但事实上,想彻底理解一个数学概念,这些概念是避不开的,问题是,我们如何更简单地(而不是更复杂地)去理解它们。
??以拉格朗日中值定理为例,它的中值定理是这样的:

如果函数f(x)x0,x上可导,[x0,x]上连续,则必有一ξ[x0,x]使得

f(x)=f(x0)+f(ε)(x?x0)

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

如果函数f(x)x0,x上可导,[x0,x]上连续,则必有一ξ[x0,x]使得

f(x)=f(x0)+f(x0)(x?x0)+f(x0)2!(x?x0)2+f(ε)(x?x0)

这个式子可以推广到N阶,这是一种很常见的思路,把一个式子一般化后推广,然后小心求证其合理性,待到证明完成,便可以进一步地解释现象,这种思路承接了近代绝大部分的科学技术进步!
??虽然我们想象不出来N阶中值定理的几何意义,但是正像物理学中经常提及超维一样,我们也可以把二维的笛卡尔坐标系拓展成“无限超立方体”。这样的假设下,似乎还不是特别令人满意,但也就只能这样了。
??事实上,我这里可以给出一点提示,利用积分中值定理可以证明泰勒公式在意义层面的合理性,我不会在本文中去表达这些内容,因为怕公式太多。当你看线条找不出线条,夹角之间的关系时,试试面积,升个维度试试。
??最后,记住一个结论,N阶导数的几何意义物理意义要比如何用泰勒多项式表达任意表达式更加重要,后者只是说明它“恰好能做到”而已,除了泰勒多项式,傅立叶展开也可以达到同样的效果,另外,还可能有别的。
??在观察二项式拟合任意函数的时候,我们知道“它恰恰可以做到”,现在的问题是如何感性的认识到这一点,即“它为什么就可以做到?”,我们以下面的两个多项式为例,来点感性认识:

f(x)=x2

f(x)=x3

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

这里写图片描述

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

这里写图片描述

感觉2次的多项式完全被3次多项式碾压覆盖,表现不出任何它自己的特征,我们可以清晰地看到,在x取值小于0的时候,根本表现不出2次曲线的行为,这似乎不是一个好消息,因为直观地看,次数越高的多项式在整体的求和表达式中越占据主导地位,那些次数较低的多项式都只是配角,负责曲线水平或者垂直的移动而已…这似乎打破了“任意次多项式求和表达式”可以拟合任何曲线的神话。
??然而,我们没有考虑缩放。
??直观地看,虽然3次曲线在x变化时,其y值的变化剧烈程度要大于2次曲线(从其1阶导数上便能看得出,2次曲线是2x,3次曲线是3x2),如果我们能适当地,恰到好处的把二者的差异通过缩放平滑掉,那么结果如何呢?考虑到我们只能用四则混合运算,非常简单,给3次多项式除以一个大于1的系数,减小它的y效应,或者给2次多项式乘以一个大于1的系数,从而增加它的y效应,我们来看看结果如何。先看缩小3次曲线效应的结果:

这里写图片描述

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

这里写图片描述

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

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

v=at

s=f(t)=v0t+12at2

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

st=vt0t

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

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

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

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

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

这样,大致的曲线就画出来了,可以看到,这种画法跟素描的方式非常像,简直就是素描!先画轮廓,然后进一步细化。然而我觉得这不是云天明故事中针眼画师的画法,这也不是我的画法。
??不管怎样,虽然两种不同的画法在操作细节上是截然不一致的,但是结果是,两种方案的结论是完全一致的,函数被刻画了,性质坦然地舒展了,还有什么性质没有暴露呢?嗯,也许在无穷远处的无穷小的误差可能会引发逻辑上的争论。但此事并不经常,也不绝对。
??在正文中我是通过一个单独的点来蕴含整体模式的,然而在数学上,多数的建议却是,采用了素描的方式从粗到细地去刻画。两类的效果是一致的。

第三部分.关于导数和频率

我们知道,1阶导数就是函数在x变化时,对应到y变化的效应,而2阶导数则是x变化时,对应到函数1阶导数的变化效应,以此类推。最后我们发现,整个N阶导数对应是一系列不同频率的变化效应,而整个原始的函数曲线正是这些不同频率的效应的叠加,用这个思路去解释傅立叶展开是非常合理的,然而我们发现它竟然也可以对应地去解释泰勒展开!
??随着求导阶数的增加,效应频率也在不断降低,最终这些不同频率的效应将反馈到函数曲线上的任意一点,而这就完整勾勒出了整条曲线。如果能掌握了这个道理,那么那些执鞭者便可以从单点甩出任意曲线了,我们都知道,频率越高,传播距离越短,频率越低,传播距离越长,当然执鞭者也知道这个道理。这一切在数学上的反映,那就是:
求导越深,频率越低,影响越远,曲线越拟合。
爆炸!旋转升降座椅一定会爆炸!赶紧换椅子。
(TODO)

爱编程-编程爱好者经验分享平台

文章评论

  

版权所有 爱编程 © Copyright 2012. w2bc.com. All Rights Reserved.
闽ICP备12017094号-3