微分方程笔记
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\).
- 具体步骤:
- 确定初始状态(例如, \(\theta_0\) 和 \(\theta'_0\)).
- 设定一个很小的时间步长 \(\Delta t\) (例如 0.01秒).
- 在一个循环中, 反复迭代更新状态:
- 根据微分方程计算当前的角加速度 \(\theta''\).
- 更新角速度: \(\theta'_{new} = \theta'_{old} + \theta'' \cdot \Delta t\).
- 更新角度: \(\theta_{new} = \theta_{old} + \theta'_{new} \cdot \Delta t\).
- 重复此过程, 直到达到目标时间.
- 这种方法虽然只是近似, 但只要时间步长足够小, 就能得到非常精确的结果.
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}\]
* α 是一个比例常数, 代表热扩散率.
直观理解:
- 离散模型: 想象棒是由一系列离散的点组成的. 某一个点(例如 \(T_2\))的温度变化, 取决于它与相邻两点(\(T_1\) 和 \(T_3\))的平均温度之差. * 如果邻居的平均温度比它高, 它就会升温. * 这个温度差越大, 升温越快. * 数学上, 这表示为: \(\frac{dT_2}{dt} \propto (\frac{T_1+T_3}{2} - T_2)\)
- 二阶差分: 上述的 " 与邻居平均值的差异" 在数学上等同于*二阶差分*(即差分的差分). 这衡量了函数图像的" 弯曲" 程度.
从离散到连续: 当我们将离散模型推广到连续的金属棒时, " 二阶差分" 就变成了" 二阶导数". * 因此, \(\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\), 我们使用一个巧妙的技巧 .
- 分离项: 将函数乘以 \(e^{-n \cdot 2\pi i t}\) 来进行修改 . 这个操作" 解开" 了第 \(n\) 个向量的旋转, 使其静止不动 .
- 对其余项取平均: 将这个新的乘积在其周期(从0到1)上进行积分 . \[c_n = \int_{0}^{1} f(t) e^{-n \cdot 2\pi i t} dt\]
- 结果: 在这个修改过的函数中, 第 \(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\) 个单位时间后到达的最终位置.
- 这种" 流" 的视角, 可以让你在计算之前, 就对矩阵指数所代表的变换有一个直观的感受(例如, 是旋转, 拉伸还是挤压).