$\begingroup$

I am taking a introductory course in numerical mathematics, using MATLAB and a numerical math text that refers to MATLAB often. In the text, the machine precision is defined as:

The distance $\epsilon$ between 1 and the next largest floating point number that can be represented in the system.

In MATLAB, the command help('eps') agrees, stating:

eps, with no arguments, is the distance from 1.0 to the next larger double precision number.

Now, my understanding is that this should mean that $1+\epsilon$ is the smallest number greater than 1 that can be represented, so we should have: $$1+0.9\epsilon = 1$$ $$1+\epsilon \ne 1$$

However, in MATLAB, the number that I intuitively understand to have the properties of $\epsilon$ seems to actually be just above $\epsilon/2$. Observe that the code

 1+eps==1 1+eps*0.9==1 1+eps*0.51==1 1+eps*0.5==1 

Produces the output:

 ans = 0 ans = 0 ans = 0 ans = 1 

How am I misinterpreting the definition of eps? Is is because some of these numbers are not normalized?

$\endgroup$8

Reset to default

Know someone who can answer? Share a link to this question via email, Twitter, or Facebook.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy