examen 2 metodos numericos

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