When using numerical methods (e.g. Runge-Kutta), the finite precision of floats on the computer can influence the solution (Brouwer's Law).
In this paper it suggests as a remedy simulating exact Runge-Kutta coefficients as e.g. A = B + C where B is an exact machine number, and C some small correction
Can someone explain how this works in practice? E.g. if A = 3/10, then how would one determine B and C?
Thanks for any help.
In the paper they suggest using a rational approximation for A with denominator 1024. (This means that A has at most 10 significant non-zero bits). You have (3/10)*1024 = 307.2, so B will be
B=307/1024 = 0.2998046875 and C = A - B = 0.0001953125
C is not exactly representable as IEEE Binary64, the nearest floating point number will be
C = 1.9531249999998889776975374843...E-4.
Insert these values in the formulas (3.1f)