01 · Punto de partida
Ancho 1, todo simple
Si el intervalo es (0,1), el factor (b−a) vale 1 y desaparece: ∫₀¹ f = E[f(U)]. Sortear U, evaluar f y promediar. Es el ladrillo con el que se construyen todos los demás casos.
Todo intervalo (a,b) y todo dominio raro se reducen a este caso con un cambio de variable.
- ¿Mi integral ya está en (0,1)?
- ¿Qué f evalúo por réplica?
- ¿Qué error tiene mi promedio?
- ¿Cómo la llevo a (a,b) si hace falta?
02 · Definición
La fórmula más corta del curso
U
Uniforme(0,1) directo de random(). Sin transformar.
f(U)
La altura por réplica. Su promedio es la integral.
s/√N
El error sin escalas: el desvío de f sobre √N.
| f | Integral 0–1 | σ aprox |
|---|---|---|
| x² | 1/3 ≈ 0,3333 | 0,30 |
| √x | 2/3 ≈ 0,6667 | 0,24 |
| e^(−x) | 1 − 1/e ≈ 0,6321 | 0,18 |
03 · Algoritmo
Tres líneas y listo
- 1Sortear U.
u = random.random(). Nada más. - 2Evaluar.
y = f(u): x², √x, e^(−x). - 3Promediar ±.
m ± 1,96·s/√N. Ese es el informe.
- Referencia
- Todo (a,b) se mapea a (0,1) con x = a + (b−a)u. Entender (0,1) es entender todo.
- Función suave
- Si f es suave, s es chico y converge rápido. e^(−x) converge mejor que √x (pico en 0).
- Test
- Probar con x² = 1/3 antes de integrar lo desconocido: si falla ahí, falla en todo.
04 · Ejemplos
El trío de prueba
- 1x² → 1/3.
El «hola mundo»: parábola suave, σ ≈ 0,30.
- 2√x → 2/3.
Pendiente infinita en 0: un poco más ruidosa.
- 3e^(−x) → 0,6321.
Plana y amable: la más fácil de las tres.
05 · Representación en Python
El integrador base
Python en tu navegador. Tres funciones, un patrón.
import random
import math
def integrar01(f, N):
s = sum(f(random.random()) for _ in range(N))
return s / N
N = 20000
print("x^2:", integrar01(lambda x: x**2, N), "(1/3)")
print("sqrt:", integrar01(math.sqrt, N), "(2/3)")
print("exp(-x):", integrar01(lambda x: math.exp(-x), N), "(0.6321)")
06 · Exploración
Laboratorio: tres curvas, un método
Elegí la función y las muestras. La curva es f; los puntos son (Uᵢ, f(Uᵢ)); la amarilla tu media y la gris el valor exacto.
El caso base a ojo
Î = promedio(f(U))
Tocá «Integrar» para promediar.
e^(−x) es plana y se calma rápido; √x tiene pico en 0 y tiembla más. La forma de f manda el error.
Preguntas para explorar
- Con N = 500, ¿qué función se acerca más a su exacta?
- ¿Por qué √x tiembla más que e^(−x)?
- ¿Qué N necesita cada una para ±0,005?
Ver respuestas sugeridas
- e^(−x): σ ≈ 0,18 contra 0,30 de x². Menos σ, menos temblor.
- Su pendiente en 0 es infinita: valores muy dispersos cerca de 0. Más varianza.
- N ≈ (1,96·σ/0,005)²: ~13 800 para x², ~8 800 para √x, ~5 000 para e^(−x).
07 · Comprensión
Confusiones frecuentes
«En (0,1) hay que multiplicar por algo»
No: el ancho es 1. Multiplicar por 1 es el error más común al copiar código de (a,b).
«Toda integral ya está en (0,1)»
Solo si la llevaste con cambio de variable. (a,b) e infinitos piden escala (temas 20–22).
«f debe estar entre 0 y 1»
No: f puede valer 100. Lo que está en (0,1) es x, no f(x). Promediar vale igual.
«Si f es rara no vale»
Vale si es integrable (área finita). √x tiene pico infinito y se integra perfecto.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: validar el trío
Estimá las tres con N = 20 000.
import random
import math
N = 20000
print(sum((random.random()**2) for _ in range(N)) / N)
print(sum((math.sqrt(random.random())) for _ in range(N)) / N)
print(sum((math.exp(-random.random())) for _ in range(N)) / N)
Ver solución razonada
~0,333 / ~0,667 / ~0,632. Si alguna se aleja más de 0,01, repetí: fue una mala semilla.
Ejercicio 2: error de cada una
Calculá s y SE para x² con N = 5 000.
import random
import statistics
import math
vals = [random.random()**2 for _ in range(5000)]
s = statistics.pstdev(vals)
print(round(s, 3), round(s / math.sqrt(5000), 4))
Ver solución
s ≈ 0,298, SE ≈ 0,0042. Informe: 0,333 ± 0,004.
Ejercicio 3: la más fácil
¿Cuál de las tres necesita menos N para ±0,005? Justificá con σ.
Ver una posible respuesta
for nombre, sigma in [("x2", 0.30), ("sqrt", 0.24), ("exp", 0.18)]:
N = int((1.96 * sigma / 0.005) ** 2) + 1
print(nombre, N)
e^(−x) con ~5 000. Menos σ = menos N: la forma manda.
09 · Síntesis
Ideas para recordar
- En (0,1): integral = promedio de f(U), sin escalas.
- Error s/√N: la forma de f (su σ) manda el costo.
- x² = 1/3 es el test unitario de todo integrador.
- Todo lo demás (a,b), múltiple, infinito se reduce a este caso.
- En Python:
sum(f(random()) for _)/N.
En el próximo tema escalaremos a intervalos (a,b): el mismo promedio por el ancho.