Вычисление определенного интеграла

*/

Определенный интеграл

вычисляется по формуле прямоугольников следующим образом

где N – число отрезков, на которые разбивается интервал [a;b].

Задание:

  1. Взяв N = 10, вычислить интеграл , сравнить с ответом (1/3).

  2. Увеличивая N, убедится в том, что точность вычисления возрастает (N = 100, 10000, 1000000).

  3. C помощью функции gettimeofday1 измерить время работы программы.

  4. Разделить вычисление интеграла между процессами: процесс с номером k вычисляет часть суммы в точках xn, где (M – число процессов). Затем части суммы, вычисленные на каждом из процессов, складываются с помощью функции MPI_Reduce. Вывести на печать часть суммы на каждом процессе и общий результат.

  5. С помощью Excel нарисовать зависимость времени вычисления от числа процессов (от 1 до 10 процессов).

  6. С наибольшей возможной точностью (подберите необходимое число точек и число процессов) вычислить значение эллиптического интеграла (1.68575).

1 Пример вызова:

#include <sys/time.h>

….

struct timeval tv;

gettimeofday(&tv,NULL); /*время в секундах, начиная с 1 января 1970 года*/

s = tv.tv_sec /*секунды*/

ms = tv.tv_usec /*микросекунды*/