舍入误差对冯·诺依曼稳定性分析的影响
一维热方程显式有限差分格式的Float16舍入误差分析
我正在研究一维热方程的显式有限差分格式,目标是分析Float16精度下计算时舍入误差的影响。
更新公式为:u_i^(n+1) = u_i^n + r (u_(i+1)^n - 2 u_i^n + u_(i-1)^n)
其中 r = a*Δt/Δx²
所有运算采用浮点数,需要对计算值ũ_i^(n+1)建模并用于冯·诺依曼稳定性分析。给定的浮点数模型如下:
- 加法/减法:
fl(x ± y) = x(1+α) ± y(1+β),其中|α|, |β| ≤ u - 乘法/除法:
fl(x op y) = (x op y)(1+δ),其中|δ| ≤ u,op ∈ {*, /}
这里的u为单位舍入误差。
两种误差建模方法
方法1——单一扰动公式
ũ_i^(n+1) = ũ_i^n + r * ( ũ_(i+1)^n * (1+ε₁) - 2*ũ_i^n * (1+ε₂) + ũ_(i-1)^n * (1+ε₃) ) * (1+ε₄)
该方法未遵循浮点运算的精确顺序,规范性不足。
方法2——分步建模
t1 = fl(2 u_i^n) t2 = fl(u_{i+1}^n - t1) t3 = fl(t2 + u_{i-1}^n) t4 = fl(r * t3) u_i^{n+1,fl} = fl(u_i^n + t4)
直觉上该方法更严谨,但不确定是否为舍入误差分析的正确框架。
技术问题
- 该格式在Float16下适用的浮点数误差模型是什么?
- 采用分步模型进行舍入误差分析是否合理?
- 如何将其融入冯·诺依曼稳定性分析?
- 舍入误差是否会修改常规CFL条件
r ≤ 1/2?若会,具体如何影响?
内容的提问来源于stack exchange,提问作者Kim Raven
相关产品推荐
相关产品推荐

