The epsilon of the machine (short: eps) is the minimum distance that a floating point arithmetic program like Matlab can recognize between two numbers x and y.
Try this:
>> format long e
>> x=1;y=x+eps;
>> y-x
ans =
2.220446049250313e-016
>> x=1;y=x+eps/2;
>> y-x
ans =
0
You see that y-x=0 and Matlab cannot recognise a difference less than eps:
It is the smollest number such that 1+esp>1. In a finite arithmetic system, i,e. a system with Fixed positions for the mantissa Z=0.XXXXXXE^YYY, it is possible that Z+1=1. It holds if Z
In Matlab, "eps" refers to the precision of floating numbers. Moreover, its value depends on the type of floating you are using. E.g. if number type is "double", eps is 2^-52, and if it's "single" eps is 2^-23. Then, the precision value (eps) changes depending on number type.
It can also be used as a constant. You can add the "eps" constant, for example, to a denominator or to the principal column of a matrix in order to eliminate divisions by zero. Used as a constant, "eps" is like a mathematic small delta.
Regarding your matrix "c = all(b >= -100*eps)", you are seeking all columns of matrix "b" which all values are higher or equal to the constant "-100 * eps". If eps is 2^-52, then "-100 * 2^-52" is your constant.
It's the same to write "c = all(b >= -100*eps , 1)".
Now, if you write "c = all(b >= -100*eps , 2)", then you will search all the lines of matrix "b" which all values are higher or equal the the constant "-100 * 2^-52".
The epsilon of the machine (short: eps) is the minimum distance that a floating point arithmetic program like Matlab can recognize between two numbers x and y.
Try this:
>> format long e
>> x=1;y=x+eps;
>> y-x
ans =
2.220446049250313e-016
>> x=1;y=x+eps/2;
>> y-x
ans =
0
You see that y-x=0 and Matlab cannot recognise a difference less than eps: