微分方程笔记

Table of Contents

1. 微分方程导论

1.1. 什么是微分方程?

  • 微分方程是用来描述"变化"的数学语言. 物理定律通常都是用微分方程来表达的.
  • 当描述一个系统的变化规律比描述它的绝对状态更容易时, 微分方程就派上了用场. 例如, 描述人口增长或缩减的原因, 比解释其在某个时刻为何是特定数值要容易.
  • 在物理学中, 力决定了加速度, 而加速度本身就是一种关于变化率的描述, 因此运动规律天然地与微分方程联系在一起.

1.2. 微分方程的两种类型

  • 常微分方程 (Ordinary Differential Equations, ODEs):
    • 处理只含有一个自变量(通常是时间)的函数.
    • 涉及有限个随时间变化的量.
  • 偏微分方程 (Partial Differential Equations, PDEs):
    • 处理含有多个自变量的函数.
    • 通常涉及一个连续体上所有点的值随时间的变化, 例如一个固体上每个点的温度.

1.3. "求解"微分方程意味着什么?

求解微分方程的目标是根据其变化率的信息, 找出函数本身. 但这非常困难, 因此发展出了多种理解和求解的方法.

1.3.1. 解析解 (Analytic Solutions)

  • 这是指找到一个精确的数学公式来描述函数.
  • 简单例子: 一个物体在重力作用下的垂直运动, 其微分方程是 \(y'' = -g\) (其中 \(g\) 是重力加速度).
  • 这个方程可以通过两次积分直接求解 , 得到位置函数 \(y(t) = -\frac{1}{2}gt^2 + v_0t + y_0\). 解中的常数(初始速度 \(v_0\) 和初始位置 \(y_0\))由初始条件决定.

1.3.2. 挑战: 大多数方程无法解析求解

  • 微分方程通常极难求解.
  • 复杂例子: 单摆的运动. 其精确的微分方程为: \[\theta'' = -\frac{g}{L}\sin(\theta) - \mu\theta'\] - 其中 \(\theta\) 是摆角, \(\theta'\) 是角速度, \(\theta''\) 是角加速度, \(g\) 是重力加速度, \(L\) 是摆长, \(\mu\) 是阻尼系数(如空气阻力).
  • 这个方程包含 \(\sin(\theta)\) 项, 这使得它无法用初等函数精确求解, 其解析解"复杂得可笑". 如果加上阻尼项, 就没有已知的解析解方法了.

1.3.3. 几何方法: 相空间 (Phase Space)

由于无法求得解析解, 我们转而寻求一种能帮助我们理解系统行为的几何方法.

  • 状态 (State): 一个系统的状态由一组能完全描述它的瞬时状况的数值定义. 对于单摆, 其状态可以用两个数来描述: 摆角 \(\theta\) 和角速度 \(\theta'\).
  • 相空间: 一个抽象的空间, 其每个坐标轴对应一个状态变量. 单摆的相空间是一个二维平面, 横轴是 \(\theta\), 纵轴是 \(\theta'\). 空间中的每一点都代表了单摆的一个唯一可能的状态.
  • 向量场 (Vector Field): 微分方程可以在相空间中定义一个向量场. 空间中每个点上的向量都指明了, 当系统处于该状态时, 它将如何变化(即状态点的移动方向和速度).
  • 相流 (Phase Flow): 一个解就是相空间中的一条轨迹, 这条轨迹在任何一点都与该点的向量场相切. 所有可能的轨迹集合构成了所谓的"相流".
  • 优点: 通过观察向量场和相流, 我们可以直观地理解系统的长期行为, 例如:
    • 轨迹是向内螺旋(系统趋于稳定)还是向外发散.
    • 系统是否存在 不动点 (fixed points), 即系统可以保持静止的状态(例如单摆在最低点或最高点).
    • 这些不动点是 稳定 的(轻微扰动后会返回)还是 不稳定 的(轻微扰动后会远离).

1.3.4. 数值方法 (Numerical Methods)

  • 这是一种用计算机来近似求解的方法.
  • 基本思想: 从一个初始状态开始, 沿着该点在向量场中的向量方向, 前进一个微小的时间步长 \(\Delta t\).
  • 具体步骤:
    1. 确定初始状态(例如, \(\theta_0\) 和 \(\theta'_0\)).
    2. 设定一个很小的时间步长 \(\Delta t\) (例如 0.01秒).
    3. 在一个循环中, 反复迭代更新状态:
      • 根据微分方程计算当前的角加速度 \(\theta''\).
      • 更新角速度: \(\theta'_{new} = \theta'_{old} + \theta'' \cdot \Delta t\).
      • 更新角度: \(\theta_{new} = \theta_{old} + \theta'_{new} \cdot \Delta t\).
    4. 重复此过程, 直到达到目标时间.
  • 这种方法虽然只是近似, 但只要时间步长足够小, 就能得到非常精确的结果.

1.4. 更深的挑战: 混沌理论 (Chaos Theory)

  • 即使我们可以求解或模拟一个系统, 也未必能做出长期预测.
  • 混沌 指的是这样一种现象: 在某些系统中, 对初始条件的微小改变(例如因测量不精确导致), 会随着时间的推移导致结果出现极大的差异.
  • 著名的" 三体问题" 就是一个会产生混沌行为的例子.
  • 这揭示了宇宙的复杂性, 即有些谜题, 我们或者无法解答, 或者即使解答了也无法用于长期预测.

2. 偏微分方程简介: 以热传导方程为例

2.1. 问题设定: 热量如何流动?

  • 偏微分方程 (PDE) 描述的是含有多个自变量的未知函数的偏导数之间的关系.
  • 热传导方程 是一个经典的偏微分方程例子, 它描述了热量如何在一个物体中随时间扩散.
  • 想象一根金属棒, 其上各点的初始温度不同. 热量会自然地从较热的区域流向较冷的区域, 最终使整根棒的温度趋于一致.
  • 问题是: 这个温度分布具体是如何随时间变化的?

2.2. 描述变化的语言: 偏导数

  • 为了描述这个问题, 我们需要一个函数来表示温度. 这个函数不仅与空间位置有关, 还与时间有关.
  • 我们定义温度函数为 \(T(x, t)\), 其中:
    • x 代表在棒上的位置.
    • t 代表时间.
  • 由于函数有两个变量, 因此存在两种导数:
    • 对空间的偏导数 (\(\frac{\partial T}{\partial x}\)): 描述在某一瞬间, 温度沿棒长的变化率(即温度曲线的斜率).
    • 对时间的偏导数 (\(\frac{\partial T}{\partial t}\)): 描述棒上某一个点的温度随时间的变化率.
  • 我们使用特殊的符号 (del) 来表示偏导数, 以区别于只有一个变量的普通导数.

2.3. 热传导方程的推导与直觉

热传导方程指出, 某一点的温度随时间的变化率, 正比于该点温度在空间上的 二阶偏导数. \[\frac{\partial T}{\partial t} = \alpha \frac{\partial^2 T}{\partial x^2}\] ​* α 是一个比例常数, 代表热扩散率.

直观理解:

  1. 离散模型: 想象棒是由一系列离散的点组成的. 某一个点(例如 \(T_2\))的温度变化, 取决于它与相邻两点(\(T_1\) 和 \(T_3\))的平均温度之差. * 如果邻居的平均温度比它高, 它就会升温. * 这个温度差越大, 升温越快. * 数学上, 这表示为: \(\frac{dT_2}{dt} \propto (\frac{T_1+T_3}{2} - T_2)\)
  2. 二阶差分: 上述的 " 与邻居平均值的差异" 在数学上等同于*二阶差分*(即差分的差分). 这衡量了函数图像的" 弯曲" 程度.
  3. 从离散到连续: 当我们将离散模型推广到连续的金属棒时, " 二阶差分" 就变成了" 二阶导数". ​* 因此, \(\frac{\partial^2 T}{\partial x^2}\) 衡量了温度曲线的*曲率 (curvature)*.

    • 曲率为正 (图像向上弯曲, 像一个山谷), 意味着该点的温度低于其邻居的平均温度, 因此该点将 升温.

    ​* 曲率为负 (图像向下弯曲, 像一个山峰), 意味着该点的温度高于其邻居的平均温度, 因此该点将 降温.

核心思想: 热传导方程的本质是, 温度曲线中弯曲的地方会趋于变平. 一个点的温度总是趋向于其周围邻居的平均温度.

2.4. 与常微分方程 (ODE) 的比较

  • 常微分方程 (ODE): 处理的是少数几个数值随时间的变化, 例如行星运动中每个天体的坐标. 方程描述了这些数值的变化率如何依赖于其他数值本身.
  • 偏微分方程 (PDE): 处理的是一个连续体上无穷多个数值(例如棒上每个点的温度)的变化. 某一点的变化率不仅依赖于其他点的值, 还依赖于这些值在空间上的排列方式(即邻域的几何形状, 如曲率).
  • 从某种意义上说, 一个偏微分方程可以看作是一个 无穷多个方程组成的系统, 每个点都有一个自己的方程.

2.5. 高维度情况与傅里叶级数

  • 高维度: 对于二维平板或三维物体, 热传导方程的形式类似, 只需将所有空间方向上的二阶导数相加即可. 这个"所有空间二阶导数之和"被称为 拉普拉斯算子 (Laplacian), 记作 \(\nabla^2\).

    \[\frac{\partial T}{\partial t} = \alpha \nabla^2 T\]

    • 拉普拉斯算子是二阶导数在多维空间中的推广, 其物理意义仍然是衡量一个点与其周围邻居平均值的差异.
  • 傅里叶级数: 有趣的是, 现在广为人知的傅里叶级数, 正是傅里叶本人为了求解热传导方程这个问题而发明的. 傅里叶级数可以将任意形状分解为简单的旋转向量(或正弦波)之和, 而这种数学工具恰好能用来解决热传导问题.

3. 傅立叶级数

3.1. 傅里叶级数的核心概念

傅里叶级数是一种数学工具, 用于将一个复杂的, 周期性的函数或图案分解为许多更简单分量的总和 .

  • 对于实数值函数: 一个函数被分解为不同频率和振幅的简单正弦波和余弦波的总和 .
  • 对于复数函数(推广): 在二维平面上绘制的路径, 可以表示为一系列旋转向量(相量)的总和 . 每个向量都有一个恒定的大小, 并以一个恒定的整数频率旋转 . 当这些向量头尾相接时, 最终向量的尖端会描绘出原始的路径 .

通过调整每个旋转向量的初始大小和起始角度, 我们可以让它们的总和近似任何想要的形状 .

3.2. 原始动机: 热传导方程

约瑟夫·傅里叶在研究热流问题时发展了此概念 .

  • 问题背景: 描述温度分布如何沿着一根杆随着时间演变 .
  • 一个简单的案例: 如果初始温度分布是一个余弦波, 热传导方程会相对容易求解 . 其解为波的振幅随时间呈指数衰减 . 频率越高的波衰减得越快 .
  • 线性性质: 热传导方程是线性的 . 这意味着如果你有几个独立的解, 这些解的(加权)总和也是一个有效的解 .
  • 傅里叶的洞见: 傅里叶提出, /任何/初始温度分布, 即使是像 阶跃函数 这样不连续的分布, 也可以表示为一个无穷级数的正弦波或余弦波的和 .
    • 阶跃函数可以模拟两根处于不同均匀温度的杆突然接触的情形 .
  • 无穷级数: 虽然任何有限个平滑正弦波的总和永远是平滑且连续的, 但一个/无穷/级数可以收敛到一个不连续的函数, 例如阶跃函数 .
    • 这类似于一个无穷有理数级数可以收敛到一个无理数, 例如 \(\frac{\pi}{4}\) . \[\frac{\pi}{4} = 1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + \dots\]

3.3. 从正弦波到复数旋转

傅里叶级数的现代且更通用的公式使用复数, 这简化了数学并提供了更深的见解 .

  • 将复数平面作为二维画布: 一个函数 \(f(t)\) 的输出可以是复数, 这可以被视觉化为二维复数平面上的点或向量 . 一个实数值函数就像是一幅被限制在水平实数轴上的" 单调的画" .
  • 复数指数: 傅里叶级数的" 灵魂" 是复数指数 . 表达式 \(e^{i \cdot t}\) 代表一个长度为1的向量, 随着 \(t\) 的增加, 它在复数平面的单位圆上旋转 .
  • 正弦波作为特例: 一个在实数轴上振荡的简单正弦波, 可以由两个大小相同, 方向相反的复数向量相加而产生 .

3.4. 复数傅里叶级数的数学

我们的目标是将在 \(t\) 从0到1之间定义的函数 \(f(t)\) 表示为旋转向量的总和 .

  • 级数: 该函数被表示为一个无穷级数的复数指数, 每个指数都有一个特定的频率 \(n\) 和一个复数系数 \(c_n\) . \[f(t) = \sum_{n=-\infty}^{\infty} c_n e^{n \cdot 2\pi i t}\]
    • \(n\) 是旋转的整数频率(正数表示逆时针, 负数表示顺时针, 零表示常数项) .
    • \(c_n\) 是一个复数, 它定义了频率为 \(n\) 的向量的初始大小(振幅)和起始角度(相位) .
  • 寻找系数 (\(c_n\)): 关键是计算每个频率的系数 \(c_n\) .
    • 常数项 (\(c_0\)): 此系数代表整个图形的" 质心" 或平均值 . 它是通过对函数 \(f(t)\) 在其周期(从0到1)上进行积分(取平均)来找到的 . \[c_0 = \int_{0}^{1} f(t) dt\] 当你对级数中所有旋转的向量取平均时, 它们的平均值将为0, 因为它们完成了整数圈的旋转 . 唯一不为零的项是那个不旋转的常数项 \(c_0\) .
    • 一般系数 (\(c_n\)): 为了找到任何其他系数 \(c_n\), 我们使用一个巧妙的技巧 .
      1. 分离项: 将函数乘以 \(e^{-n \cdot 2\pi i t}\) 来进行修改 . 这个操作" 解开" 了第 \(n\) 个向量的旋转, 使其静止不动 .
      2. 对其余项取平均: 将这个新的乘积在其周期(从0到1)上进行积分 . \[c_n = \int_{0}^{1} f(t) e^{-n \cdot 2\pi i t} dt\]
      3. 结果: 在这个修改过的函数中, 第 \(n\) 项现在是常数, 而所有其他项仍在以某个非零频率旋转 . 积分时, 所有旋转项的平均值都为零, 只留下 \(c_n\) 的值 .

这个积分公式提供了一个完整的方法, 用以找到复制任何给定路径 \(f(t)\) 所需的所有初始条件(即 \(c_n\) 系数) .

4. 用动力学理解欧拉公式 \(e^{i\pi}\)

这则笔记的核心思想是, 不通过泰勒级数或传统的代数方法, 而是通过 微分方程和运动 的视角来直观地理解欧拉公式.

4.1. 1. 函数 \(e^t\) 的核心特性

  • 函数 \(f(t) = e^t\) 最重要的*定义性属性*是: 它就是它自身的导数.
    • 也就是 \(\frac{d}{dt}e^t = e^t\).
    • 加上初始条件 \(f(0) = e^0 = 1\), 它是唯一满足此属性的函数.
  • 物理模型:
    • 想象一个点在数轴上运动, 其位置由 \(p(t) = e^t\) 描述.
    • 它的初始位置在 1.
    • 它的速度(位置的导数)永远等于它所在的位置.
    • 这意味着, 这个点离原点越远, 它运动得越快. 这是一种加速增长, 并且增长率本身也在加速.

4.2. 2. 将常数引入指数 \(e^{kt}\)

  • 当 \(k\) 是正实数时 (例如 \(k=2\)):
    • 函数是 \(e^{2t}\), 根据链式法则, 其导数是 \(2 \cdot e^{2t}\).
    • 物理模型: 在任何位置, 速度都是该位置的两倍. 这导致了更快的失控性增长.
  • 当 \(k\) 是负实数时 (例如 \(k=-0.5\)):
    • 函数是 \(e^{-0.5t}\), 其导数是 \(-0.5 \cdot e^{-0.5t}\).
    • 物理模型: 在任何位置, 速度向量都是位置向量乘以 -0.5, 即 方向相反, 大小减半.
    • 这导致运动方向朝向原点, 最终形成指数衰减.

4.3. 3. 将虚数引入指数 \(e^{it}\)

这是理解欧拉公式的关键一步.

  • 问题: 如果指数上的常数是虚数单位 \(i = \sqrt{-1}\), 会发生什么?
  • 核心属性:
    • 函数是 \(e^{it}\), 其导数将是 \(i \cdot e^{it}\).
    • 在复数中, 乘以 \(i\) 的几何意义是旋转 90 度.
    • 因此, 这意味着运动物体的*速度向量永远是其位置向量旋转 90 度*的结果.
  • 在复平面上的物理模型:
    • 这个运动不再局限于一维数轴, 而必须在二维的 复平面 上进行.
    • 这个" 速度是位置的 90 度旋转" 的规则, 在整个复平面上定义了一个 向量场. 这个向量场中的每个向量都指向一个圆形的轨迹.
    • 我们的初始条件是 \(t=0\) 时, 位置为 \(e^{i \cdot 0} = 1\).
    • 从点 (1, 0) 出发, 并始终遵循" 速度垂直于位置" 的规则, 唯一的运动轨迹就是 绕着半径为 1 的圆做匀速圆周运动.

4.4. 4. 得出欧拉恒等式

  • 在这个单位圆上运动时, 由于乘以 \(i\) 并没有改变向量的大小, 所以速度的大小恒等于位置向量的大小(即半径 1). 因此运动速率是每秒 1 个单位长度.
  • 当时间 \(t = \pi\) 时, 这个点在圆周上运动了 \(\pi\) 的距离, 正好到达了圆的另一端, 即点 -1.
  • 因此, 我们可以得出结论: \[e^{i\pi} = -1 \text{}\]
  • 更一般地, 在 \(t\) 时刻, 点的位置就在单位圆上角度为 \(t\) 弧度的点.

这提供了一个基于动力学和几何直觉的, 理解欧拉公式为什么成立的强大视角.

5. 矩阵指数: 如何(以及为何)计算e的矩阵次方

5.1. 引言: 什么是矩阵指数?

  • 矩阵指数, 记作 \(e^A\) 或 \(e^{At}\), 是一种将矩阵放入指数中的数学运算 .
  • 这并非无稽之谈, 而是一种优美的运算, 它在求解一类重要的微分方程中非常有用 .
  • 由于物理世界常用微分方程描述, 矩阵指数在物理学中也频繁出现, 尤其是在量子力学(例如, 薛定谔方程)中扮演着重要角色 .

5.2. 定义(" 如何" 计算)

矩阵指数的定义 不是 将常数 e 进行矩阵次数的重复乘法 , 而是基于 \(e^x\) 的泰勒级数(一个无穷多项式).

  • 泰勒级数定义: 对于一个方阵 \(A\), \(e^A\) 的定义是 : \[e^A = I + A + \frac{1}{2!}A^2 + \frac{1}{3!}A^3 + \dots = \sum_{n=0}^{\infty} \frac{1}{n!}A^n\]
  • 理解这个多项式:
    • 矩阵的幂: \(A^2\) 就是 \(A\) 乘以自身, \(A^3\) 则是再乘以一个 \(A\), 以此类推. 这要求矩阵必须是方阵(行数和列数相同).
    • 标量乘法与加法: 多项式中的每一项都乘以一个标量(如 \(\frac{1}{n!}\)), 然后将这些矩阵逐项相加 .
  • 收敛性: 对于任何给定的方阵, 这个无穷级数的和总是会收敛到一个确定的矩阵 .
  • 一个例子: 对于矩阵x \(A = \begin{pmatrix} 0 & \pi \\ -\pi & 0 \end{pmatrix}\), 计算 \(e^A\) 的结果会收敛到 \(\begin{pmatrix} -1 & 0 \\ 0 & -1 \end{pmatrix}\), 也就是负单位矩阵 . 这其实是矩阵版本的欧拉恒等式 (\(e^{i\pi} = -1\)).

5.3. 动机(" 为何" 计算): 求解线性微分方程组

矩阵指数的核心应用是求解形如 \(\frac{d\vec{v}}{dt} = M\vec{v}\) 的线性微分方程组 .

  • 方程的含义: 这个方程描述了一个向量 \(\vec{v}\) 的变化率等于某个矩阵 \(M\) 乘以它自身 . 这意味着系统的变化规律是线性的.
  • " 罗密欧与朱丽叶" 模型:
    • 这是一个简化的例子, 用于说明这类方程 . 假设朱丽叶的爱意 (\(x\)) 的变化率与罗密欧的爱意 (\(y\)) 成反比(即 \(\frac{dx}{dt} = -y\)), 而罗密欧的爱意变化率与朱丽叶的爱意成正比(即 \(\frac{dy}{dt} = x\)).
    • 我们可以将这个系统写成矩阵形式 : \[\frac{d}{dt}\begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix}\]
  • 几何解法:
    • 其中的矩阵 \(\begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}\) 是一个将向量逆时针旋转90度的变换 .
    • 这意味着状态向量的变化率(速度)总是垂直于其当前位置 .
    • 唯一满足" 速度永远垂直于位置" 的运动是*圆周运动* .
    • 因此, 这个爱情故事的解是, 两人的感情状态在一个二维" 爱情空间" 里做圆周运动, 其轨迹可以用一个旋转矩阵来描述 .

5.4. 连接" 如何" 与" 为何"

矩阵指数完美地连接了代数定义与几何解.

  • 核心论断: 对于微分方程组 \(\frac{d\vec{v}}{dt} = M\vec{v}\), 其解为: \[\vec{v}(t) = e^{Mt} \vec{v}(0)\] 其中 \(\vec{v}(0)\) 是初始状态向量. \(e^{Mt}\) 本身不是解, 而是 一个作用于初始条件以给出解的算子(变换矩阵).
  • 验证:

    • 我们可以用泰勒级数的定义来计算" 罗密欧与朱丽叶" 例子中的 \(e^{Mt}\) .
    • 矩阵 \(M = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}\) 的幂会以4为周期循环.
    • 将这些幂代入泰勒级数, 最终得到的矩阵的四个元素恰好是 \(\cos(t)\), \(-\sin(t)\), \(\sin(t)\), 和 \(\cos(t)\) 的泰勒级数.
    • 这意味着 \(e^{Mt}\) 的计算结果正是我们通过几何方法得到的旋转矩阵 \(\begin{pmatrix} \cos(t) & -\sin(t) \\ \sin(t) & \cos(t) \end{pmatrix}\) .

    ​* 这两种完全不同的思维方式–一种是代数计算, 一种是几何推理–得出了完全相同的结果, 证明了矩阵指数作为解的自洽性与强大功能.

5.5. 5. 核心直觉: 流 (Flow)

理解矩阵指数 \(e^{Mt}\) 最直观的方式是将其看作一种" 流" .

  • 微分方程 \(\frac{d\vec{v}}{dt} = M\vec{v}\) 在状态空间中定义了一个向量场. 在每个点 \(\vec{v}\), 都附着一个向量 \(M\vec{v}\), 代表该点的" 速度" 或变化趋势 .
  • 一个系统的演化过程, 就是从某个初始点出发, 沿着这个向量场流动.
  • 矩阵 \(e^{Mt}\) 所描述的变换, 就是让空间中的每一个点都沿着这个向量场流动 \(t\) 个单位时间后到达的最终位置.
  • 这种" 流" 的视角, 可以让你在计算之前, 就对矩阵指数所代表的变换有一个直观的感受(例如, 是旋转, 拉伸还是挤压).

Author: 青岛红创

Created: 2025-07-23 Wed 08:57