Los números se asemejan a una recta con dominio discreto y espaciados a \( \Delta x \)
gráfico
El siguiente número que existe después de \( 0 \) es
nextfloat(0.0)
5.0e-324
El siguiente número que existe después de \( 1 \) es:
nextfloat(1.0)
1.0000000000000002
Δx = nextfloat(1.0) - 1.0
println("Δx = ", Δx)
Δx = 2.220446049250313e-16
El épsilon de máquina es la "distancia" entre dos números de punto flotante, se calcula como: $$ \begin{equation*} \epsilon = b^{1 - t} \end{equation*} $$
donde \( b \) es el número base y \( t \) es el número de cifras significativas en la mantisa, por ejemplo si \( t = 16 \): $$ \begin{equation*} \epsilon = 10^{1 - 16} = 0.000000000000001 \end{equation*} $$
Puede ser calculado mediante el siguiente seudocódigo:
epsilon = 1
hacer
epsilon = epsilon / 2
hasta epsilon + 1 <= 1
fin hacer
epsilon = 2 * epsilon
Programa para calcular el épsilon de máquina
ϵ = 1
while true
ϵ = ϵ/2
if ϵ + 1 <= 1
break
end
end
ϵ = 2ϵ
2.220446049250313e-16
Comparamos con el comando eps()
eps(Float64)
2.220446049250313e-16