Integración de Monte Carlo

De testwiki
Ir a la navegación Ir a la búsqueda
Una ilustración de la integración de Montecarlo.

En matemáticas, se le conoce como integración de Monte Carlo a un método que utiliza números aleatorios para estimar el valor de una integral definida, este método es muy utilizado para evaluar integrales múltiples, es decir, integrales de la forma

Ωf(x1,,xm)dx1dxm

siendo Ωm.

La integración de Monte Carlo forma parte de una familia de algoritmos llamados genéricamente métodos de Monte Carlo, estos algoritmos utilizan números aleatorios para resolver diferentes tipos de problemas matemáticos y reciben su nombre debido al casino de Monte Carlo.

Generalidades

Considere una función f:[a,b] que es integrable en el intervalo abierto (a,b) y suponga que se desea evaluar la integral

abf(x)dx

siendo esta una integral complicada de evaluar de forma analítica.

Esta integral puede expresarse en términos de la esperanza de cierta variable aleatoria como sigue

abf(x)dx=(ba)E[f(X)]

donde f(X) es la variable aleatoria con XU(a,b), lo anterior es válido pues

E[f(X)]=f(x)gX(x)dx=abf(x)1badx=1baabf(x)dx

por lo que

abf(x)dx=(ba)E[f(X)]

siendo

gX(x)=1ba

la función de densidad de XU(a,b).

Entonces para calcular la integral hay que calcular la esperanza de f(X), lo que hace la Integración de Monte Carlo es estimarla.

Estimador

Lo que se busca es estimar E[f(X)] entonces por la Ley fuerte de los Grandes Números

E[f(X)]1ni=1nf(Xi)

por lo que

abf(x)dxbani=1nf(xi)

Mientras más grande sea n, es decir, si n, más exacta será la aproximación entonces

abf(x)dx=limnbani=1nf(xi)

Si en lugar de generar una muestra de XU(a,b) se genera de XU(0,1) entonces uno puede utilizar el Método de la transformada inversa para convertir la muestra al intervalo deseado. Si {xi}i=1n denota una muestra de tamaño n de XU(0,1) entonces para convertirla a una muestra de XU(a,b) se considera a+(ba)xi por lo que

abf(x)dx=limnbani=1nf(a+(ba)xi)

Algoritmo

Para evaluar una integral de la forma

abf(x)dx

se sigue el siguiente algoritmo

  1. Generar una muestra de tamaño n de XU(a,b).
  2. Evaluar cada elemento de la muestra en la función f.
  3. Calcular
bani=1nf(xi)

Ejemplo

A través de un ejemplo se ilustrará el método. El proceso consiste en calcular el área encerrada por una línea cerrada cualquiera que está incluida en un cuadrado de lado unitario (y área unitaria).

Al generar puntos al azar (mediante dos números aleatorios) se calcula la fracción que se establece entre la cantidad de puntos que caen dentro del área asociada a la curva y la cantidad total de puntos (o puntos en el cuadrado).

Supongamos que el área a calcular es un cuarto de círculo, de radio unitario, que está dentro de un cuadrado de lado unitario. La fracción será:


(Área del 1/4 círculo)/(Área del cuadrado unitario [0,1]×[0,1])=(Puntos en el 1/4 de círculo)/(Puntos en el cuadrado)=πr24


Para generar los puntos utilizamos dos sucesiones de números aleatorios R1 y R2. Si queremos saber si un punto pertenece al cuarto de círculo, establecemos, a partir de la ecuación del círculo, la condición de pertenencia:

R12+R221

Si se verifica la relación anterior, el punto pertenece al cuarto de círculo (y al cuadrado). De lo contrario pertenecerá solo al cuadrado.

Para el caso de una simulación con 25 pares de números aleatorios, es decir, para 25 puntos generados, nos dará una fracción tal como 2125=0,84, mientras que el área buscada será:

πr24=π40,785

La precisión del método se mejora utilizando una gran cantidad de simulaciones, siendo el error del orden del 0,001 cuando se emplean unos 15.000 puntos simulados.

Véase también

Plantilla:Control de autoridades