Influence of Round-Off Errors on the von Neumann Stability Analysis
21:04 27 Mar 2026

When using float16, computations are carried out in float16 precision. I would like to apply this to an explicit finite difference scheme for the heat equation, using

$$\mathrm{fl}(x \pm y) = x(1+\alpha) \pm y(1+\beta), \qquad |\alpha|, |\beta| \leq u$$

$$\mathrm{fl}(x \mathbin{\mathrm{op}} y) = (x \mathbin{\mathrm{op}} y)(1+\delta), \qquad |\delta| \leq u, \qquad \mathrm{op} \in {*, /}$$

I need to be sure which method is correct. The more rigorous method is the second one, because it follows the actual order of floating-point operations.

The first expression,

$$\tilde{u}_i^{,n+1} = \tilde{u}i^{,n} + r\Big(\tilde{u}{i+1}^{,n}(1+\varepsilon_1) - 2\tilde{u}i^{,n}(1+\varepsilon_2) + \tilde{u}{i-1}^{,n}(1+\varepsilon_3)\Big)(1+\varepsilon_4)$$

is a global model. It is useful for a qualitative analysis of round-off errors, but it does not describe exactly how the computer performs the computation.

The second expression,

$$t_1 = \mathrm{fl}(2u_i^n), \qquad t_2 = \mathrm{fl}(u_{i+1}^n - t_1), \qquad t_3 = \mathrm{fl}(t_2 + u_{i-1}^n), \qquad t_4 = \mathrm{fl}(r,t_3), \qquad u_i^{n+1,\mathrm{fl}} = \mathrm{fl}(u_i^n + t_4)$$

is more accurate because it describes the propagation of round-off errors according to the actual sequence of operations executed by the code.

I need this in order to prove the stability of the scheme using the von Neumann method, but I am really lost. Since this is my first time dealing with this, I cannot find the stability condition, the numerical value of the CFL condition, or how round-off errors influence the result.

floating-point numerical-methods numerical-stability