3.1 分离变量法手推全程


3.1 分离变量法手推全程

解析解一章从抛物型开跑,因为热传导方程是分离变量法最干净的舞台:方程线性、边界规则、时间单向衰减。本节把全长推导一次走完——从"解是形状乘时间"的假设出发,到特征值问题、正弦基、系数公式、级数解,最后用数值实验检验部分和逼近真解的速度。这条推导是第四章谱方法的骨架,值得逐行吃透。

把解假设成一对函数的乘积

问题设定:长为 L 的均匀细杆,两端恒为零温(狄利克雷边界),初始温度分布为 φ(x),求 u(x,t)。方程与条件拼齐:

u_t = a²·u_xx,u(0,t) = u(L,t) = 0,u(x,0) = φ(x)。

核心假设:解可以写成 u(x,t) = X(x)·T(t),空间因子管形状,时间因子管幅度。代入方程,得 X·T' = a²·X''·T。两边同除 a²·X·T,把 x 与 t 分居等号两侧:

T' / (a²·T) = X'' / X。

左端只随 t 变,右端只随 x 变,而等式要对一切 x、t 同时成立——唯一的可能是两者都等于同一个常数,记作 −λ。于是原方程裂成两条常微分方程:

X'' + λ·X = 0,T' = −a²·λ·T。

分离变量这个名字说得直白:把偏微分方程拆成常微分方程组。但常数 −λ 不是随便取的——它由边界条件决定,这正是下一步的全部内容。

特征值问题:边界条件挑选形状

X 的方程配上零边值 X(0) = X(L) = 0,是史上最重要的特征值问题。分三种情形讨论 λ。

λ 取负数(记 λ = −μ²,μ 大于零):X = A·e^(μx) + B·e^(−μx),两个边界条件逼出 A 与 B 只能全零——平凡解,出局。

λ 取零:X = A + B·x,边界条件逼出 A = B = 0,又出局。

λ 取正数(记 λ = k²):X = A·cos(kx) + B·sin(kx)。条件 X(0) = 0 给 A = 0;条件 X(L) = 0 要求 sin(kL) = 0,即 kL = nπ。只有特定离散值让非平凡解存在

k_n = nπ/L,λ_n = (nπ/L)²,X_n(x) = sin(nπx/L),n = 1, 2, 3…

特征值是离散的,特征函数是驻波——两端固定的弦只允许特定波长,这与耳朵听到的泛音列完全一致(第一章争论的物理内核)。时间因子随之确定:T_n(t) = exp(−a²λ_n·t),n 越大衰减越快,第 n 个模式的衰减率是 a²(nπ/L)²。

叠加与系数:把初始条件焊上去

线性方程满足叠加原理(1.1 节的伏笔兑现),一般解是所有模式的线性组合:

u(x,t) = Σ b_n·sin(nπx/L)·exp(−a²n²π²t/L²)。

剩下让 t = 0 时等于 φ(x):Σ b_n·sin(nπx/L) = φ(x)。正弦基的正交性给出系数公式——两边乘 sin(mπx/L) 并在区间上积分,交叉项全部归零:

b_n = (2/L)·∫[0,L] φ(x)·sin(nπx/L) dx。

至此解完整落袋。第一章 1.1 节验证过的解 sin(πx)·exp(−a²π²t) 正是 n = 1 的单项;伯努利 1753 年写下的级数主张,在这里被逐字推导出来。取一个具体初值练手:φ(x) = u₀·x(L−x)(中间最热的抛物线分布),算出 b_n = 8u₀L²/(n³π³)(n 取奇数)——系数按 n 的立方衰减,说明这个初值相当"光滑";若初值带棱角,系数只按 n 或 n² 衰减,高阶模式参与更多,衰减前缘更丰富。初始数据的光滑度写在系数衰减率里——这句话在第四章谱方法里会变成误差理论。

数值实验:级数解与差分解对表

推导完成,立即上机互证。同一问题用两条独立路线求解:级数解取前 N 项;差分解用显式格式(第四章会正式推导,这里直接使用)。两者在 t = 0.1 时刻逐点比较。

import numpy as np L, a, T_end = 1.0, 1.0, 0.1 phi = lambda x: 1.0 * x * (L - x) # 抛物线初值 u0=1 # 路线一:级数解(奇数项系数 8*u0*L^2/(n^3*pi^3)) x = np.linspace(0, L, 101) u_series = np.zeros_like(x) for n in range(1, 200, 2): bn = 8 * L**2 / (n**3 * np.pi**3) u_series += bn * np.sin(n*np.pi*x/L) * np.exp(-a**2 * (n*np.pi/L)**2 * T_end) # 路线二:显式差分(r = a*dt/dx^2 = 0.4,稳定域内) nx, dx = 101, L/100; dt = 0.4 * dx**2 / a**2 u = phi(x); steps = int(round(T_end/dt)) for _ in range(steps): u[1:-1] = u[1:-1] + 0.4 * (u[2:] - 2*u[1:-1] + u[:-2]) print("最大点差:", np.abs(u_series - u).max()) print("t=0.1 中点温度: 级数", u_series[50], " 差分", u[50])

两个数值在万分之一精度内重合。两条路线完全不共享中间步骤——一条来自无穷级数,一条来自局部差商——它们对上表,等价于对整条推导做了端到端测试。工程里管这叫交叉验证,数学里管这叫互证,习惯从此养成。

方法的能力边界

三件事标出边界。区域要规则:直角坐标分离变量在矩形、圆、环上可行,因为坐标面恰好与边界贴合;L 形区域上特征函数没有显式形式,方法停摆——第四章有限元接手。方程要常系数线性:变系数方程 X'' + q(x)X = λX 的特征函数不再有显式解(所谓施图姆–刘维尔理论只能定性),非线性方程叠加原理失效、方法根基崩塌——第五章的领域。对称性要够:零边值的正弦基、绝热边值的余弦基、周期边值的复指数基,各成一家;混合边界(一端定温一端绝热)仍可做,但基函数变成 sin((n+1/2)πx/L) 这类半整数频率,查表性质不如前两者齐整。

⚠️ 常见坑:初值不满足边界条件时(比如 φ(0) 不为零而边界强制零温),级数在 t = 0 收敛不到 φ 的端点值,但在任何 t 大于零瞬间一切正常。这不是推导错误,而是 Gibbs 现象与边界层交织的表现——解在极短时间内完成边界附近的快速调整,数值上别试图用 t = 0 的级数部分和去逐点核对初值。

本节要点

  • 分离的本质:把偏微分方程裂解为"带边界条件的特征值问题 + 一族时间常微分方程";
  • 特征值三件套:λ_n = (nπ/L)²、sin(nπx/L)、衰减率 a²λ_n,离散谱对应驻波泛音;
  • 系数公式:正交性给出傅里叶系数,初始数据的光滑度决定系数衰减率;
  • 互证纪律:级数解与独立实现的差分解对表,误差到万分位才算推导过关;
  • 能力边界:规则区域、常系数、线性叠加,三条缺一就让位于数值方法。

热传导的解是"驻波衰减"。波动方程会给出完全不同的答案:解是被搬运的初始形状本身。下一站换到随波而行的坐标系,看达朗贝尔如何两行积分拿到通解。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U