Upload
leugimzero
View
214
Download
0
Embed Size (px)
Citation preview
7/25/2019 examen 2 metodos numericos
1/7
Dentro de la computacin existe un conjunto de algoritmos destinados a la
determinacin de valores ptimos de constantes utilizadas en las ciencias exactas,
ejemplo de ello es el mtodo de Monte Carlo que se describe a continuacin:
1. El mtodo de Monte Carlo aplicado al clculo de PI
El mtodo
Dado que el rea del crculo es el rea del cuadrado
que lo circunscribe es !, la relacin entre ambas reas es
"!#
$sta relacin de reas es la misma en el cuadrantesuperior derec%o, donde se puede uno imaginar unos
ejes cartesianos con origen en el centro del crculo
amplitud & en cada eje#
$l mtodo consiste en elegir al azar puntos del
cuadrante 'con coordenadas x, comprendidas entre (
&), de tal *orma que se pueden contabilizar los puntos
que caen dentro del semicrculo#
+i el mtodo de elegir nmeros al azar es bueno se prueba un determinado nmero
su*iciente de veces, sea M, la relacin entre puntos que caen dentro del semicrculo puntos totales escogidos, debe ser una aproximacin a"!#
$l esbozo de programa secuencial que calculara -. de esta *orma es el siguiente:
enCirculo = 0;for(i=1; i
7/25/2019 examen 2 metodos numericos
2/7
!!piUno.c$ Pro%ra&a 'ue calcula el nu&ero PI &e"iante el &to"o!! "e Monte Carlo #aa"o en circulo "e ra"io 1 incrito en!! Cua"ra"o "e la"o .!! er&inacin controla"a -or$Numero de iteraciones
inclu"e
7/25/2019 examen 2 metodos numericos
3/7
!!piDos.c$ Pro%ra&a 'ue calcula el nu&ero PI &e"iante el &to"o!! "e Monte Carlo #aa"o en circulo "e ra"io 1 incrito en!! cua"ra"o "e la"o .!! er&inacin controla"a -or$ Error respecto de M_PI
inclu"e ?M@;
if ((x*x + y*y)
7/25/2019 examen 2 metodos numericos
4/7
!!piTres.c$ Pro%ra&a 'ue calcula el nu&ero PI &e"iante el &to"o!! "e Monte Carlo #aa"o en circulo "e ra"io 1 incrito en!! cua"ra"o "e la"o .!! er&inacin controla"a -or$ Error respecto piAnterior
inclu"e ?M@; y = ("ou#le) ran"o&() ! ("ou#le) 5>?M@; if ((x*x + y*y)
7/25/2019 examen 2 metodos numericos
5/7
Tablas de tiempos
Tabla-1. Tiempos de la versin piUno (#iteraciones)
# Iteraciones PI rror Tiempo (se!"mse!)
&((#((( 7,&!& 8 8 8 (,((( 8 8 8 :
(((#((( 7,&!& 8 8 8 (,((( 8 8 8 :
&(#(((#((( 7,&!& 8 8 8 (,((( 8 8 8 :
&((#(((#((( 7,&!& 8 8 8 (,((( 8 8 8 :
(((#(((#((( 7,&!& 8 8 8 (,((( 8 8 8 :
Tabla-. Tiempos de la versin piDos (error respecto de PI $ %.1&1''%'*)
# Iteraciones PI +ota del rror Tiempo (se!"mse!)
7,&!&9 8 8 8 8 8 (#(((((& :
7,&!&9 8 8 8 8 8 (#((((((& :
7,&!&9 8 8 8 8 8 (#(((((((& :
7,&!&9 8 8 8 8 8 (#((((((((& :
7,&!&9 8 8 8 8 8 (#(((((((((& :
Tabla-%. Tiempos de la versin piTres (error respecto de pi,nterior)
# Iteraciones PI rror +ota del rror T. (se!"mse!)
7,&7; 8 8 8 (,((/ 8 8 8 (#((((& :
7,&!& 8 8 8 (,((( 8 8 8 (#(((((& :
7,&!& 8 8 8 (,((( 8 8 8 (#((((((& :
7,&!& 8 8 8 (,((( 8 8 8 (#(((((((& :
7,&!& 8 8 8 (,((( 8 8 8 (#((((((((& :
2. APLICACIN UTILIZANDO PThreads
+e utilizar una versin ligeramente modi*icada del programa pi1no#c, llamada pi.c,
para tomar nuevamente tiempos de la ejecucin de la versin secuencial controlada por
un cierto nmero de iteraciones#
7/25/2019 examen 2 metodos numericos
6/7
Programa pi.c
!! -i.c$ Pro%ra&a 'ue calcula el nu&ero PI &e"iante el &eto"o "e!! Monte Carlo #aa"o en circulo "e ra"io 1 incrito en!! cua"ra"o "e la"o . Aerion ecuencial.!!
inclu"e
7/25/2019 examen 2 metodos numericos
7/7
Tabla es. PI con '**.***.*** semilla % &
Pro!rama+on procesos +on & procesos
se!"mse! /iciencia se!"mse! /iciencia
pi
pi2%reads
,0P+T0 D2 3,M4
4ealizar todos los programas de manera individual reportar el *uncionamiento
de los mismos el llenado de la tabla, entregando en *ormato electrnico los
resultados 'pantallas de corrida) la explicacin correspondiente#
0enerar el ejecutable de la versin paralela basada en t%reads para cada uno de
los programas anteriores
$jecutarlo con los mismos parmetros que en el caso secuencial, utilizando dos
procesos:piThreads 500000000 2 3 4.5notar el tiempo en la 2abla#
>acer lo mismo para cuatro procesos#
4eportar los resultados de las tablas en *ormato gr*ico