01 · De integral a esperanza
Promediar valores aleatorios
Sea X una variable uniforme en [a,b]. Su densidad es 1/(b−a), de modo que:
Reorganizando:
Monte Carlo reemplaza la esperanza por el promedio de muestras independientes.
02 · Fórmula básica
El estimador de Monte Carlo
Generamos N puntos independientes Xᵢ∼U(a,b) y calculamos:
El estimador es insesgado si las muestras son realmente uniformes:
Insesgado no significa exacto en una ejecución. Significa que, al repetir el experimento muchas veces, el promedio de las estimaciones coincide con la integral.
03 · Incertidumbre cuantificable
Varianza y error estándar
Si σ²=Var[f(X)], la varianza del estimador es:
El error estándar es:
Como σ es desconocida, utilizamos la desviación estándar muestral de los valores f(Xᵢ). El error estándar describe variabilidad entre ejecuciones, no el error exacto de una ejecución particular.
04 · Una tasa lenta pero estable
Convergencia O(N⁻¹/²)
La ley de los grandes números garantiza convergencia bajo condiciones habituales. Su escala es:
Para reducir el error estándar diez veces necesitamos aproximadamente cien veces más muestras.
| Reducción deseada | Multiplicador de N |
|---|---|
| 2 veces | 4 |
| 5 veces | 25 |
| 10 veces | 100 |
En una dimensión, Simpson o una regla adaptativa suelen converger mucho más rápido para funciones suaves.
05 · Predicción teórica
Integrar x² en [0,1]
Para X∼U(0,1):
Necesitamos la varianza:
Con N=10000:
Un intervalo normal aproximado del 95 % tendrá semiancho 1.96·SE≈0.005843. Diferentes semillas producirán resultados distintos, normalmente dentro de esa escala.
06 · Media y varianza en una pasada
Monte Carlo reproducible en JavaScript
El algoritmo de Welford actualiza media y varianza sin guardar todas las muestras y evita restar dos sumas grandes.
function crearAleatorio(semilla) {
let estado = semilla >>> 0;
return function () {
estado += 0x6D2B79F5;
let z = estado;
z = Math.imul(z ^ (z >>> 15), z | 1);
z ^= z + Math.imul(z ^ (z >>> 7), z | 61);
return ((z ^ (z >>> 14)) >>> 0) / 4294967296;
};
}
function monteCarlo1D(f, a, b, n, aleatorio = Math.random) {
if (!Number.isInteger(n) || n < 2) throw new Error("n debe ser al menos 2");
let media = 0;
let m2 = 0;
for (let i = 1; i <= n; i++) {
const x = a + (b - a) * aleatorio();
const y = f(x);
if (!Number.isFinite(y)) throw new Error("La función no es finita");
const delta = y - media;
media += delta / i;
m2 += delta * (y - media);
}
const varianzaMuestral = m2 / (n - 1);
const valor = (b - a) * media;
const errorEstandar = Math.abs(b - a) * Math.sqrt(varianzaMuestral / n);
return {
valor,
errorEstandar,
intervalo95: [valor - 1.96 * errorEstandar, valor + 1.96 * errorEstandar]
};
}
const resultado = monteCarlo1D(x => x * x, 0, 1, 10000, crearAleatorio(123));
console.log(resultado);
07 · Repetibilidad
Números pseudoaleatorios y semillas
Los generadores habituales son deterministas: una semilla fija produce siempre la misma secuencia. Esto es valioso para pruebas, depuración y comparación de algoritmos.
- Guardá la semilla junto con el resultado.
- Usá semillas diferentes para réplicas independientes.
- No confundas un generador educativo con uno criptográficamente seguro.
- Para simulación científica exigente, utilizá generadores bien estudiados y con períodos amplios.
Math.random() no permite fijar la semilla de manera portable; por eso el ejemplo incluye un generador pequeño explícito.
08 · Comunicar incertidumbre
Intervalos de confianza aproximados
Por el teorema central del límite, para N suficientemente grande:
Un intervalo aproximado del 95 % es:
Si repitiéramos todo el procedimiento, cerca del 95 % de los intervalos construidos de esta forma contendrían el valor verdadero bajo los supuestos del método.
09 · Área como probabilidad
Método de aciertos y fallos
Para estimar un área dentro de una región conocida, muestreamos puntos uniformes en una caja y contamos la fracción que cae dentro.
En el cuadrado [−1,1]², la probabilidad de caer en el círculo unitario es π/4:
Cada muestra utiliza el indicador Y=1 si x²+y²≤1 y 0 en caso contrario. Su error estándar estimado es:
Cuando podemos evaluar directamente una función, promediar sus valores suele aprovechar más información que convertirlos en indicadores binarios.
10 · La ventaja principal
Integrales en muchas dimensiones
Para una caja D=[a₁,b₁]×…×[ad,bd] de volumen V:
Una cuadrícula con m puntos por eje necesita mᵈ evaluaciones. Monte Carlo mantiene su tasa estadística O(N⁻¹/²) sin que el exponente dependa directamente de d.
La constante puede empeorar si aumenta la varianza, pero Monte Carlo evita la explosión combinatoria de una malla tensorial.
11 · Hipercajas
Una implementación multidimensional
function monteCarloCaja(f, limites, n, aleatorio = Math.random) {
if (!Number.isInteger(n) || n < 1) throw new Error("n inválido");
const volumen = limites.reduce((v, [a, b]) => v * (b - a), 1);
let media = 0;
let m2 = 0;
for (let i = 1; i <= n; i++) {
const punto = limites.map(([a, b]) => a + (b - a) * aleatorio());
const valor = f(punto);
const delta = valor - media;
media += delta / i;
m2 += delta * (valor - media);
}
const varianza = n > 1 ? m2 / (n - 1) : 0;
return {
valor: volumen * media,
errorEstandar: Math.abs(volumen) * Math.sqrt(varianza / n)
};
}
const resultado = monteCarloCaja(
([x, y, z]) => Math.exp(-(x*x + y*y + z*z)),
[[0, 1], [0, 1], [0, 1]],
50000
);
console.log(resultado);
12 · Mejorar sin aumentar N
Reducción de varianza
La precisión depende de Var[f(X)]. Reducir esa varianza puede ser más eficaz que generar más muestras.
- Muestras antitéticas: emparejar
xcona+b−x. - Estratificación: dividir el dominio y muestrear cada región.
- Variable de control: usar una función correlacionada cuya integral conocemos.
- Muestreo por importancia: concentrar muestras donde el integrando contribuye más.
function monteCarloAntitetico(f, a, b, pares, aleatorio = Math.random) {
let media = 0;
let m2 = 0;
for (let i = 1; i <= pares; i++) {
const x = a + (b - a) * aleatorio();
const reflejado = a + b - x;
const y = (f(x) + f(reflejado)) / 2;
const delta = y - media;
media += delta / i;
m2 += delta * (y - media);
}
const varianza = m2 / (pares - 1);
return {
valor: (b - a) * media,
errorEstandar: Math.abs(b - a) * Math.sqrt(varianza / pares)
};
}
console.log(monteCarloAntitetico(Math.exp, 0, 1, 5000));
El emparejamiento es útil cuando los valores reflejados tienen correlación negativa. No reduce la varianza de todas las funciones.
13 · Elegir el método adecuado
Determinista o Monte Carlo
| Situación | Elección habitual |
|---|---|
| Una dimensión y función suave | Simpson o cuadratura adaptativa |
| Pocas dimensiones y alta precisión | Métodos deterministas especializados |
| Decenas o cientos de dimensiones | Monte Carlo o cuasi-Monte Carlo |
| Dominio geométrico complejo | Muestreo y técnicas de importancia |
| Integrando costoso | Comparar costo y aplicar reducción de varianza |
Monte Carlo no reemplaza universalmente a las reglas anteriores. Cambia precisión determinista por escalabilidad, simplicidad geométrica y una estimación estadística del error.
14 · Exploración interactiva
Laboratorio: estimar π con puntos aleatorios
Los puntos turquesa caen dentro del círculo y los corales fuera. Cambiá la cantidad de muestras y la semilla para observar la variabilidad entre ejecuciones.
Área del círculo como probabilidad
π≈4·aciertos/N
Cambiar la semilla produce otra estimación igualmente válida.
Preguntas para explorar
- Mantené
Ny cambiá la semilla: observá la variabilidad. - Multiplicá las muestras por cuatro y compará el error estándar.
- Buscá una ejecución cuyo error real sea mayor que un error estándar.
- Comprobá que una muestra pequeña puede acercarse a π por azar sin ser más confiable.
15 · Comprensión
Confusiones frecuentes
«Más muestras siempre acercan monotónicamente el resultado»
La trayectoria es aleatoria y puede alejarse temporalmente. Lo que disminuye de manera predecible es la escala típica del error.
«Un estimador insesgado no tiene error»
Insesgado se refiere al promedio sobre repeticiones; cada ejecución conserva variabilidad.
«El error estándar es el error real»
Es una desviación típica estimada del procedimiento, no la distancia conocida al valor verdadero.
«Monte Carlo converge rápido porque funciona en muchas dimensiones»
Su tasa N⁻¹/² es lenta. Su ventaja es que esa tasa no empeora directamente con la dimensión.
«Cualquier generador aleatorio sirve para cualquier aplicación»
Calidad, período, independencia y reproducibilidad importan; seguridad criptográfica es otro requisito diferente.
16 · Práctica guiada
Ejercicios
Ejercicio 1: estimador
En [0,2], cuatro muestras producen valores de f iguales a [1,2,3,2]. Calculá la integral estimada.
Ver solución
La media es 2 y el ancho es 2; la estimación es 2·2=4.
Ejercicio 2: costo
¿Cuántas veces más muestras se necesitan para reducir el error estándar a la tercera parte?
Ver solución
Nueve veces, porque 1/√9=1/3.
Ejercicio 3: intervalo
Una estimación vale 1.50 con error estándar 0.02. Construí el intervalo normal del 95 %.
Ver solución razonada
1.50±1.96·0.02=1.50±0.0392, aproximadamente [1.4608,1.5392].
Ejercicio 4: π
De 10000 puntos, 7860 caen dentro del círculo. Estimá π.
Ver solución
π̂=4·7860/10000=3.144.
Ejercicio 5: dimensión
Una cuadrícula utiliza 20 puntos por eje. ¿Cuántos necesita en dimensión 6?
Ver solución
20⁶=64,000,000 puntos. Este crecimiento exponencial motiva el uso de Monte Carlo.
17 · Síntesis
Ideas para recordar
- Monte Carlo expresa una integral como volumen por esperanza.
- El estimador básico es el promedio de muestras uniformes multiplicado por el volumen.
- Su error estándar disminuye como N⁻¹/².
- La varianza muestral permite cuantificar incertidumbre.
- Las semillas hacen reproducibles las secuencias pseudoaleatorias.
- Los intervalos de confianza son probabilísticos, no cotas deterministas.
- Aciertos y fallos estima áreas mediante variables indicadoras.
- La tasa de Monte Carlo no depende directamente de la dimensión.
- Reducir varianza puede ser más eficiente que aumentar muestras.
En el próximo tema comenzaremos ecuaciones diferenciales numéricas con los problemas de valor inicial: construir una trayectoria a partir de una condición inicial y una ley de cambio.