♾️ Módulo 5: Integración Numérica #
🧱 Integración Numérica: La Suma de Pequeñas Partes #
La Integración Numérica busca aproximar el valor de una integral definida, \(I = \int_{a}^{b} f(x) dx\), que representa el área bajo la curva \(f(x)\) entre los límites \(a\) y \(b\). Esta técnica es indispensable en ingeniería cuando:
- La integral analítica es imposible o extremadamente difícil (ej. \(\int e^{-x^2} dx\)).
- Solo se dispone de datos experimentales discretos (ej. una tabla de valores, no una función).
Los métodos numéricos logran esta aproximación utilizando Fórmulas de Newton-Cotes, que reemplazan la función original con polinomios simples sobre pequeños segmentos y luego suman las áreas de esas formas geométricas.
Fundamento Teórico: Sumas de Riemann y Error #
El fundamento se basa en las Sumas de Riemann, donde el área se aproxima mediante rectángulos. Los métodos de Newton-Cotes son una mejora, reemplazando los rectángulos por formas más precisas (trapecios o parábolas).
El error principal es el Error de Truncamiento, que se reduce al aumentar el número de segmentos (\(n\)) o al usar polinomios de mayor grado.
🧮 Métodos Compuestos Fundamentales #
Los métodos más utilizados son las versiones Compuestas (o repetidas), que dividen el intervalo \([a, b]\) en \(n\) segmentos iguales, cada uno con ancho \(h = (b-a)/n\).
1. Regla del Trapecio (Trapezoidal Rule) #
Aproxima el área bajo la curva reemplazando \(f(x)\) por una línea recta (polinomio de grado 1) sobre cada segmento, creando un trapecio.
$$\mathbf{I \approx \frac{h}{2} \left[ f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n) \right]}$$- Orden de Error: \(O(h^2)\).
2. Regla de Simpson 1/3 #
Utiliza una parábola (polinomio de grado 2) sobre pares de segmentos, lo que aumenta drásticamente la precisión.
Requisito: El número de segmentos (\(n\)) debe ser par.
$$\mathbf{I \approx \frac{h}{3} \left[ f(x_0) + 4\sum_{i \text{ impar}} f(x_i) + 2\sum_{i \text{ par}} f(x_i) + f(x_n) \right]}$$- Orden de Error: \(O(h^4)\). Su alta precisión la convierte en el método de elección cuando \(n\) es par.
3. Regla de Simpson 3/8 #
Utiliza un polinomio de grado 3 sobre tres segmentos adyacentes.
Requisito: El número de segmentos (\(n\)) debe ser un múltiplo de 3.
$$\mathbf{I \approx \frac{3h}{8} \left[ f(x_0) + 3\sum_{i=1, 4, 7...}^{n-2} f(x_i) + 3\sum_{i=2, 5, 8...}^{n-1} f(x_i) + 2\sum_{i=3, 6, 9...}^{n-3} f(x_i) + f(x_n) \right]}$$🌍 Casos Aplicados en Ingeniería #
- Cálculo de Trabajo (Mecánica): El trabajo (\(W\)) realizado por una fuerza variable \(F(x)\) es \(W = \int_{a}^{b} F(x) dx\).
- Volumen y Propiedades Geométricas: Cálculo de volúmenes, centroides o momentos de inercia de secciones transversales irregulares.
- Carga Eléctrica Acumulada (Electricidad): La carga eléctrica \(Q\) a partir de la corriente \(I(t)\) es \(Q = \int I(t) dt\).
💻 Herramientas de Python: scipy.integrate
#
La librería SciPy proporciona métodos sofisticados para la integración numérica:
| Función | Uso Principal | Descripción |
|---|---|---|
quad |
Funciones analíticas | Regla adaptativa de Gauss-Kronrod; es el método más preciso y general. Devuelve (resultado, error). |
trapz |
Datos discretos | Implementa la Regla del Trapecio para un conjunto de puntos \((x_i, y_i)\). |
simps |
Datos discretos | Implementa la Regla de Simpson 1/3 (o usa la 3/8 si es necesario). |
dblquad |
Integrales Dobles | Para calcular volúmenes o integrales en 2D. |
Ejemplo Práctico: Usando quad y simps
#
Calcularemos \(\int_{0}^{\pi} \sin(x) dx\) (Valor analítico = 2).
import numpy as np
from scipy.integrate import quad, simps
def f_seno(x):
return np.sin(x)
# 1. Integración de función analítica con quad
resultado_quad, error_quad = quad(f_seno, 0, np.pi)
print("--- 🔬 Integración con SciPy (quad) ---")
print(f"Resultado (quad): {resultado_quad:.8f}")
# 2. Integración de datos discretos con simps (n=8 segmentos)
x_discreto = np.linspace(0, np.pi, 9)
y_discreto = f_seno(x_discreto)
resultado_simps = simps(y_discreto, x_discreto)
print("\n--- 📊 Integración con SciPy (simps) ---")
print(f"Resultado (simps): {resultado_simps:.8f}")
📝 Ejercicios Propuestos #
A. Integración con Reglas de Newton-Cotes #
-
Cálculo de Área y Error del Trapecio: Integra la función \(f(x) = x^3 + 2x^2 + 5\) en el intervalo \([1, 3]\).
- a) Manual: Utiliza la Regla del Trapecio Compuesta con \(n=4\) segmentos.
- b) SciPy: Utiliza
scipy.integrate.quadpara obtener la respuesta de referencia y calcula el error absoluto de tu aproximación manual.
-
Uso Eficiente de Simpson 1/3: Integra \(f(x) = e^{-x^2}\) (la integral Gaussiana) en el intervalo \([0, 2]\).
- Utiliza la Regla de Simpson 1/3 Compuesta con \(n=6\) segmentos.
-
Comparación de Precisión (\(n\) par vs. \(n\) impar): Integra \(f(x) = 1/x\) en \([1, 5]\).
- a) \(n=4\) (Simpson 1/3): Calcula el resultado.
- b) \(n=5\) (Combinado): Divide en \(n=2\) segmentos para Trapecio (al inicio) y \(n=3\) para Simpson 3/8 (al final), o usa
simpsde SciPy, que maneja automáticamente el último segmento. Compara con la solución exacta (\(\ln(5) \approx 1.6094\)).
-
Error de Truncamiento en el Trapecio: La integral \(\int_{0}^{2} x^4 dx\) tiene un valor exacto de 6.4.
- Calcula el valor de la integral usando la Regla del Trapecio Compuesta con \(n=2\) y \(n=4\) segmentos.
- Análisis: ¿Cómo cambia el error al duplicar el número de segmentos? (El error del Trapecio es \(O(h^2)\)).
-
Regla de Simpson 3/8 Pura: Integra \(f(x) = \sqrt{x} + 2\) en \([0, 3]\).
- Utiliza la Regla de Simpson 3/8 Compuesta con \(n=3\) segmentos.
B. Análisis de Error y Convergencia #
-
Convergencia de Simpson 1/3: Integra \(f(x) = e^x\) en \([0, 1]\). La solución exacta es \(e-1 \approx 1.71828\).
- Calcula la integral usando la Regla de Simpson 1/3 Compuesta para \(n=2, 4, 8\) segmentos.
- Análisis: Muestra cómo el error decrece rápidamente a medida que duplicas \(n\), confirmando el orden de error \(O(h^4)\).
-
Integral con Parámetros Adicionales: Calcula \(\int_{0}^{5} e^{-ax^2} dx\) para el caso donde \(a=0.5\).
- Utiliza
scipy.integrate.quadpasando el parámetro \(a\) a través del argumentoargs=(0.5,).
- Utiliza
-
Integral Impropa (Límites Infinitos): Evalúa la integral \(\int_{0}^{\infty} e^{-x^2} dx\).
- Utiliza
scipy.integrate.quady el valor especial de NumPynp.infpara el límite superior infinito. (Compara con el resultado analítico \(\sqrt{\pi}/2\)).
- Utiliza
C. Aplicaciones de Ingeniería con Datos Discretos #
-
Trabajo Realizado por un Resorte: La fuerza \(F\) de un resorte se mide a varias extensiones \(x\). El trabajo \(W = \int_{0}^{0.8} F(x) dx\).
Extensión (\(x\)) [m] Fuerza (\(F(x)\)) [N] 0.0 0.0 0.2 2.1 0.4 4.5 0.6 7.2 0.8 9.8 - Utiliza
scipy.integrate.trapzpara estimar el trabajo total.
- Utiliza
-
Carga Acumulada con Datos Dispares: La corriente \(I(t)\) en un circuito se mide discretamente. \(Q = \int_{0}^{5} I(t) dt\).
Tiempo (\(t\)) [s] Corriente (\(I(t)\)) [A] 0.0 0.2 1.0 1.8 2.0 3.5 3.0 4.6 4.0 5.1 5.0 4.8 - Utiliza
scipy.integrate.simpspara estimar la carga total.
- Utiliza
-
Volumen de un Estanque Cilíndrico con Radio Variable: El radio \(R(z)\) de un estanque varía con la altura \(z\). El volumen \(V = \int_{0}^{8} \pi R(z)^2 dz\).
Altura (\(z\)) [m] Radio (\(R(z)\)) [m] 0 5.0 2 4.5 4 3.8 6 3.0 8 2.5 - Calcula la función del integrando \(f(z) = \pi R(z)^2\).
- Utiliza
scipy.integrate.trapzpara estimar el volumen total.
-
Energía Disipada por una Potencia Variable: La potencia \(P(t)\) es función del tiempo. La energía total \(E = \int P(t) dt\).
Tiempo (\(t\)) [s] Potencia (\(P(t)\)) [W] 0 100 0.5 95 1.0 80 1.5 60 2.0 35 2.5 10 - Utiliza
scipy.integrate.simpspara estimar la energía total disipada.
- Utiliza
D. Aplicaciones Avanzadas #
-
Longitud de Arco y Derivación Numérica: La longitud de arco \(L\) de \(f(x) = \sin(x) + x/2\) en \([0, 2\pi]\) es \(L = \int_{0}^{2\pi} \sqrt{1 + [f'(x)]^2} dx\).
- Define el integrando usando la derivada analítica \(f'(x) = \cos(x) + 1/2\).
- Utiliza
scipy.integrate.quadpara obtener el resultado.
-
Integración Doble (Volumen Numérico): Calcula el volumen bajo la superficie \(f(x, y) = x y^2\) sobre la región \([0, 1] \times [0, 2]\).
- Utiliza
scipy.integrate.dblquadpara integrar numéricamente \(\int_{0}^{2} \int_{0}^{1} x y^2 dx dy\).
- Utiliza
-
Valor Promedio de una Función: El valor promedio \(\bar{f}\) de una función \(f(x)\) en \([a, b]\) es \(\bar{f} = \frac{1}{b-a} \int_{a}^{b} f(x) dx\).
- Calcula el valor promedio de \(f(x) = x \ln(x)\) en el intervalo \([1, 3]\).
- Utiliza
scipy.integrate.quadpara encontrar la integral y luego calcula el promedio.
-
Integral con Singularidad: Evalúa la integral \(\int_{0}^{1} \frac{1}{\sqrt{x}} dx\). (El valor exacto es 2).
- Pregunta de Análisis: Intenta usar la Regla del Trapecio Compuesta con \(n=10\) y compara el resultado con el resultado de
scipy.integrate.quad. Explica por quéquad(método adaptativo) maneja la singularidad en \(x=0\) mucho mejor que el método de Trapecio simple.
- Pregunta de Análisis: Intenta usar la Regla del Trapecio Compuesta con \(n=10\) y compara el resultado con el resultado de