- #1
Gengar
- 13
- 0
Simple enough - I'm just trying to find the smallest positive real number, ε, such that 1 + ε ≠ 1 in MATLAB (double precision). So the value 'eps' in MATLAB is actually not quite defined this way, and using this program
yields the value 1.1102x10^(-16), which does satisfy 1+ε ≠1. This value is very close to eps/2, but is not eps/2 (they differ by 2x10^(-32)). And 1+eps/2=1 anyway so that seemingly can't be right. My question is this - is there a published value for MATLAB's machine epsilon, or is my value correct? My value seems quite annoying in that it feels like it should be eps/2, and in my assignment it referenced eps/2 as the machine epsilon. Cheers!
Code:
min = 0;
max = 1;
test = 1;
while test~=(min+max)/2
test = (min+max)/2;
if 1+test~=1
max=test;
end
if 1+test==1
min=test;
end
end
yields the value 1.1102x10^(-16), which does satisfy 1+ε ≠1. This value is very close to eps/2, but is not eps/2 (they differ by 2x10^(-32)). And 1+eps/2=1 anyway so that seemingly can't be right. My question is this - is there a published value for MATLAB's machine epsilon, or is my value correct? My value seems quite annoying in that it feels like it should be eps/2, and in my assignment it referenced eps/2 as the machine epsilon. Cheers!