I'm studying Matlab and computer arithmetic, but I'm having trouble grasping the concept of the Machine Epsilon. I would appreciate a simple explanation, as if I were a child. What does '2.2204e-16' mean, what are the issues when we add '1' and what is its purpose?
I've only thought that with a 64-bit machine epsilon, we know that a number is accurate up to the sixteenth digit, but I have many doubts.
Using typical 64-bit floating point, epsilon is about 0.00000000000000022204 ('2.2204e-16' or 2.2204*10-16) or exactly 2-52.
Epsilon: the difference between 1 and the least normalized value greater than 1 that is representable in the given floating type.
...
Between [0.5 and 1.0], 64-bit floating point steps are each 2-53.
Between [1.0 and 2.0], 64-bit floating point steps are each 2-52. Epsilon
Between [2.0 and 4.0], 64-bit floating point steps are each 2-51.
Between [4.0 and 8.0], 64-bit floating point steps are each 2-50.
...
Typical floating point, if written in base 2: ±b.bbbbbbbb... * 2exponent is precise to 53 binary digits.
That is about 15.95 or log10(253) decimal digits ±d.ddddddd... * 10exponent.