Está en la página 1de 15

UNIVERSIDAD DE LAS FUERZAS ARMADAS – ESPE

UNIDAD DE EDUCASIÓN CONTINUA

CURSO DE FUNDAMENTOS DE MATLAB

TEMA:

APLICACIÓN DEL MÉTODO DE MONTE CARLO


PARA EL CÁLCULO DE ÁREAS BAJO LA CURVA

INTEGRANTES:

MAXIMO DOS

ECUADOR – LATACUNGA – 2020

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


PARTE I

PLANTEAMIENTO DEL PROBLEMA

El método de Monte Carlo es un procedimiento que se aplica a sistemas de simulación en los que
existen variables de tipo estocástico, lo que implica el uso de probabilidades y su necesaria
aplicación para tratar de reducir la incertidumbre probabilística del modelo pudiendo así saber
cómo aproximarlo a la realidad luego de haberlo trabajado un número determinado de veces. Este
método pretende ser un generador de distribuciones de probabilidad y pretende también reducir la
incertidumbre probabilística por medio de la generación aleatoria de puntos y su relación con el
número de simulaciones.

Dentro del cálculo integral, específicamente, es muy frecuente encontrar integrales que resultan
difíciles de calcular debido a su gran extensión o por la poca exactitud de los resultados obtenidos,
causando retrasos y pérdidas de todo tipo.

Debido a la dificultad referida el presente trabajo plantea la posibilidad de optimizar el tiempo y


recursos que se requieren para calcular el área bajo la curva (integral definida) mediante el uso de
programación en Matlab que permita ingresar la integral y resolverla por los métodos de: el
trapecio, Simpson y Monte Carlo. Los dos primeros son métodos tradicionales de aproximación en
el cálculo de áreas, mientras que el método de Monte Carlo, al ser de tipo probabilístico depende
del número de eventos y de puntos. Por tal razón mientras mayor es número generado de puntos
y el de simulaciones, el resultado se acerca cada vez más al valor exacto de la integral.

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


PART II
CÁLCULOS

REGLA DEL TRAPECIO

La regla del trapecio es uno de los métodos más utilizados para calcular aproximaciones
numéricas de integrales definidas. Es la primera de las fórmulas cerradas de integración de
Newton – Cotes, para el caso cuando el polinomio interpolante es de grado uno.

La Regla del trapecio viene dada por la fórmula:

b
f ( a ) −f ( b)
A=∫ f ( x ) dx ≈( b−a)[ ¿]¿
a 2

El nombre regla del trapecio se debe a la interpretación geométrica que se hace de la fórmula.
Cuando el polinomio interpolante es de grado uno, su gráfica representa una línea recta en el
intervalo [a, b] que es el área del trapecio que se forma, como se muestra en la figura.

Fuente:
http://repositorio.uned.ac.cr/multimedias/metodos_numericos_ensenanza/modulo4/descripcion.ht
ml

REGLA COMPUESTA DEL TRAPECIO

Es de apreciar que el error que se llega a cometer con la regla del trapecio puede ser significativo.
Una mejor aproximación se obtiene dividiendo el intervalo de integración en sub intervalos y

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


aplicando en cada uno de ellos la regla trapecial. A este procedimiento se lo conoce como Regla
Trapecial Compuesta.

Fuente: http://ing.unne.edu.ar/computacion/pub/informatica/IN.pdf

Esta es la regla del trapecio para n sub intervalos. Cuantos más sub intervalos se usen, mejor
será la aproximación a la integral, hasta que la importancia de los errores por redondeo comience
a tomar relevancia.

La Regla compuesta del trapecio viene dada por la fórmula:

b
A=∫ f ( x ) dx ≈( b−a) ¿ ¿
a

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


REGLA DE SIMPSON 1/3

Además de la regla del trapecio, otra manera de obtener una estimación más exacta de una
integral es utilizar polinomios de orden superior para conectar los puntos. Por ejemplo, se pueden
conectar con un polinomio de tercer orden los puntos f(a), f(b) y el punto medio entre ellos. A las
fórmulas que resultan de calcular la integral bajo estos polinomios se les llama reglas de Simpson.

Fuente: http://ing.unne.edu.ar/computacion/pub/informatica/IN.pdf

Este método consiste en la aproximación del cálculo del área plana bajo una curva utilizando
trapecios curvilíneos a partir una interpolación con una función cuadrática:

b
( b−a ) a+b
A=∫ f ( x ) dx ≈ [f ( a ) +4 f ( ¿ )+ f (b)]¿
a 6 2

Esta aproximación es denominada “simple” debido a que utiliza tan solo un polinomio. Requiere el
conocimiento de tres puntos equiespaciados: los extremos y un punto central. Aplicando esta
expresión utilizando mayor cantidad de puntos intermedios (es decir, realizando más de un
Simpson 1/3 dentro del intervalo) puede definirse la variante “compuesta” del método para el cual
se utilizan N puntos que corresponden a n = N − 1 sub intervalos. Este caso requiere que la
cantidad de sub intervalos sean pares (el caso simple utiliza dos, por lo tanto este debe ser un
múltiplo). Por lo tanto, se define un valor h que corresponde al ancho del sub intervalo o el paso

b−a
que hay entre puntos. Se calcula como h= . Finalmente, la aproximación del área se puede
n
calcular como:

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


b
h
A=∫ f ( x ) dx ≈ ¿ ¿
a 3

MÉTODO DE MONTECARLO

El método de Montecarlo permite resolver problemas matemáticos mediante la simulación de


variables aleatorias. John Von Neumann, en los años 40 y con los primeros ordenadores, aplica la
simulación para resolver problemas complejos que no podían ser resueltos de forma analítica.
Montecarlo y su casino están relacionados con la simulación. La ruleta, juego estrella de los
casinos, es uno de los aparatos mecánicos más sencillos que nos permiten obtener números
aleatorios para simular variables aleatorias.

Una aplicación inmediata del método, es el cálculo de integrales definidas.

La simulación consiste en iterar un proceso lógico, expresado en términos de ecuaciones


matemáticas y operaciones lógicas, constitutivas de algún modelo matemático cuyos coeficientes
son parámetros que varían según un criterio determinado. La estructura iterativa o el carácter
combinatorio de la simulación lo da la sistemática variación de sus parámetros en cada paso o
iteración, cosa que se puede realizar haciendo intervenir al azar, o no, según el tipo de fenómeno
que se trata de simular y el modelo utilizado para describirlo. Cuando al menos una de las
variables que intervienen en el modelo es de tipo aleatorio, se estará en presencia de una
simulación estocástica, en caso contrario, cuando todas las variables que intervienen en el modelo
son deterministas, será una simulación determinista.

El método de Montecarlo es el siguiente para el cálculo de áreas:

b
ne
A=∫ f ( x ) dx ≈ ( b−a )∗M
a N

 ne=¿ Puntos de éxitos


 N=¿ Total de puntos dados
 M =¿ Cota superior

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


PART III
PROGRAMACIÓN EN MATLAB

ARCHIVO EJECUTABLE (main.m)

main.m
% Datos para las aproximacione
clear; clc;
a = -1;% limite inferior
b = 3;% limite superior
n = 2500;% numero de puntos aleatorios a generar para simulacion de montecarlo
sim = 100;% numero de simulaciones de montecarlo

m = 10;% numero de modos para trapecio y simpson


f = '0.5+x.*exp(-x.^2)';% funcion a evaluar

result1 = trapecio(a,b,m,f);
result2 = simpson(a,b,m,f);
result3 = 0;

%Se repite la simulacion de montecarlo n veces (entre mayor las repeticiones y


mayor cantidad de numeros aleatorios mejor la aproximación)
for i = 1:sim
result3 = result3 + areaMontecarlo(a,b,f,n);
end
result3 = result3/sim;
fprintf(' METODOS DE INTEGRACION \n');
fprintf('__________________________________________________________\n');
fprintf('| TRAPECIO | SIMSOMP | MONTECARLO \n');
fprintf('__________________________________________________________\n');
fprintf('| %f | %f | %f \n', result1, result2, result3);
fprintf('__________________________________________________________\n');

REGLA COMPUESTA DEL TRAPECIO (trapecio.m)

function T = trapecio(a,b,m,fs)

f = inline(fs);
h = (b-a);
h = h/m;
T = 0;
g = 0;
p = 0;

for k = 1:(m-1)
g = k*h;
x = a + g;

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


p = feval(f,x);
T = T + p;
end

punto_a = a;
punto_b = b;

T = h*(feval(f,punto_a) + feval(f,punto_b))/2+h*T;
end

REGLA DE SIMPSON (simpson.m)

function s = simpson(a,b,m,fs)
f = inline(fs);
h = (b-a)/(2*m);
s1 = 0;
s2 = 0;
s3 = 0;

s1 = (h/3)*(feval(f,a) + feval(f,b));

for k = 1:(m-1)
x = a + 2*k*h;
s2 = s2 + feval(f,x);
end
s2 = ((2*h)/3)*s2;

for k = 1:m
x = a + h*(2*k-1);
s3 = s3 + feval(f,x);
end
s3 = ((4*h)/3)*s3;
s = s1 + s2 + s3;
end

MÉTODO DE MONTE CARLO (áreamontecarlo.m)

function area = areaMontecarlo(a,b,fs,n)


f = inline(fs);
A = [a:0.1:b];% ojo
B = f(A);
m = max(B) + max(B)*0.2;% se calcula la altura del trapecio

counter = 0;

for i = 1:n
%Se generan los puntos aleatorios que cumplen las comdiciones la funcion
rand genera un numero seudoaleatorio entre 0 y 1
xi(i) = (b-a)*rand + a;
yi(i) = rand*m;

% Se evalua los puntos en x(i) en la funcion

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


fxi(i) = f(xi(i));% f(xi)

% se verifica que los puntos generados esten o no bajo la funcion


if (yi(i) <= fxi(i))
counter = counter +1;
% Los arreglos true contienen las cordenadas de los puntos que estan
bajo la funcion.
trueX(i) = xi(i);
trueY(i) = yi(i);
end
end
% Se calcula el area aproximada
area = m*(b-a)*counter/n;

%Se generan los puntos aleatorios los puntos que estan baja la funcion y la
funcion respectivamente.
graficar(xi,yi,trueX,trueY,A,B,a,b,m,fs);
end

GRÁFICA DEL MÉTODO DE MONTE CARLO (graficar.m)

function g = graficar(xi,yi,trueX,trueY,A,B,a,b,m,fs)

% Se crean las graficas:


scatter(xi,yi,'*y');% grafico de dispercion para los puntos aleatorios
hold on % hacemos que nuestra grafica quede en pantalla y no se borre
grid on
scatter(trueX,trueY,'*g');% graficar la dispercion para los puntos aleatorios
bajo la curva

hold on % hacemos que nuestra grafica quede en pantalla y no se borre


grid on
plot(A,B,'b','linewidth',2); % Grafico de la funcion evaluada

% Se agraga titulo y labels a la grafica:


xlabel('Rango a - b');
ylabel('Altura M');
title(['AREA BAJO LA CURVA SIMULACION MONTECARLO DE:',fs]);
legend('Puntos aleatorios fuera de la curva','Puntos aleatorios bajo la
curva','Funcion');

% Se establese los limites de la grafica:


xlim([a,b]);
ylim([0,m]);
end

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


PROBLEMAS RESUELTOS

Para calcular el área bajo la curva de cualquier función se debe manipular el archivo (main.m) ya
que es el archivo principal.
 f: es la función a evaluar.
 a y b: son los intervalos en x donde vamos a evaluar f.
 n: número de puntos aleatorios a graficar
 sim: número de simulaciones
 m: número de modos para trapecio y simpson

3
3
Calcular el área bajo la curva de ∫ 0.5 x dx =¿ , con los siguientes parámetros.
−1

PROBLEMA 1:

% Datos para las aproximacione


clear; clc;close
a = -1;
b = 3;
n = 20;
sim = 1;

m = 10;
f = '(0.5).*x.^3';

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


METODOS DE INTEGRACION
__________________________________________________________
| TRAPECIO | SIMSOMP | MONTECARLO
__________________________________________________________
| 10.160000 | 10.000000 | 6.480000
__________________________________________________________

PROBLEMA 2

a = -1;
b = 3;
n = 20;
sim = 5;

m = 10;
f = '(0.5).*x.^3';

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


METODOS DE INTEGRACION
__________________________________________________________
| TRAPECIO | SIMSOMP | MONTECARLO
__________________________________________________________
| 10.160000 | 10.000000 | 14.256000
__________________________________________________________

PROBLEMA 3
% Datos para las aproximacione
clear; clc;close
a = -1;
b = 3;
n = 200;
sim = 10;

m = 10;
f = '(0.5).*x.^3';

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


METODOS DE INTEGRACION
__________________________________________________________
| TRAPECIO | SIMSOMP | MONTECARLO
__________________________________________________________
| 10.160000 | 10.000000 | 9.558000
__________________________________________________________

PROBLEMA 4
% Datos para las aproximacione
clear; clc;close
a = -1;
b = 3;
n = 20000;
sim = 10;

m = 10;
f = '(0.5).*x.^3';

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


METODOS DE INTEGRACION
__________________________________________________________
| TRAPECIO | SIMSOMP | MONTECARLO
__________________________________________________________
| 10.160000 | 10.000000 | 10.038492
__________________________________________________________
PART IV
CONCLUSIÓN

Se concluye que el Método de Monte Carlo permite calcular el área bajo la curva de una integral
definida mediante una aproximación de simulaciones numéricas, donde dicha aproximación
depende del número puntos n y las simulaciones a realizar. Donde la relación entre el número de
simulaciones y los puntos a evaluar es directamente proporcional a la aproximación del área
calculada.

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)


PART V
BIBLIOGRAFIA

TEMA – Aplicación Matlab © Universidad de las Fuerzas Armadas (ESPE)

También podría gustarte