Вестник науки и образования


Код функции, осуществляющей вычисление определенного интеграла по методу центральных прямоугольников


Download 100.38 Kb.
bet2/3
Sana24.09.2023
Hajmi100.38 Kb.
#1686833
1   2   3
Bog'liq
primenenie-tehnologiy-parallelnogo-programmirovaniya

Код функции, осуществляющей вычисление определенного интеграла по методу центральных прямоугольников:


doublecentral_rectangles_integral(pointFuncf, doublea, doubleb, intn)
{
constdouble h = (b - a) / n; double sum = 0.0;
#pragmaomp parallel for reduction(+:sum) for (inti = 0; isum += f(a + ((i + 0.5)* h));
}
return (sum * h);
}

Код функции, обеспечивающий достижения заданной точности:


intmain()
{
setlocale(LC_ALL, "rus"); double a = 1;
double b = 3;
doublestart_time = 0; //точка отсчета времени doubleeps = 1 * pow(10.0, -6); //заданная точность int n = 1; //начальное число шагов
double p1, p0;
start_time = omp_get_wtime(); //засечение времени решения
p1 = central_rectangles_integral(f, a, b, n); //первое приближение для интеграла do
{
p0 = p1; n = 2 * n;
p1 = central_rectangles_integral(f, a, b, n);
}while (fabs(p1 - p0) >eps); //сравнение приближений с заданной точностью double t1 = omp_get_wtime() - start_time;
printf ("Значение интеграла по методу центральных прямоугол: %lf ; Затраченное время (в секундах): %lf\n", p1, t1);
}

Код функции, представляющий подынтегральную функцию:


typedefdouble(*pointFunc)(double); doublef(doublex)
{
return (-0.5 + 1.3*pow(x, 2) + 7.1*pow(x, 3));
}
Вычисления выполнены для подынтегральной функции
ƒ(𝑥) = .5 + 1. 𝑥2 + .1𝑥 на отрезке 1, с точностью = 1 1 .
В таблице приведены время и ускорение при реализации методов прямоугольника и Симпсона.
Таблица 1. Время и ускорение при реализации методов прямоугольника и Симпсона







Download 100.38 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling