PARTIAL DIFFERENTIAL EQUATIONS · LAB

偏微分方程可视化实验室

八组交互式数值实验,覆盖有限差分、有限元与多重网格方法。每个模块均可调参、播放并实时观察离散格式的行为——从 CFL 稳定性到 V 循环收敛,全部在浏览器中以纯 SVG 渲染,零依赖。

u_t = α ∇²u u_tt = c² u_xx ∇²u = f Jacobi · Gauss-Seidel Von Neumann V / W / F-Cycle
MODULE 01

热传导方程

一维热传导方程 u_t = α u_xx 的显式 (FTCS) 与隐式 (BTCS) 差分。显式格式受 CFL 条件 α·Δt/Δx² ≤ 0.5 约束,超过临界值即数值爆炸;隐式格式无条件稳定。

离散格式 / SCHEME
显式 FTCS: u_i^{n+1} = u_i^n + r·(u_{i-1} - 2u_i + u_{i+1}) 隐式 BTCS: -r·u_{i-1}^{n+1} + (1+2r)·u_i^{n+1} - r·u_{i+1}^{n+1} = u_i^n (三对角 Thomas 算法) CFL 条件: r = α·Δt/Δx² ≤ 0.5 (显式稳定下界)
MODULE 02

波动方程

一维波动方程 u_tt = c² u_xx 的中心差分格式。零初速度的高斯包会分裂为左右两束行波,体现 d'Alembert 分解。Courant 数 c·Δt/Δx ≤ 1 为稳定条件。

离散格式 / SCHEME
中心差分: u_i^{n+1} = 2u_i^n - u_i^{n-1} + C²·(u_{i-1} - 2u_i + u_{i+1}) Courant 数: C = c·Δt/Δx ≤ 1 (CFL 稳定条件) 初值: u^0 = Gauss, u^{-1} = u^0 (零初速度 → 行波分裂)
MODULE 03

泊松方程

二维泊松方程 ∇²u = f 的有限差分迭代求解。Jacobi 与 Gauss-Seidel 两种经典迭代,实时观察残差范数随迭代下降,热力图收敛到稳态解。

迭代格式 / ITERATION
五点差分: u_{ij} = ¼·(u_{i+1,j} + u_{i-1,j} + u_{i,j+1} + u_{i,j-1} - h²·f_{ij}) Jacobi: 使用上一轮全体值同步更新 Gauss-Seidel: 就地更新,收敛快约 2× 残差: ‖r‖₂ = ‖f - Au‖₂
MODULE 04

对流扩散方程

对流扩散方程 u_t + v·u_x = D·u_xx。迎风格式根据流速方向取单侧差分以抑制非物理振荡,但引入人工扩散。网格 Péclet 数 Pe = v·Δx/D 控制行为。

迎风格式 / UPWIND
v > 0: u_i^{n+1} = u_i - v·(u_i - u_{i-1}) + D·(u_{i+1} - 2u_i + u_{i-1}) v < 0: 对流项改用 (u_{i+1} - u_i) 后向差分 Péclet: Pe = v·Δx / D (Pe > 2 时中心差分失稳,迎风必需) 人工扩散: 迎风等价于 D_eff = D + v·Δx/2
MODULE 05

有限元方法

线性三角元的结构化网格剖分。选中节点高亮其基函数支撑(星形邻域),并展示单元刚度矩阵 K_e 与全局稀疏装配矩阵的带状结构。

弱形式 / WEAK FORM
求 u∈H¹_0 使 ∫∇u·∇v dΩ = ∫f·v dΩ ∀v 离散: K·U = F, K = Σ_e K_e, K_e_ij = ∫_e ∇φ_i·∇φ_j dΩ 直角三角元 K_e = ½·[[ 2,-1,-1],[-1, 1, 0],[-1, 0, 1]] (刚度矩阵对称半正定)
MODULE 06

边界条件

模型问题 -u'' = f 在三类边界条件下的解析解对比。Dirichlet 固定值、Neumann 固定通量、Robin 混合条件,分别对应不同的物理约束与解的整体形态。

三类边界 / BOUNDARY
Dirichlet: u(0)=a, u(1)=b (固定值) Neumann: u'(0)=g, u(1)=0 (固定通量,需相容性) Robin: α·u(0)+β·u'(0)=γ, u(1)=0 (混合,换热边界) 解析解 -u''=1: u(x) = -x²/2 + C₁·x + C₂
MODULE 07

稳定性分析

Von Neumann 稳定性分析:放大因子 |G(θ)| 随相角 θ 的变化。曲线落在 |G|=1 阈值下方即稳定。同时播放单一振荡模态,直观感受格式对误差的放大或衰减。

Von Neumann / AMPLIFICATION
设 u_i^n = G^n·e^{jθi}, 代入格式求放大因子 G: FTCS: G = 1 - 4r·sin²(θ/2) |G|≤1 ⟺ r≤½ BTCS: G = 1 / (1 + 4r·sin²(θ/2)) 无条件稳定 Crank: G = (1-2r s²)/(1+2r s²) 无条件稳定, s²=sin²(θ/2)
MODULE 08

多重网格方法

V / W / F 循环在粗细网格层间交替平滑与校正。限制 (restrict) 把残差传到粗网格,延拓 (prolongate) 把校正插值回细网格,逐层消除不同频率误差分量。

循环结构 / CYCLE
V-Cycle: 细 → 粗 → 细 (基础校正) W-Cycle: 粗层二次往返,高频校正更强 (收敛更稳) F-Cycle: V + 粗层附加 V (折中) 复杂度 O(N): 网格无关收敛,远胜定频迭代