Copyright © 2026 Joey Gong. All rights reserved.
Introduction
我们都认识代数方程,在没有方程之前,如果我要你寻找一个加上2等于9的数,你只能倒推,想到7。但是有了方程,你可以正向推理列出 \(x+2=9\)。 方程的目的是求解一个未知量,使用正向思维建立代数等量关系,剩下的只剩数学技巧的机械求解,即可得出未知量。
但是代数方程不总是能解决所有问题,所有的代数方程化成函数后都有一个x和y一一对应的关系,你输入一个值,函数会机械的给你一个输出。但是如果函数本身就会随着输入的值变化呢?举个例子,我们有 \(y=f(x)=3x\), 当你输入的值增加1,原本得到的输出值应该比原本的输出值大3,但是由于我们定义了一种规则:“随着输入值每增加1,函数本身都会比原先扩大一倍”,那么输出值将不止大3。这时候,我们就需要寻找满足这个规则的函数 \(g(x)\),这个满足规则的函数输入是自变量,输出是经过调整后的函数值。由于函数是连续的,我们不在考虑以1为单位进行增加,而是取微元 \(dx\)为单位,这样也就可以得到一个连续的 \(g(x)\),这样我们就可以舍弃那个烦人的,一直在变化的 \(f(x)\),拥抱一个已经囊括 \(f(x)\) 本身和给定变化规则的 \(g(x)\)。由此,我们可以得出微分方程的根本目的:
由于我们取 \(dx\)作为一个单元,那么每个微小单元都要遵循这个变化的关系,根据刚刚我们定义的规则,\(y=3x\) 的微分增长将变为\(dg = 3dx+(ln2)g(x)dx\)。
我们有
\[y=3x\]它告诉我们,当自变量 $x$ 改变时,函数值 $y$ 也随之改变,并且始终保持“输出是输入的 3 倍”。如果 $x$ 只前进一个极小步 $dx$,那么 $y$ 的变化量就是
\[dy=3dx\]等价于
\[\frac{dy}{dx}=3\]这个规则的特点是:函数每一步怎么变,只由一个固定比例 $3$ 决定,当前函数值本身不参与下一步的变化。
现在我们换一种更动态的关系:函数值不仅随着自变量变化,而且当前函数值本身会影响下一步的变化。也就是说,函数越大,下一小步增长得越多;函数越小,下一小步增长得越少,因此:
\[dg=3dx+k g(x)dx\]如果我们希望这个规则表达“每过 1 个单位,函数值翻倍”,那么 $k=\ln2$,所以得到
\[dg=3dx+(\ln2)g(x)dx\]两边除以 $dx$,就是
\[\frac{dg}{dx}=3+(\ln2)g(x)\]这就是微分方程:它不是直接给出函数长什么样,而是规定函数在随着自变量推进时,每一步应该怎样更新自己。
这种形式可以编码函数 \(f(x)\) 本身变化的信息,也就是我们前面定义的规则,即在每一个无穷小区间内,输入值每增加一个单位,函数本身都会比原先扩大一倍。你看,自变量每增加一点点,函数值(相信你已经看出来了我说的函数值是指 \(g(x)\))都会同时受到函数 \(f(x)\) 增加的影响,以及函数本身的增量。敏锐的你肯定发现了,如果把
\[dg=F(x,g(x))dx\]两边同时除以 $dx$,就得到
\[\frac{dg}{dx}=F(x,g(x))\]左边正是目标函数 $g(x)$ 对 $x$ 的瞬时变化率。于是我们发现,微分方程不是直接告诉我们 $g(x)$ 长什么样,而是规定:这条曲线在每一个位置的斜率,都必须等于右边规则给出的值。如果右边只依赖 $x$,我们可以直接积分得到 $g(x)$;但如果右边还含有 $g(x)$ 本身,就需要先整理方程,比如分离变量,再把这个局部变化规则累积成整条函数曲线。这也是它叫“微分方程”的原因:它用导数,也就是无穷小尺度上的变化率,来规定一个未知函数。也就是说:
同样,如果我们用积分的视角去看待微分方程,只需要整理方程,将函数和微元配对(我们后面会讲这个方法——分离变量法)在每一个极小步里,左边和右边描述的是同一小步变化。每一步都有:
既然每一小步都相等,那么把所有小步加起来,总量当然也相等。倘若是定积分,例如从 $x=0$ 走到 $x=3$ 的定积分,意思就是从 $x=0$ 走到 $x=3$,两边累加了相同的值。那么不定积分,也就是变上限的定积分+\(C\),积分整理后即可得到包含 $C$ 或者其他常数的\(g_C(x)\)。
终于,我们得到了一个耦合了函数本身和变化关系的新函数 \(g_C(x)\),这就是微分方程的解,由于积分后我们会得到一个任意常数C,所以这个解并不是单一函数,而是一个函数族,他们的唯一区别就是C不同。如果想要求解C,则需要代入特定的初值条件,这部分不熟悉没有关系,后面我们讲到求解微分方程的时候自然会明白。
总结一下:以前,随着自变量的增加,你可以得到因变量,但是现在随着自变量在增加,函数关系本身也在变化,你需要寻找一个新的函数囊括这种变化。
现在,你已经学会了微分方程的本质,以及对微分方程进行建模,识别,但这只是最基础的定义。就像代数方程可以画图一样,微分方程也拥有无穷的扩展性。
1 Geometric Meaning
“ 数缺形时少直观,形少数时难入微;数形结合百般好,隔离分家万事休。” ————华罗庚
接下来的内容建议配合 MIT 18.03 课程阅读。
1.1 斜率场
刚刚,我们介绍完了微分方程的基本定义和代数表达,而任何代数都可以建立几何直观。接下来,我们开始学习微分方程的几何意义。
我们知道,微分方程可以描述:在经过任意单位 \(dx\) 的变化后,\(dg\) 是如何变化的,那么用导数的视角来看,微分方程就可以描述变化量和输入小步之间的比例。例如 \(dy=6dx\) 的意思是:在这个位置附近,$x$ 变一点点,$y$ 大约变 6 倍那么多。导数不是“变化量本身”,而是变化量和输入小步之间的比例。所以,\(g_C(x)\) 的导数编码了这个瞬时变化率。但是不是所有的微分方程都是 \(dy=6dx\) 这么简单。考虑 \(y’(x)=2x+y\),很容易可以看出代入任意点 $(x,y)$,都会得到一个不同的瞬时变化率。如果我们把所有点都代入,各自得到一个斜率方向,画在图上,就可以得到斜率场,同时也是微分方程的几何意义。
在第一章节我们已经讲过,$g_C(x)$ 是你需要求的,积分后得到的目标函数,也是由局部增长率累积出来的目标函数,很自然的可以想到每一条解曲线在自己经过的每一个点,都和斜率场在那个点给出的方向相切,他们因为满足规则,所以正好和斜率场中的斜率相切,这样的包含C的解族中的每个解曲线被称为积分曲线
现在,我们知道了斜率长和积分曲线的关系——斜率场和微分方程的全体解(因为有很多C不通的解)等价,而积分曲线和某个特定的解等价
1.2 作图和等斜线
想要手画斜率场的图像,肯定不可能像计算机一样将每个点代入再算斜率然后画出,这样太傻了。我们需要运用逆向思维,便可想到一种新的方法:将斜率定为某一个值,画出所有斜率满足这个值的点。这样就会容易很多,这样的线叫做等斜线。
举个例子,考虑
\[y'=\frac{-x}{y}\]我们将所有 \(y'\) 的值为 $C$ 的的线画出来即可得到等斜线。
整理后得到
\[y= -\frac{1}{C}x\]将 \(C=1\) 和 \(C=-1\) 分别带入,可以得到两条互相垂直的等斜线。而我们知道,积分曲线和斜率处处相切,显然可以得出在这个方程中积分曲线就是一个圆。
圆的方程是 $x^2+y^2=c^2$ , 化简后得到 $y=\pm\sqrt{c^2-x^2}$。这是一个被限制过定义域的函数(因为方程不满足垂直检验)。因此,你如果直接观察微分方程的代数表达,是无法得知解的定义域的,要想了解方程的解的定义域,你需要作图或者解出这个解曲线,观察其性质。
作图的一般步骤是:
1 将微分方程整理成导数的形式
2 将导数替换为常数
3 代入不同常数,得到很多等斜线
4 在等斜线上的每一点上都画上一条斜率是你设定常数的线
5 对每条等斜线这样操作后,你会得到一个漂亮的斜率场