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): 网格无关收敛,远胜定频迭代