在你求解任何东西之前要问的两个问题
本梯级前面的几篇教过你去解那些可解的:可分离方程、线性方程的积分因子,以及若干特殊技巧。但你这辈子写下的大多数一阶方程 dy/dx = f(x, y),其解根本没有公式——能解出它们的那个积分是非初等的,或者方程本身就是货真价实的非线性,没有任何方法碰得了它。所以在你伸手去取技巧之前,还有两个更基本的问题值得诚实地回答。给定一个起点——一个初值问题,即方程 dy/dx = f(x, y) 配上一个条件 y(x0) = y0——过那一点的解曲线究竟存不存在?倘若存在,它是唯一的吗,还是可能有两条不同的曲线都过同一点、都服从同一条定律?参见初值问题。
这些不是迂腐的顾虑。唯一性正是让一个微分方程成为一条好用的自然定律的东西:若你知道一个系统此刻的状态,正是唯一的未来才让你能预测它。存在性则告诉你:在你浪费一个下午去搜寻公式之前,这个问题是否根本就是适定的。而那个令人意外的事实——本篇之所以存在、要讲得鲜活的事实——是:你能把这两个问题都了结,甚至画出整族解曲线,却根本不必找到任何一个解的公式。方程本身,只要读法对,就把那幅图景交到你手上。
斜率场:用眼睛求解
下面就是那个核心技巧,简单得几乎令人不好意思。方程 dy/dx = f(x, y) 是一份配方:在平面上的每一个点 (x, y),它都告诉你,一条解曲线若过那点,必须具有的斜率。要读出这一点,你无需求解任何东西——只要把点代进去。于是走到一个点,算出 f(x, y),就在那里画一小段带着这个斜率的线段。在一整片网格点上都这么做,你就得到一张方向场(也叫斜率场):一片覆盖平面的、由许多倾斜小短划组成的草地,每一划都是一条局部指令,说着「一条从这里穿过的解,必须朝这个方向走去」。参见方向场。
现在是魔法时刻。一条解曲线无非就是这样一条曲线:在它经过的每一点,它都与坐落在那里的小短划相切——因为根据「解方程」这件事的定义,它的斜率 dy/dx 恰好就是 f(x, y)。这不过是卷一里那个想法——导数就是切线的斜率——反过来读:你不再从一条已知曲线算出斜率,而是培育一条曲线去匹配规定好的斜率。于是你真能用手描出一个解。把铅笔尖落在任一起点,看它底下的短划,朝那个方向滑一小步,再看新的短划,再滑——你扫出的那条光滑曲线,就是过那一点的解。不同的起点给出不同的曲线,它们合在一起,就用整族解填满了平面。
读一张真实的场:dy/dx = y
我们用文字造一张具体的场。取 dy/dx = y,指数增长的方程。任一点处的斜率就是高度 y 本身:在 x 轴上(y = 0)每一划都是平的,在轴上方很高处短划陡峭地朝上倾斜,在下方很低处陡峭地朝下倾斜,而整片场左右对称,因为 x 从不进入公式。从刚好在轴上方处起描一条曲线,它先轻轻地往上爬,接着变陡、冲向天际——它越爬,短划越陡,喂养着自身的增长。从刚好在轴下方处起描,它则以镜像之姿坠向负无穷。我们碰巧知道这里的答案是 y = C e^{x},但请注意:在写下公式之前,你就能在场中看见那整个解族的全部形状。
这张场还揭示出公式可能藏起来的结构。沿 y = 0 那条平整的短划线本身就是一个解——那个恒等于零的常数解——而没有别的曲线会越过它,因为越过就会迫使相遇点处出现两个不同的斜率。那条分界线是一个平衡点,它把平面劈成上半个世界(曲线轰然上冲)与下半个世界(曲线坠然下落)。当 f 像这样只依赖于 y 时,方程被称为自治方程,它的场在每一条竖直窄带里看起来都一样;正是这种特殊结构,被下一篇讲相位线的内容所利用。眼下的教益很朴素:斜率场把平衡点、对称性,以及每个解的长期命运都摆给你看——全都直接从 f 读出,不需一次积分。
皮卡-林德勒夫:图景何时可信
跟着短划描出一个解,感觉万无一失——但它悄悄假定了恰好有一条曲线从你的起点冒出来。皮卡-林德勒夫定理(也叫皮卡存在唯一性定理)精确地说出这个假定何时是挣来的。干净的版本是:若 f(x, y) 在你起点 (x0, y0) 周围的一个方块里连续,并且 f 在 y 方向上变化得不太剧烈——术语上叫它关于 y 是利普希茨的,只要偏导数 partial f / partial y 在该点附近存在且保持有界,这一条就有保证——那么这个初值问题恰好有一个解,至少活在 x0 周围某个小区间上。存在与唯一,二者俱呈,全程不见一个公式。参见皮卡-林德勒夫定理。
为何对 partial f / partial y 的一个界能给你买来唯一性?诚实的答案,是一个藏在定理内部、能自我改进的美丽循环。把问题改写成积分:y(x) = y0 + the integral from x0 to x of f(t, y(t)) dt——解方程,就是当那个积分的一个不动点。现在从对 y 的一个粗糙猜测开始,把它喂进右边得到一个更好的猜测,再把它喂回去,如此反复。利普希茨条件恰恰是那个齿轮,让每一遍都把误差缩小,于是这些猜测向着唯一一条极限曲线逼拢。这个证明是一台你真能开动的机器,而它正是驱动数值求解器的那个同一个不动点思想。
Picard iteration for dy/dx = y, y(0) = 1 (so f = y): y_0(x) = 1 y_1(x) = 1 + integral_0^x y_0 dt = 1 + x y_2(x) = 1 + integral_0^x (1 + t) dt = 1 + x + x^2/2 y_3(x) = 1 + x + x^2/2 + x^3/6 ... y_n(x) -> 1 + x + x^2/2 + x^3/6 + ... = e^x (the unique solution) The iterates are exactly the partial sums of the Taylor series of e^x.
诚实的附属细则
这条定理很慷慨,但不是一张空白支票,而三条附属细则会让你保持诚实。第一条、也是最重要的一条:保证是局部的。它许诺在 x0 周围某个小区间上有唯一解,却对那个区间能伸多远只字不提。一个解可能在有限时间内爆向无穷、并就此不复存在——dy/dx = y^2 配 y(0) = 1,有那个再漂亮不过的解 y = 1/(1 - x),它在 x 趋近 1 时狂奔向无穷,过了 x = 1 就根本没有解,尽管 f = y^2 光滑得不能再光滑。f 的光滑性买不来一个永久存续的解;它只买来一个能起步的解。
第二条:当利普希茨前提真正失效时,唯一性也可能真正失效——这不是一个你能挥手抹去的技术细节。经典的例子是 dy/dx = square root of |y| 配 y(0) = 0。这里 f 连续,所以解存在,但 partial f / partial y 在 y = 0 处爆掉,于是利普希茨条件恰恰在起点就破了。唯一性随之碎裂:常数 y = 0 是一个解,y = x^2/4 也是一个解,还有一整族无穷多个解——它们在轴上停留一阵,然后在你喜欢的任何时刻剥离而去。无穷多条解曲线从同一点离开。斜率场没法把这显示给你看——在 y = 0 处每一划都是平的、看上去人畜无害——而这正是你为何需要那条定理、而不只是那幅图的全部理由。
把两个想法合在一起
斜率场与存在唯一性定理,是同一份理解的两半,它们互相为对方背书。定理保证了:你穿过场所描出的曲线是真实的、单一的、定义良好的——在利普希茨条件成立处,恰有一个解穿过每一点,于是众多短划拼成一族干净的、互不相交的曲线,朝哪边走毫无歧义。而场使定理变得可见:解曲线永不相交,正是唯一性的几何面孔;而场在某点处晕开、曲线扇形散开,正是某个前提失效的几何面孔。一个给你严格,一个给你视力。
- 把方程写成 dy/dx = f(x, y),并把 f 读作一道斜率指令:在平面的每一点,它都规定了过那里的解必须具有的斜率。
- 在你起点附近检验前提:f 在那里连续吗?partial f / partial y 有界吗?若是,皮卡-林德勒夫就在一个小区间上给你一个解——在局部相信那幅图。
- 借由等斜线勾出场(从 f = 0 入手),标出平衡点,再从你关心的起点出发、描出与短划相切的解曲线——那就是整族解,未用一个公式画就。
- 对界限保持诚实:保证是局部的(解可能在有限时间内爆掉),而在前提失效处(留意 partial f / partial y 爆掉的地方),要提防非唯一性或一个隐藏的奇解。
把这一点作为本梯级乃至下一梯级中一切内容的根基带向前去。大多数微分方程无法以封闭形式求解,然而你远非束手无策:斜率场把一个你永远写不出的解的形状、长期行为与平衡点都摆给你看,而皮卡-林德勒夫则诚实地、连同它的界限一并说清,告诉你那幅图何时配得上你的信任。下一篇会取自治这一情形,把整片二维的场压缩成单单一条线——相位线——好让你一眼读出每个解的命运。