你已有一组基,你想要一组正交的
本台阶前几篇一直把正交性当作礼物送到你手上。斯图姆-刘维尔问题保证了对应不同本征值的本征函数自动正交,而广义傅里叶级数那一篇又展示了:一旦正交家族在手,展开一个函数有多便宜——每个系数一个积分,无需求解任何代数。但这引出一个我们尚未直面的诚实问题:当没人递给你正交家族时,它究竟从何而来?本篇用构造的方式回答它。我们要从能想象到的最乏味的原料里搭建出一组正交基,而那些著名的多项式将作为奖赏掉出来。
从你已经信任的东西开始。幂 1, x, x^2, x^3, ... 是全数学中最熟悉的一组基:每个多项式都是它们的组合,而一条泰勒级数不过就是恰好按这些积木做的展开。所以这些幂早已张成了整个空间——它们是多项式的一组完整的坐标轴。麻烦在于它们是一组倾斜的坐标轴。它们彼此严重重叠;比如在区间 [-1, 1] 上,1 乘 x^2 的积分是三分之二,而非零,所以常值函数与 x^2 远谈不上垂直。在倾斜基里工作,就像在两条以锐角相交的轴上读坐标——每个坐标都漏进别的坐标,你不解出全部就读不出其中任何一个。
于是计划不言自明。我们保留 1, x, x^2, ... 的张成能力——那部分已经完美——并把这些坐标轴扶正,直到它们彼此成直角,同时不改变它们所描述的空间。这套扶正手续就是格拉姆-施密特正交化,是把任意一组基变成垂直基的头号重要算法。你大概在有限维向量那里见过它;这里它对函数原封不动地照样管用,只要我们就「垂直」对两条曲线意味着什么达成一致。那个一致正是全部微妙之处,也正是权介入的地方。参见格拉姆-施密特正交化。
「垂直」对两条曲线意味着什么
对空间中的两支箭,垂直意味着点积为零:把对应分量相乘、加起来、得到零。对两个函数,我们把这个配方升高一档照抄。把对应分量相乘变成把两条曲线逐点相乘;把分量加起来变成在区间上积分。于是两个函数 f 与 g 在区间 [a, b] 上的天然内积,就是 integral over [a, b] of f(x) g(x) dx,而当这个积分为零时两条曲线恰好正交。点积变成了积分,这就是你需要的唯一一个真正新的想法。
但第一篇的斯图姆-刘维尔机制早已提醒我们:正交性通常自带一个权函数 w(x)——当一个算子写成自伴形式时,它的本征函数不是在朴素积分下、而是在带权积分下正交。所以我们从一开始就采用一般定义。f 与 g 的带权内积是 integral over [a, b] of f(x) g(x) w(x) dx,其中 w(x) 是一个固定的正权。当这个带权积分为零时两条曲线正交。这就是带权正交性,而整篇的妙处在于:区间与权的选择,是决定你将搭出哪个著名家族的唯一输入。
格拉姆-施密特:减去投影,重复
整个算法就是一个生动想法的反复施用:要让一个新向量垂直于你已有的那些,就减去它在每一个上的投影。从几何上看,一个向量在某条已有轴上的投影(影子),是它沿那条轴的那一部分;把它去掉,剩下的就纯粹指向侧旁,垂直于那条轴。对你迄今搭出的每一条轴都这么做,剩余部分就一举垂直于它们全体。格拉姆-施密特不过是把这套去影手续,沿原始幂的清单按顺序一个接一个地跑下去。
- 取第一个原始幂,即常数 1,原封不动;称之为第一个家族成员 u_0。它前面没有任何东西需要去垂直,所以它就这样起头这组基。
- 取下一个原始幂 x。算出它在 u_0 上的投影(x 与 u_0 的带权内积,除以 u_0 与自身的内积,再乘 u_0),把这个投影减掉。剩下的 u_1,保证垂直于 u_0。
- 取 x^2。减去它在 u_0 上的投影以及它在 u_1 上的投影——两个都得去掉。剩下的 u_2,垂直于前两个成员。对 x^3, x^4, ... 继续,每次都剥掉它在已搭出的每个成员上的每一道投影。
- 可选地归一化:用每个完成的 u_k 除以它自身的范数,使其长度为 1。要得到干净的系数公式,正交就够了;标准正交只是整理过的、单位长度的版本。
注意一个结构性事实,它稍后会让你安心:因为 u_k 是 x^k 减去一组低次幂的组合,每个 u_k 本身都是一个恰好 k 次的多项式,带一个新的最高次幂以及其下的修正。所以你培育出的家族,每个次数恰好有一个多项式,而你可以在任何次数处停下,仍然拥有一组对那一次数以内的多项式完美适用的正交基。这正是所有经典家族的结构。现在我们用两个不同的权摇动这台机器,看着两个不同的著名家族列队走出。
在 [-1, 1] 上取权 1,长出勒让德
做最简单的选择:区间 [-1, 1] 配最朴素的权 w(x) = 1。这里内积就是在 [-1, 1] 上的普通积分。一个对称性捷径省去大量算术:在对称区间上,任何奇函数的积分为零,因为左半与右半相消。记住这点,许多投影还没算就已消失。开动机器:u_0 = 1。接着是 x——它在 u_0 上的投影是否已为零?这道投影用到 integral over [-1, 1] of x times 1,是个奇函数的积分,故为零。所以 x 早已垂直于 1,于是 u_1 = x 原样保留。
现在是第一个真正的减法。取 x^2,去掉它在 u_0 = 1 和 u_1 = x 上的投影。它在 x 上的投影为零(x^2 乘 x 在 [-1, 1] 上的积分是奇积分,没了)。它在 1 上的投影不为零:integral over [-1, 1] of x^2 等于三分之二,而 1 乘 1 的积分等于二,所以投影系数是(三分之二)除以二,即三分之一。相减:u_2 = x^2 减三分之一。这就是勒让德的形状——差一个惯用的缩放 P_2(x) = (3 x^2 减 1) over 2,恰好就是我们 u_2 的 3/2 倍。经典的勒让德多项式就这样从幂里自行组装出来,没有方程,没有运气,只有减投影。
Weight w(x) = 1 on [-1, 1]. Inner product <f,g> = integral_{-1}^{1} f g dx.
(Odd integrands over [-1,1] vanish, killing most shadows.)
u0 = 1
u1 = x - ( <x,1>/<1,1> ) * 1 = x - 0 = x
u2 = x^2 - ( <x^2,1>/<1,1> )*1 - ( <x^2,x>/<x,x> )*x
<x^2,1> = 2/3, <1,1> = 2 -> shadow coeff = 1/3
<x^2,x> = 0 (odd) -> no shadow on x
u2 = x^2 - 1/3
Conventional rescaling (force P_n(1) = 1):
P0 = 1, P1 = x, P2 = (3x^2 - 1)/2 = (3/2) * u2
Same machine, only the WEIGHT and INTERVAL change to switch families.换一个权,改长出厄米
现在到了构造证明其价值的时刻:算法什么都不改,只换栖息地。移到整条实轴 (-infinity, infinity),采用钟形权 w(x) = e^{-x^2},即贯穿特殊函数那一台阶的高斯形状。同样的奇函数对称性仍然有用——在对称定义域配对称权下,奇被积函数照样积分为零。新成分仅仅是:内积积分现在跑到无穷,并依赖高斯积分:e^{-x^2} 在整条直线上的积分是根号 pi,而 x^2 e^{-x^2} 的积分是半个根号 pi。
跑一模一样的三步。又是 u_0 = 1。对 x,它在 1 上的投影用到 x e^{-x^2} 在直线上的积分,是奇被积函数,为零——于是又得 u_1 = x。对 x^2,它在 x 上的投影因奇性再次为零,而它在 1 上的投影系数是(x^2 e^{-x^2} 的积分)比(e^{-x^2} 的积分),即(半个根号 pi)比(根号 pi),恰好二分之一。相减:u_2 = x^2 减二分之一。这就是厄米的形状:经典约定写作 H_2(x) = 4 x^2 减 2,恰好是我们 u_2 的 4 倍。同一台机器、同样的幂,只是换了个权——走出来的便是另一个厄米多项式家族。
停下来体会刚发生的事,因为这就是本篇的教益。勒让德与厄米并非课本要你背诵的两个互不相干的发明。它们是同一个算法——把幂正交化——用两个不同的权跑出来的:有限区间上 w = 1,对整条直线上 w = e^{-x^2}。拉盖尔是同一台机器配半直线上的权 e^{-x};切比雪夫是同一台机器配 [-1, 1] 上的权 1 over the square root of (1 - x^2)。那些著名家族不是一群各异的特种生物;它们是同一项构造在四种不同灯光下拍出的照片。权就是那个旋钮,转动它便选定家族。
诚实的限度,以及它接下来指向何处
在你太信任这套配方之前,说几句诚实话。第一,归一化是约定,而非自然事实:我们的原始 u_2 是 x^2 减三分之一,经典 P_2 是 (3 x^2 减 1) over 2,而一个把范数归到 1 的物理学家又会写出另一个倍数。三者差一个缩放,是同一条曲线,你必须始终核对某个公式假定的是哪种约定——正交性是真的,首项常数是一种选择。第二,格拉姆-施密特要求这些幂相对该权确实可积;在无穷区间上,权必须衰减得足够快以压住 x^k 的增长,这正是厄米为何需要强劲的 e^{-x^2}、而不是衰减更慢的尾巴。
第三,一条在真实计算中会咬人的提醒:在有限精度算术里做的经典格拉姆-施密特,数值上很脆弱。早期的成员在扶正前几乎平行,所以减它们的投影就是在减两个近乎相等的大数,舍入误差会让正交性在你到达高次时悄悄漂走。补救办法是一种重排版本,叫修正格拉姆-施密特,它边走边逐个减去投影;它在数学上完全等同,但在计算机上稳健得多。对上面那种纸笔家族这从不要紧,但这正是生产代码很少照课本算法原样跑的原因。
带走这幅可用的图景。正交基不是魔法馈赠;它是一组你扶正过的基,而格拉姆-施密特就是那番扶正——减去在每条已搭轴上的投影,留下那垂直的剩余。区间与权是仅有的两个旋钮,转动它们就让同一台机器从不同的门走出,成为勒让德、厄米、拉盖尔或切比雪夫。如今你已凭构造握有一个货真价实的正交家族,便有本事免费地把任何合理的函数在其中展开,这恰是先前那份广义傅里叶的回报。本台阶最后一篇会对这些同样的本征函数提一个不同的问题——不是如何搭建这组基,而是如何迅速估计它的本征值——并用瑞利商作答。