在统计分析和建模处理中,经常用到最小二乘的相关方法进行误差分析处理。该方法的核心是所有估计值与被估计值之差的平方和达到最小。两百年来,最小二乘思想的应用例子浩如繁星;到了最近十年,在新兴的大数据科学以及人工智能疆场,到处都响着最小二乘的战鼓。但会用相关的方法流程和计算工具,不一定就清楚背后的数学原理。厘清读者朋友们“知其然而不知其所以然”的困惑,正是笔者写作本文的一个初衷。 往期文章: 一、矩阵乘法为什么是这样定义的? 二、从反函数的观点看逆矩阵撰文 | 朱慧坚(玉林师范学院数学与统计学院副教授)、丁玖(美国南密西西比大学数学系教授)让我们在xy-直角坐标平面上画上五个点,它们的坐标是任意给出的,比方说(x1,y1)=(1,2), (x2,y2)=(2,1), (x3,y3)=(3,3), (x4,y4)=(4,5), (x5,y5)=(5,4)。我们发现,无论怎样作一条直线,都不可能同时经过所有这五个点。见下图:读者或许会说,两个点决定一条直线,即给定平面上两个不同的点,有且仅有一条直线经过它们。现在给了五个点,哪能有一根直线通过所有这些点?除非它们恰好位于一条直线上。你说对了,事实胜于雄辩。然而在现实世界里,我们常常遇到这样的问题:这些点是科学家或工程师为了寻求某种现象之客观规律而获得的实验数据,数据依赖于测量,而测量就逃脱不了误差。如果这个设想或期待的规律可表达为最简单的线性函数(当然一般是复杂得多的函数,如携带了众多参变量的有理函数、无理函数、三角函数、指数函数等,但本文旨在解释思想,而非追逐细节),那么这五组自变量和因变量的试验值一般不可能都能精确满足这个线性函数,从而产生了另一种误差。既然任何直线都不能由这些点精确表达,能否找到一根直线,使得它尽可能地“拟合”这些数据?自然,最佳的拟合就是插值,但这里行不通,因为直线插值通常只能“插进”两点,另三点只好落在线外。这样,我们需要寻找另一种“最佳拟合方案”。这个最佳逼近所遵循的途径就是本文主题“最小二乘”。每根不垂直于x-轴的直线都是线性函数的图像,线性函数的一般表达式是y=p(x)=a0+a1x,其中a0是直线在y-轴上的截距,a1是直线的斜率。如果该线性函数确实给出上述五对自变量值和函数值,那么应该有五个精确成立的等式然而,这五个“等式”大部分都是“不等式”,即等式的左边大都不等于右边,它们之间的差的绝对值 表示第i个实验值yi与理论值a0+a1xi之间的误差。代入上面给出的xi和yi的具体数字,就会得到下列五项误差数值我们的目标是寻找到线性多项式的系数(也叫参数)a0和a1的值,使得来自于上列“局部误差”的“全局误差”为最小。然而,可以有多种方法定义全局误差,似乎最简单也最容易想到的方法就是将所有的局部误差加起来,即这两种基于统计学思想的误差表达式本质上一致,看似简单实用,但在最优化理论的行家眼里却是“不堪此任”,原因就在于无论是局部误差之和还是它们的算术平均值,作为两个自变量a0和a1的非线性函数,它们并非是处处可微的光滑函数,数学上处理起来颇令专家们头疼。对这类在某些点缺乏偏导数的多元函数,要得到其值为最小的最优点,不仅无一般解析公式可用,而且计算起来也很麻烦,因为基于微分概念的数值最优化方法(如最有名的牛顿法),这时没有多少用武之地。上述二元函数的非光滑性来源于高中生都知道的事实:绝对值函数y=|x|在x=0时导数不存在。这个函数的图像是直角坐标平面第一和第二象限的对角射线之并,形状像“身宽体胖”的大写英文字母“V”,坐标原点是它的一个尖点,在那里曲线(折线)没有切线。 那么,怎么解决上述不可微误差函数最小值难以计算的困难呢?解决方案其实相当简单,只要设法去掉令人讨厌的绝对值符号就行!实数的绝对值满足等式:|x|2=x2,这样平方后绝对值符号就只好逃之夭夭!于是我们将局部误差换成它的平方,加起来后再求算术平方根,就获得一个新的全局误差表达式放在一起看作一个五维向量的各个分量,则上述的根号表达式恰恰就是这个向量的欧几里得2-范数。欧几里得空间的2-范数概念是二维平面向量或三维空间向量通常长度概念的自然推广。根据著名的直角三角形勾股定理,xy-直角坐标平面R2上的向量(x, y)长度是 ,而xyz-直角坐标空间R3中的向量(x, y,z)长度是 。依此类推,n维欧几里得空间Rn中的向量x=(x1,…,xn)“长度”,即欧几里得2-范数定义为范数在线性代数中极为有用,享有与长度一模一样的几个基本性质:(iii)标量与向量之积的范数等于标量绝对值乘以向量的范数;(iv)两向量之和的范数不大于各向量范数之和,称为三角形不等式。在泛函分析中,这四个性质成了在抽象线性空间上定义范数使其成为赋范线性空间的范数公理。“内积”是欧几里得空间里十分重要的二元向量运算,结果为数,与几何术语“正交投影”关系紧密,将是本文的关键角色。作为解析几何中二维或三维向量点积运算的直接推广,Rn中两个向量x=(x1,…,xn)和y=(y1,…,yn)的内积被定义为实数如果用矩阵乘法的形式来表达它,x和y的内积等于xTy,其中“T”表示矩阵的转置。这里我们将x和y写成n维列向量(即n行1列矩阵)的形式,以便合法相乘。这样说来,向量x的欧几里得2-范数实际上等于x与自己的内积的平方根 。本文也把欧几里得2-范数简称为范数,记为 。回到上面的五点数据误差欧几里得2-范数表达式,由于它赋值过程中的最后一道运算是开平方根,而单变量t的平方根函数 和绝对值函数|t|患有同样的“疾病”:在t=0处导数不存在。那怎样能消除这个不可微性?办法来自常识:非负函数和它的平方在同一点处取到最大值或最小值。这样,我们就可以等价地考虑下面删去了根号的误差函数并将它写成有两个自变量的函数记号e=f(a0,a1)。我们用字母e代表函数值,它既是误差英文error的首字母,也是欧几里得英文Euclid的首字母小写。我们的意图现在很明确:求函数e=f(a0,a1)的最小值。这时就需要初等微积分登场,但我们可以几何直观地引进函数在最优点必须满足的条件。对于单变量函数,如y=x2,我们知道它在x=0处取得所有可能函数值中的最小值0。如果画出该函数图像——标准抛物线——在其顶点(0, 0)处的切线,就发现它必定是水平的;换言之,当x等于最小值点0时,函数的导数值等于0。类似地,对于两个自变量的函数,如z=x2+y2,它在(x, y)=(0, 0)时有最小值0。对应的函数图像是三维直角坐标系中的标准旋转抛物面,在其顶点(0, 0, 0)处的切平面也是水平的。这说明该函数在(x, y)等于最小值点(0, 0)时,函数分别对x和y的偏导数值都等于0。偏导数值全为0的点称为函数的临界点。上面的简单函数表明,可微多元函数在一点取得最小值的必要条件是该点为临界点。当然临界点不一定给出最小值,对一元函数,最有说服力的一个例子是y=x3,它没有最小值,但x=0是临界点。然而“临界点是最优点的必要条件”这个断言说明,对于可微函数,我们必须在所有临界点的集合中寻找最优点,就像在一堆走散的家养动物中找到宠物狗,只能在四脚动物中找,而不能在只有双脚的生蛋鸡里找,因为“有四条腿”是“狗”的必要条件。对误差函数e=f(a0,a1)的表达式分别求关于自变量a0和a1的偏导数,得得f的唯一临界点( )=(0.6, 0.8)。剩下的问题是:这个临界点是最优点吗?即误差函数值f(0.6, 0.8)在所有的误差中是最小的吗?我们可以通过几何直观断定它确实是最小值点,因为当点(a0,a1)离坐标原点(0, 0)越来越远时,误差函数值将越来越大,故误差函数必定在整个坐标平面上的某一点取最小值,该点必为临界点,所以上面算出的唯一临界点也是最小值点。然而我们可以丢开这个论据,进而介绍一个数学味更浓的证据。这个证据是二元函数f(a0,a1)在临界点( )=(0.6, 0.8)处的2行2列二阶偏导数矩阵是“正定”的,因而根据最优化理论中的一个基本结果(直接应用多元微积分可证),函数f(a0,a1)在该临界点处取(严格)局部最小值,继而由临界点的唯一性推出它也是全局最小值。此矩阵名叫f的海瑟矩阵,定义为德国数学家海瑟(Ludwig Otto Hesse,1811-1874)最早发展了这个概念。一个二阶实对称矩阵A=[aij],如果其对应的二次型对所有的非零向量x=(x1, x2)都严格大于零,那么它被称为是正定的。运用初等代数可以得到二阶正定矩阵的充分必要条件:a11>0及 。好了,我们用上一段中的等价条件来验证我们的误差函数f(a0,a1)在(0.6, 0.8)处,其海瑟矩阵是正定的。简单计算给出:故矩阵的(1,1)-元素=10>0,行列式=10×110-302=200>0。这证明海瑟矩阵是正定的,所以函数值f(0.6, 0.8)=(-0.6)2+1.22+02+(-1.2)2+0.62=3.6的平方根给出了在“最小二乘”的意义下对上述五组试验数据的最佳直线拟合,相应的线性多项式函数是y=0.6+0.8x,其取得的最小欧几里得2-范数误差是 。刚才求出最佳逼近用的是“导数法”,学过初等微积分的人都能理解,然而引进最小二乘的最常见手段却是借助于矩阵,和线性方程组有不解之缘,学过矩阵初等理论的读者应该不会对下面的矩阵讲法感到迷惑。回到上面估计误差的表达式(1),它是五维向量(a0+a1-2, a0+2a1-1, a0+3a1-3, a0+4a1-5, a0+5a1-4)的范数平方。另一方面,如果把该向量写成列向量,则可以将它表达为Ax-b的式样,其中相信之前谈论的“五点”例子给出了最小二乘基本思想,但由于线性多项式函数是最简单的代数函数,我们将相关的程序一般化,用任取的多项式函数来叙述最小二乘法拟合平面上若干给定点的原理和过程。假定在xy-直角坐标平面上有m个点其中x1,x2,…,xm各不相同。固定一个不大于m的正整数n,我们在所有次数小于或者等于n-1的多项式群体中寻找一个“表现最佳”的多项式,使得它就最小二乘而言能最大限度地拟合这m个数对。令则m维列向量(p(x1)-y1, p(x2)-y2, …, p(xm)-ym)T可以写成Ax-b的形式,其中但如果不像之前对五点线性拟合那样耍弄微积分大刀,怎样用线性代数的战斧劈开它呢?现在我们搬出这把战斧,它的木柄上刻着“正交投影”四个大字。笔者在课上讲解正交投影时,常用自己的身体做道具:微微向前倾斜身体,和地面成约80度的角(当然不能过度倾斜,否则会有倒地的危险),然后眼光垂直射向地面,从脚到眼光射到地面处的向量就是身体向量对着地面的正交投影。正交投影的一个基本性质是众所周知的,即向量被正交投影后长度不能变大,用平面几何的语言说就是:直角三角形的直角边总不会比斜边更长。斜投影没有正交投影用途广,就是因为它缺乏这个好特色。这也说明为啥人们都用直角坐标系而几乎不用斜角坐标系,因为后者的两点距离公式只能靠复杂的余弦定律,而简单漂亮的勾股定理爱莫能助!在可见的二维和三维空间,正交投影与两条直线段垂直几乎就是同义词。在解析几何中,两个非零向量相互垂直当且仅当它们的点积为零。到了线性代数里的高维欧几里得空间,点积概念被推广到内积运算,即Rn中两个列向量x和y的内积是xTy=x1y1+x2y2+…+xnyn。如果xTy=0,则说向量x和y正交,记为x⊥y。如果Rn中一个向量x与Rn某个子集S中的每一个向量都正交,就说x与S正交,写成x⊥S。在线性代数中,这个子集通常取为线性子空间,在与最优化理论相关的纯数学学科凸分析中,S却可取为更一般的凸集。配置了这些预备知识,现在可以谈论从Rn到它一个子空间V上的正交投影算子或正交投影矩阵了。Rn中与V中所有向量都正交的那些向量组成的集合称为V在Rn内的正交补空间,用符号V⊥表示。在上一篇文章《从线性算子的角度看广义逆矩阵》中,我们用到Rn的正交直和分解Rn=V⊕V⊥以及对应的正交投影PV:Rn→Rn,它把任一n维向量x映射到n维向量y,其中y由等式x=y+z, y∈V, z∈V⊥唯一确定。为了求解最小二乘问题(2),我们需要这个分解带给人们的“极值红利”:事实上,x=y+z, y∈V, z∈V⊥,因而y=PVx。证明. 正交直和分解Rn=V⊕V⊥保证了表达式x=y+z, y∈V, z∈V⊥的存在性及唯一性。现证(3)式为真。任给v∈V,由y-v∈V推出zT(y-v)=(y-v)Tz=0,故有且等式成立当且仅当||y-v||2=0,即当且仅当y=v。证毕。基于对日常距离概念的直观理解,我们可以把min{||x-v||: v∈V}称为x到V的欧几里得距离,简称距离。人人熟知,在连接直线外一点与直线上各点的线段中,垂线段最短。而上述引理将这个平面几何的基本事实推广到了高维欧几里得空间,这将直接用于求解我们的最小二乘问题(3)。在(2)中,m行n列矩阵A和m维向量b都是固定不变的,而n维向量x则可穷尽Rn中的所有向量。这个非线性最优化问题等于是问,在所有形如Ax的m维向量中,能否找到一个向量,将之记为Ax*,使得它与b之差的范数最小,或用更通俗的话说,它们之间的欧几里得距离最小?所有形如Ax的向量组成了Rm的一个线性子空间,它实际上无异于我们在之前的文章中介绍过的值空间R(A)。如上问题恰恰已被前述的引理回答了:这个Ax*非向量b在R(A)上的正交投影不可!因而最小二乘多项式函数的系数向量x*满足等式Ax*=PR(A)b。那么这个最优解向量x*到底是个什么样的向量呢?历史上,先是美国数学家穆尔(Eliakim Hastings Moore,1862-1932)于1920年定义了它,1955年,英国小伙子、2020年的诺贝尔物理学奖得主彭罗斯(Roger Penrose,1931-)又独立地发明了它。其次,这里使用多项式函数进行最小二乘的问题,引出的A是个特殊矩阵。由于假设了这m个数x1,x2,…,xm各不相同,并且m≥n,用初等行变换则不难证明,矩阵A是列满秩的,即它所有的列向量线性无关(读者可对m=n=3的特例试着证明一下),故n阶方阵ATA的逆矩阵存在。在等式Ax*=AA†b两边左乘AT得ATAx*=ATAA†b,再左乘一次逆矩阵(ATA)-1,最后利用(ATA)-1ATA等于单位矩阵这个事实,就得到这实在是个简洁漂亮的解公式!之前在《从线性算子的角度看广义逆矩阵》中引进的穆尔-彭罗斯广义逆在最小二乘误差分析中大放异彩!自然,本文对五点问题用到的求导法,对此更一般情形也能得到同样的结果,我们就暂时离开代数学,再次品尝一下分析学的滋味。令e=f(x)=||Ax-b||2=(Ax-b)T(Ax-b)=xTATAx-2bTAx+bTb。求出多变元误差函数e关于n个自变量a0,a1, …,an-1的偏导数,它们依次放在一起组成e的梯度列向量,它的转置也称为e的Fréchet导数e'(x)。读过多元微积分的读者可以算出并因ATA是可逆矩阵,得e的唯一临界点x*=(ATA)-1ATb。此时,正如《从线性算子的角度看广义逆矩阵》文中最后部分所云,对于列满秩的高矩阵(也包括m=n时的情形)A,存在广义逆公式A†=(ATA)-1AT,故(4)式成立。我们指出,临界点x*为最小二乘解的理由是欧几里得2-范数平方误差函数e的二阶Fréchet导数e''(x)=2ATA是一个正定矩阵:xTATAx=||Ax||2≥0,且由于A的列向量是线性无关的,||Ax||2=0⟺Ax=0⟺x=0。有了如上利用多项式函数拟合试验数据来引进最小二乘的思想和方法,我们现在可以正式引入并探讨线性最小二乘问题。设A为一任给的m行n列实矩阵,b为一固定的m维列向量。考虑写成矩阵形式的线性方程组情形I.b∈R(A)。这时上述方程组是相容的,即它有解,但解不一定唯一,除非A的列向量线性无关。自动地,极小化问题min{||Ax-b||: x∈Rn}的解也是方程Ax=b的解。情形II. 。此时上述方程组是不相容的,即它无解,然而如下的最优化问题总有解,上式被称为欧几里得空间Rn中的最小二乘问题,其后的标号(LSP)代表最小二乘问题英文least squares problem。根据前述的引理,(LSP)的解x使得向量Ax为向量b在A的值空间R(A)上的正交投影,故有基本等式可是,由于A是一般的矩阵,并没有假设它的列向量是线性无关的,所以作为b的正交投影,Ax的唯一性并不一定保证最小二乘解x的唯一性。事实上,如果A的列向量是线性相关的,则最小二乘问题(LSP)的解不仅不唯一,而且解的个数是无穷大。那么怎样决定所有的解呢?这时,线性方程组的解理论能帮我们一把。线性代数告诉我们,如果一个线性方程组Mx=b有一个解x*,那么它的所有解都可以写成x=x*+h,其中h是对应的齐次线性方程组Mx=0的任意解。比如,线性方程组有一个解( )=(2, 1),而对应的齐次线性方程组的通解为(h1,h2)=(t,t),其中t为任意实数,则原先的非齐次线性方程组的所有解是同样的道理推出,如果x*是最小二乘问题(LSP)的一个解,那么(LSP)的所有解都可以写成x=x*+h,其中h取尽A的零空间N(A)≡{h∈Rn:Ah=0}中的所有向量。为了帮助读者理解,我们不妨证明一下:x和x*是(LSP)的解当且仅当Ax=PR(A)b和Ax*=PR(A)b。两式相减得A(x-x*)=0,故x-x*∈N(A)。当A来自上面的多项式最小二乘逼近问题,因而它的列向量是线性无关时,如前所证,(LSP)有唯一解x*=A†b。我们现在进一步证明,对于一般的矩阵A,向量x*=A†b依然是(LSP)的解,尽管(LSP)还可能有其他的解。但这个证明一句话就够了,因为x=A†b显然满足最小二乘解的“特征方程”:Ax=AA†b=PR(A)b。下面的问题似乎更有趣,如果(LSP)有无穷多个解,它们和特解A†b除了相差一个A的零空间向量,还有什么其他关系?这第二个重要关系是:A†b的范数在所有这些解中是最小的!要证实这一点,就要温习一下文章《从线性算子的角度看广义逆矩阵》中关于穆尔-彭罗斯广义逆的定义了。对于任意给出的矩阵A:Rn→Rm,存在两个相应的正交直和分解:Rn=N(A)⊕N(A)⊥和Rm=R(A)⊕R(A)⊥。然后A†将R(A)中的向量y映射到N(A)⊥内那个唯一存在的x,它满足Ax=y,而在R(A)⊥上A†就是零算子,最后经过线性拓展,广义逆矩阵A†:Rm→Rn就被唯一确定了。由此定义易知,R(A†)=N(A)⊥以及N(A†)=R(A)⊥。特解x*=A†b称为(LSP)的极小范数最小二乘解(minimal norm least squares solution)。设x是(LSP)的任一解,则x=x*+h=A†b+h,其中x*=A†b∈R(A†)=N(A)⊥及h∈N(A)。因为N(A)⊥和N(A)互为正交补空间,我们有这就证明了特解x*=A†b在(LSP)的所有解中是范数最小的一个,且也是唯一的。我们举一个数值例子帮助读者消化概念。给出一个三阶方阵A和三维向量b:因为A的第三行等于第二行的两倍减去第一行,所以这三行线性相关,故A是一个奇异矩阵,并且由于b的第三行不等于第二行的两倍减去第一行,想精确求解线性方程组Ax=b是徒劳的,所以其右端向量b不落在A的值空间内。我们退而求其次,找到此方程组在最小二乘意义下的一个近似解,即求解对应的最小二乘问题 (LSP)。为了使用广义逆矩阵来完成任务,我们需要零空间N(A)和值空间R(A)的具体信息。零空间N(A)可由求解两个联立齐次线性方程得到,这是R3中由向量[1 -2 1]T所张成的一维子空间,它的正交补空间N(A)⊥可由求解齐次线性方程求出,它是由两个向量[2 1 0]T和[-1 0 1]T所张成的二维子空间。另一方面,值空间R(A)是由A的前两个列向量所张成的二维子空间,其正交补空间R(A)⊥可由联立求解两个齐次线性方程获得,这是由向量[1 -2 1]T所张成的一维子空间。现在我们来计算A的穆尔-彭罗斯广义逆矩阵A†。首先,A†将一维子空间R(A)⊥的基底向量[1 -2 1]T映射到向量0,即其次,注意到A在N(A)⊥和R(A)之间建立了一一对应的关系,且二维子空间N(A)⊥和R(A)分别有基底{[2 1 0]T,[-1 0 1]T}和{[1 4 7]T,[2 5 8]T},故存在实数ξ,η,α,β使得它们的解分别是ξ=1/3, η=-1/6及α=β=1/3。从而我们有令A†的第一行数字是r,s,t,第二行是u,v,w,第三行是x,y,z,则可以将等式(5)-(7)合在一起写成下列的线性矩阵方程:等式左边常数矩阵的三个行向量线性无关,故它是非奇异的,其逆矩阵是有了广义逆矩阵,本例的最小二乘解变成囊中之物:极小范数最小二乘解是因为N(A)由[1 -2 1]T张成,故所有的最小二乘解均可表达为从本例可见,即便对于小尺寸矩阵,通过定义求出广义逆矩阵以获得最小二乘解是颇费工夫的,我们能不能无需先计算广义逆矩阵,而一步到位地求解(LSP)?在本文最后我们论证:求解最小二乘问题(LSP)等价于求解“法方程(normal equation)”这个等价关系是最小二乘法理论的核心要素之一,它无需广义逆矩阵的符号,值得以定理的形式当作本文压轴戏上演。定理.向量x是最小二乘问题(LSP)的解,当且仅当它满足对应的法方程(NE)。证明.设x是(LSP)的一个解,则根据最小二乘解的意义和正交投影的性质,向量Ax是向量b在A的值空间R(A)上的正交投影,因而向量b-Ax⊥R(A)。既然R(A)包含A的所有列向量,b-Ax与A的每一个列向量都正交,换句话说,向量b-Ax与A每个列向量的内积都等于零。对于j=1,2,…,n,既然AT的第j个行向量由A的第j个列向量转置而来,所以按照欧几里得空间两向量内积的定义,这个行向量与列向量b-Ax的乘积等于0。把这些n个乘积放在一起写成矩阵乘积的形式就是AT(b-Ax)=0,即(NE)成立。反之,设x是(NE)的一个解,则AT(b-Ax)=0。为了读者更方便理解,我们把前式写成等价形式(b-Ax)TA=0(只要将等式两边同时施加转置运算,并留意到两个容易验证的恒等式(MN)T=NTMT和(MT)T=M,以及事实“列零向量的转置是行零向量”,就一目了然)。同上段的道理一样,这意味着列向量b-Ax与矩阵A每一个列向量的内积都等于零。或言之,b-Ax与A的每一个列向量都正交,而由于这些列向量张成了A的值空间,故b-Ax与R(A)正交,从而∥b-Ax∥给出了b到R(A)的最短距离,也就是说x是(LSP)的一个解。这便完成了定理的证明。定理的证明还带出了一个副产品,就是尽管原方程Ax=b可能不是相容的,但对应的法方程ATAx=ATb总是相容的。历经了本文几个数学结论的推理过程,相信不少读者想放松一下大脑了。我们就以最小二乘的诞生简史来陪读者朋友轻松一下。无论怎样追溯最小二乘法的历史源头,两个人的名字总是要提到的,一位是法国数学家勒让德(Adrien-Marie Legendre,1752-1833),他于1805年清楚简洁地用线性方程拟合数据的方法来确定彗星的轨道;另一位则是德国数学家高斯(Carl Friedrich Gauss,1777-1855),他曾声称早在22岁时就已知晓最小二乘的奥秘。确实,他24岁时用最小二乘原则进行了预测,帮助一位匈牙利天文学家找到了谷神星的位置。两百年来,最小二乘思想的应用例子浩如繁星,到了最近十年,在新兴的大数据科学以及人工智能疆场,到处都响着最小二乘的战鼓。但会用与它关联的方法流程和计算工具,不一定就清楚背后的数学原理。厘清读者朋友们“知其然而不知其所以然”的困惑,正是笔者写作本文的一个初衷。封面来自Google Doodle
|