🧮 Computational Mathematics

Inicio · Parte 00 — Pensamiento matemático desde cero

013 — Aproximación, redondeo y cifras significativas

cero-absoluto clase 13 de 20 4 horas demostración rounding

Redondear es una decisión de modelado con regla declarada, no un accidente de la calculadora.

Fórmulas

half-even (bancario): 0.5 → 0, 1.5 → 2, 2.5 → 2
half-up (aritmético): 0.5 → 1, 1.5 → 2, 2.5 → 3

Desarrollo

Cuando el valor a redondear cae exactamente en la mitad, hay que elegir hacia dónde va, y las dos elecciones habituales tienen consecuencias estadísticas distintas. El redondeo aritmético (half-up) siempre sube, y por tanto introduce un sesgo positivo que se acumula al sumar muchos valores. El redondeo bancario (half-even) manda al par más cercano, con lo que los casos intermedios se reparten y el sesgo tiende a cero.

Por eso el estándar IEEE 754 fija half-even como modo por defecto, y por eso la función round de Python hace lo mismo: round(0.5) devuelve 0, no 1. Quien espera el comportamiento escolar lo interpreta como un bug; es la elección correcta para cadenas largas de cálculos.

Las cifras significativas son el otro lado de la misma moneda: dicen cuánta información contiene el número, no cuántos dígitos se imprimen. Un valor medido como 2.50 comunica precisión de centésimas; escrito como 2.5 comunica precisión de décimas; escrito como 2.500000 comunica una precisión que probablemente no se tiene. Reportar más dígitos de los que la medida soporta es una forma de exagerar la certeza.

La regla práctica del programa: redondear al final, nunca en pasos intermedios, y declarar siempre la regla usada. Redondear intermedio destruye información que ya no se recupera, y es una causa habitual de que dos implementaciones «iguales» devuelvan totales distintos.

Ejemplo trabajado

Redondear los cuatro casos intermedios y medir el sesgo.

valores        0.5   1.5   2.5   3.5     suma original = 8.0

half-even       0     2     2     4      suma = 8   → sesgo  0.0
half-up         1     2     3     4      suma = 10  → sesgo +2.0
round() Python  0     2     2     4      (half-even)

Con cuatro valores el sesgo de half-up ya es de 2 unidades. Sobre un millón de importes, el descuadre es sistemático y siempre en la misma dirección.

Qué calcula el laboratorio

Redondeo bancario frente a redondeo aritmético.

python classes/part-00-pensamiento-matematico-desde-cero/013-aproximacion-redondeo-y-cifras-significativas/lab.py
compmath run 013

Salidas del laboratorio (6)

Muestra de la ejecución real

{
  "valores": [
    "0.5",
    "1.5",
    "2.5",
    "3.5"
  ],
  "ROUND_HALF_EVEN": [
    0.0,
    2.0,
    2.0,
    4.0
  ],
  "ROUND_HALF_UP": [
    1.0,
    2.0,
    3.0,
    4.0
  ],
  "python_round": [
    0,
    2,
    2,
    4
  ],
  "sesgo_half_even": 0.0,
  "sesgo_half_up": 2.0
}

Errores comunes

Dónde se usa

Contabilidad, reparto de totales, informes de métricas y cualquier agregación de muchos valores redondeados. Es prerrequisito directo del capstone de esta parte y de la clase 034 (propagación de errores)."

Idea rectora de la parte

Proporcionalidad es la primera función lineal que aprendemos sin llamarla así.

Error a evitar

Sumar porcentajes como si fueran cantidades absolutas.

Conexión con IA

Toda métrica de un modelo (accuracy, loss, learning rate) es una razón, un porcentaje o una escala. Interpretarlas mal es el primer error de un practicante de IA.

Bibliografía de la clase

Archivos de la clase