🐍 Python
🐍 Python

Integración numérica con Monte Carlo

Calcular la integral definida de una función numéricamente con el método de Monte Carlo, y comparar dos implementaciones (iterativa vs.

Problema

Calcular la integral definida de una función numéricamente con el método de Monte Carlo, y comparar dos implementaciones (iterativa vs. vectorizada) para evaluar la diferencia en eficiencia computacional. ¿Cuánto importa la vectorización con NumPy frente a bucles Python puros?

Solución

Implementación del método de Monte Carlo para integración numérica en dos versiones: bucle iterativo Python y versión vectorizada con NumPy. Comparativa de precisión del resultado y rendimiento (tiempo de cómputo) según el número de muestras N, verificando contra scipy.integrate.quad.

Método de Monte Carlo para integración

  • Principio: E[f(X)] ≈ (b-a) × media de f(X_i) para X_i uniformes en [a,b]
  • Implementación iterativa: bucle Python — simple pero lento para N grande
  • Implementación vectorizada: operaciones NumPy sobre arrays — orders of magnitude más rápida
  • Verificación de la precisión: comparativa del resultado con scipy.integrate.quad (solución exacta)

Análisis de eficiencia y convergencia

  • Benchmarking: medición de tiempo de cómputo de ambas implementaciones para distintos N
  • Curva de convergencia: error de la integral vs. número de muestras — decrece con O(1/√N)
  • Importancia de la vectorización: demostración práctica del impacto en datos científicos
  • SciPy para comparación de referencia: quad() como ground truth de la integral exacta

Más proyectos en Python