*/
Определенный интеграл
вычисляется по формуле прямоугольников следующим образом
где N – число отрезков, на которые разбивается интервал [a;b].
Задание:
Взяв N = 10, вычислить интеграл , сравнить с ответом (1/3).
Увеличивая N, убедится в том, что точность вычисления возрастает (N = 100, 10000, 1000000).
C помощью функции gettimeofday1 измерить время работы программы.
Разделить вычисление интеграла между процессами: процесс с номером k вычисляет часть суммы в точках xn, где (M – число процессов). Затем части суммы, вычисленные на каждом из процессов, складываются с помощью функции MPI_Reduce. Вывести на печать часть суммы на каждом процессе и общий результат.
С помощью Excel нарисовать зависимость времени вычисления от числа процессов (от 1 до 10 процессов).
С наибольшей возможной точностью (подберите необходимое число точек и число процессов) вычислить значение эллиптического интеграла (1.68575).
1 Пример вызова:
#include <sys/time.h>
….
struct timeval tv;
gettimeofday(&tv,NULL); /*время в секундах, начиная с 1 января 1970 года*/
s = tv.tv_sec /*секунды*/
ms = tv.tv_usec /*микросекунды*/