Sunteți pe pagina 1din 25

Universidad Autónoma de Nuevo León

Facultad de Ciencias Fı́sico Matemáticas

Simunlación
Área y volúmen con Monte Carlo

Alumno: Luis Alberto Maltos Ortega


Matricula: 1390200

San Nicolás de los Garza a 28 de Octube de 2010

1
Áreas y Volúmenes con Monte Carlo

1.- Determina analı́ticamente y por medio del método de Montecarlo el volu-


men que se encuentra dentro de las esferas de radio 1 y centro en el origen y fuera
de la esfera con centro en el origen y radio 1/2. Si usas el comando view(0,0)
de Matlab observarás la figura de la derecha, encuentra el área entre las dos
circunferencias tanto analı́ticamente y por medio del método de Montecarlo.

El volumen entre estas dos esferas esta dado por la ecuacion:


( ( )3 )
4 1
π 1− ≈ 3.665191429
3 2

y el area entre los dos circulos esta dado por:


( ( )2 )
1
π 1− ≈ 2.35619449
2

Con el siguiente programa se puede calcular el volumen con Monte Carlo


function V = Montecarlo1(n)
N = 2 * rand(n,3) - 1;
c = 0;
for i = 1:n
if N(i,:)*N(i,:)’ < 1
if N(i,:)*N(i,:)’ > .25
c++;
endif
endif
endfor
V = 8 * c / n;
endfunction

2
Los resultados obtenidos son los siguientes, con n puntos repetidos m veces
m,n 10 100 1000 10000
10 3.36 3.752 3.6496 3.6481
100 3.832 3.6424 3.6558 3.666
1000 3.6968 3.6774 3.6685 3.6649
y para repeticiones de 100 en 100 con 1000 puntos cada una se obtiene la sigu-
iente grafica:

Para calcular el área a travez del metodo de Monte Carlo se usa el siguiente
programa
function A = Montecarlo1a(n)
N = 2 * rand(n,2) - 1;
c = 0;
for i = 1:n
if N(i,:)*N(i,:)’ < 1
if N(i,:)*N(i,:)’ > .25
c++;
endif
endif
endfor

3
A = 4*c/n;
endfunction

Los resultados obtenidos con n puntos repetidos m veces son


m,n 10 100 1000 10000
10 2.53 2.44 2.3712 2.3605
100 2.3 2.38 2.3491 2.3544
1000 2.3488 2.3569 2.3571 2.3561
y para repeticiones de 100 en 100 con 1000 puntos cada una se obtiene la sigu-
iente grafica:

Asi tenemos los mejores valores para el volumen y el area, que son V = 3.6649
y A = 2.3561, cuyas diferencias son menores a 0.0003 y 0.00009.

2.- Determina analı́ticamente y por medio del método de Monetecarlo el vol-


umen de la intersección de loas esferas de radio 1 y centro en el orgien y la
otra con centro en el ( 12 , 12 , 0) y radio 1/2. Si usas el comando view(0,90) de
Matlab observarás la figura de la derecha, encuentra el área encerrada entre
las dos circuentedencias analı́ticamente y por medio del método de Montecarlo.

4
El volumen entre las esferas se puede calcular con integrales triples o con el
siguiente programa usando el metodo montecarlo
function V = Montecarlo2(n)
N = rand(n,3);
c = 0;
for i = 1:n
if (N(i,:)-[.5 .5 0])*(N(i,:)-[.5 .5 0])’ < .25
if N(i,:)*N(i,:)’ < 1
c++;
endif
endif
endfor
V = 2 * c / n;
endfunction

Volumen con Montecarlo, calculado con el programa anterior, para n puntos,


promediados de m corridas.
m,n 10 100 1000 10000
10 0.48 0.52 0.3952 0.4312
100 0.464 0.42 0.43032 0.43625
1000 0.408 0.44624 0.43056 0.43563
Se obtuvo el siguiente grafico, con 10,000 corridas de 1000 putnos cada una, y
promedidado cada 100

5
Para el calculo del area se complica un poco tambien, asi que se puede
obtener mediante montecarlo con el siguiente programa

function A = Montecarlo2a(n)
N = rand(n,2);
c = 0;
for i = 1:n
if (N(i,:)-[0.5 0.5])*(N(i,:)-[0.5 0.5])’ < .25
if N(i,:)*N(i,:)’ < 1
c++;
end
end
end
A = c / n;
end
Área con Montecarlo para n putos y promedidada de m repeticiones
m,n 10 100 1000 10000
10 0.68000 0.64800 0.65720 0.64308
100 0.68800 0.66160 0.63748 0.63882
1000 0.63280 0.63764 0.64036 0.63919

6
Se obtuvo la siguiente grafica de 10,000 corridas con 1,000 putos cada una y
promediando a cada 100.

3.- La superficie que se generea al girar la parabola f (x) = −x2 + 1 alrededor


del eje y tiene las siguientes ecuaciones parametricas:

x= t cos θ t ∈ [−1, 1]
y= t sin θ θ ∈ [0, 2π]
z= −t2 + 1

Determina analı́ticamente y por medio del método de Montecarlo el volumen que


se encuentra encerrado por la superficie de revolulción y el plano z = 0. Si usas
el comando view(0,0) de Matlab observarás la figura de la derecha, encuentra el
área entre el paraboloide y el eje x analı́ticamente y por medio del método de
Montecarlo.

7
Para el volumen calculado de forma analı́tica podemos usar una doble inte-
gral, de la funcion z = 1 − x2 + y 2 dentro de la circunferencia con centro en el
origen y radio 1. √
∫1 ∫1−y
2

V = 1 − x2 − y 2 dxdy
−1 −

1−y 2

que despues de una transformacion queda una integral mas amigable

∫2π∫1
π
(1 − r2 )rdrdθ = ≈ 1.570796
2
0 0

Para calcular el volumen a travez del metodo de Monte Carlo usamos el siguiente
programa

function V = Montecarlo3(n)
N = 2 * rand(n,2) - 1;
z = rand(n,1);
c = 0;
for i = 1:n
if z(i) > 0
if N(i,:)*N(i,:)’ + z(i) < 1
c++;
endif
endif
endfor
V = 4 * c / n;
endfunction

Obteniendo los siguientes resultados:

8
m,n 10 100 1000 10000
10 1.5600 1.6120 1.5336 1.5779
100 1.4840 1.5688 1.5880 1.5710
1000 1.5724 1.5666 1.5714 1.5711

Vemos que la aproximacion con n = 10000 y m = 1000 genera una buena


resultado cuyo error es menor a 0.0005
Para calcular el área de forma analı́tica solo basta una integral mas simple

∫1
4
A= 1 − x2 dx = ≈ 1.33333
3
−1

Para usar el metodo de Monte Carlo usamos el siguiente programa


function A = Montecarlo3a(n)
N = 2 * rand(n,1) - 1;
z = rand(n,1);
c = 0;
for i = 1:n
if z(i) > 0
if N(i)^2 + z(i) < 1
c++;

9
endif
endif
endfor
A = 2 * c / n;
endfunction
Con la cual se obubieron los siguientes resultados
m,n 10 100 1000 10000
10 1.3600 1.3520 1.3480 1.3396
100 1.4000 1.3180 1.3362 1.3333
1000 1.3404 1.3306 1.3360 1.3323

4.- La superficie que se genera al girar las funcions f (x) = cos4 x + 14 y g(x) =
2−cos x
4 + 14 , alrededor del eje y tiene las siguientes ecuaciones paramétricas:

x = t cos θ t ∈ [0, 4π] x = t cos θ t ∈ [0, 4π]


y = t sin θ θ ∈ [0, 2π] y = t cos θ θ ∈ [0, 2π]
cos t 1 2 − cos t 1
z= + z= +
4 4 4 4
Determina analı́ticamente y por medio del método de Monte Carlo el volumen
que se encuentra encerrado entre las dos superficies. Encuentra el área encerrada

10
por las gráficas de f y g tanto analı́ticamente como por medio del método de
Monte Carlo.

El volumen de la superficie de revolución lo podemos calcular con una integral


doble como sigue:
∫2π∫4π ( )
2 − cos t 1 cos t 1
+ − + dtdθ = 8π 2 ≈ 248.050213442
4 4 4 4
0 0

Con el siguiente programa se puede calcular el volumen usando el metodo Monte


Carlo
function V = Montecarlo4(n)
N = 28*rand(n,2)-14;
z = rand(n,1);
c = 0;
for i = 1:n
if (r = sqrt(N(i,:)*N(i,:)’)) < 4*pi
if 4*z(i)-1 > cos(r)
if cos(r) < 3-4*z(i)
c++;
endif
endif
endif
endfor
V = 784*c/n;
endfunction
el cual da los siguientes resultados para valores distintos de n y m.
m,n 10 100 1000 10000
10 250.88 223.44 247.90 248.67
100 244.61 252.84 248.08 247.60
1000 247.12 250.68 248.91 247.99
Y para 10,000 iteraciones con mil puntos cada unabated, se obtubo la siguiente
grafica, promediada en cada 100 iteraciones.

11
Los errores que se tubieron en los casos de n y m mayores son menores a 0.07.
Para calcular el área analı́ticamente podemos hacer una integral
∫4π
1 cos t
− dt = 2π ≈ 6.283185307
2 2
0

Corriendo el siguiente programa para valores distitntos de n y m tenemos la


tabla siguiente al programa
function A = Montecarlo4a(n)
N = 4 * pi * rand(n,1);
z = rand(n,1);
c = 0;
for i = 1:n
if 4*z(i) > cos(N(i))+1
if cos(N(i))< 3-4*z(i)
c++;
endif
endif
endfor
A = 4 * pi * c / n;
endfunction

12
m,n 10 100 1000 10000
10 5.9062 6.3586 6.2392 6.3087
100 6.3837 6.3762 6.2817 6.2803
1000 6.2756 6.2589 6.2921 6.2833

Y aplicando 10,000 iteraciones con 1000 puntos cada una, se obtiene la siguiente
grafica, que promedia cada 100 iteraciones:

Obteniendo errores menores a 0.0003, un poco menos que en el volumen.

5.- La superficie que se generea al girar la función f (x) = e−x sin x alrededor
del eje x tiene las siguientes ecuaciones paramétricas:

x=t t ∈ [0, π]
−t
y = e sin t cos θ θ ∈ [0, 2π]
z = e−t sin t sin θ

Determine analı́ticamente y por medio del método de Montecarlo el volumen


que se encuentra encerradon por la superficie de revolución. En la figura de a
derecha se encuentra gradicada f (x) y −f (x), encuenta el área encerrada por
ellas, analı́ticamente y por medio del método de Montecarlo.

13
Para calcular analı́ticamente el volumen de la superficie de revolucion, usando
una sola integral obtenemos:
∫π
π( )
π e−2x sin2 xdx = 1 − e−2π ≈ 0.391965739
8
0

Podemos usar el métod Montecarlo con el siguiente programa, para calcular el


volumen:
function V = Montecarlo5(n)
N = rand(n,2)-0.5;
x = pi*rand(n,1);
c = 0;
for i = 1:n
if sqrt(N(i,:)*N(i,:)’) < exp(-x(i))*sin(x(i))
c++;
endif
endfor
V = pi*c/n;
endfunction

Del cual se obtienen los siguientes resultados, para n puntos, promedidados de


m corridas.
m,n 10 100 1000 10000
10 0.34558 0.38956 0.39396 0.39103
100 0.40212 0.39521 0.38880 0.39190
1000 0.40024 0.39220 0.39258 0.39198
y la siguiente grafica que son 10,000 corridas para 1000 puntos cada una, pro-
mediada cada 100 corridas.

14
Obteniendo un error minimo de 0.00002 para el mayor de los casos.
Para calcular analı́ticamen el área se usa una sola integral
∫π
2 e−x sin xdx = 1 + e−π ≈ 1.043213918
0

Y utilizando el método de Montecarlo podemos usar el siguiente programa de


Octave
function A = Montecarlo5a(n)
y = rand(n,1)/2;
x = pi*rand(n,1);
c = 0;
for i = 1:n
if y(i) < exp(-x(i))*sin(x(i))
c++;
endif
endfor
A = pi*c/n;
endfunction
Obteniendo para n cantidad de puntos, un promdeio de m corridas mostrado
en la siguiente tabla

15
m,n 10 100 1000 10000
10 0.84823 1.07128 1.07097 1.03685
100 1.07442 1.04772 1.04681 1.04352
1000 1.05526 1.03792 1.04078 1.04335
Y la siguiente grafica muestra 10,000 corridas, promedidadas cada 100

Se obtiene un error minimo de 0.001 para el mas grande de los casos

xe− sin x
6.- La superficie que se genera al girar la función f (x) = 100 alrededor
del eje x tiene las siguientes ecuaciones paramétricas:

x = t t ∈ [0, 6π]
− sin t
te cos θ
y= θ ∈ [0, 2π]
100
te−sint sin θ
z=
100
Determina analı́ticamente y por medio del método de Montecarlo el volumen
que se encuentra encerrado por la superficie de revolución. En la figura de la
derecha se encuentra graficadas f (x) y −f (x), encuentra el área encerrada por
ellas, analı́ticamente y por medio del método de Montecarlo.

16
Para calcular el volumen de forma analt́ica tenemos que calcular la siguiente
integral, que no se puede calcular analı́ticamente, asi damos una aproximacion
numerica con una particion regular, con el metodo de rectangulos

∫6π

x2 e−2 sin x dx ≈ 1.9345
104
0

Para usar el metodo Montecarlo usamos el siguiente programa


function V = Montecarlo6(n)
N = 2*rand(n,2)-1;
x = 6*pi*rand(n,1);
c = 0;
for i = 1:n
if sqrt(N(i,:)*N(i,:)’) < x(i)*exp(-sin(x(i)))/100
c++;
endif
endfor
V = 24*pi*c/n;
endfunction

El cual nos arroja los siguientes resultados para n puntos promedidados en m


corridas
m,n 10 100 1000 10000
10 2.2619 3.0159 1.7719 1.9257
100 1.8850 1.9377 2.0199 1.9427
1000 1.8774 1.9453 1.9455 1.9295
Y la siguiente grafica donde se muestran 10,000 corridas con 1000 puntos cada
una, promediada cada 100 iteraciones

17
Para calcular el área tenemos algo similar con la integral, asi que se aproximara
de forma numerica
∫6π − sin x
xe
dx ≈ 4.9190
100
0

Para usar el método Montecarlo usamos el siguiente programa


function A = Montecarlo6a(n)
N = rand(n,1);
x = 6*pi*rand(n,1);
c = 0;
for i = 1:n
if 100*N(i) < x(i)*exp(-sin(x(i)))
c++;
endif
endfor
A = 12*pi*c/n;
endfunction

el cual nos da los siguientes resultados para n puntos y promediados con m


corridas

18
m,n 10 100 1000 10000
10 2.2619 5.0894 4.7350 4.9047
100 5.4287 4.7991 4.8681 4.9227
1000 4.8933 4.9427 4.9281 4.9223
y la siguiente grafica, para 10,000 corridas de 1000 puntos cada una promedida
cada 100 corridas.

Como se han usado metodos numericos para calcular la integral, no podemos


decir mucho sobre el error, pero se ve que hay cietra proximidad en ambos
resultados, esta son menores a 0.005 y 0.004, que es bastante para no saber
nada sobre el valor real de la integral.
( )
7.- La superficie que se genera al girar la función f (x) = 23 | ln sin(x + 23 π) + 2 |
alrededor del eje x tiene los siguientes ecuaciones paramétricas:

x=t t ∈ [0, 6π]


( )
3 3
y = ln sin(x + π) + 2 cos θ θ ∈ [0, 2π]
2 2
( )
3 3
z = ln sin(x + π) + 2 cos θ
2 2

19
Determina analı́ticamente y por medio del metodo de Montecarlo el volumen
que se encuentra encerrado por la superfice de revolución. En la figura de la
derecha se encuentra graficadas f (x) y −f (x), encuentra el área encerra por
ellas, analı́ticamente y por medio del método de Montecarlo.

Para calcular el área es necesario resolver la siguiente integral, que no es posible


resolver, por metodos de integracion conocidos, asi se aproxima numericamente

∫6π ( ( ))
9π 3
ln2 sin x + π dx ≈ 71.336
4 2
0

Para calcular el volumen con el método de Montecarlo utilizamos el siguiente


programa

function V = Montecarlo7(n)
N = 6*rand(n,2)-3;
x = 6*pi*rand(n,1);
c = 0;
for i = 1:n
if 2*sqrt(N(i,:)*N(i,:)’) < 3*abs(log(sin(x(i)+3*pi/2)+2))
c++;
endif
endfor
V = 216*pi*c/n;
endfunction
Se tiene la siguiente tabla donde se muestran los promedios de m corridas para
n puntos
m,n 10 100 1000 10000
10 47.501 73.287 67.858 70.912
100 78.037 68.062 72.310 71.139
1000 69.487 72.500 71.405 71.397
La siguiente grafica muestra, 10,000 corridas con 1000 puntos, promediadas cada
100

20
Para calcular el área analı́ticamente, tenemos una integral un poco parecida, asi
que la calculamos numericamente
∫6π ( ( ))
3
ln sin x + 3 π dx ≈ 35.276
2 2
0

Para usar el método Montecarlo, basta el siguiente programa


function A = Montecarlo7a(n)
y = 3*rand(n,1);
x = 6*pi*rand(n,1);
c = 0;
for i = 1:n
if 2*y(i) < 3*abs(log(sin(x(i)+3*pi/2)+2))
c++;
endif
endfor
A = 36*pi*c/n;
endfunction
Con lo cual se obtubieron los siguientes resultados, para n puntos, promediados
en m corridas

21
m,n 10 100 1000 10000
10 37.322 35.060 35.128 35.195
100 36.644 34.710 35.159 35.288
1000 35.004 35.260 35.208 35.263
y el siguiente grafico que representa 10,000 corridas promediadas a cada 100.

Los errores que se esitman son de 0.07 para el volumen y 0.01 para el área, ya
que no es posible obtener estos de forma analı́tica.

[x]x+10
8.- La superficie que se genera al girar la función f (x) = 400 alrededor del
eje x tiene lás siguientes ecuaciones paramétricas:

x = t t ∈ [−4π, 4π]
[x]x + 10
y= cos θ θ ∈ [0, 2π]
400
[x]x + 10
z= sin θ
400
Determina analı́ticamente y por medio del metodo Montecarlo el volumen que
se encuetra encerrado por la superficie de revolución. En la figura de la derecha
se encuetra graficadas f (x) y −f (x), encuetra el área encerrada por ellas,

22
analı́ticamente y por medio del método de Montecarlo (La función no es con-
tinua).

Para calcular esta integral que nos da el volumen de forma analı́tica es facil si
se calula por partes, de entero a entero
 −12 
∫4π ∫ ∑
11 ∫
n+1 ∫4π
π f 2 (x)dx = π  f 2 (x)dx + f 2 (x)dx + f 2 (x)dx
−4π −4pi n=−12 n 12

∫4π ( )2
[x]x + 10
π dx ≈ 3.045046338
400
−4π

Para utilizar el metodo de Montecarlo usamos el siguiente programa en Ocatve


function V = Montecarlo8(n)
N = 4*rand(n,2)-2;
x = 8*pi*rand(n,1)-4*pi;
c = 0;
for i = 1:n
if 400*sqrt(N(i,:)*N(i,:)’) < floor(x(i))*x(i)+10
c++;
endif
endfor
V = 128*pi*c/n;
endfunction
El cual nos da los siguientes resultados, para n puntos, promedidados de m
corridas
m,n 10 100 1000 10000
10 0.00000 3.61911 2.89529 3.19688
100 3.61911 2.97572 2.95963 2.97813
1000 2.89529 3.20091 3.04086 3.04424
Y para 10,000 corridas con 1000 puntos cada una, obtenemos el siguiente grafico,
promediado en cada 100 corridas

23
Para calcular el área, se tiene algo similar al volumen, la integral que se tiene
es
∫4π
[x]x + 10
dx ≈ 7.876241463
400
−4π

Para usar el metodo montecarlo utilizamo el siguiente programa


function A = Montecarlo8a(n)
y = 2*rand(n,1);
x = 4*pi*rand(n,1);
c = 0;
for i = 1:n
if 400*y(i) < floor(x(i))*x(i)+10
c++;
endif
endfor
A = 32*pi*c/n;
endfunction

Y obtenemos lo siguiente para n puntos promediados de m corridas

24
m,n 10 100 1000 10000
10 8.0425 6.9366 7.4996 7.5579
100 5.9313 7.6102 7.4805 7.4769
1000 6.8663 7.5137 7.4179 7.4938
Y el siguiente grafico que muestra 10,000 corridas con 1000 puntos cada una y
promedidas cada 100.

Se obtubieron errores de 0.01 para el volumen y 0.5 para el área, probablemente


haya habido un error en el calculo del área en la forma analı́tica.

25

S-ar putea să vă placă și