Administrator
发布于 2026-09-09 / 0 阅读
0
0

数学工具(四):常微分方程

第一章 常微分方程基础理论与基本求解方法

1.1 常微分方程概述

1.1.1 定义与基本概念

"微分方程"指的是一个包含未知函数及其导数的方程,而"常"或者说"Ordinary"指的是这个未知函数只依赖于单个自变量。这与偏微分方程(PDE)是相对的,后者处理的是依赖于多个自变量的函数。

1.1.2 三大核心问题

  1. 解在什么时候存在? (When do we have solutions?)
    解的存在性。并非我们随便写出一个微分方程,它就一定有解。我们需要研究在什么样的条件下,才能保证一个微分方程至少有一个函数能够满足它。
  2. 有多少个解? (How many solutions?)
    这个问题探讨的是解的唯一性数量。如果我们找到了一个解,那么这是不是唯一的解?还是说存在无数个解?如果存在多个解,它们之间又有什么样的关系?
  3. 我们如何找到这些解? (How do we find them?)
    这是最实际的一个问题,关注的是求解的方法。在课程中,我们将学习各种各样的技术和方法,来针对不同类型的常微分方程,求出它们的解。

1.1.3 通用形式与阶的概念

为了系统地研究这些问题,我们首先需要一个标准化的方式来表示常微分方程。一个 n 阶常微分方程的通用形式可以写成:

y^{(n)} = f(t, y, y', \dots, y^{(n-1)})

我们来详细解析一下这个表达式的每一个部分:

  • n 代表这个微分方程的阶 (order)。它是由方程中出现的未知函数的最高阶导数的阶数决定的。比如,如果最高阶导数是二阶导 y'',那么它就是一个二阶ODE。
  • t自变量 (independent variable)。在很多物理或工程问题中,t 通常代表时间,但它也可以代表空间位置或其他任何独立的量。
  • y(t) 是我们想要寻找的未知函数,也称为因变量 (dependent variable),因为它的值是随着自变量 t 的变化而变化的。我们的最终目标就是找到这个函数 y(t) 的具体表达式。
  • y', y'', \dots, y^{(n-1)} 分别代表 y(t) 关于 t 的一阶、二阶、直到 (n-1) 阶的导数。
  • f 是一个函数,它描述了最高阶导数 y^{(n)} 与自变量 t、函数本身 y 以及比 n 阶更低阶的各阶导数之间的关系。这个函数 f 的具体形式决定了该微分方程的类型和性质。

1.2 通解与初值问题

1.2.1 具体例子分析

理论总是有些抽象,让我们来看一个具体的例子来理解这些概念。黑板上给出的例子是一个二阶常微分方程:

y'' - 4y' + 3y = 0

在这个方程中,最高阶的导数是二阶导 y'',所以这是一个二阶(n=2)的ODE。这里的自变量是 t,因变量是 y(t)

对于这个方程,黑板上直接给出了一些解的形式。比如,y_1(t) = c_1e^t 是一个解,y_2(t) = c_2e^{3t} 也是一个解。这里的 c_1c_2 是任意常数。这意味着,例如 y=e^t, y=2e^t, y=-5e^{3t} 等等,都是满足这个方程的解。这说明,对于这一个微分方程,解不是唯一的,而是存在着无穷多个解。

1.2.2 通解的概念与叠加原理

既然存在无穷多个解,我们该如何描述它们呢?这时就引出了通解 (general solution) 的概念。通解是一个包含了该微分方程所有可能解的表达式。对于上面这个例子,它的通解是:

y(t) = c_1e^t + c_2e^{3t}

这个表达式被称为 e^te^{3t}线性组合 (linear combination)。这里的 c_1c_2 是两个任意常数。通过选择不同的 c_1c_2 的值,我们就可以得到这个方程的每一个具体的解。这个现象背后其实是一个重要的原理,叫做叠加原理,它对于线性微分方程普遍适用。简单来说,如果 y_1y_2 都是一个线性齐次ODE的解,那么它们的任意线性组合 c_1y_1 + c_2y_2 也一定是该方程的解。

通解的出现,很好地回答了我们之前提出的第二个问题"有多少个解?"。对于这个二阶方程,答案是存在一个由两个独立任意常数所刻画的无穷解集。

1.2.3 初值问题

在实际应用中,我们通常不关心那个包含所有可能性的通解,而是希望根据一些特定的初始状态,找到一个唯一的、特定的解。这就引出了初值问题 (Initial Value Problem),简称 I.V.P.

一个初值问题由两部分组成:

  1. 微分方程本身: y^{(n)} = f(t, y, y', \dots, y^{(n-1)})
  2. 一组初始条件 (initial conditions)

初始条件是在某一个初始点(通常我们设为 t=0)给定的函数及其各阶导数的值。对于一个 n 阶的ODE,我们需要 n 个初始条件来唯一确定一个解。这些条件的形式如下:

y(0) = y_0
y'(0) = y'_0
\vdots
y^{(n-1)}(0) = y_0^{(n-1)}

这里的 y_0, y'_0, \dots, y_0^{(n-1)} 都是给定的具体数值。

为什么 n 阶方程需要 n 个初始条件呢?这与通解中的任意常数数量密切相关。我们刚才看到,一个二阶方程的通解 y(t) = c_1e^t + c_2e^{3t} 中含有两个任意常数 c_1c_2。如果我们想确定这两个常数的值,就需要两个独立的方程。而两个初始条件,例如 y(0) = 2y'(0) = 0,正好可以用来建立关于 c_1c_2 的一个二元一次方程组,从而解出 c_1c_2 的唯一值。

因此,初值问题通过提供足够的初始信息,从通解描述的无穷解的"海洋"中,精准地"捕捞"出我们所需要的那一个特定的解。这为我们之前提出的核心问题提供了更完整的答案:一个(性质良好的)n 阶常微分方程的初值问题,通常存在唯一的一个解。

1.3 变量分离法

1.3.1 方法概述与经典例子

今天我们学习的第一个求解技巧叫做变量分离法 (Separation of Variables)。顾名思义,这个方法的核心思想就是通过代数变换,将方程中的因变量 y 和自变量 t "分离开",使得等式的一边只含有 y 和它的微分 dy,而另一边只含有 t 和它的微分 dt。一旦分离成功,我们就可以对等式两边分别进行积分,从而得到方程的解。

让我们从一个非常经典的例子——指数增长模型——开始。这个模型的微分方程是:

\frac{dy}{dt} = ky

这个方程的含义是,某个量 y 的变化率 (\frac{dy}{dt}) 与其自身的大小 y 成正比。这里的 k 是一个比例常数。当 k>0 时,它描述了像人口增长这样的过程;当 k<0 时,它描述了像放射性元素衰变这样的过程。

求解过程:

  1. 分离变量: 我们的目标是将所有含 y 的项移到左边,所有含 t 的项移到右边。对方程 \frac{dy}{dt} = ky 进行变形,我们可以将 y 除到左边,将 dt 乘到右边,得到:

    \frac{1}{y} dy = k dt

    这一步就是"变量分离"的核心操作。需要注意的是,这个操作隐含了一个假设,即 y \neq 0。我们稍后会讨论这个假设。

  2. 两边积分: 变量成功分离后,我们对等式两边同时进行积分:

    \int \frac{1}{y} dy = \int k dt
  3. 计算积分:
    左边的积分是 \ln|y|,右边的积分是 kt。这里要特别注意,因为我们计算的是不定积分,所以必须加上一个积分常数 C。通常我们把它加在自变量 t 的一边:

    \ln|y| = kt + C
  4. 求解 y: 为了得到 y 的显式表达式,我们以自然常数 e 为底,对等式两边取指数:

    e^{\ln|y|} = e^{kt+C}

    根据指数和对数的运算法则,左边等于 |y|,右边可以写成 e^{kt} \cdot e^C。所以:

    |y| = e^C e^{kt}
  5. 处理常数: 这里的 e^C 也是一个常数。因为 C 可以是任意实数,所以 e^C 是一个任意的正数。我们可以用一个新的常数(比如 A=e^C, A>0)来代替它。这样 |y| = Ae^{kt},即 y = \pm Ae^{kt}。为了表达式更简洁,我们可以将符号 \pm 与正数 A 合并成一个新的任意常数 cc 可以是正数、负数)。这样就得到了我们最终的通解

    y = ce^{kt}

    现在回过头看我们最初的假设 y \neq 0。如果我们允许 c=0,那么 y(t)=0 也是一个解。将 y=0 代入原方程,\frac{d(0)}{dt}=0k \cdot 0=0,方程成立。所以 y(t)=0 确实是一个平凡解,并且它也包含在了通解 y=ce^{kt}c=0 时的情形中。

1.3.2 通用形式与求解步骤

通过上面的例子,我们可以总结出变量分离法适用的方程形式。如果一个一阶微分方程可以写成如下形式:

\frac{dy}{dt} = f(t)g(y)

即导数 \frac{dy}{dt} 可以表示为一个只含 t 的函数 f(t) 与一个只含 y 的函数 g(y) 的乘积,那么这个方程就是可分离变量的 (separable)

其求解步骤是标准化的:首先分离变量,得到:

\frac{dy}{g(y)} = f(t)dt

然后对两边积分即可。

我们再来看一个稍微复杂一点的例子:

\frac{dy}{dt} = \frac{ty}{y^2+1}

这里,我们可以看作是 f(t)=tg(y)=\frac{y}{y^2+1} 的乘积。所以它是一个可分离变量的方程。

求解过程:

  1. 分离变量: 将含有 y 的项 \frac{y}{y^2+1} 移到左边,得到:

    \frac{y^2+1}{y} dy = t dt
  2. 两边积分:

    \int \frac{y^2+1}{y} dy = \int t dt

    为了方便积分,我们将左边的分式拆开:

    \int (y + \frac{1}{y}) dy = \int t dt
  3. 计算积分:
    对两边分别进行积分,得到:

    \frac{1}{2}y^2 + \ln|y| = \frac{1}{2}t^2 + C

这个结果就是方程的解。与上一个例子不同的是,我们很难从这个表达式中解出 y 关于 t 的显式函数 y(t)。这种无法写成 y = \dots 形式,而是以一个方程来表达 yt 之间关系的解,我们称之为隐式解 (implicit solution)。在常微分方程的求解中,得到隐式解是非常常见的情况。

1.3.3 隐式解与奇异解

请注意,在第二个例子的分离变量过程中,我们把 g(y) = \frac{y}{y^2+1} 除到了等式左边。这个操作的前提是 g(y) \neq 0,即 y \neq 0

那么当 y=0 时会发生什么呢?让我们单独检验一下。如果函数恒等于零,即 y(t) \equiv 0,那么它的导数 \frac{dy}{dt} 也恒为零。将 y=0 代入原方程右边,\frac{t \cdot 0}{0^2+1}=0。由于左边=右边 (0=0),所以 y(t) \equiv 0 确实是原方程的一个解。

然而,在我们求出的隐式通解 \frac{1}{2}y^2 + \ln|y| = \frac{1}{2}t^2 + C 中,由于 \ln|y| 的存在, y 不能等于0。这意味着,无论常数 C 取何值,我们都无法从这个通解表达式中得到 y=0 这个解。

这种通过求解过程(比如除以一个可能为零的项)而丢失的解,有时被称为奇异解 (singular solution)。因此,在用变量分离法求解时,一个严谨的步骤是:在分离变量后,要回过头来单独检验那些使得 g(y)=0 的常数 y 值,看它们是否也是方程的解。对于这个例子,完整的答案是隐式解以及奇异解 y=0

1.4 解的存在性与唯一性定理

1.4.1 定理的陈述与条件分析

这是一个在常微分方程理论中基石性的定理。它为我们判断一个初值问题 (IVP) 是否有"良好表现"(即拥有唯一的解)提供了明确的准则。

定理是针对一个给定的一阶初值问题 (IVP) 展开的,其标准形式为:

y'(t) = f(t, y), \quad y(t_0) = y_0

这个 IVP 描述的是,我们寻找一个函数 y(t),它不仅要满足微分方程 y' = f(t, y),还要在初始时刻 t_0 时,其值恰好为 y_0

定理的内容如下:

如果 函数 f(t, y) 以及它关于变量 y 的偏导数 \frac{\partial f}{\partial y} 这两者都在初始点 (t_0, y_0) 附近的一个小区域内是连续的那么,我们可以保证存在 (\exists) 一个大于零的数 \epsilon,使得在区间 [t_0 - \epsilon, t_0 + \epsilon] 上,该初值问题存在一个唯一的解

我们来深入解读这个定理的两个关键部分:

  1. 条件: 定理生效的前提是两个连续性条件。

    • f(t, y) 的连续性:这个条件主要保证了解的存在性。直观上理解,如果方程右边的函数 f 都是连续变化的,那么解曲线 y(t) 就不太可能在初始点附近突然"断裂"或者"消失"。
    • \frac{\partial f}{\partial y} 的连续性:这是一个更强的条件,它保证了解的唯一性。它衡量了当 y 发生微小变化时,函数 f (也就是斜率 y') 的变化率。如果这个变化率也是连续的,就能防止多条解曲线从同一点 (t_0, y_0)"分岔"出去。
  2. 结论: 如果满足了上述条件,定理给出了一个强有力的保证:解不仅存在,而且是唯一的。但需要注意,这个保证是局部的 (local),它只承诺在初始点 t_0 附近的一个小区间内解是存在且唯一的,但并不保证这个解能延伸到任意长的时间。

1.4.2 违反唯一性的反例分析

理论最好的说明就是例子。让我们看一个不满足定理条件,并因此导致解不唯一的情形。考虑下面的初值问题:

y'(t) = y^{1/3}, \quad y(0) = 0

这里的初始点是 (t_0, y_0) = (0, 0)

首先,我们尝试用变量分离法来求解它。

\frac{dy}{dt} = y^{1/3} \implies y^{-1/3}dy = dt

两边积分:

\int y^{-1/3}dy = \int dt \implies \frac{3}{2}y^{2/3} = t + C

现在我们代入初始条件 y(0)=0

\frac{3}{2}(0)^{2/3} = 0 + C \implies C=0

所以,我们得到了关系式 \frac{3}{2}y^{2/3} = t,即:

y^{2/3} = \frac{2}{3}t

接下来是关键的一步,我们需要从此关系式中解出 yy^{2/3} 实际上是 (y^{1/3})^2。所以方程是 (y^{1/3})^2 = \frac{2}{3}t。要从平方根下求解,我们必须考虑正负两种可能性:

y^{1/3} = \pm\sqrt{\frac{2}{3}t}

然后将两边同时立方,得到 y(t):

y(t) = \left( \pm\sqrt{\frac{2}{3}t} \right)^3 = \pm \left(\frac{2}{3}t\right)^{3/2}

这个表达式要求根号内的部分非负,即 t \ge 0

从上面的推导,我们已经通过变量分离法得到了两个不同的非零解(在 t \ge 0 的区域内):

  1. y_1(t) = +\left(\frac{2}{3}t\right)^{3/2}
  2. y_2(t) = -\left(\frac{2}{3}t\right)^{3/2}

这两个函数都满足微分方程,并且都满足初始条件 y(0)=0

还没完! 我们在进行变量分离时,第一步是将方程写为 y^{-1/3}dy = dt,这个操作隐含了除以 y^{1/3} 的动作,所以它默认了 y \neq 0。我们必须单独检查 y(t) \equiv 0 (即函数恒等于0) 是否是一个解。

  • 微分方程: y' = (0)' = 0。方程右边是 y^{1/3} = 0^{1/3} = 0。因为 0=0,所以方程满足。
  • 初始条件: y(0) = 0。满足。
    所以,y_3(t) \equiv 0 也是这个初值问题的一个解!

至此,我们对于同一个初值问题,至少找到了三个完全不同的解。这清晰地表明,这个初值问题的解不唯一

1.4.3 定理条件的验证

这个例子完美地展示了唯一性并非理所当然。现在我们用存在性和唯一性定理来分析一下,为什么唯一性的保证在这里不适用。

我们需要检验定理的两个条件在初始点 (t_0, y_0) = (0, 0) 是否成立。

  1. 首先看函数 f(t, y) = y^{1/3}。这个函数(立方根函数)在 y=0 处是连续的。所以定理的第一个条件满足,这也与我们确实找到了解(存在性)的事实相符。

  2. 接下来,我们看关键的第二个条件。我们需要计算 fy 的偏导数:

\frac{\partial f}{\partial y} = \frac{\partial}{\partial y} (y^{1/3}) = \frac{1}{3}y^{-2/3} = \frac{1}{3y^{2/3}}

现在的问题是,这个导数函数 \frac{\partial f}{\partial y} 在我们的初始点,也就是 y=0 的地方,是否连续?
y \to 0 时,分母 3y^{2/3} \to 0,整个分式会趋向于无穷大。因此,\frac{\partial f}{\partial y}y=0 处是不连续的

结论:因为唯一性定理的第二个条件(\frac{\partial f}{\partial y} 的连续性)在初始点 (0,0) 未被满足,所以定理无法对这个初值问题的解的唯一性做出任何保证。而我们的计算结果也证实了这一点——解确实不唯一。这个例子深刻地揭示了定理中每一个条件的重要性。

第二章 一阶线性微分方程

2.1 线性微分方程的结构

2.1.1 线性方程的定义与判别

到目前为止,我们接触的方程(如 y'=kyy'=y^{1/3})结构相对简单。现在我们要系统地学习一大类被称为线性常微分方程的方程。它们的结构非常规整,使得我们能够发展出系统性的、普适性很强的解法。

我们通过黑板上的例子来直观理解"线性"的含义:

x^2y'' + \sin(x)y' + 3y = e^x

一个微分方程被称为线性的,关键在于因变量 y 以及它的所有导数 (y', y'', \dots) 在方程中出现的"方式"。具体来说,必须满足以下条件:

  1. y, y', y'', \dots 的幂次都必须是一次。方程中不能出现像 y^2, (y')^3 这样的项。
  2. 不能有 y 或其导数的函数,例如 \sin(y) 或者 e^y
  3. 不能有 y 与其导数的乘积项,例如 y \cdot y'

观察上面的例子,它完全符合这些要求。y'', y', 和 y 都是一次方,它们之间没有相乘。

那么,那些乘以 y, y', y'' 的项是什么呢?黑板上将 x^2, \sin(x), 和 3 圈了出来,并称之为系数函数 (coefficient functions)。这是线性的一个关键特征:系数可以是自变量 x 的任意函数,但不能是因变量 y 的函数。

最后,等号右边的项 e^x 同样也只能是自变量 x 的函数。

2.1.2 线性常微分方程的通用形式

我们可以将上述观察推广到一个 n 阶线性常微分方程的通用形式:

a_n(x)y^{(n)} + a_{n-1}(x)y^{(n-1)} + \dots + a_1(x)y' + a_0(x)y = b(x)

我们来解析这个通用形式:

  • y, y', \dots, y^{(n)} 是未知的因变量函数 y(x) 及其各阶导数。
  • a_n(x), a_{n-1}(x), \dots, a_0(x)系数函数。它们是自变量 x 的已知函数。
  • b(x) 是等号右边的项,有时被称为驱动项 (forcing term)非齐次项 (inhomogeneous term)。它也只是一个关于 x 的已知函数。

整个方程本质上是 y 及其各阶导数的一个"线性组合",而组合的权重(系数)是 x 的函数。

2.1.3 齐次与非齐次的分类

在线性方程的理论中,有一个至关重要的分类,即齐次 (Homogeneous)非齐次 (Non-homogeneous)

定义非常简单:
如果一个线性常微分方程的右侧项 b(x) 恒等于零,即 b(x) \equiv 0,那么这个方程就被称为线性齐次常微分方程 (Linear Homogeneous ODE)

其通用形式为:

a_n(x)y^{(n)} + a_{n-1}(x)y^{(n-1)} + \dots + a_1(x)y' + a_0(x)y = 0

反之,如果 b(x) 不恒为零,那么方程就是非齐次的

为什么要做出这个区分呢?因为:

  1. 解的结构不同:齐次方程的解具有非常优美的线性结构。如果 y_1y_2 都是一个线性齐次方程的解,那么它们的任意线性组合 c_1y_1+c_2y_2 也必然是解。这就是我们之前提到过的叠加原理
  2. 求解策略相关:求解一个非齐次方程,其第一步总是先求解其对应的齐次方程(即令 b(x)=0 后的方程)。非齐次方程的通解是由对应的齐次方程的通解和一个非齐次方程的特解组成的。

2.1.4 几何解释:与线性代数的联系

黑板的右下角有一个注解:"hyperplane through the origin"(过原点的超平面)。这是一个来自线性代数的类比,能帮助我们从更高维度理解齐次方程的本质。

我们可以将一个微分方程的所有解看作一个集合或"空间"。

对于一个线性齐次方程,它的解空间具有向量空间的结构。上面提到的叠加原理(解的线性组合仍然是解)正是向量空间的封闭性特征。此外,因为方程右边是0,所以 y(x) \equiv 0 (零函数) 永远是齐次方程的一个解(称为平凡解)。在线性代数中,一个包含原点(零向量)的子空间被称为线性子空间,其几何形象就是一个"过原点的平面或超平面"。

而对于一个非齐次方程,因为右边 b(x) \neq 0,所以 y(x) \equiv 0 不再是它的解。它的解空间虽然也具有某种平直的结构,但它不再是一个包含原点的向量空间,而是向量空间的一个平移,在线性代数中称为仿射子空间。其几何形象就是一个"不过原点的平面或超平面"。

这个几何类比虽然抽象,但深刻地揭示了 b(x)=0 这一条件的本质重要性——它保证了解集具有包含原点的线性结构。

2.2 一阶线性方程的求解技巧

2.2.1 积分因子法

我们首先来明确我们的目标对象。一个一阶线性常微分方程,经过整理后,总可以写成如下的标准形式

y' + p(t)y = f(t)

这里的 p(t)f(t) 是自变量 t 的已知函数。在学习新方法之前,我们先思考一个简单的情形:如果 p(t) \equiv 0,方程就变成了 y' = f(t)。这种情况我们已经很熟悉了,它可以通过对两边直接积分来求解,这本质上就是一种最简单的变量分离。但如果 p(t) 不是0,变量分离法就不再适用了。这时,我们需要一种更强大的技术,这就是积分因子法

这个方法的核心思想是,寻找一个特殊的函数,我们称之为积分因子 (Integrating Factor),用它乘遍整个方程,使得方程的左边恰好可以凑成一个乘积的导数形式。黑板上的推导过程清晰地展示了如何找到这个积分因子。

  1. 乘以积分因子 v(t):
    我们定义一个尚未知晓的函数 v(t),并将它乘到标准形式方程的两边:

    v(t)y' + v(t)p(t)y = v(t)f(t)
  2. 设定目标形式:
    我们的目标是让左边这一整块 v(t)y' + v(t)p(t)y 变成可以一步积分的形式。我们联想到乘积的求导法则:

    \frac{d}{dt}\left(v(t)y(t)\right) = v(t)y' + v'(t)y

    黑板上通过画箭头对比的方式,指出了我们的"希望":希望我们方程的左边就等于 \frac{d}{dt}(v(t)y)

  3. 求解积分因子 v(t):
    为了实现这个希望,我们只需要让两个表达式完全相等。比较后发现,我们必须满足条件 v'(t)y = v(t)p(t)y,这意味着我们的积分因子 v(t) 必须满足它自身的微分方程:

    v'(t) = v(t)p(t)

    这是一个可分离变量的方程。黑板上展示了求解这个方程的完整链条:

    \frac{v'(t)}{v(t)} = p(t) \implies \int \frac{v'(t)}{v(t)}dt = \int p(t)dt \implies \ln|v(t)| = \int p(t)dt \implies v(t) = e^{\int p(t)dt}

    这个链式推导一气呵成,最终给了我们计算积分因子的精确公式。在计算 \int p(t)dt 时,我们只需找到一个原函数即可,无需添加常数 C

一旦我们根据上面的公式计算出了积分因子 v(t),求解原始方程的过程就变得非常直接。

黑板上将整个过程总结为如下的推导:

\frac{d}{dt}\left(v(t)y\right) = v(t)f(t) \implies y(t) = \frac{1}{v(t)}\int v(t)f(t)dt

这个推导的第一步 \frac{d}{dt}\left(v(t)y\right) = v(t)f(t),正是我们设计积分因子的初衷和结果。第二步是通过对方程两边同时积分,然后再除以 v(t) 得到的。

最终求解公式:

y(t) = \frac{1}{v(t)}\int v(t)f(t)dt \quad \text{其中} \quad v(t) = e^{\int p(t)dt}

这里需要特别强调一点:公式中的 \int v(t)f(t)dt 是一个不定积分。这意味着在计算这个积分时,会自然地产生一个积分常数 C。正是这个常数 C,使得我们得到的 y(t) 是包含所有可能解的通解

在黑板的右侧,有一段关于解的存在的注解:如果 p(t)f(t) 在区间 (a,b) 上是连续的,那么一个唯一的解也存在于该区间 (a,b) 上。

这再次关联到了我们之前学习的存在唯一性定理。对于一阶线性方程 y' + p(t)y = f(t),我们可以写成 y' = f(t) - p(t)y
对比定理中的 y' = F(t,y),我们有 F(t,y) = f(t) - p(t)y
其对 y 的偏导数为 \frac{\partial F}{\partial y} = -p(t)
定理生效的条件是 F\frac{\partial F}{\partial y} 都连续。对于线性方程,这个条件等价于 p(t)f(t) 都是连续函数。
因此,对于一阶线性常微分方程,只要其标准形式中的系数函数 p(t)f(t) 是连续的,解的存在性和唯一性就总是被保证的。这是一个非常强大的结论。

2.2.2 伯努利方程

在我们学习新的方程类型之前,我们先回顾一下已经掌握的两种方法。黑板上写道:"我们已经见过 (We've seen) ..."

  1. y'(t)=f(t)g(y),即导数可以写成一个仅关于 t 的函数与一个仅关于 y 的函数的乘积。
  2. y'(t) + p(t)y = f(t):这是我们上一节课刚刚详细学习过的一阶线性常微分方程的标准形式。

今天,我们要学习一种新的方程,它看起来和一阶线性方程非常相似,但又不完全一样。这就是伯努利方程

一个伯努利方程具有如下的通用形式:

y'(t) + p(t)y = q(t)y^n

我们来仔细观察这个结构。它的左边 y' + p(t)y 与一阶线性方程完全相同。区别在于右边,它不再是一个只关于 t 的函数 f(t),而是变成了 q(t)y^n

正是这个 y 的幂次项,使得整个方程变成了非线性 (non-linear) 的(除非 n=0n=1,在这两种特殊情况下,方程会退化为我们已经会解的线性方程)。由于方程是非线性的,我们上一节课学习的积分因子法不能直接应用于它。

虽然伯努利方程本身是非线性的,但它有一个非常绝妙的性质:可以通过一个巧妙的变量代换,将它转化为一个我们熟悉的一阶线性方程。黑板上完整地展示了这个转化的过程。

第一步:定义新变量
这个方法的核心在于引入一个新变量 u(t)。我们定义:

u(t) = y(t)^{1-n}

这个代换的选择是至关重要的,它并非凭空猜测,而是能够恰好"消除"非线性项的关键。

第二步:计算新变量的导数
为了能在原方程中完整地替换掉 yy',我们还需要找到 u'(t)y'(t) 之间的关系。我们对 u(t) 的定义式两边同时对 t 求导(使用链式法则):

u'(t) = (1-n)y(t)^{(1-n)-1} \cdot y'(t) = (1-n)y(t)^{-n}y'(t)

第三步:转化原方程
现在,我们来处理原始的伯努利方程。黑板上提示我们,将原方程 y' + p(t)y = q(t)y^n 的两边同时乘以 y^{-n}

y^{-n}y' + p(t)y^{1-n} = q(t)

做这一步的目的,就是为了凑出我们刚才在 u(t)u'(t) 的表达式中见过的项。

第四步:代入新变量
现在,万事俱备。我们观察转化后的方程:

  • 方程中的 y^{1-n} 项,根据我们的定义,它正好就是 u(t)
  • 方程中的 y^{-n}y' 项,根据我们第二步的求导结果,它等于 \frac{1}{1-n}u'(t)

将这两部分代入到第三步得到的方程中,我们得到:

\frac{1}{1-n}u'(t) + p(t)u(t) = q(t)

黑板上用一个方框将这个最终结果圈了起来,并做了一个最重要的标注:Linear (线性的)

\frac{1}{1-n}u'(t) + p(t)u(t) = q(t)

这个方程,对于新的未知函数 u(t) 而言,是一个标准的一阶线性常微分方程。为了看得更清楚,我们可以将它两边再同乘以 (1-n),整理成我们最熟悉的一阶线性标准形式:

u'(t) + (1-n)p(t)u(t) = (1-n)q(t)

现在,它的形式就是 u' + P(t)u = Q(t),其中 P(t) = (1-n)p(t)Q(t)=(1-n)q(t)

总结求解伯努利方程的完整步骤

  1. 识别出一个伯努利方程 y' + p(t)y = q(t)y^n
  2. 通过变量代换 u = y^{1-n},将其转化为关于 u 的一阶线性方程。
  3. 使用我们上一节课学习的积分因子法,求解出这个关于 u(t) 的线性方程。
  4. 得到 u(t) 的解之后,再通过关系式 y(t) = u(t)^{\frac{1}{1-n}},将解换算回原来的变量 y(t),就得到了原伯努利方程的解。

第三章 二阶线性微分方程理论

3.1 二阶线性方程基础

3.1.1 标准形式与初值问题

我们现在开始研究二阶线性ODE。其标准形式如下:

y''(t) + p(t)y'(t) + q(t)y(t) = f(t)

与一阶情况类似,p(t), q(t) 是系数函数,f(t) 是驱动项。由于方程是二阶的,一个完整的初值问题 (I.V.P.) 需要两个初始条件:

y(t_0) = b_0 \quad \text{和} \quad y'(t_0) = b_1

这在物理上非常直观:要唯一确定一个物体的运动轨迹,你不仅需要知道它在初始时刻 t_0 的位置 y(t_0),还需要知道它的初始速度 y'(t_0)

3.1.2 存在唯一性定理

对于二阶线性方程,我们有一个非常好的消息。之前关于一阶线性方程的存在唯一性定理,可以被完美地推广到二阶:

定理:如果系数函数 p(t), q(t) 以及驱动项 f(t) 都在包含初始点 t_0 的某个区间 I 上是连续的,那么在这个区间 I 上,该初值问题存在唯一的解

这个定理非常强大。它意味着,只要构成方程的这些函数表现良好(连续),我们就完全不必担心解会不存在,或者像 y' = y^{1/3} 那样出现多个解的情况。对于线性方程,解的行为是非常稳定和可预测的。

3.1.3 叠加原理

现在,我们把注意力暂时集中在齐次方程上,即驱动项 f(t) 为零的情况。求解齐次方程是解决所有二阶线性方程的第一步。

y''(t) + p(t)y'(t) + q(t)y(t) = 0

齐次方程的解拥有一个极其重要的特性,即叠加原理

原理陈述:假设 y_1y_2 是上述齐次方程的两个已知解。那么,它们的任意线性组合 y = c_1y_1 + c_2y_2 (其中 c_1, c_2 是任意常数) 也一定是该齐次方程的解。

黑板上给出了这个原理的简单验证:
我们将 y = c_1y_1 + c_2y_2 代入齐次方程的左边:

(c_1y_1 + c_2y_2)'' + p(c_1y_1 + c_2y_2)' + q(c_1y_1 + c_2y_2) = 0

利用导数运算的线性性质(即 (au+bv)' = au' + bv'),我们可以把常数 c_1c_2 提出去,并重新组合各项:

c_1(y_1'' + py_1' + qy_1) + c_2(y_2'' + py_2' + qy_2) = 0

由于我们已经假设 y_1y_2 都是齐次方程的解,所以上面两个括号里的表达式都等于0。因此,上式变为:

c_1(0) + c_2(0) = 0

这显然成立。这就证明了叠加原理是正确的。这个原理是线性代数思想在微分方程中的完美体现。

3.1.4 齐次方程的通解结构

叠加原理直接引出了构造齐次方程通解的方法。通解是指一个包含了该方程所有可能解的表达式。

定义:如果 y_1y_2 是齐次方程的两个线性无关 (linearly independent) 的解,那么该齐次方程的通解就可以表示为:

y = c_1y_1 + c_2y_2

这里出现了一个至关重要的概念:"线性无关"。黑板上没有给出它的严格定义,但我们可以这样直观地理解它:

两个函数 y_1y_2 线性无关,意味着其中一个函数不是另一个函数的常数倍。换句话说,这两个解是"本质上不同"的。

  • 例子y_1 = \cos(t)y_2 = \sin(t) 是线性无关的,因为你无法通过乘以一个常数把 \cos(t) 变成 \sin(t)
  • 反例y_1 = e^{2t}y_2 = 5e^{2t}线性相关的,因为 y_2 = 5y_1

为什么线性无关如此重要?因为一个二阶方程的通解必须包含两个独立的任意常数(c_1c_2),这样才能满足两个初始条件。如果我们错误地选了两个线性相关的解,比如 y_1 = e^{2t}y_2 = 5e^{2t},那么它们的线性组合是 y = c_1e^{2t} + c_2(5e^{2t}) = (c_1+5c_2)e^{2t}。如果我们令 C = c_1+5c_2,那么这个解就变成了 y = Ce^{2t},它实际上只包含一个任意常数 C。这样的解是不完整的,无法覆盖所有可能的情况。

因此,求解一个二-阶线性齐次方程的核心任务,就是找到它的两个"本质上不同"的解,即一个线性无关的解集 \{y_1, y_2\},这个解集也被称为基础解系 (fundamental set of solutions)

3.2 线性无关性理论

3.2.1 线性无关的定义

黑板上给出了线性无关(L.I.)的两种定义,一种是针对两个函数的直观定义,另一种是适用于任意多个函数的普适性定义。

1. 两个函数的直观定义:

定义:在区间 I 上,如果函数 y_1y_2 不是其中一个是另一个的常数倍,那么它们是线性无关的。

这个定义非常直观,对于我们主要研究的二阶方程来说尤其好用。例如,我们之前提到的 e^{2t}5e^{2t} 就是线性相关的,因为后者是前者的5倍。而 \cos(t)\sin(t) 则是线性无关的。

2. 普适性的严格定义:

定义:在区间 I 上,函数集 \{y_1, y_2, \dots, y_n\} 是线性无关的,如果方程

a_1y_1 + a_2y_2 + \dots + a_ny_n = 0

成立的唯一条件是,所有的常数系数都为零,即:

a_1 = a_2 = \dots = a_n = 0

这个定义更为抽象但更具威力。它的逻辑是:我们尝试用这组函数去"构造"出零函数(即一个在整个区间上恒为零的函数)。我们知道,总有一种"平凡"的方式可以做到,那就是让每个函数的系数都取0。如果这是唯一能构造出零函数的方法,那么就说明这个函数集里的每一个成员都是独立且不可或代替的,因此它们是"线性无关"的。反之,如果我们能找到一组不全为零的系数 a_i 使得它们的线性组合为零,那么它们就是"线性相关"的。

3.2.2 朗斯基行列式判别法

使用严格定义去判断一组函数是否线性无关,有时会比较繁琐。对于微分方程的解,我们有一个更直接、更具计算性的判别工具,叫做朗斯基行列式 (Wronskian)

朗斯基行列式是一个由函数集及其各阶导数构成的行列式。黑板上以三个函数为例给出了它的形式:

如果朗斯基行列式 W(t) = \det \begin{vmatrix} y_1 & y_2 & y_3 \\ y_1' & y_2' & y_3' \\ y_1'' & y_2'' & y_3'' \end{vmatrix} \neq 0,(则函数集线性无关)。

这个行列式的构造非常有规律:第一行是函数本身,第二行是它们的一阶导数,第三行是二阶导数,以此类推。对于 n 个函数,我们会构建一个 n \times n 的行列式。

朗斯基判别法: 假设 \{y_1, \dots, y_n\} 是一个 n 阶线性齐次常微分方程的解集。

  • 如果在区间 I 上,朗斯基行列式 W(t) 不恒为零 (即至少在某一点 t_0W(t_0) \neq 0),那么这个解集是线性无关的。
  • 如果在区间 I 上,朗斯基行列式 W(t) 恒等于零,那么这个解集是线性相关的。

对于我们之前主要讨论的二阶情况,涉及两个函数 y_1, y_2,其朗斯基行列式为:

W(t) = \det \begin{vmatrix} y_1 & y_2 \\ y_1' & y_2' \end{vmatrix} = y_1y_2' - y_2y_1'

我们只需计算这个表达式,看它是否恒为零,就能判断 y_1y_2 作为解是否线性无关。

3.2.3 通解结构的理论总结

最后,黑板的最下方用一个方框总结了我们目前所学理论的核心思想,它将方程的阶数、解的数量、解的性质以及通解的形式完美地联系在了一起:

一个 n 阶(线性齐次)微分方程,如果它有 n 个线性无关的解,那么它的所有解都可以写成这 n 个解的线性组合。

这句话是线性常微分方程理论的基石。它告诉我们求解一个 n 阶线性齐次方程的完整路线图:

  1. 方程的阶数是 n

  2. 我们的目标是找到 n解。

  3. n 个解必须是线性无关的(可以用朗斯基行列式来检验)。

  4. 一旦我们找到了这样一个包含 n 个线性无关解的基础解系 \{y_1, y_2, \dots, y_n\},那么该方程的通解就是:

y(t) = c_1y_1(t) + c_2y_2(t) + \dots + c_ny_n(t)

这个通解包含了 n 个任意常数,正好可以用来满足 n 个初始条件,从而唯一确定一个特解。

3.3 常系数齐次方程求解

3.3.1 特征方程法基础

首先,黑板上第一句话就点明了一个重要的事实:
"对于 n>1 的情况,不再有像积分因子法那样普适的工具了,所以我们专注于一些特殊的类型。"
这句话告诉我们,对于二阶及更高阶的线性微分方程,不存在一个能解决所有问题的"万能公式"。因此,我们的策略是,分类学习几种非常重要且常见的特殊类型方程的解法。

例如,对于方程 y''(t)+y(t)=0,我们可能已经知道它的解是 y_1=\sin(t)y_2=\cos(t)。这两个解是线性无关的,因此根据我们上一节课的理论,其通解就是 y=c_1\sin(t)+c_2\cos(t)。但是,我们是如何系统地得到 \sin(t)\cos(t) 这两个解的呢?

黑板上给了一个看似随意的建议:"开始猜吧!(Start guessing!)"。这当然不是让我们盲目地乱猜,而是要进行一种有根据的、聪明的"猜测"。

我们学习的第一种,也是最重要的一种特殊类型,就是常系数齐次线性微分方程 (Constant Coefficient Homogeneous DE)

"常系数"意味着方程 y'' + p(t)y' + q(t)y = 0 中的 p(t)q(t) 都是常数
黑板上给出了一个具体的例子:

y''(t) - y'(t) - 6y(t) = 0

在这个方程里, y'' 的系数是1,y' 的系数是-1,y 的系数是-6,它们都是常数。

现在我们来"猜测"这个方程的解。我们需要寻找一个函数,使得它自身、它的一阶导数和二阶导数之间只相差常数倍。为什么呢?因为只有这样,它们的线性组合才有可能最终相加抵消为零。什么样的函数具有这个奇妙的性质呢?答案是指数函数。

因此,我们做出如下的" educated guess ":

假设解的形式为 y(t) = e^{rt},其中 r 是某个待定的常数。

现在,我们将这个猜测代入到我们的微分方程中去检验。

如果 y = e^{rt},那么 y' = re^{rt}y'' = r^2e^{rt}

代入方程 y'' - y' - 6y = 0 中,我们得到:

(r^2e^{rt}) - (re^{rt}) - 6(e^{rt}) = 0

黑板上将这个方程写成 r^2e^{rt} - re^{rt} - 6e^{rt}=0。我们可以把公共部分 e^{rt} 提取出来:

(r^2 - r - 6)e^{rt} = 0

因为指数函数 e^{rt} 永远不可能等于0,所以要使整个等式成立,唯一的方式就是让括号里的部分等于0:

r^2 - r - 6 = 0

这是一个惊人的转变!我们通过一个巧妙的猜测,将一个复杂的微分方程问题,转化成了一个简单的代数方程问题。这个代数方程 r^2-r-6=0 有一个专门的名字,叫做特征方程 (Characteristic Equation)

现在,我们只需要解这个二次的特征方程。通过因式分解,我们得到:

(r-3)(r+2) = 0

这个方程有两个不同的实数根:r_1 = 3r_2 = -2

这两个根 r 的值,就是使得我们最初的猜测 y=e^{rt} 能够成立的唯二选择。因此,我们找到了原微分方程的两个独立的解:

  • y_1(t) = e^{3t}
  • y_2(t) = e^{-2t}

这两个解,e^{3t}e^{-2t},显然不是对方的常数倍,因此它们是线性无关的。我们已经成功地找到了一个二阶齐次方程的两个线性无关的解。根据我们上一节课的理论,我们可以立即写出这个方程的通解

y(t) = c_1e^{3t} + c_2e^{-2t}

黑板的最后注解道,"c_1c_2 来自于初始条件 (I.C.)",这提醒我们,如果我们有一个具体的初值问题,就可以利用初始条件来确定这两个任意常数的具体数值,从而得到唯一的特解。

3.3.2 特征方程的三种根情况

好的,我们来继续学习。这张黑板上的内容,完美地承接了我们上一节课的知识点,并将其系统化地完成了。

上一节课,我们通过"聪明的猜测",即假设解的形式为 y(t) = e^{rt},成功地将一个二阶常系数齐次线性微分方程

ay'' + by' + cy = 0

转化为了一个代数问题——求解其对应的特征方程 (Characteristic Equation)

ar^2 + br + c = 0

我们已经通过一个例子看到了,当这个二次方程有两个不相等的实数根时,我们就能找到两个线性无关的解,从而写出通解。今天的黑板内容,正是对这个特征方程所有可能的三种情况进行了全面的总结。

求解一个二次方程 ar^2 + br + c = 0 的根,完全取决于其判别式 \Delta = b^2 - 4ac 的值。这自然地将我们的问题分成了三种情况。

情况一:两个不相等的实数根 (b^2 - 4ac > 0)

这是我们上一节课已经接触过的情况。当判别式大于零时,特征方程有两个不相等的实数根,我们称之为 r_1r_2。这对应着微分方程的两个线性无关的解 y_1(t) = e^{r_1t}y_2(t) = e^{r_2t}。因此,根据叠加原理,该微分方程的通解 (general solution, g.s.) 就是这两个解的线性组合:

y(t) = c_1e^{r_1t} + c_2e^{r_2t}

这部分内容是对我们已有知识的巩固。

情况二:一个重复的实数根 (b^2 - 4ac = 0)

现在我们来思考一个更有趣的问题。当判别式等于零时,特征方程只有一个重根,r = -\frac{b}{2a}。这意味着我们最初的猜测方法 y=e^{rt} 只能为我们提供一个解 y_1(t) = e^{rt}。然而,我们深知,一个二阶微分方程需要两个线性无关的解才能构成其通解。我们现在"丢失"了一个解,该怎么办呢?

黑板上给出了一个关键的提示:"so we guess y_2=te^{rt}"。这是一个非常重要的方法。当特征方程出现重根时,我们可以在已有的解 e^{rt} 的基础上,通过乘以自变量 t 来构造出第二个线性无关的解。也就是说,我们断定 y_2(t) = te^{rt} 也是原方程的一个解。虽然我们可以通过一种名为"降阶法"的普适方法严格推导出这个解,但在这里我们可以将其视为一个非常有效的"规则"或"技巧"。通过乘以 t,我们构造出的新函数 te^{rt} 与原函数 e^{rt} 是线性无关的,它正好补足了我们所缺失的那个解。

因此,当特征方程有重根 r 时,我们找到了两个线性无关的解 y_1(t) = e^{rt}y_2(t) = te^{rt}。那么,此时微分方程的通解就是:

y(t) = c_1e^{rt} + c_2te^{rt}

通过这种方式,我们便完整地解决了重根情况下的求解问题。

情况三:一对共轭复数根 (b^2 - 4ac < 0)

当判别式小于零时,特征方程没有实数根,但它有一对共轭复数根。黑板上将这对根写作 r = a \pm ib 的形式。根据二次方程求根公式,我们可以知道这里的实部 a = -\frac{b}{2a},虚部 b = \frac{\sqrt{4ac-b^2}}{2a}

从纯数学形式上讲,我们依然得到了两个不同的根,r_1 = a+ibr_2 = a-ib。那么,我们是否可以直接写出解 y_1(t) = e^{(a+ib)t}y_2(t) = e^{(a-ib)t} 呢?答案是可以的。此时的通解可以写作:

y(t) = C_1e^{(a+ib)t} + C_2e^{(a-ib)t}

然而,在绝大多数的物理和工程问题中,我们处理的是实实在在的物理量,因此我们更希望得到一个用实数函数(而不是复变函数)表达的解。黑板上指明了解决之道:"To avoid complex part, use L.C. (Linear Combination)"。这提示我们,可以利用叠加原理,通过对这两个复数解进行巧妙的线性组合,来提取出两个线性无关的实数解。

这里的关键工具是欧拉公式 (Euler's Formula),它建立了指数函数与三角函数之间的桥梁:

e^{i\theta} = \cos(\theta) + i\sin(\theta)

利用这个公式,我们可以把我们的复数解展开。首先,利用指数的性质 e^{x+y}=e^x e^y

y_1(t) = e^{(a+ib)t} = e^{at}e^{ibt} = e^{at}(\cos(bt) + i\sin(bt))
y_2(t) = e^{(a-ib)t} = e^{at}e^{-ibt} = e^{at}(\cos(bt) - i\sin(bt))

现在我们有了两个复数形式的解。根据叠加原理,它们的任何线性组合也是解。我们来构造两个特殊的线性组合,以消去虚数单位 i

  1. 构造第一个实数解:我们将两个复数解相加,然后除以2。
y_a = \frac{y_1 + y_2}{2} = \frac{e^{at}(\cos(bt) + i\sin(bt)) + e^{at}(\cos(bt) - i\sin(bt))}{2} = e^{at}\cos(bt)
  1. 构造第二个实数解:我们将两个复数解相减,然后除以 2i
y_b = \frac{y_1 - y_2}{2i} = \frac{e^{at}(\cos(bt) + i\sin(bt)) - e^{at}(\cos(bt) - i\sin(bt))}{2i} = e^{at}\sin(bt)

通过这两个线性组合,我们成功地获得了两个实数函数 e^{at}\cos(bt)e^{at}\sin(bt)。这两个函数是线性无关的,并且它们都是原微分方程的解。因此,我们可以用它们来构成通解。

最终,当特征方程的根为一对共轭复数 a \pm ib 时,其对应的实数形式的通解为:

y(t) = c_1e^{at}\cos(bt) + c_2e^{at}\sin(bt)

这个解的形式在物理学中极为常见,它通常描述一个带有阻尼的振荡系统,其中 e^{at} 部分代表振幅的衰减或增长,而 \cos(bt)\sin(bt) 部分则代表系统的振荡行为。

至此,我们已经完整地掌握了求解任意二阶常系数齐次线性微分方程的全部方法。无论特征方程的根是何种情况,我们都能够系统地写出其通解。

3.4 非齐次方程求解方法

3.4.1 非齐次方程的通解结构

到目前为止,我们已经系统地学习了如何求解齐次线性微分方程 (ay''+by'+cy=0)。现在,我们将进入一个更广阔、也更贴近实际应用的世界:非齐次线性微分方程 (Non-homogeneous DE)

黑板的开篇就给出了一个典型的非齐次方程的例子:

y''(t) - 2y'(t) - 3y(t) = 3e^{2t}

这个方程与我们之前处理的方程最核心的区别在于,等号右侧的项不再是 0,而是一个关于自变量 t 的函数,我们称之为驱动项或非齐次项。从物理模型的角度看,如果说齐次方程描述的是一个系统在没有外界干扰下的自由行为(比如一个弹簧自身的振动),那么非齐次方程描述的就是这个系统在受到一个持续的外部力量(即驱动项 3e^{2t})作用下的行为。

面对这种新的方程,我们无法再像以前一样直接假设 y=e^{rt} 来求解,因为代入后左边会是 e^{rt} 的倍数,而右边是 3e^{2t},等式无法恒成立。我们需要一种全新的思路。黑板上的推导揭示了求解这类方程的核心理论:非齐次方程的通解是由两部分相加构成的。

  1. 特解 y_p (Particular Solution)
    黑板上首先引入了"特解"的概念,记为 y_p。一个特解 y_p 指的是任何一个能够满足整个非齐次方程的具体函数。这里有两点需要特别强调:

    • 它是一个"特"定的解,意味着它不包含任何任意常数(如 c_1, c_2)。
    • 我们的目标只是找到任何一个满足方程的函数即可,无论用什么方法。黑板上明确指出,它"Not a general solution"(不是通解),因为它只是万千可能性中的一个解。
  2. 齐次解 y_h (Homogeneous Solution)
    这个概念我们已经非常熟悉了。对于任何一个非齐次方程,我们都可以找到其"对应的"齐次方程,做法很简单,就是直接将右侧的驱动项置为零。对于我们这个例子,对应的齐次方程就是:

    y'' - 2y' - 3y = 0

    y_h 就是这个我们已经完全掌握如何求解的齐次方程的通解。它包含了 c_1c_2 这样的任意常数。

黑板中间的推导过程是本次课程的理论核心。它证明了非齐次方程的通解 y 等于 齐次方程的通解 y_h非齐次方程的任意一个特解 y_p 之和。

y = y_h + y_p

让我们跟随黑板的思路来理解这个证明。我们将 y = y_h + y_p 代入非齐次方程 y'' - 2y' - 3y = 3e^{2t} 的左边:

(y_h+y_p)'' - 2(y_h+y_p)' - 3(y_h+y_p)

由于求导运算是线性的,我们可以将上式重新整理和分组,把包含 y_h 的项和包含 y_p 的项分开:

(y_h'' - 2y_h' - 3y_h) + (y_p'' - 2y_p' - 3y_p)

现在我们来分析这两部分:

  • 第一部分 (y_h'' - 2y_h' - 3y_h),根据 y_h 的定义,它就是齐次方程 y'' - 2y' - 3y = 0 的解,所以这一整块的值必然等于 0
  • 第二部分 (y_p'' - 2y_p' - 3y_p),根据 y_p 的定义,它就是非齐次方程 y'' - 2y' - 3y = 3e^{2t} 的一个解,所以这一整块的值必然等于 3e^{2t}

因此,整个表达式的结果就是 0 + 3e^{2t} = 3e^{2t},这与原方程的右边完全相等。这就证明了 y = y_h + y_p 确实是原非齐次方程的解。

我们已经证明了 y=y_h+y_p 是一个解,但为什么它就是包含了所有可能性的"通解"呢?黑板的最后一部分通过一个巧妙的论证回答了这个问题。

假设我们通过某种方法找到了两个不同的特解,分别记为 y_py_{p1}。既然它们都是特解,那么它们都满足原方程:

y_p'' - 2y_p' - 3y_p = 3e^{2t}
y_{p1}'' - 2y_{p1}' - 3y_{p1} = 3e^{2t}

现在,我们来考察这两个特解的,令 Y(t) = y_p(t) - y_{p1}(t)。我们将这个差代入到对应的齐次方程的左边:

(y_p-y_{p1})'' - 2(y_p-y_{p1})' - 3(y_p-y_{p1})

同样利用线性性,我们可以将其展开为:

(y_p'' - 2y_p' - 3y_p) - (y_{p1}'' - 2y_{p1}' - 3y_{p1})

我们将上面两个特解满足的等式代入,就得到:

3e^{2t} - 3e^{2t} = 0

这个结果告诉我们一个至关重要的事实:任意两个特解之间的差,必然是对应的齐次方程的一个解

这个结论的意义在于,一旦我们找到了某一个特解 y_p,那么其他任何一个特解 y_{p1} 都可以被写成 y_{p1} = y_p + Y 的形式,其中 Y 是齐次方程的一个解。换句话说,所有可能的特解都已经被包含在 y_p + y_h 这个表达式里了。因此,y = y_h + y_p 这个结构确实是能够覆盖所有解的通解。

3.4.2 待定系数法

我们上面已经从理论上证明了,一个非齐次线性微分方程的通解 y_g 是由其对应的齐次解 y_h 和一个特解 y_p 构成的,即 y_g = y_h + y_p。这张黑板上的内容,就是将这个理论付诸实践,向我们展示了如何一步步地求解我们在上一节课提出的那个具体例子:y''(t) - 2y'(t) - 3y(t) = 3e^{2t}

黑板清晰地将整个求解过程分为了三个步骤,这是一个非常标准且有效的方法。

第一步:求解齐次方程 (Solve the Homogeneous Equation)

我们的第一个任务是找到齐次通解 y_h。这意味着我们需要先忽略掉方程右侧的非齐次项,专注于求解其对应的齐次方程:

y'' - 2y' - 3y = 0

这正是我们之前已经完全掌握的内容。我们写出其特征方程 (Characteristic Equation):

r^2 - 2r - 3 = 0

通过因式分解,我们可以得到 (r-3)(r+1)=0,解出两个不同的实数根 r_1=3r_2=-1。因此,齐次方程的通解为:

y_h(t) = c_1e^{3t} + c_2e^{-t}

至此,第一步完成。

第二步:求解特解 (Solve the Non-Homogeneous DE)

这是我们本次学习的重点。我们如何找到那个没有任何任意常数的特解 y_p 呢?这里我们使用一种非常强大且直观的方法,叫做待定系数法 (Method of Undetermined Coefficients)

这个方法的核心思想是"根据右侧项的形式来猜测特解的形式"。黑板上给出了提示:"Guess: (r.h.s with coefficient)",意思是,我们的猜测应该与方程右侧项(r.h.s)具有相同的函数形式,只是带有一个或多个待定的常数系数。

在我们的例子中,方程右侧项是 3e^{2t},它是一个指数函数。因此,一个非常合理的猜测是,我们的特解 y_p 也应该是一个形式为 Ae^{2t} 的指数函数,其中 A 就是那个我们尚不清楚、等待我们去确定的系数。

我们的猜测是:

y_p(t) = Ae^{2t}

为了确定系数 A 的值,我们需要将这个猜测代回到完整的非齐次方程中,并要求它满足该方程。首先,我们计算 y_p 的一阶和二阶导数:

y_p' = 2Ae^{2t}
y_p'' = 4Ae^{2t}

现在,将这三者代入原方程 y'' - 2y' - 3y = 3e^{2t} 的左侧:

(4Ae^{2t}) - 2(2Ae^{2t}) - 3(Ae^{2t}) = 3e^{2t}

我们可以将公共项 e^{2t} 提取出来,从而得到一个关于系数 A 的代数方程:

(4A - 4A - 3A)e^{2t} = 3e^{2t}

为了使这个等式对所有 t 都成立,两边的系数必须相等。因此,我们得到:

-3A = 3 \quad \implies \quad A = -1

我们成功地确定了系数 A 的值!这意味着我们的特解就是:

y_p(t) = -e^{2t}

第二步完成。

第三步:组合得到通解 (General Solution)

最后一步非常简单,就是将前两步的结果相加,得到原非齐次方程的通解 y_g

y_g(t) = y_h(t) + y_p(t) = c_1e^{3t} + c_2e^{-t} - e^{2t}

黑板的最后还提醒我们,如果我们有初始条件(Initial Conditions, I.C.),例如 y(0)y'(0) 的值,我们就可以利用这个通解来建立关于 c_1c_2 的方程组,最终确定这两个常数的值,从而得到唯一的特解。

新的挑战:一个需要修正猜测的例子

现在,我们来解决黑板下方方框里的那个新问题。这个问题看似相似,但其中蕴含了一个非常重要的陷阱。

y''(t) - 2y'(t) - 3y(t) = 3e^{-t}

第一步:求解齐次方程

这个新方程的左边与上一个例子完全相同,因此它对应的齐次方程也完全相同。所以,我们不必重复计算,直接可以得到它的齐次通解 y_h

y_h(t) = c_1e^{3t} + c_2e^{-t}

第二步:求解特解 (注意陷阱!)

我们再次使用待定系数法。方程的右侧项是 3e^{-t}。按照刚才的逻辑,我们的第一反应是猜测特解的形式为:

\text{初步猜测:} \quad y_p(t) = Ae^{-t}

但是,这里有一个极其重要的规则在确定猜测形式后,必须检查它是否与齐次解 y_h 中的某一项重复。

我们来检查一下。我们的齐次解是 y_h = c_1e^{3t} + c_2e^{-t}。我们发现,我们的初步猜测 Ae^{-t}y_h 中的第二项 c_2e^{-t} 具有完全相同的函数形式。这意味着我们的猜测本身就是齐次方程的一个解!如果我们把它代入方程左边,得到的结果将恒等于 0,而我们期望得到的是 3e^{-t}。所以,这个初步猜测是注定要失败的。

修正规则:如果你的初步猜测与齐次解 y_h 中的某一项重复,你需要将你的猜测乘以自变量 t。如果乘以 t 之后仍然与 y_h 中的某一项重复(这在更高阶方程或特征方程有重根时可能发生),则需要继续乘以 t,直到不再重复为止。

因此,我们需要修正我们的猜测。将初步猜测乘以 t,得到我们正确的猜测形式

\text{修正后的猜测:} \quad y_p(t) = Ate^{-t}

现在,我们基于这个修正后的猜测来计算。我们需要使用乘法求导法则:

y_p' = A(1 \cdot e^{-t} + t \cdot (-e^{-t})) = Ae^{-t} - Ate^{-t}
y_p'' = -Ae^{-t} - (Ae^{-t} - Ate^{-t}) = -2Ae^{-t} + Ate^{-t}

y_p, y_p', y_p'' 代入原方程 y'' - 2y' - 3y = 3e^{-t} 的左侧:

(-2Ae^{-t} + Ate^{-t}) - 2(Ae^{-t} - Ate^{-t}) - 3(Ate^{-t}) = 3e^{-t}

现在,我们把包含 te^{-t} 的项和只包含 e^{-t} 的项分开整理:

(A+2A-3A)te^{-t} + (-2A-2A)e^{-t} = 3e^{-t}

我们发现,te^{-t} 的系数 (A+2A-3A) 恰好等于 0。这并非巧合,只要我们的修正步骤是正确的,这些项就必然会抵消掉。现在方程简化为:

-4Ae^{-t} = 3e^{-t}

通过比较系数,我们得到:

-4A = 3 \quad \implies \quad A = -\frac{3}{4}

于是,我们找到了这个例子的特解:

y_p(t) = -\frac{3}{4}te^{-t}

第三步:组合得到通解

最后,我们将齐次解和特解相加,得到这个新问题的通解:

y_g(t) = y_h(t) + y_p(t) = c_1e^{3t} + c_2e^{-t} - \frac{3}{4}te^{-t}

这个例子深刻地揭示了待定系数法的一个核心要点:在"猜测"之后,必须进行"检查与修正",以确保特解的猜测形式与齐次解的任何部分都线性无关。

3.4.3 待定系数法的猜测规则与策略

我们已经学习了待定系数法的基本操作流程,现在黑板上要系统地总结一个至关重要的问题:当我们面对一个非齐次线性微分方程时,应该如何根据方程右侧的非齐次项来"猜测"特解的形式?这不是一个盲目的猜测过程,而是有着明确规律可循的。待定系数法之所以强大,正是因为它建立在一个深刻的观察之上:如果一个函数经过有限次求导后,其函数类型保持不变(只是系数可能改变),那么这个函数就很可能出现在微分方程的解中。

黑板左侧列出了三种最常见的非齐次项类型,以及它们各自对应的特解猜测形式。我们需要深入理解每一种类型背后的数学原理。

第一种类型:指数函数 e^{rt}

当非齐次项包含 e^{rt} 这样的指数函数时(其中 r 是某个常数),我们的猜测形式应该是 y_p = Ae^{rt}。为什么选择这个形式?因为指数函数有一个极其特殊的性质:它对自己求导,得到的仍然是同一个指数函数的常数倍。具体地说,如果 y = e^{rt},那么 y' = re^{rt}y'' = r^2e^{rt},以此类推。这意味着,当我们把 Ae^{rt} 代入微分方程左边时,所有的项都会包含 e^{rt} 这个公共因子,我们可以把它提取出来,从而将问题转化为确定系数 A 的代数问题。黑板右侧对应地写出了这个猜测:y_p(\text{guess}) = Ae^{rt}

第二种类型:三角函数 \sin(\omega t)\cos(\omega t)

当非齐次项是正弦或余弦函数时,我们不能简单地只猜测一个 A\sin(\omega t) 或者 B\cos(\omega t)。黑板上明确指出,正确的猜测形式必须同时包含正弦和余弦两项,即 y_p = A\sin(\omega t) + B\cos(\omega t)。这背后的原因在于三角函数求导的特性:正弦函数求导会变成余弦函数,余弦函数求导会变成负的正弦函数。也就是说,\sin\cos 在求导过程中会相互转化。如果我们只猜测其中一个,那么在代入方程求导时,另一个函数形式必然会出现,导致我们无法满足方程。因此,即使非齐次项只有 \sin(\omega t) 或只有 \cos(\omega t),我们的特解猜测也必须同时包含这一对"孪生兄弟"。

第三种类型:多项式 n 次多项式

当非齐次项是一个 n 次多项式时,比如 3t^2 + 2t + 5,我们的猜测应该是一个同样次数的一般多项式形式。黑板上将其记为"n-degree polynomial",对应的猜测形式是 y_p = A_nt^n + A_{n-1}t^{n-1} + \cdots + A_1t + A_0。为什么要猜测完整的 n 次多项式而不是只猜测最高次项?这是因为多项式求导会降低次数。一个 n 次多项式求一次导变成 n-1 次,求二次导变成 n-2 次。当我们把猜测代入微分方程后,各阶导数项会产生不同次数的多项式,只有当我们的猜测包含从 n 次到常数项的所有项时,才能通过调整各个系数来匹配方程右侧的多项式。

综合实例分析

现在我们来看黑板下方给出的这个非常有代表性的例子,它完美地展示了如何将上述三种规则组合使用:

y'' - 2y' - 3y = t + 3e^{-t}\cos(4t)

这个方程的非齐次项由两部分组成:一个一次多项式 t 和一个指数函数与三角函数的乘积 3e^{-t}\cos(4t)

按照标准流程,我们首先需要找到对应齐次方程 y'' - 2y' - 3y = 0 的通解。黑板上已经给出了结果:

y_h = C_1e^{3t} + C_2e^{-t}

这是通过特征方程 r^2 - 2r - 3 = 0,解得两个不同实根 r_1 = 3r_2 = -1 而得到的。

接下来是关键的一步,我们要根据非齐次项的结构来猜测特解 y_p 的形式。非齐次项包含两个完全不同类型的部分,我们需要分别处理它们。

第一部分:处理多项式项 t

这是一个一次多项式(n=1),按照多项式规则,我们应该猜测一个一般的一次多项式。但这里我们要格外小心!黑板右上角有一个非常重要的提示框(虽然字迹有些模糊),它提醒我们必须检查猜测是否与齐次解重叠。我们的初步猜测应该是 At + B(一次多项式的一般形式)。我们检查一下:At + B 这个形式与 y_h = C_1e^{3t} + C_2e^{-t} 中的任何一项都不重叠,所以这个猜测是合格的。但黑板上的特解猜测却写成了 At^2 + Bt + C,这是一个二次多项式!为什么会出现这种情况?

要和导数阶数也对齐,不然二阶求导为0

第二部分:处理指数与三角函数的乘积 3e^{-t}\cos(4t)

这一项同时包含了指数函数 e^{-t} 和三角函数 \cos(4t)。当两种类型的函数相乘出现在非齐次项中时,我们的猜测需要保持这种乘积结构。基于三角函数规则,我们需要同时包含 \sin(4t)\cos(4t);基于指数函数规则,我们需要保留 e^{-t} 因子。因此,完整的猜测形式应该是:

De^{-t}\sin(4t) + Fe^{-t}\cos(4t)

这里每一项都是"指数函数 × 三角函数"的形式。但是现在我们必须执行一个至关重要的检查:这个猜测是否与齐次解 y_h 有重叠?我们的齐次解中有一项是 C_2e^{-t}。我们的猜测中也包含 e^{-t} 因子。这是否意味着有重叠呢?答案是没有。虽然指数部分相同,但三角函数部分 \sin(4t)\cos(4t) 使得整体函数形式与纯粹的 e^{-t} 完全不同。e^{-t}\sin(4t) 并不能写成 e^{-t} 的常数倍。因此,这个猜测是有效的,不需要乘以额外的 t 来修正。

黑板上将两部分组合在一起,给出了完整的特解猜测:

y_p = (At^2 + Bt + C) + De^{-t}\sin(4t) + Fe^{-t}\cos(4t)

这个表达式清晰地体现了一个重要原则:当非齐次项由多个不同类型的项相加组成时,特解的猜测就是对每一项分别猜测后的总和。这背后的数学原理是线性微分方程的叠加性质:如果 y_{p1} 是方程 Ly = f_1(t) 的特解,y_{p2} 是方程 Ly = f_2(t) 的特解,那么 y_p = y_{p1} + y_{p2} 就是方程 Ly = f_1(t) + f_2(t) 的特解。

黑板右上角虽然字迹不太清晰,但可以看出它在强调一个关键规则。当我们的初步猜测与齐次解 y_h 的某一项有相同的函数形式时,我们必须对猜测进行修正。修正的方法是在猜测前面乘以 t^m,其中 m 是使得修正后的猜测不再与 y_h 的任何项重叠所需的最小正整数。通常情况下 m=1 就足够了,但如果特征方程有重根,可能需要 m=2 或更大。这个规则我们在之前 y'' - 2y' - 3y = 3e^{-t} 的例子中已经详细见识过:由于 e^{-t} 本身就是 y_h 的一部分,我们必须将特解猜测修正为 Ate^{-t}

一旦我们确定了正确的特解猜测形式,接下来的工作就是纯粹的计算了。我们需要对 y_p 求一阶和二阶导数,将它们代入原方程,然后比较等式两边对应项的系数,建立关于未知系数 A, B, C, D, F 的代数方程组,解出这些系数的具体数值。最后,将求得的特解 y_p 与齐次解 y_h 相加,就得到了原非齐次方程的通解。

第四章 高阶线性微分方程

4.1 高阶方程的理论基础

4.1.1 标准形式与定义

它主要分为两个核心部分:第一,在动手求解之前,我们如何确信一个解是存在的,并且是唯一的;第二,这个解的结构究竟是什么样的。现在,让我们从头开始,逐一深入理解这些概念。

首先,我们来看黑板最上方给出的方程形式。一个n阶的线性微分方程,其标准形式可以写为:

y^{(n)} + P_1(t) y^{(n-1)} + \dots + P_n(t) y = f(t)

这个方程描述的是一个系统的动态行为,其中未知函数y(t)和它的各阶导数之间存在一种线性的关系。我们来详细拆解一下这个公式的各个部分:

  • y(t) 是我们想要解出来的未知函数,它通常代表某个随时间 t 变化的物理量(比如位移、电流等)。
  • y^{(k)} 代表 ytk 阶导数,例如y^{(n)}n阶导数,y^{(n-1)}n-1阶导数。方程中出现的最高阶导数的阶数(这里是 n)决定了这个方程的阶数
  • P_1(t), P_2(t), \dots, P_n(t) 被称为系数函数。请注意,它们是变量t的函数,而不是常数(当然,常数是函数的一种特殊情况)。这使得方程更具一般性。
  • f(t) 被称为自由项或者强迫项 (forcing term)。你可以把它理解为作用于这个系统的外部影响或驱动力。
    • 如果 f(t) = 0,我们称这个方程为**齐次(Homogeneous)**线性微分方程。它描述的是系统在没有外部干预下的自然行为或固有特性。
    • 如果 f(t) \neq 0,我们称之为**非齐次(Non-homogeneous)**线性微分方程。它描述的是系统在外部影响下的响应。

这个方程之所以被称为线性的,是因为未知函数y和它的所有导数y', y'', \dots, y^{(n)}都是以一次方的形式出现,并且它们之间没有相互乘积。

4.1.2 存在唯一性定理

在我们投入大量精力去寻找一个方程的解之前,一个至关重要的问题是:这个方程的解真的存在吗?如果存在,是不是只有一个解?否则我们可能在做一件没有意义的事情。黑板上的第一点就回答了这个问题,这就是高阶线性微分方程的存在性与唯一性定理

这个定理告诉我们,要保证在某一点t_0附近存在一个唯一的解,需要满足两个关键条件:

条件一:必须提供足够的初始条件 (Initial Conditions, I.C.)

对于一个n阶的微分方程,我们需要 n 个初始条件来唯一确定一个解。这些条件的形式如下:

y(t_0) = b_0, \quad y'(t_0) = b_1, \quad \dots, \quad y^{(n-1)}(t_0) = b_{n-1}

这里的 t_0 是我们关心的初始时刻,b_0, b_1, \dots, b_{n-1} 是一组给定的常数。为什么要n个条件呢?我们可以从物理直觉上理解。比如,对于一个二阶运动方程(n=2),仅仅知道物体的初始位置(y(t_0))是不够的,我们还需要知道它的初始速度(y'(t_0))才能唯一地预测它未来的运动轨迹。同理,对于一个n阶系统,我们需要知道它在初始时刻的"状态",这个状态由函数值和它的前n-1阶导数值共同描述。

条件二:方程本身必须是"行为良好"的

定理要求方程中的所有系数函数 P_1(t), \dots, P_n(t) 以及强迫项 f(t) 都必须在包含初始点 t_0 的某个区间内是连续的 (continuous)

为什么连续性如此重要?如果系数函数或强迫项在t_0点突然发生跳变或中断(即不连续),那么系统在这一点的行为可能会变得非常怪异和不可预测,导致解可能不存在,或者存在多个可能的解。连续性保证了系统的行为是平滑和可预测的。

定理的结论

当上述两个条件同时满足时,定理向我们保证:在初始点 t_0 附近,该微分方程一定存在一个解,并且这个解是唯一的。这个定理是整个理论的基石,它告诉我们,我们接下来要寻找的解确实是存在的,并且我们找到的那个解就是唯一的答案。

4.1.3 通解结构与叠加原理

既然我们知道了满足条件的方程有唯一解,那么下一个问题就是:这个解长什么样子?我们该如何系统地去寻找它?黑板上的第二点,叠加原理,揭示了线性微分方程解的优美结构。

这个原理的核心思想是"化整为零,分而治之"。它将求解复杂的非齐次方程问题,分解为求解相对简单的齐次方程和一个特解。

一个n阶非齐次线性微分方程的通解 (general solution) y(t) 由两部分构成:

y(t) = c_1 y_1(t) + c_2 y_2(t) + \dots + c_n y_n(t) + y_p(t)

我们可以把这个结构写成更简洁的形式:

y(t) = y_c(t) + y_p(t)

我们来分别理解这两个部分:

  • y_p(t):非齐次方程的特解 (Particular Solution)
    y_p(t) 是指满足完整非齐次方程 y^{(n)} + \dots + P_n(t) y = f(t)任何一个解。它不包含任何任意常数。这个特解可以理解为系统对外部强迫项 f(t) 的一种特定响应。

  • y_c(t):对应齐次方程的通解 (Complementary Solution)
    y_c(t) 是与原方程相对应的齐次方程 y^{(n)} + \dots + P_n(t) y = 0 的通解。它具有以下形式:

y_c(t) = c_1 y_1(t) + c_2 y_2(t) + \dots + c_n y_n(t)

这里的 c_1, c_2, \dots, c_nn 个任意常数,它们的值将由前面提到的 n 个初始条件来最终确定。而 y_1(t), y_2(t), \dots, y_n(t) 是该齐次方程的 n 个解。

为什么这个结构是正确的?我们可以将 y = y_c + y_p 代入原方程的左边进行验证。由于线性性质,算子作用可以分开。y_c代入后,结果为0(因为它是齐次方程的解);y_p代入后,结果为f(t)(因为它是特解)。因此,两者相加的结果正好是f(t),满足原方程。

基础解系与朗斯基行列式

现在,一个关键问题出现了:构成y_c的这 n 个解 y_1, \dots, y_n 有什么要求吗?是不是随便找n个齐次方程的解都可以?答案是否定的。它们必须构成一个所谓的基础解系 (Fundamental Set of Solutions)

一个解的集合能成为基础解系,其充要条件是这n个解函数必须是线性无关的 (linearly independent)。所谓线性无关,直观上讲,就是这里面的任何一个解都不能被其他解的线性组合所表示。它们每一个都提供了关于解空间的"新维度"的信息。

那么,我们如何从数学上判断 n 个解是否线性无关呢?这就需要用到黑板上提到的 W(t),即朗斯基行列式 (Wronskian)。对于 n 个解 y_1, \dots, y_n,它们的朗斯基行列式定义为:

W(y_1, \dots, y_n)(t) = \begin{vmatrix} y_1 & y_2 & \dots & y_n \\ y'_1 & y'_2 & \dots & y'_n \\ \vdots & \vdots & \ddots & \vdots \\ y_1^{(n-1)} & y_2^{(n-1)} & \dots & y_n^{(n-1)} \end{vmatrix}

这是一个由这些解以及它们的前n-1阶导数构成的行列式。

判定法则:对于齐次方程的一组解 y_1, \dots, y_n,如果存在某一点 t_0 使得 W(t_0) \neq 0,那么这组解就是线性无关的,它们构成了一个基础解系。这时,我们就可以放心地用它们来构建齐次方程的通解 y_c(t)。黑板上写的 "if and only if W(t) \neq 0 at t_0" 正是这个意思。

求解方法展望

基于以上理论,求解一个高阶线性微分方程的完整路线图包括:

  1. 如何找到齐次方程的基础解系 y_1, \dots, y_n 来构建 y_c?(例如,对于常系数方程,我们会学习特征方程法)。
  2. 如何找到非齐次方程的一个特解 y_p?(例如,我们会学习待定系数法和常数变易法)。

3.4.4 参数变易法

我们现在要解决的是形如下面的二阶线性非齐次微分方程:

y'' + p(t) y' + q(t) y = g(t)

在使用参数变易法之前,我们必须已经完成了第一步,那就是求解与它对应的齐次方程

y'' + p(t) y' + q(t) y = 0

如黑板上所写,我们假定已经找到了这个齐次方程的两个线性无关 (Linearly Independent, L.I.) 的解,记为 y_1(t)y_2(t)。这两个解构成了齐次方程的基础解系,因此齐次方程的通解就是 y_c(t) = c_1 y_1(t) + c_2 y_2(t),其中 c_1c_2 是任意常数。

方法的核心思想:变常为变

参数变易法的名字非常直观地揭示了它的核心技巧。我们观察齐次解 y_c(t) = c_1 y_1(t) + c_2 y_2(t),这里的"参数" c_1c_2常量。这个方法天才般的想法是:我们能否通过将这两个常量替换为两个未知的函数 u_1(t)u_2(t),来构造出非齐次方程的特解 y_p(t) 呢?

这正是黑板上写下的那句 "we guess" 的由来。我们假设特解具有以下形式:

y_p(t) = u_1(t) y_1(t) + u_2(t) y_2(t)

这个形式看起来和 y_c 很像,但本质完全不同。在这里,u_1(t)u_2(t) 不再是常数,而是我们接下来需要求解的未知函数。我们的目标就是找出 u_1(t)u_2(t) 具体是什么,从而得到 y_p(t)

推导过程:如何找到 u_1(t)u_2(t)

为了找到这两个未知函数,我们需要将我们猜测的 y_p 形式代入到原始的非齐次方程中。为此,我们需要计算它的一阶和二阶导数。

第一步:计算一阶导数 y'_p

使用乘法法则对 y_p(t) = u_1 y_1 + u_2 y_2 求导,得到:

y'_p = (u'_1 y_1 + u'_2 y_2) + (u_1 y'_1 + u_2 y'_2)

这里出现了一个问题。如果我们继续对这个复杂的表达式求二阶导数,会得到包含 u''_1u''_2 的项,这会让问题变得异常复杂。为了简化计算,我们在这里引入一个关键的约束条件。我们有两个未知函数 (u_1, u_2) 需要求解,但目前只有一个方程(原微分方程)来约束它们。这意味着我们有自由度来施加一个额外的条件。我们选择的这个条件要能最大程度地简化后续计算。

这个条件就是,我们强制让上面一阶导数表达式中的第一个括号等于零:

u'_1(t) y_1(t) + u'_2(t) y_2(t) = 0

这个假设是整个推导过程的精髓。在这个条件下,y'_p 的表达式被大大简化为:

y'_p = u_1 y'_1 + u_2 y'_2

第二步:计算二阶导数 y''_p

现在我们对简化后的 y'_p 求导:

y''_p = (u'_1 y'_1 + u'_2 y'_2) + (u_1 y''_1 + u_2 y''_2)

第三步:代入原方程

现在,我们将 y_p, y'_py''_p 的表达式代入到原始的非齐次方程 y'' + p(t) y' + q(t) y = g(t) 中:

\Big[ (u'_1 y'_1 + u'_2 y'_2) + (u_1 y''_1 + u_2 y''_2) \Big] + p(t) \Big[ u_1 y'_1 + u_2 y'_2 \Big] + q(t) \Big[ u_1 y_1 + u_2 y_2 \Big] = g(t)

接下来,我们重新整理这个方程,把含有 u_1u_2 的项分别组合在一起:

u_1(t) \Big[ y''_1 + p(t) y'_1 + q(t) y_1 \Big] + u_2(t) \Big[ y''_2 + p(t) y'_2 + q(t) y_2 \Big] + (u'_1 y'_1 + u'_2 y'_2) = g(t)

观察这个式子,我们发现了奇妙的事情!第一个和第二个方括号中的表达式,正是"y_1 代入齐次方程左边"和"y_2 代入齐次方程左边"的结果。而因为 y_1y_2 本身就是齐次方程的解,所以这两个方括号里的内容都等于零

于是,上面那个无比复杂的方程瞬间简化为:

u'_1(t) y'_1(t) + u'_2(t) y'_2(t) = g(t)

第四步:求解方程组

通过这个推导,我们得到了一个关于未知量 u'_1u'_2 的线性方程组:

\begin{cases} y_1 u'_1 + y_2 u'_2 = 0 \\ y'_1 u'_1 + y'_2 u'_2 = g(t) \end{cases}

这是一个包含两个未知数 (u'_1, u'_2) 和两个方程的代数方程组,我们可以解出它们。通过代数方法(例如克莱姆法则)求解这个方程组,我们得到:

u'_1(t) = \frac{-y_2(t) g(t)}{y_1(t) y'_2(t) - y'_1(t) y_2(t)} \quad \text{以及} \quad u'_2(t) = \frac{y_1(t) g(t)}{y_1(t) y'_2(t) - y'_1(t) y_2(t)}

请注意看这两个表达式的分母:y_1 y'_2 - y'_1 y_2。这正是我们之前定义过的,由 y_1y_2 构成的朗斯基行列式 W(y_1, y_2)(t)!正如黑板右侧所指出的,因为我们前提假设了 y_1y_2 是线性无关的,所以它们的朗斯基行列式 W(t) 永远不为零,这保证了我们的分母不会是零,解是有效存在的。

y_1(t) y'_2(t) - y'_1(t) y_2(t) = W(t) \neq 0 \quad \text{since L.I.}

这行字告诉我们两件重要的事情:
第一,这个表达式 y_1 y'_2 - y'_1 y_2 有一个专门的名字,叫做朗斯基行列式 (Wronskian),记作 W(t)
第二,也是最关键的,这个值是不等于零的。为什么呢?黑板上用一个大大的弧线箭头,从最开始的条件"2 L.I. solutions"指向了这里。这个箭头是在提醒我们,正是因为我们一开始就要求了 y_1y_2线性无关 (L.I.) 的,这个前提条件保证了它们的朗斯基行列式 W(t) 不会等于零。这一点至关重要,因为它确保了我们计算公式中的分母不是零,这个方法才行得通。

第五步:积分得到最终公式

我们已经求出了 u'_1u'_2。为了得到 u_1u_2,我们只需要对它们进行积分:

u_1(t) = -\int \frac{y_2(t) g(t)}{y_1(t) y'_2(t) - y'_1(t) y_2(t)} dt
u_2(t) = \int \frac{y_1(t) g(t)}{y_1(t) y'_2(t) - y'_1(t) y_2(t)} dt

只要我们知道了齐次解 y_1, y_2 和原方程右侧的 g(t),我们就可以把它们代入到这两个积分表达式里,通过计算积分,直接得到我们想要的 u_1(t)u_2(t)。一旦求出它们,我们的特解 y_p = u_1 y_1 + u_2 y_2 就找到了。

总结与应用

一旦通过积分计算出 u_1(t)u_2(t),我们就可以构建出特解:

y_p(t) = u_1(t) y_1(t) + u_2(t) y_2(t)

最终,原非齐次方程的通解就是:

y(t) = c_1 y_1(t) + c_2 y_2(t) + u_1(t) y_1(t) + u_2(t) y_2(t)

第五章 特殊求解技术

5.1 幂级数法

5.1.1 幂级数解的基本假设

好的,我们来重新仔细分析这张关于幂级数法的板书。这张板书通过一个我们非常熟悉的例子 y' = y,清晰地展示了如何运用幂级数求解微分方程的完整流程。

课程的起点是黑板左上角的 "Suppose" (假设)。我们假设方程 y' = y 的解 y 可以写成一个幂级数的形式,这也是整个方法的基础:

y = \sum_{n=0}^{\infty} c_n x^n

我们的任务就是求出这些系数 c_n

为了将这个假设代入原方程,我们需要计算它的导数 y'。黑板上给出了逐项求导的结果:

y' = \sum_{n=1}^{\infty} c_n n x^{n-1}

这里求和的起始索引从 n=0 变成了 n=1,因为原级数的第一项 c_0 是常数,其导数为零。

5.1.2 指标代换与系数比较

现在我们将 yy' 的级数形式代入 y' = y,得到:

\sum_{n=1}^{\infty} c_n n x^{n-1} = \sum_{n=0}^{\infty} c_n x^n

为了比较两边的系数,我们必须让两边级数中 x 的幂次以及求和的起始点都保持一致。黑板上清晰地展示了如何处理左边的 y' 级数:

首先,进行指标代换。我们令一个新的指标 m = n-1,那么 n = m+1。当 n1 开始时,m 就从 0 开始。代换后,y' 的级数变为:

y' = \sum_{m=0}^{\infty} c_{m+1} (m+1) x^m

由于求和指标用什么字母(m 或是 n)并不会改变级数的结果,我们可以把 m 再换回 n,以便于和等式右边进行比较。所以,y' 的级数最终写为:

y' = \sum_{n=0}^{\infty} c_{n+1} (n+1) x^n

现在,原方程 y' = y 就可以写成黑板上 y' = y <=> 所对应的形式:

\sum_{n=0}^{\infty} c_{n+1} (n+1) x^n = \sum_{n=0}^{\infty} c_n x^n

5.1.3 递推关系与通项公式

根据幂级数的恒等定理 (Identity Theorem),如果上述等式成立,那么对于每一个 x^n 项,其系数必须相等。由此,我们得到:

(n+1) c_{n+1} = c_n

整理后,便得到了一个关于系数的递推关系式

c_{n+1} = \frac{c_n}{n+1}

这个公式是解开所有系数的关键。现在,我们来看黑板的左下角是如何利用这个关系来寻找通项公式的。这里的推导过程是从一个任意的 c_n 开始,反向追溯到 c_0,这与板书的逻辑完全一致:

首先,将递推关系中的 n 替换为 n-1,我们得到 c_nc_{n-1} 的关系:

c_n = \frac{c_{n-1}}{n}

然后,我们用同样的方法表达 c_{n-1}

c_{n-1} = \frac{c_{n-2}}{n-1}

将第二式代入第一式,得到:

c_n = \frac{1}{n} c_{n-1} = \frac{1}{n} \left( \frac{c_{n-2}}{n-1} \right) = \frac{c_{n-2}}{n(n-1)}

持续这个过程,不断地向前代换,我们最终会把所有系数都用最初的 c_0 来表示。这个过程最终会得到:

c_n = \frac{c_0}{n(n-1)(n-2)\dots1} = \frac{c_0}{n!}

这正是黑板中间被圈起来的那个核心结果。

5.1.4 构造最终解

我们已经找到了系数的通项公式,现在把它代回到最初的幂级数假设中:

y = \sum_{n=0}^{\infty} c_n x^n = \sum_{n=0}^{\infty} \frac{c_0}{n!} x^n

将常数 c_0 提出来:

y = c_0 \sum_{n=0}^{\infty} \frac{x^n}{n!}

我们立刻认出,后面的求和项 \sum_{n=0}^{\infty} \frac{x^n}{n!} 正是指数函数 e^x 的幂级数定义。因此,我们得到了方程的解:

y = c_0 e^x

最后,黑板右下方的注释 (c_0 from I.C.) 告诉我们,这个待定的常数 c_0 是由初始条件 (Initial Condition) 决定的。因为在我们的级数展开式中,y(0) = c_0 + c_1 \cdot 0 + c_2 \cdot 0^2 + \dots = c_0,所以 c_0 就是函数在 x=0 处的初始值。

5.2 拉普拉斯变换方法

5.2.1 拉普拉斯变换的核心思想

拉普拉斯变换是一种将微分方程转化为代数方程的强大工具。它的核心作用写在最上方:拉普拉斯变换的作用是将微分方程 (D.E.n) 转化为代数方程 (Algebraic Equations),从而简化求解。

5.2.2 重要的拉普拉斯变换性质

黑板的左半部分罗列了几条拉普拉斯变换的核心性质或定理。它们是我们将微分和积分运算转化为代数运算的桥梁。

1. 导数的变换

这是将微分方程代数化的关键。

  • 一阶导数的变换 (Transform of the First Derivative):
\mathcal{L}\{f'(t)\} = -f(0) + s \mathcal{L}\{f(t)\}

这个公式表明,对一个函数求导,在 s 域中近似等于乘以 s,同时还需要减去初始值 f(0)

  • 二阶导数的变换 (Transform of the Second Derivative):
\mathcal{L}\{f''(t)\} = s^2 \mathcal{L}\{f(t)\} - s f(0) - f'(0)

同理,对函数求二阶导,在 s 域中近似等于乘以 s^2,同时减去由初始值 f(0) 和初始导数 f'(0) 构成的项。

2. 积分的变换

与导数相对,积分运算在 s 域中对应着除法运算。

  • 积分的变换 (Transform of an Integral):
\mathcal{L}\left\{\int_0^t f(\tau) d\tau\right\} = \frac{F(s)}{s}

其中 F(s)f(t) 的拉普拉斯变换。时域中的积分运算,在 s 域中体现为除以 s

  • F(s)/s 的逆变换:

黑板上紧接着给出了上述性质的逆变换形式,这在求解某些问题时也很有用:

\mathcal{L}^{-1}\left\{\frac{F(s)}{s}\right\} = \int_0^t f(\tau) d\tau

3. s 域平移定理 (Frequency Shifting Theorem)

这条性质在处理带有指数项的函数时非常强大。

\mathcal{L}\{e^{at}f(t)\} = \int_0^\infty e^{-st}e^{at}f(t)dt = \int_0^\infty e^{-(s-a)t}f(t)dt = F(s-a)

黑板上完整展示了其推导过程。这个定理告诉我们:在时域 t 中将一个函数 f(t) 乘以一个指数函数 e^{at},其效果等同于在 s 域中将其变换 F(s) 的自变量 s 平移到 s-a

5.2.3 应用拉普拉斯变换求解微分方程

黑板的右半部分,完整地演示了如何运用上述性质求解一个具体的微分方程初值问题。

问题: 求解 y''(t) - y'(t) - 2y(t) = 0,其中初始条件为 y(0)=1, y'(0)=0

步骤 1: 对整个方程进行拉普拉斯变换

利用拉普拉斯变换的线性性质,我们对方程的每一项分别进行变换:

\mathcal{L}\{y''\} - \mathcal{L}\{y'\} - 2\mathcal{L}\{y\} = \mathcal{L}\{0\} = 0

步骤 2: 应用导数变换公式

我们将左侧的导数变换公式代入上式,并记 \mathcal{L}\{y(t)\} = Y(s)

\{s^2 Y(s) - s y(0) - y'(0)\} - \{s Y(s) - y(0)\} - 2\{Y(s)\} = 0

步骤 3: 代入初始条件并求解 Y(s)

现在,将已知的初始条件 y(0)=1, y'(0)=0 代入:

(s^2 Y(s) - s \cdot 1 - 0) - (s Y(s) - 1) - 2Y(s) = 0

整理后得到一个关于 Y(s) 的纯代数方程:

(s^2 - s - 2)Y(s) - s + 1 = 0

解得:

Y(s) = \frac{s-1}{s^2 - s - 2}

步骤 4: 部分分式分解 (Partial Fraction Decomposition)

为了能将 Y(s) 逆变换回 y(t),我们需要将其分解成我们认识的、更简单的分式之和。首先对分母进行因式分解: s^2 - s - 2 = (s-2)(s+1)。然后进行部分分式展开:

Y(s) = \frac{s-1}{(s-2)(s+1)} = \frac{A}{s-2} + \frac{B}{s+1}

黑板上给出了求解 AB 的方程:

A(s+1) + B(s-2) = s-1

通过代入 s=2s=-1 可以解得 A=1/3, B=2/3。所以 Y(s) 的最终形式是:

Y(s) = \frac{1/3}{s-2} + \frac{2/3}{s+1}

步骤 5: 逆变换得到最终解 y(t)

最后一步,我们对 Y(s) 进行逐项逆变换。根据上一节课的知识,我们知道 \mathcal{L}^{-1}\{\frac{1}{s-a}\} = e^{at}。因此:

y(t) = \mathcal{L}^{-1}\left\{\frac{1/3}{s-2} + \frac{2/3}{s+1}\right\} = \frac{1}{3}\mathcal{L}^{-1}\left\{\frac{1}{s-2}\right\} + \frac{2}{3}\mathcal{L}^{-1}\left\{\frac{1}{s+1}\right\}

最终得到原微分方程的解:

y(t) = \frac{1}{3}e^{2t} + \frac{2}{3}e^{-t}

这个例子完美地展示了拉普拉斯变换法的标准三步流程:1. 正变换 (将DE变为代数方程) -> 2. 代数求解 (解出 Y(s)) -> 3. 逆变换 (将 Y(s) 变回 y(t))。

5.3 哈密顿流与矩阵指数方法

5.3.1 哈密顿流的基本思想

哈密顿流的基本策略是将一个单一的二阶微分方程转化为一对一阶微分方程。这种转化不是简单的数学技巧,而是为系统引入了一个全新的视角——相空间描述。

5.3.2 从二阶方程到一阶方程组

考虑一个具体例子,质量为 m 的物体在弹簧力作用下的运动:

m\frac{d^2x}{dt^2} = -Kx

这是一个标准的二阶常微分方程,描述了位置 x 随时间的变化。然而,我们可以通过引入动量变量来重新表述这个问题。定义动量为:

p = m\frac{dx}{dt}

这个定义将速度 \frac{dx}{dt} 转化为动量 p。现在问题变成:如何用 px 这两个变量来描述系统?

从动量的定义直接可得第一个方程。对 p = m\frac{dx}{dt} 两边除以 m,得到:

\frac{dx}{dt} = \frac{p}{m}

这告诉我们位置的变化率由动量决定。对于第二个方程,我们需要描述动量如何随时间变化。对 p = m\frac{dx}{dt} 关于时间求导:

\frac{dp}{dt} = m\frac{d^2x}{dt^2}

而原始方程告诉我们 m\frac{d^2x}{dt^2} = -Kx,因此:

\frac{dp}{dt} = -Kx

这样我们就得到了哈密顿方程组:

\frac{dx}{dt} = \frac{p}{m}
\frac{dp}{dt} = -Kx

这两个一阶方程完全等价于原来的二阶方程,但它们揭示了位置和动量之间的对称关系。第一个方程说明动量驱动位置变化,第二个方程说明力(由位置产生)驱动动量变化。

5.3.3 相空间表示

右侧的图展示了相空间(Phase space),这是一个以位置 x 为横轴、动量 p 为纵轴的平面。系统的状态不再只是一个位置点,而是相空间中的一个点 (x, p)。随着时间演化,这个点在相空间中描绘出一条轨迹。图中的椭圆形曲线就是简谐振子在相空间中的典型轨迹,它是一个封闭曲线,反映了系统的周期性运动和能量守恒。

5.3.4 哈密顿方程的矩阵表示

前面得到的两个一阶方程可以写成更紧凑的矩阵形式:

\frac{d}{dt}\begin{pmatrix}x\\p\end{pmatrix} = \begin{pmatrix}0 & \frac{1}{m}\\ -k & 0\end{pmatrix}\begin{pmatrix}x\\p\end{pmatrix}

将中间的系数矩阵记为 M,这个矩阵完全编码了系统的动力学信息。矩阵的第一行 (0, \frac{1}{m}) 对应方程 \frac{dx}{dt} = \frac{p}{m},第二行 (-k, 0) 对应方程 \frac{dp}{dt} = -kx

5.3.5 矩阵指数解

从标量到矩阵:指数解的推广

在处理简单的标量微分方程 \frac{dy(t)}{dt} = ay(t) 时,我们知道解为 y(t) = e^{at}y(0)。这个指数形式非常自然——常数 a 控制增长或衰减的速率。那么对于矩阵微分方程,能否有类似的表达?答案是肯定的:

\frac{d}{dt}\begin{pmatrix}x(t)\\p(t)\end{pmatrix} = M\begin{pmatrix}x(t)\\p(t)\end{pmatrix} \Rightarrow \begin{pmatrix}x(t)\\p(t)\end{pmatrix} = e^{tM}\begin{pmatrix}x(0)\\p(0)\end{pmatrix}

这里 e^{tM} 是矩阵指数,它将初始状态 (x(0), p(0)) 映射到时刻 t 的状态。但矩阵指数究竟是什么?

矩阵指数的泰勒级数

矩阵指数定义为泰勒级数:

e^{tM} = I + tM + \frac{1}{2!}(tM)^2 + \frac{1}{3!}(tM)^3 + \cdots

其中 I 是单位矩阵。这个定义直接模仿了标量指数函数 e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots。为了实际计算这个级数,需要找出矩阵 M 的各次幂有什么规律。

矩阵幂次的计算

首先计算 M^2

M^2 = \begin{pmatrix}0 & \frac{1}{m}\\ -k & 0\end{pmatrix}\begin{pmatrix}0 & \frac{1}{m}\\ -k & 0\end{pmatrix} = \begin{pmatrix}-\frac{k}{m} & 0\\ 0 & -\frac{k}{m}\end{pmatrix} = -\frac{k}{m}I

这个结果很关键:M^2 正比于单位矩阵。引入角频率 \omega = \sqrt{\frac{k}{m}},则 M^2 = -\omega^2 I

继续计算更高次幂:

M^3 = M \cdot M^2 = M \cdot (-\omega^2 I) = -\omega^2 M
M^4 = M^2 \cdot M^2 = (-\omega^2 I)(-\omega^2 I) = \omega^4 I

观察这个规律:偶数次幂是单位矩阵的倍数,奇数次幂是 M 的倍数。这种周期性结构让我们能够将泰勒级数重新组合。

级数的重组

将泰勒级数按奇偶次分组:

e^{tM} = I + tM + \frac{t^2}{2!}\omega^2 I + \frac{t^3}{3!}\omega^3 M + \cdots

这可以分解为两个部分:所有包含 I 的项和所有包含 M 的项。通过这种分解,矩阵指数最终可以表达为类似余弦和正弦函数的组合,这正是简谐振子解的标准形式。

5.3.6 三角函数形式与最终解

级数的识别

将前面得到的级数按照是否包含单位矩阵 I 或矩阵 M 分组后,我们得到:

e^{tM} = \left(1 - \frac{1}{2!}(\omega t)^2 + \frac{1}{4!}(\omega t)^4 - \cdots\right)I + \frac{1}{\omega}\left(\omega t - \frac{1}{3!}(\omega t)^3 + \cdots\right)M

观察第一个括号内的级数:1 - \frac{(\omega t)^2}{2!} + \frac{(\omega t)^4}{4!} - \cdots,这正是 \cos(\omega t) 的泰勒展开式。第二个括号内的级数:\omega t - \frac{(\omega t)^3}{3!} + \cdots,这正是 \sin(\omega t) 的泰勒展开式。因此矩阵指数可以写成:

e^{tM} = \cos(\omega t)I + \frac{1}{\omega}\sin(\omega t)M

这个公式将矩阵指数转化为熟悉的三角函数。注意 \frac{1}{\omega} 这个系数的出现是为了保持量纲正确,因为 M 本身带有频率的量纲。

矩阵形式的展开

将上式展开成具体的矩阵元素。首先,\cos(\omega t)I 给出对角线上的余弦项。然后,\frac{1}{\omega}\sin(\omega t)M 需要将 M = \begin{pmatrix}0 & \frac{1}{m}\\ -k & 0\end{pmatrix} 乘以 \frac{1}{\omega}\sin(\omega t)

e^{tM} = \begin{pmatrix}\cos(\omega t) & \frac{1}{m\omega}\sin(\omega t)\\ -m\omega\sin(\omega t) & \cos(\omega t)\end{pmatrix}

注意这个矩阵的结构:对角元素相同都是 \cos(\omega t),非对角元素大小相关但符号相反,且包含了系统参数 m\omega

解的具体形式

将矩阵指数作用在初始条件上,得到系统在任意时刻 t 的状态:

\begin{pmatrix}x(t)\\p(t)\end{pmatrix} = \begin{pmatrix}\cos(\omega t) & \frac{1}{m\omega}\sin(\omega t)\\ -m\omega\sin(\omega t) & \cos(\omega t)\end{pmatrix}\begin{pmatrix}x(0)\\p(0)\end{pmatrix}

展开矩阵乘法,位置和动量的解分别为:

x(t) = x(0)\cos(\omega t) + \frac{p(0)}{m\omega}\sin(\omega t)
p(t) = -m\omega x(0)\sin(\omega t) + p(0)\cos(\omega t)

这两个方程揭示了简谐振子的完整行为。位置 x(t) 由两部分组成:初始位置通过余弦函数贡献,初始动量通过正弦函数贡献。动量 p(t) 同样如此,但初始位置项前有负号且带有 m\omega 因子,这反映了位置和动量之间的相位差以及它们量纲的不同。

由于初始条件

p(0)=0
x(0)=x_0

所以原式变成

x(t) = x_0\cos(\omega t)
p(t) = -m\omega x_0\sin(\omega t)

评论