Derivación e integración · Tema 24

Diferenciación numérica

Cómo aproximar pendientes a partir de evaluaciones o datos discretos, cuantificar el error y elegir un paso que equilibre truncamiento y redondeo.

01 · Derivar sin fórmula simbólica

La pendiente a partir de valores cercanos

La derivada describe la rapidez de cambio instantánea. Cuando conocemos una expresión sencilla podemos derivarla simbólicamente, pero muchas aplicaciones solo ofrecen una función evaluable, una simulación costosa o una tabla de mediciones.

La definición matemática utiliza un límite:

f′(x)=limh→0 [f(x+h)−f(x)]/h

Una computadora no calcula el límite: elige un valor finito de h y utiliza un cociente de diferencias. La pregunta central es qué puntos usar y cuán pequeño debe ser el paso.

02 · Herramienta de análisis

La serie de Taylor revela el error

Si f es suficientemente suave alrededor de x:

f(x+h)=f(x)+hf′(x)+h²f″(x)/2+h³f‴(x)/6+O(h⁴)

Para un desplazamiento hacia la izquierda:

f(x−h)=f(x)−hf′(x)+h²f″(x)/2−h³f‴(x)/6+O(h⁴)

Estas dos expansiones permiten construir fórmulas y anticipar cómo disminuye su error cuando reducimos h.

03 · Diferencia progresiva

Usar el punto actual y el siguiente

Despejando f′(x) de la primera expansión:

f′(x) ≈ [f(x+h)−f(x)]/h

El primer término omitido es proporcional a h:

[f(x+h)−f(x)]/h = f′(x)+h f″(x)/2+O(h²)

Por eso la diferencia hacia adelante es de primer orden: si domina el error de truncamiento, dividir el paso por dos reduce el error aproximadamente a la mitad.

04 · Diferencia regresiva

Usar el punto actual y el anterior

A partir de f(x−h) obtenemos:

f′(x) ≈ [f(x)−f(x−h)]/h

También es de primer orden, pero el término principal tiene signo opuesto:

[f(x)−f(x−h)]/h = f′(x)−h f″(x)/2+O(h²)

Esta fórmula resulta útil en el extremo derecho de una tabla o en procesos causales donde solo están disponibles valores presentes y pasados.

05 · Simetría

La diferencia central cancela el error lineal

Restamos las dos expansiones de Taylor. Los términos con potencias pares de h se cancelan:

f(x+h)−f(x−h)=2hf′(x)+h³f‴(x)/3+O(h⁵)

Por lo tanto:

f′(x) ≈ [f(x+h)−f(x−h)]/(2h)
[f(x+h)−f(x−h)]/(2h)=f′(x)+h²f‴(x)/6+O(h⁴)

Es una fórmula de segundo orden. En la zona dominada por truncamiento, reducir h a la mitad divide el error aproximadamente por cuatro.

06 · Tres fórmulas básicas

Cuándo usar cada diferencia

Aproximaciones de la primera derivada con paso h positivo.
MétodoFórmulaErrorUso típico
Adelante[f(x+h)−f(x)]/hO(h)Extremo izquierdo
Atrás[f(x)−f(x−h)]/hO(h)Extremo derecho
Central[f(x+h)−f(x−h)]/(2h)O(h²)Puntos interiores

El símbolo O(hᵖ) describe el comportamiento asintótico del error de truncamiento, no el error total para cualquier paso ni una cantidad exacta.

07 · Cálculo manual

Derivar f(x)=x² en x=1

La derivada exacta es f′(1)=2. Con h=0.1:

D₊f(1)=[1.1²−1²]/0.1=2.1
D₋f(1)=[1²−0.9²]/0.1=1.9
D₀f(1)=[1.1²−0.9²]/0.2=2

Las aproximaciones unilaterales quedan a ambos lados de la derivada exacta. La diferencia central es exacta para esta cuadrática porque su tercera derivada es cero.

Esto no significa que la fórmula central sea siempre exacta; su error depende de derivadas de orden superior.

08 · Interpretación visual

Secantes que se acercan a la tangente

La diferencia hacia adelante calcula la pendiente de la recta que une (x,f(x)) con (x+h,f(x+h)). La regresiva usa x−h y x. La central utiliza dos puntos simétricos alrededor del lugar donde queremos derivar.

Cuando h disminuye, la secante suele aproximarse a la tangente. La simetría de la fórmula central hace que sus errores geométricos a izquierda y derecha se compensen en primer orden.

elegir x y h→evaluar vecinos→combinar diferencias→estimar el error

09 · Funciones reutilizables

Diferencias finitas en JavaScript

function derivadaAdelante(f, x, h = 1e-5) {
  if (!(h > 0)) throw new Error("h debe ser positivo");
  return (f(x + h) - f(x)) / h;
}

function derivadaAtras(f, x, h = 1e-5) {
  if (!(h > 0)) throw new Error("h debe ser positivo");
  return (f(x) - f(x - h)) / h;
}

function derivadaCentral(f, x, h = 1e-5) {
  if (!(h > 0)) throw new Error("h debe ser positivo");
  return (f(x + h) - f(x - h)) / (2 * h);
}

const f = x => Math.exp(x);
const exacta = Math.exp(1);
for (const [nombre, metodo] of [
  ["adelante", derivadaAdelante],
  ["atrás", derivadaAtras],
  ["central", derivadaCentral]
]) {
  const valor = metodo(f, 1, 1e-4);
  console.log(nombre, valor, Math.abs(valor - exacta));
}

Validar que h sea positivo evita divisiones por cero y convenciones ambiguas. Las funciones aceptan cualquier callback que devuelva números finitos cerca de x.

10 · Datos ya muestreados

Derivar una tabla uniforme

Si disponemos de valores yᵢ=f(xᵢ) igualmente espaciados por h, podemos aproximar la derivada sin volver a evaluar la función:

f′(x₀)≈(y₁−y₀)/h
f′(xᵢ)≈(yᵢ₊₁−yᵢ₋₁)/(2h),   1≤i≤n−1
f′(xₙ)≈(yₙ−yₙ₋₁)/h
function derivarTablaUniforme(valores, h) {
  if (valores.length < 2 || !(h > 0)) throw new Error("Datos inválidos");
  const n = valores.length;
  const derivadas = Array(n);
  derivadas[0] = (valores[1] - valores[0]) / h;
  for (let i = 1; i < n - 1; i++) {
    derivadas[i] = (valores[i + 1] - valores[i - 1]) / (2 * h);
  }
  derivadas[n - 1] = (valores[n - 1] - valores[n - 2]) / h;
  return derivadas;
}

const valores = [0, 0.25, 1, 2.25, 4]; // x² en 0, 0.5, ..., 2
console.log(derivarTablaUniforme(valores, 0.5));
// [0.5, 1, 2, 3, 3.5]

Los puntos interiores son exactos para esta cuadrática; las fórmulas de primer orden en los extremos no lo son. El próximo tema desarrollará fórmulas unilaterales más precisas.

11 · Dos errores enfrentados

Un paso menor no siempre es mejor

El error total combina al menos dos efectos:

  • Truncamiento: sustituimos una serie infinita por una fórmula finita. Disminuye cuando baja h.
  • Redondeo y cancelación: restamos números casi iguales y dividimos por un valor pequeño. Crece cuando h es excesivamente pequeño.

Para la diferencia central, un modelo simplificado del error es:

error(h) ≈ C₁h² + C₂ε/h

ε representa la precisión relativa de la aritmética. La primera parte baja con h; la segunda sube. En escala logarítmica suele aparecer una curva con forma de U.

12 · Escala del problema

Cómo elegir h

En aritmética de doble precisión, una regla inicial para funciones de escala moderada es usar aproximadamente √ε en diferencias de primer orden y ∛ε en la diferencia central. Como Number.EPSILON≈2.22·10⁻¹⁶, esto sugiere órdenes de magnitud cercanos a 10⁻⁸ y 10⁻⁵, respectivamente.

El paso debe adaptarse también a la escala de x:

h = factor · max(1,|x|)

No existe un valor universal. La magnitud y suavidad de f, el ruido de los datos y la precisión deseada modifican el equilibrio.

function pasoCentralInicial(x) {
  return Math.cbrt(Number.EPSILON) * Math.max(1, Math.abs(x));
}

function derivadaCentralEscalada(f, x) {
  const h = pasoCentralInicial(x);
  if (x + h === x) throw new Error("El paso no cambia x en esta precisión");
  return (f(x + h) - f(x - h)) / (2 * h);
}

console.log(derivadaCentralEscalada(Math.sin, 1));
console.log(Math.cos(1));

13 · Sensibilidad

Derivar amplifica el ruido

Si cada muestra contiene un error de magnitud aproximada δ, una diferencia divide la variación entre errores por h. Su contribución puede crecer como δ/h.

Por eso, con mediciones ruidosas:

  • reducir el espaciamiento no garantiza mejores derivadas;
  • puede convenir ajustar localmente una recta o un polinomio y derivar ese modelo;
  • un filtro de suavizado debe elegirse sin borrar cambios reales;
  • la incertidumbre de la derivada debe informarse junto con el valor.

La diferenciación es una operación numéricamente más sensible que la integración: realza variaciones rápidas en lugar de promediarlas.

14 · Exploración interactiva

Laboratorio: encontrar el paso útil

Elegí una función, un método y el exponente del paso h=10ᵏ. La curva turquesa es la función y la recta dorada tiene la pendiente numérica obtenida.

EXPERIMENTO 24

De la secante a la tangente

f(x)=eˣ

Los resultados numéricos aparecen debajo.
h—
Derivada numérica—
Derivada exacta—
Error absoluto—

Reducí el paso y observá cómo cambia el error.

Preguntas para explorar

  1. Compará los tres métodos con k=−2.
  2. En el método central, reducí el paso y encontrá aproximadamente el menor error.
  3. Continuá hasta k=−12: ¿el error sigue disminuyendo?
  4. Cambiá la función y el punto; comprobá que el mejor paso no es idéntico en todos los casos.

15 · Comprensión

Confusiones frecuentes

«La computadora puede usar h=0»

Con h igual a cero aparece una división indeterminada. La derivada es un límite matemático, no el cociente evaluado literalmente en cero.

«Cuanto menor sea h, más exacto será el resultado»

Solo mientras domine el truncamiento. Para pasos diminutos, el redondeo y la cancelación pueden aumentar el error.

«La diferencia central usa la mitad de paso»

Los puntos están a distancia h de x y separados entre sí por 2h; por eso el denominador es 2h.

«O(h²) significa que el error es exactamente h²»

Indica un orden asintótico con una constante dependiente de la función y del punto.

«Derivar datos ruidosos revela mejor los cambios»

También amplifica el ruido. A menudo es necesario ajustar o suavizar antes de diferenciar.

16 · Práctica guiada

Ejercicios

Ejercicio 1: diferencia hacia adelante

Con f(2)=4, f(2.1)=4.41 y h=0.1, aproximá f′(2).

Ver solución

[4.41−4]/0.1=4.1. Para f(x)=x², el valor exacto sería 4.

Ejercicio 2: diferencia central

Si f(0.9)=0.81 y f(1.1)=1.21, calculá la diferencia central en x=1.

Ver solución

[1.21−0.81]/(2·0.1)=0.4/0.2=2.

Ejercicio 3: reducción del paso

En una diferencia central dominada por truncamiento, ¿qué ocurre aproximadamente con el error al reemplazar h por h/2?

Ver solución razonada

Como el error principal es proporcional a h², pasa a ser aproximadamente (h/2)²=h²/4: se divide por cuatro.

Ejercicio 4: extremo de una tabla

¿Por qué no podemos aplicar la diferencia central común en el primer nodo de una tabla?

Ver solución

Requeriría un valor en x₀−h, fuera de los datos disponibles. Debemos usar una fórmula hacia adelante o disponer de más información.

Ejercicio 5: estudio de convergencia

Generá una tabla del error central para sin(x) en x=1 y pasos 10⁻¹,…,10⁻¹².

Ver una posible solución
const x = 1;
const exacta = Math.cos(x);
const resultados = [];

for (let k = -1; k >= -12; k--) {
  const h = 10 ** k;
  const aproximada = (Math.sin(x + h) - Math.sin(x - h)) / (2 * h);
  resultados.push({
    h: h.toExponential(0),
    error: Math.abs(aproximada - exacta).toExponential(3)
  });
}

console.table(resultados);

17 · Síntesis

Ideas para recordar

  • Una derivada numérica reemplaza la tangente por cocientes entre muestras cercanas.
  • Taylor permite derivar las fórmulas y conocer su orden de truncamiento.
  • Las diferencias hacia adelante y atrás tienen error O(h).
  • La diferencia central cancela términos pares y tiene error O(h²).
  • Las fórmulas unilaterales son necesarias cerca de los extremos.
  • Reducir h disminuye el truncamiento, pero agrava cancelación y redondeo.
  • El paso debe considerar la precisión y la escala de x y de f.
  • Las derivadas amplifican ruido presente en los datos.
  • Comparar varios pasos ayuda a diagnosticar la región de convergencia.

En el próximo tema construiremos derivadas de orden superior y fórmulas más precisas mediante más puntos y extrapolación de Richardson.