Scientific Computing · 交互式可视化

科学计算可视化实验室

从偏微分方程到高精度算术,8 个数值方法核心模块的交互式可视化。调节参数、观察稳定性与收敛性,直观理解数值算法的权衡与加速原理。

模块 8风格 Linear Dark依赖 零渲染 SVG / Canvas
01偏微分方程数值解 · 热传导方程

显式 FTCS 格式求解 ∂u/∂t = α ∂²u/∂x²。稳定性条件 r = α·Δt/Δx² ≤ 0.5,超过即数值发散。调节 r 观察稳定与失稳。

r = αΔt/Δx² 0.25 稳定
r ≤ 0.5 时显式格式稳定;r > 0.5 时高频误差指数增长,解迅速发散。隐式格式无条件稳定但需解线性方程组。
02矩阵特征值算法

Power Method 迭代收敛到主特征值;Rayleigh 商给出高精度估计。右图为特征值估计随迭代的变化。

迭代0 估计 λ—
矩阵 A (3×3 对称)
Power Method 每步 v ← Av/‖Av‖,Rayleigh 商 λ ≈ vᵀAv。收敛速度取决于 |λ₂/λ₁|。
03稀疏矩阵求解 · 共轭梯度法

1D Laplacian (三对角稀疏阵) 求解 Ax=b。CG 迭代法利用 Krylov 子空间,残差快速下降;直接法 (Cholesky) 需 O(n³)。

规模 n 30 迭代次数0
左:稀疏结构 (spy plot),仅三对角非零。右:残差 ‖rₖ‖ 半对数下降。CG 理论上 n 步内精确收敛,实际远更快。
04蒙特卡洛积分 · 估算 π

向单位正方形投点,落入 1/4 圆内比例 × 4 ≈ π。对比朴素采样与分层采样 (方差缩减) 的收敛速度。

每次投点 500 总计0 π 估计—
蒙特卡洛误差 O(1/√N) 与维度无关。分层/重要性采样可显著降低方差。
05快速多极子法 (FMM) · N-body 加速

N 体问题直接计算 O(N²)。FMM 用层次多极展开,远场聚合、近场直接算,复杂度降至 O(N)。切换观察交互模式。

直接 O(N²)
FMM O(N)
直接法绘制所有 N(N-1)/2 条相互作用;FMM 用四叉树划分空间,仅近邻直接算,远场用多极展开合并。
06自适应网格细化 (AMR)

在解变化剧烈处加密网格。下方函数含尖峰,自适应策略对高梯度区域递归细化,平衡精度与计算量。

当前层级0 单元数8
阈值 = |f''| > ε 的单元被标记细化。蓝深 = 层级越高。对比均匀网格,AMR 用更少单元达到同等分辨率。
07并行数值算法 · 区域分解

将计算域分给 P 个进程,边界需 halo (幽灵单元) 交换。切换通信模式:环形 (点对点) vs 树形 (聚合广播)。

进程数 P 4
环形
树形
环形通信每步仅与左右邻居交换,延迟 O(P);树形 (递归倍增) 延迟 O(log P),适合全局归约。
08高精度计算 · 任意精度算术

用 BigInt 实现 π 的无界水龙头算法 (spigot),可计算任意位数。Ball Arithmetic 用区间 [c−r, c+r] 保证结果包含真值。

位数 30
Float64 (约 15 位) vs 任意精度
Ball Arithmetic 半径 (误差界) 1e-6
Ball Arithmetic:结果 = 中心 ± 半径。运算传播半径,保证区间严格包含精确值,用于可靠数值验证。