Errores de redondeo

Representación de números en la computadora

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

Épsilon de máquina

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