Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010...

10
Reto Intel VI Mayo 2010 Categoría Preparatorias Calcular el valor de PI con integración numérica El programa que se muestra en el Ejemplo 1 calcula el valor más cercano posible a PI mediante integración numérica empleando la regla del trapecio. Es decir, si tenemos que f(x) = 4 / (1-x 2 ), PI es el área que hay debajo de esta función desde x=0 hasta x=1. La regla del trapecio va tomando intervalos entre 0 y 1 donde va calculando el área de cada intervalo como se muestra en la Figura 1, al final la suma de todas las áreas es el valor de PI/4. El valor de PI se aproxima a un valor más exacto mientras los intervalos son más pequeños. Para propósitos de este reto estos intervalos son de 1/100,000,000, como se muestra en el ejemplo que se muestra en el Ejemplo 1 y esto implica 100,000,000 de cálculos que significan tiempo de utilización del CPU valor que no debe ser modificado. Figura 1. Cálculo del área debajo de una función con la regla del trapecio. 0 1

Transcript of Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010...

Page 1: Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010 Categoría Preparatorias Calcular el valor de PI con integración numérica El programa

Reto Intel VI

Mayo 2010

Categoría Preparatorias

Calcular el valor de PI con integración numérica

El programa que se muestra en el Ejemplo 1 calcula el valor más cercano posible a PI mediante

integración numérica empleando la regla del trapecio. Es decir, si tenemos que f(x) = 4 / (1-x2), PI

es el área que hay debajo de esta función desde x=0 hasta x=1.

La regla del trapecio va tomando intervalos entre 0 y 1 donde va calculando el área de cada

intervalo como se muestra en la Figura 1, al final la suma de todas las áreas es el valor de PI/4. El

valor de PI se aproxima a un valor más exacto mientras los intervalos son más pequeños. Para

propósitos de este reto estos intervalos son de 1/100,000,000, como se muestra en el ejemplo que

se muestra en el Ejemplo 1 y esto implica 100,000,000 de cálculos que significan tiempo de

utilización del CPU valor que no debe ser modificado.

Figura 1. Cálculo del área debajo de una función con la regla del trapecio.

0 1

Page 2: Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010 Categoría Preparatorias Calcular el valor de PI con integración numérica El programa

Reto Intel VI

Mayo 2010

Para desarrollar la versión paralela del programa Pi puedes hacerlo mediante hilos de Windows,

OpenMP o Intel Threading Building Blocks. Referencias sobre ello puedes encontrar en:

API de Windows: http://www.codeproject.com/KB/threads/Threads_1.aspx

OpenMP: https://computing.llnl.gov/tutorials/openMP/

Intel Threading Building Blocks

http://www.threadingbuildingblocks.org/documentation.php

#include <stdio.h>

#include <time.h>

long long num_steps = 100000000;

double step;

int main(int argc, char* argv[])

{

clock_t start, stop;

double x, pi, sum=0.0;

int i;

step = 1./(double)num_steps;

start = clock();

for (i=0; i<num_steps; i++)

{

x = (i + .5)*step;

sum = sum + 4.0/(1.+ x*x);

}

pi = sum*step;

stop = clock();

printf("The value of PI is %15.12f\n",pi);

printf("The time to calculate PI was %f seconds\n",((double)(stop - start)/1000.0));

return 0;

}

Ejemplo 1. Pi.cpp. Cálculo de PI mediante integración numérica (regla del trapecio).

Page 3: Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010 Categoría Preparatorias Calcular el valor de PI con integración numérica El programa

Reto Intel VI

Mayo 2010

Editar y compilar un programa en Visual Studio

A continuación se muestra una breve guía para editar y compilar un programa desde Visual Studio

2008. En este caso el ejemplo se basa en el de los números primos por lo que es el nombre que se

usa para los proyectos y archibos, pero este puede usarse con cualquier programa.

1.- Entrar a Visual Studio 2005/2008. En el menú File seleccionar New y después Project.

Page 4: Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010 Categoría Preparatorias Calcular el valor de PI con integración numérica El programa

Reto Intel VI

Mayo 2010

2.- Seleccionar Win32 Console Application y en la casilla Name introducir el nombre que tendrá el

proyecto

Page 5: Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010 Categoría Preparatorias Calcular el valor de PI con integración numérica El programa

Reto Intel VI

Mayo 2010

3.- Seleccionar el botón Next

Page 6: Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010 Categoría Preparatorias Calcular el valor de PI con integración numérica El programa

Reto Intel VI

Mayo 2010

4.- Seleccionar Console Application y Empty Project, terminar presionando el botón Finish.

Page 7: Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010 Categoría Preparatorias Calcular el valor de PI con integración numérica El programa

Reto Intel VI

Mayo 2010

5.- Añadir el archivo fuente. Seleccionar Source Files y presionar el botón derecho del ratón. En el

menú que se muestra a continuación seleccionar Add y posteriormente New Item.

Page 8: Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010 Categoría Preparatorias Calcular el valor de PI con integración numérica El programa

Reto Intel VI

Mayo 2010

6.- Seleccionar archivo: C++ File (.cpp) y en la casilla Name nombrar el archivo

Page 9: Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010 Categoría Preparatorias Calcular el valor de PI con integración numérica El programa

Reto Intel VI

Mayo 2010

7.- Para compilar puede hacerlo presionando <Ctrl><Alt><F7> o seleccionar en los menús Build ->

Rebuild Solution.

Page 10: Calcular el valor de PI con integración numérica · 2010-05-24 · Reto Intel VI Mayo 2010 Categoría Preparatorias Calcular el valor de PI con integración numérica El programa

Reto Intel VI

Mayo 2010

8.- Para ejecutarlo puede hacerlo presionando <Ctrl><F5> o desde el menú Debug->Start Without

Debugging