<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%91%D0%B5%D0%B7+%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8</id>
	<title>Алговики - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%91%D0%B5%D0%B7+%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8"/>
	<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8"/>
	<updated>2026-10-22T15:40:04Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%8B_%D1%82%D1%80%D0%B0%D0%BF%D0%B5%D1%86%D0%B8%D0%B9&amp;diff=30043</id>
		<title>Участник:Без имени/Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%8B_%D1%82%D1%80%D0%B0%D0%BF%D0%B5%D1%86%D0%B8%D0%B9&amp;diff=30043"/>
		<updated>2025-11-22T08:52:40Z</updated>

		<summary type="html">&lt;p&gt;Без имени: /* Результаты прогонов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро метода трапеций представляет собой вычисление суммы значений в узлах сетки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  S = f(x_0) + f(x_1) + ... + f(x_n) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; - подынтегральная функция&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; x_i = a+ih &amp;lt;/math&amp;gt; - узлы сетки &lt;br /&gt;
&lt;br /&gt;
n - количество интервалов разбиения &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I \approx \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная нагрузка приходится на &amp;lt;math&amp;gt;\sum_{i=1}^{n-1} f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро становится особо затратным для сложных функций, где приходится дополнительно вычислять ещё возведение в степень, экспоненту и др. Поэтому сама подынтегральная функция сильно сказывается на сложности. &lt;br /&gt;
&lt;br /&gt;
===  Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; INIT(a, b, n) → h, sum_initial &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычисление шага сетки: &amp;lt;source&amp;gt; h = (b - a) / n &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Инициализация суммы: &amp;lt;source&amp;gt; sum_initial = 0.5 * (f(a) + f(b)) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление суммы значений функции&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; SUM_FUNCTION_VALUES(a, h, n) -&amp;gt; sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная макрооперация&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;Вычисление: sum_core = ∑[i=1 to n-1] f(a + i·h) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Финальное вычисление интеграла&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; FINALIZE(sum_initial, sum_core, h) -&amp;gt; integral &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Объединение результатов: &amp;lt;source&amp;gt; total_sum = sum_initial + sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Финальное вычисление: &amp;lt;source&amp;gt; integral = total_sum * h &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров интегрирования&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Параметры интегрирования&lt;br /&gt;
    double a = 0.0;    // нижний предел&lt;br /&gt;
    double b = 10.0;   // верхний предел&lt;br /&gt;
    int n = 1000000;   // количество интервалов&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление шага сетки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double h = (b - a) / n;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляется равномерное расстояние между соседними узлами&lt;br /&gt;
&lt;br /&gt;
- Определяет плотность разбиения области интегрирования&lt;br /&gt;
&lt;br /&gt;
3. Инициализация суммы граничных значений&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double integral = 0.5 * (f(a) + f(b));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляются значения функции на границах интервала&lt;br /&gt;
&lt;br /&gt;
- Умножаются на коэффициент 0.5 согласно формуле трапеций&lt;br /&gt;
&lt;br /&gt;
- Создается начальное приближение интеграла&lt;br /&gt;
&lt;br /&gt;
4. Основной вычислительный цикл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
for (int i = 1; i &amp;lt; n; i++) &lt;br /&gt;
    {&lt;br /&gt;
        double x = a + i * h;&lt;br /&gt;
        integral += f(x);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Для каждого i от 1 до n-1 вычисляется x_i = a + i·h&lt;br /&gt;
&lt;br /&gt;
- Для каждого узла вычисляется f(x_i). Это наиболее вычислительно затратная часть алгоритма&lt;br /&gt;
&lt;br /&gt;
- Накопление суммы&lt;br /&gt;
&lt;br /&gt;
5. Финальное вычисление интеграла &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
result = integral * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полная схема алгоритма&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
НАЧАЛО&lt;br /&gt;
  │&lt;br /&gt;
  |- Ввод параметров: a, b, n&lt;br /&gt;
  │&lt;br /&gt;
  |- Проверка: n &amp;gt; 0, a &amp;lt; b&lt;br /&gt;
  │&lt;br /&gt;
  |- Вычисление: h = (b - a) / n&lt;br /&gt;
  │&lt;br /&gt;
  |- Инициализация: sum = 0.5 * [f(a) + f(b)]&lt;br /&gt;
  │&lt;br /&gt;
  |- ЦИКЛ i = 1 ДО n-1:&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |-Вычисление: x = a + i * h&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |- Вычисление: fx = f(x)&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |─ Накопление: sum = sum + fx&lt;br /&gt;
  │&lt;br /&gt;
   Результат: integral = sum * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Метод трапеций относится к классу алгоритмов с линейной сложностью &amp;lt;math&amp;gt; O(n) &amp;lt;/math&amp;gt; по количеству интервалов разбиения n. Основной вклад в сложность вносят вычисления функции &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; именно от неё зависит количество проводимых вычислений в процессе применения формулы трапеций от каждого участка. &lt;br /&gt;
&lt;br /&gt;
=== Информационный граф === &lt;br /&gt;
[[File:Graph_1456.png|center|V1 - получение параметров интегрирования, V2.i - рассылка границ на каждый процесс, V3.i - вычисление площадей на каждом отрезке, V4 - итоговое суммирование]]&lt;br /&gt;
Рис. 1. - Информационный граф, V1 - получение параметров интегрирования, V2.i - рассылка границ на каждый процесс, V3.i - вычисление площадей на каждом отрезке, V4 - итоговое суммирование&lt;br /&gt;
=== Ресурс параллелизма алгоритма === &lt;br /&gt;
Основная вычислительная нагрузка сосредоточена в полностью независимых операциях вычисления значений функции в узлах сетки. Параллельная сложность составляет &amp;lt;math&amp;gt; O(1) &amp;lt;/math&amp;gt; для основной расчетной части при использовании достаточного количества процессоров. Структура параллелизма обеспечивает балансировку нагрузки и простоту реализации. При больших n доля последовательных операций стремится к нулю.&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма === &lt;br /&gt;
&lt;br /&gt;
На вход алгоритму подается подынтегральная функция, пределы интегрирования и количество участков, на которые разбивается отрезок интегрирования. На выходе число – значение определенного интеграла.&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма === &lt;br /&gt;
Для большинства практических применений метода трапеций достаточно одинарной точности (float). В большинстве практических случаев не требует двойной точности вычислений, поскольку его основная погрешность определяется теоретической ошибкой метода O(1/n²), а не вычислительной ошибкой округления.&lt;br /&gt;
&lt;br /&gt;
===  Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Основной способ распределения данных. Весь диапазон [a, b] разбивается на p блоков (где p - количество процессов), каждый процесс получает свой непрерывный блок интервалов. Для балансировки нагрузки при неравномерном количестве интервалов применяется циклическое распределение остатка - первые r процессов получают на один интервал больше. &lt;br /&gt;
&lt;br /&gt;
Ключевая коммуникационная операция - глобальная редукция (MPI_Reduce) для суммирования частичных интегралов. Объем пересылаемых данных минимален - каждый процесс отправляет всего одно вещественное число (свой частичный интеграл).&lt;br /&gt;
&lt;br /&gt;
Параллельная эффективность ограничена последовательной долей по закону Амдала, которая включает инициализацию и финальную редукцию. При больших n эта доля становится пренебрежимо малой. Для достижения максимальной производительности рекомендуется выбирать размер задачи n таким, чтобы каждый процесс/поток получал достаточно большую порцию работы (обычно тысячи интервалов), минимизируя относительные накладные расходы.&lt;br /&gt;
&lt;br /&gt;
=== Результаты прогонов ===&lt;br /&gt;
Processes: 2, Time: 0.080949 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 2, Time: 0.074890 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 2, Time: 0.058663 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 2, Time: 0.058114 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 4, Time: 0.047105 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 4, Time: 0.043581 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 4, Time: 0.048686 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 4, Time: 0.046107 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 8, Time: 0.024348 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 8, Time: 0.022984 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 8, Time: 0.021923 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 8, Time: 0.024774 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 16, Time: 0.013365 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 16, Time: 0.011646 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 16, Time: 0.011226 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 16, Time: 0.010894 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 20, Time: 0.008676 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 20, Time: 0.009282 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 20, Time: 0.009332 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 20, Time: 0.010975 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 24, Time: 0.008456 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 24, Time: 0.008577 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 24, Time: 0.008664 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 24, Time: 0.009281 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 28, Time: 0.007415 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 28, Time: 0.007020 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 28, Time: 0.007767 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 28, Time: 0.006456 seconds&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
[1] Самарский А.А., Гулин А.В. Численные методы. М.: Наука, 1989. – 432 с.&lt;br /&gt;
&lt;br /&gt;
[2] Якобовский М.В. Введение в параллельные методы решения задач, 2013. - 328 с.&lt;br /&gt;
&lt;br /&gt;
[3] Антонов А.С. Технологии параллельного программирования MPI и OpenMP, 2012. - 344 с.&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%8B_%D1%82%D1%80%D0%B0%D0%BF%D0%B5%D1%86%D0%B8%D0%B9&amp;diff=30042</id>
		<title>Участник:Без имени/Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%8B_%D1%82%D1%80%D0%B0%D0%BF%D0%B5%D1%86%D0%B8%D0%B9&amp;diff=30042"/>
		<updated>2025-11-22T08:52:26Z</updated>

		<summary type="html">&lt;p&gt;Без имени: /* Результаты прогонов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро метода трапеций представляет собой вычисление суммы значений в узлах сетки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  S = f(x_0) + f(x_1) + ... + f(x_n) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; - подынтегральная функция&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; x_i = a+ih &amp;lt;/math&amp;gt; - узлы сетки &lt;br /&gt;
&lt;br /&gt;
n - количество интервалов разбиения &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I \approx \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная нагрузка приходится на &amp;lt;math&amp;gt;\sum_{i=1}^{n-1} f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро становится особо затратным для сложных функций, где приходится дополнительно вычислять ещё возведение в степень, экспоненту и др. Поэтому сама подынтегральная функция сильно сказывается на сложности. &lt;br /&gt;
&lt;br /&gt;
===  Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; INIT(a, b, n) → h, sum_initial &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычисление шага сетки: &amp;lt;source&amp;gt; h = (b - a) / n &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Инициализация суммы: &amp;lt;source&amp;gt; sum_initial = 0.5 * (f(a) + f(b)) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление суммы значений функции&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; SUM_FUNCTION_VALUES(a, h, n) -&amp;gt; sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная макрооперация&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;Вычисление: sum_core = ∑[i=1 to n-1] f(a + i·h) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Финальное вычисление интеграла&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; FINALIZE(sum_initial, sum_core, h) -&amp;gt; integral &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Объединение результатов: &amp;lt;source&amp;gt; total_sum = sum_initial + sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Финальное вычисление: &amp;lt;source&amp;gt; integral = total_sum * h &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров интегрирования&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Параметры интегрирования&lt;br /&gt;
    double a = 0.0;    // нижний предел&lt;br /&gt;
    double b = 10.0;   // верхний предел&lt;br /&gt;
    int n = 1000000;   // количество интервалов&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление шага сетки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double h = (b - a) / n;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляется равномерное расстояние между соседними узлами&lt;br /&gt;
&lt;br /&gt;
- Определяет плотность разбиения области интегрирования&lt;br /&gt;
&lt;br /&gt;
3. Инициализация суммы граничных значений&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double integral = 0.5 * (f(a) + f(b));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляются значения функции на границах интервала&lt;br /&gt;
&lt;br /&gt;
- Умножаются на коэффициент 0.5 согласно формуле трапеций&lt;br /&gt;
&lt;br /&gt;
- Создается начальное приближение интеграла&lt;br /&gt;
&lt;br /&gt;
4. Основной вычислительный цикл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
for (int i = 1; i &amp;lt; n; i++) &lt;br /&gt;
    {&lt;br /&gt;
        double x = a + i * h;&lt;br /&gt;
        integral += f(x);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Для каждого i от 1 до n-1 вычисляется x_i = a + i·h&lt;br /&gt;
&lt;br /&gt;
- Для каждого узла вычисляется f(x_i). Это наиболее вычислительно затратная часть алгоритма&lt;br /&gt;
&lt;br /&gt;
- Накопление суммы&lt;br /&gt;
&lt;br /&gt;
5. Финальное вычисление интеграла &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
result = integral * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полная схема алгоритма&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
НАЧАЛО&lt;br /&gt;
  │&lt;br /&gt;
  |- Ввод параметров: a, b, n&lt;br /&gt;
  │&lt;br /&gt;
  |- Проверка: n &amp;gt; 0, a &amp;lt; b&lt;br /&gt;
  │&lt;br /&gt;
  |- Вычисление: h = (b - a) / n&lt;br /&gt;
  │&lt;br /&gt;
  |- Инициализация: sum = 0.5 * [f(a) + f(b)]&lt;br /&gt;
  │&lt;br /&gt;
  |- ЦИКЛ i = 1 ДО n-1:&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |-Вычисление: x = a + i * h&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |- Вычисление: fx = f(x)&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |─ Накопление: sum = sum + fx&lt;br /&gt;
  │&lt;br /&gt;
   Результат: integral = sum * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Метод трапеций относится к классу алгоритмов с линейной сложностью &amp;lt;math&amp;gt; O(n) &amp;lt;/math&amp;gt; по количеству интервалов разбиения n. Основной вклад в сложность вносят вычисления функции &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; именно от неё зависит количество проводимых вычислений в процессе применения формулы трапеций от каждого участка. &lt;br /&gt;
&lt;br /&gt;
=== Информационный граф === &lt;br /&gt;
[[File:Graph_1456.png|center|V1 - получение параметров интегрирования, V2.i - рассылка границ на каждый процесс, V3.i - вычисление площадей на каждом отрезке, V4 - итоговое суммирование]]&lt;br /&gt;
Рис. 1. - Информационный граф, V1 - получение параметров интегрирования, V2.i - рассылка границ на каждый процесс, V3.i - вычисление площадей на каждом отрезке, V4 - итоговое суммирование&lt;br /&gt;
=== Ресурс параллелизма алгоритма === &lt;br /&gt;
Основная вычислительная нагрузка сосредоточена в полностью независимых операциях вычисления значений функции в узлах сетки. Параллельная сложность составляет &amp;lt;math&amp;gt; O(1) &amp;lt;/math&amp;gt; для основной расчетной части при использовании достаточного количества процессоров. Структура параллелизма обеспечивает балансировку нагрузки и простоту реализации. При больших n доля последовательных операций стремится к нулю.&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма === &lt;br /&gt;
&lt;br /&gt;
На вход алгоритму подается подынтегральная функция, пределы интегрирования и количество участков, на которые разбивается отрезок интегрирования. На выходе число – значение определенного интеграла.&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма === &lt;br /&gt;
Для большинства практических применений метода трапеций достаточно одинарной точности (float). В большинстве практических случаев не требует двойной точности вычислений, поскольку его основная погрешность определяется теоретической ошибкой метода O(1/n²), а не вычислительной ошибкой округления.&lt;br /&gt;
&lt;br /&gt;
===  Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Основной способ распределения данных. Весь диапазон [a, b] разбивается на p блоков (где p - количество процессов), каждый процесс получает свой непрерывный блок интервалов. Для балансировки нагрузки при неравномерном количестве интервалов применяется циклическое распределение остатка - первые r процессов получают на один интервал больше. &lt;br /&gt;
&lt;br /&gt;
Ключевая коммуникационная операция - глобальная редукция (MPI_Reduce) для суммирования частичных интегралов. Объем пересылаемых данных минимален - каждый процесс отправляет всего одно вещественное число (свой частичный интеграл).&lt;br /&gt;
&lt;br /&gt;
Параллельная эффективность ограничена последовательной долей по закону Амдала, которая включает инициализацию и финальную редукцию. При больших n эта доля становится пренебрежимо малой. Для достижения максимальной производительности рекомендуется выбирать размер задачи n таким, чтобы каждый процесс/поток получал достаточно большую порцию работы (обычно тысячи интервалов), минимизируя относительные накладные расходы.&lt;br /&gt;
&lt;br /&gt;
=== Результаты прогонов ===&lt;br /&gt;
Processes: 2, Time: 0.080949 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 2, Time: 0.074890 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 2, Time: 0.058663 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 2, Time: 0.058114 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 4, Time: 0.047105 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 4, Time: 0.043581 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 4, Time: 0.048686 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 4, Time: 0.046107 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 8, Time: 0.024348 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 8, Time: 0.022984 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 8, Time: 0.021923 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 8, Time: 0.024774 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 16, Time: 0.013365 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 16, Time: 0.011646 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 16, Time: 0.011226 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 16, Time: 0.010894 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 20, Time: 0.008676 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 20, Time: 0.009282 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 20, Time: 0.009332 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 20, Time: 0.010975 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 24, Time: 0.008456 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 24, Time: 0.008577 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 24, Time: 0.008664 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 24, Time: 0.009281 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 28, Time: 0.007415 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 28, Time: 0.007020 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 28, Time: 0.007767 seconds&lt;br /&gt;
Processes: 28, Time: 0.006456 seconds&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
[1] Самарский А.А., Гулин А.В. Численные методы. М.: Наука, 1989. – 432 с.&lt;br /&gt;
&lt;br /&gt;
[2] Якобовский М.В. Введение в параллельные методы решения задач, 2013. - 328 с.&lt;br /&gt;
&lt;br /&gt;
[3] Антонов А.С. Технологии параллельного программирования MPI и OpenMP, 2012. - 344 с.&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%8B_%D1%82%D1%80%D0%B0%D0%BF%D0%B5%D1%86%D0%B8%D0%B9&amp;diff=30041</id>
		<title>Участник:Без имени/Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%8B_%D1%82%D1%80%D0%B0%D0%BF%D0%B5%D1%86%D0%B8%D0%B9&amp;diff=30041"/>
		<updated>2025-11-22T08:51:45Z</updated>

		<summary type="html">&lt;p&gt;Без имени: /* Результаты прогонов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро метода трапеций представляет собой вычисление суммы значений в узлах сетки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  S = f(x_0) + f(x_1) + ... + f(x_n) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; - подынтегральная функция&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; x_i = a+ih &amp;lt;/math&amp;gt; - узлы сетки &lt;br /&gt;
&lt;br /&gt;
n - количество интервалов разбиения &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I \approx \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная нагрузка приходится на &amp;lt;math&amp;gt;\sum_{i=1}^{n-1} f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро становится особо затратным для сложных функций, где приходится дополнительно вычислять ещё возведение в степень, экспоненту и др. Поэтому сама подынтегральная функция сильно сказывается на сложности. &lt;br /&gt;
&lt;br /&gt;
===  Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; INIT(a, b, n) → h, sum_initial &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычисление шага сетки: &amp;lt;source&amp;gt; h = (b - a) / n &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Инициализация суммы: &amp;lt;source&amp;gt; sum_initial = 0.5 * (f(a) + f(b)) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление суммы значений функции&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; SUM_FUNCTION_VALUES(a, h, n) -&amp;gt; sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная макрооперация&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;Вычисление: sum_core = ∑[i=1 to n-1] f(a + i·h) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Финальное вычисление интеграла&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; FINALIZE(sum_initial, sum_core, h) -&amp;gt; integral &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Объединение результатов: &amp;lt;source&amp;gt; total_sum = sum_initial + sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Финальное вычисление: &amp;lt;source&amp;gt; integral = total_sum * h &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров интегрирования&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Параметры интегрирования&lt;br /&gt;
    double a = 0.0;    // нижний предел&lt;br /&gt;
    double b = 10.0;   // верхний предел&lt;br /&gt;
    int n = 1000000;   // количество интервалов&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление шага сетки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double h = (b - a) / n;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляется равномерное расстояние между соседними узлами&lt;br /&gt;
&lt;br /&gt;
- Определяет плотность разбиения области интегрирования&lt;br /&gt;
&lt;br /&gt;
3. Инициализация суммы граничных значений&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double integral = 0.5 * (f(a) + f(b));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляются значения функции на границах интервала&lt;br /&gt;
&lt;br /&gt;
- Умножаются на коэффициент 0.5 согласно формуле трапеций&lt;br /&gt;
&lt;br /&gt;
- Создается начальное приближение интеграла&lt;br /&gt;
&lt;br /&gt;
4. Основной вычислительный цикл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
for (int i = 1; i &amp;lt; n; i++) &lt;br /&gt;
    {&lt;br /&gt;
        double x = a + i * h;&lt;br /&gt;
        integral += f(x);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Для каждого i от 1 до n-1 вычисляется x_i = a + i·h&lt;br /&gt;
&lt;br /&gt;
- Для каждого узла вычисляется f(x_i). Это наиболее вычислительно затратная часть алгоритма&lt;br /&gt;
&lt;br /&gt;
- Накопление суммы&lt;br /&gt;
&lt;br /&gt;
5. Финальное вычисление интеграла &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
result = integral * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полная схема алгоритма&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
НАЧАЛО&lt;br /&gt;
  │&lt;br /&gt;
  |- Ввод параметров: a, b, n&lt;br /&gt;
  │&lt;br /&gt;
  |- Проверка: n &amp;gt; 0, a &amp;lt; b&lt;br /&gt;
  │&lt;br /&gt;
  |- Вычисление: h = (b - a) / n&lt;br /&gt;
  │&lt;br /&gt;
  |- Инициализация: sum = 0.5 * [f(a) + f(b)]&lt;br /&gt;
  │&lt;br /&gt;
  |- ЦИКЛ i = 1 ДО n-1:&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |-Вычисление: x = a + i * h&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |- Вычисление: fx = f(x)&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |─ Накопление: sum = sum + fx&lt;br /&gt;
  │&lt;br /&gt;
   Результат: integral = sum * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Метод трапеций относится к классу алгоритмов с линейной сложностью &amp;lt;math&amp;gt; O(n) &amp;lt;/math&amp;gt; по количеству интервалов разбиения n. Основной вклад в сложность вносят вычисления функции &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; именно от неё зависит количество проводимых вычислений в процессе применения формулы трапеций от каждого участка. &lt;br /&gt;
&lt;br /&gt;
=== Информационный граф === &lt;br /&gt;
[[File:Graph_1456.png|center|V1 - получение параметров интегрирования, V2.i - рассылка границ на каждый процесс, V3.i - вычисление площадей на каждом отрезке, V4 - итоговое суммирование]]&lt;br /&gt;
Рис. 1. - Информационный граф, V1 - получение параметров интегрирования, V2.i - рассылка границ на каждый процесс, V3.i - вычисление площадей на каждом отрезке, V4 - итоговое суммирование&lt;br /&gt;
=== Ресурс параллелизма алгоритма === &lt;br /&gt;
Основная вычислительная нагрузка сосредоточена в полностью независимых операциях вычисления значений функции в узлах сетки. Параллельная сложность составляет &amp;lt;math&amp;gt; O(1) &amp;lt;/math&amp;gt; для основной расчетной части при использовании достаточного количества процессоров. Структура параллелизма обеспечивает балансировку нагрузки и простоту реализации. При больших n доля последовательных операций стремится к нулю.&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма === &lt;br /&gt;
&lt;br /&gt;
На вход алгоритму подается подынтегральная функция, пределы интегрирования и количество участков, на которые разбивается отрезок интегрирования. На выходе число – значение определенного интеграла.&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма === &lt;br /&gt;
Для большинства практических применений метода трапеций достаточно одинарной точности (float). В большинстве практических случаев не требует двойной точности вычислений, поскольку его основная погрешность определяется теоретической ошибкой метода O(1/n²), а не вычислительной ошибкой округления.&lt;br /&gt;
&lt;br /&gt;
===  Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Основной способ распределения данных. Весь диапазон [a, b] разбивается на p блоков (где p - количество процессов), каждый процесс получает свой непрерывный блок интервалов. Для балансировки нагрузки при неравномерном количестве интервалов применяется циклическое распределение остатка - первые r процессов получают на один интервал больше. &lt;br /&gt;
&lt;br /&gt;
Ключевая коммуникационная операция - глобальная редукция (MPI_Reduce) для суммирования частичных интегралов. Объем пересылаемых данных минимален - каждый процесс отправляет всего одно вещественное число (свой частичный интеграл).&lt;br /&gt;
&lt;br /&gt;
Параллельная эффективность ограничена последовательной долей по закону Амдала, которая включает инициализацию и финальную редукцию. При больших n эта доля становится пренебрежимо малой. Для достижения максимальной производительности рекомендуется выбирать размер задачи n таким, чтобы каждый процесс/поток получал достаточно большую порцию работы (обычно тысячи интервалов), минимизируя относительные накладные расходы.&lt;br /&gt;
&lt;br /&gt;
=== Результаты прогонов ===&lt;br /&gt;
Processes: 2, Time: 0.080949 seconds&lt;br /&gt;
Processes: 2, Time: 0.074890 seconds&lt;br /&gt;
Processes: 2, Time: 0.058663 seconds&lt;br /&gt;
Processes: 2, Time: 0.058114 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 4, Time: 0.047105 seconds&lt;br /&gt;
Processes: 4, Time: 0.043581 seconds&lt;br /&gt;
Processes: 4, Time: 0.048686 seconds&lt;br /&gt;
Processes: 4, Time: 0.046107 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 8, Time: 0.024348 seconds&lt;br /&gt;
Processes: 8, Time: 0.022984 seconds&lt;br /&gt;
Processes: 8, Time: 0.021923 seconds&lt;br /&gt;
Processes: 8, Time: 0.024774 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 16, Time: 0.013365 seconds&lt;br /&gt;
Processes: 16, Time: 0.011646 seconds&lt;br /&gt;
Processes: 16, Time: 0.011226 seconds&lt;br /&gt;
Processes: 16, Time: 0.010894 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 20, Time: 0.008676 seconds&lt;br /&gt;
Processes: 20, Time: 0.009282 seconds&lt;br /&gt;
Processes: 20, Time: 0.009332 seconds&lt;br /&gt;
Processes: 20, Time: 0.010975 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 24, Time: 0.008456 seconds&lt;br /&gt;
Processes: 24, Time: 0.008577 seconds&lt;br /&gt;
Processes: 24, Time: 0.008664 seconds&lt;br /&gt;
Processes: 24, Time: 0.009281 seconds&lt;br /&gt;
&lt;br /&gt;
Processes: 28, Time: 0.007415 seconds&lt;br /&gt;
Processes: 28, Time: 0.007020 seconds&lt;br /&gt;
Processes: 28, Time: 0.007767 seconds&lt;br /&gt;
Processes: 28, Time: 0.006456 seconds&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
[1] Самарский А.А., Гулин А.В. Численные методы. М.: Наука, 1989. – 432 с.&lt;br /&gt;
&lt;br /&gt;
[2] Якобовский М.В. Введение в параллельные методы решения задач, 2013. - 328 с.&lt;br /&gt;
&lt;br /&gt;
[3] Антонов А.С. Технологии параллельного программирования MPI и OpenMP, 2012. - 344 с.&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%8B_%D1%82%D1%80%D0%B0%D0%BF%D0%B5%D1%86%D0%B8%D0%B9&amp;diff=30040</id>
		<title>Участник:Без имени/Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D1%8B_%D1%82%D1%80%D0%B0%D0%BF%D0%B5%D1%86%D0%B8%D0%B9&amp;diff=30040"/>
		<updated>2025-11-22T08:22:20Z</updated>

		<summary type="html">&lt;p&gt;Без имени: Новая страница: «{{algorithm | name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций. }}  Основные авторы описания: Участник: Кузнецова Д. Д.  == Свойства и структура алгоритма == === Общее описание алгоритма === Метод трапеций являе...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро метода трапеций представляет собой вычисление суммы значений в узлах сетки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  S = f(x_0) + f(x_1) + ... + f(x_n) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; - подынтегральная функция&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; x_i = a+ih &amp;lt;/math&amp;gt; - узлы сетки &lt;br /&gt;
&lt;br /&gt;
n - количество интервалов разбиения &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I \approx \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная нагрузка приходится на &amp;lt;math&amp;gt;\sum_{i=1}^{n-1} f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро становится особо затратным для сложных функций, где приходится дополнительно вычислять ещё возведение в степень, экспоненту и др. Поэтому сама подынтегральная функция сильно сказывается на сложности. &lt;br /&gt;
&lt;br /&gt;
===  Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; INIT(a, b, n) → h, sum_initial &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычисление шага сетки: &amp;lt;source&amp;gt; h = (b - a) / n &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Инициализация суммы: &amp;lt;source&amp;gt; sum_initial = 0.5 * (f(a) + f(b)) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление суммы значений функции&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; SUM_FUNCTION_VALUES(a, h, n) -&amp;gt; sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная макрооперация&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;Вычисление: sum_core = ∑[i=1 to n-1] f(a + i·h) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Финальное вычисление интеграла&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; FINALIZE(sum_initial, sum_core, h) -&amp;gt; integral &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Объединение результатов: &amp;lt;source&amp;gt; total_sum = sum_initial + sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Финальное вычисление: &amp;lt;source&amp;gt; integral = total_sum * h &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров интегрирования&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Параметры интегрирования&lt;br /&gt;
    double a = 0.0;    // нижний предел&lt;br /&gt;
    double b = 10.0;   // верхний предел&lt;br /&gt;
    int n = 1000000;   // количество интервалов&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление шага сетки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double h = (b - a) / n;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляется равномерное расстояние между соседними узлами&lt;br /&gt;
&lt;br /&gt;
- Определяет плотность разбиения области интегрирования&lt;br /&gt;
&lt;br /&gt;
3. Инициализация суммы граничных значений&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double integral = 0.5 * (f(a) + f(b));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляются значения функции на границах интервала&lt;br /&gt;
&lt;br /&gt;
- Умножаются на коэффициент 0.5 согласно формуле трапеций&lt;br /&gt;
&lt;br /&gt;
- Создается начальное приближение интеграла&lt;br /&gt;
&lt;br /&gt;
4. Основной вычислительный цикл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
for (int i = 1; i &amp;lt; n; i++) &lt;br /&gt;
    {&lt;br /&gt;
        double x = a + i * h;&lt;br /&gt;
        integral += f(x);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Для каждого i от 1 до n-1 вычисляется x_i = a + i·h&lt;br /&gt;
&lt;br /&gt;
- Для каждого узла вычисляется f(x_i). Это наиболее вычислительно затратная часть алгоритма&lt;br /&gt;
&lt;br /&gt;
- Накопление суммы&lt;br /&gt;
&lt;br /&gt;
5. Финальное вычисление интеграла &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
result = integral * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полная схема алгоритма&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
НАЧАЛО&lt;br /&gt;
  │&lt;br /&gt;
  |- Ввод параметров: a, b, n&lt;br /&gt;
  │&lt;br /&gt;
  |- Проверка: n &amp;gt; 0, a &amp;lt; b&lt;br /&gt;
  │&lt;br /&gt;
  |- Вычисление: h = (b - a) / n&lt;br /&gt;
  │&lt;br /&gt;
  |- Инициализация: sum = 0.5 * [f(a) + f(b)]&lt;br /&gt;
  │&lt;br /&gt;
  |- ЦИКЛ i = 1 ДО n-1:&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |-Вычисление: x = a + i * h&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |- Вычисление: fx = f(x)&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |─ Накопление: sum = sum + fx&lt;br /&gt;
  │&lt;br /&gt;
   Результат: integral = sum * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Метод трапеций относится к классу алгоритмов с линейной сложностью &amp;lt;math&amp;gt; O(n) &amp;lt;/math&amp;gt; по количеству интервалов разбиения n. Основной вклад в сложность вносят вычисления функции &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; именно от неё зависит количество проводимых вычислений в процессе применения формулы трапеций от каждого участка. &lt;br /&gt;
&lt;br /&gt;
=== Информационный граф === &lt;br /&gt;
[[File:Graph_1456.png|center|V1 - получение параметров интегрирования, V2.i - рассылка границ на каждый процесс, V3.i - вычисление площадей на каждом отрезке, V4 - итоговое суммирование]]&lt;br /&gt;
Рис. 1. - Информационный граф, V1 - получение параметров интегрирования, V2.i - рассылка границ на каждый процесс, V3.i - вычисление площадей на каждом отрезке, V4 - итоговое суммирование&lt;br /&gt;
=== Ресурс параллелизма алгоритма === &lt;br /&gt;
Основная вычислительная нагрузка сосредоточена в полностью независимых операциях вычисления значений функции в узлах сетки. Параллельная сложность составляет &amp;lt;math&amp;gt; O(1) &amp;lt;/math&amp;gt; для основной расчетной части при использовании достаточного количества процессоров. Структура параллелизма обеспечивает балансировку нагрузки и простоту реализации. При больших n доля последовательных операций стремится к нулю.&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма === &lt;br /&gt;
&lt;br /&gt;
На вход алгоритму подается подынтегральная функция, пределы интегрирования и количество участков, на которые разбивается отрезок интегрирования. На выходе число – значение определенного интеграла.&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма === &lt;br /&gt;
Для большинства практических применений метода трапеций достаточно одинарной точности (float). В большинстве практических случаев не требует двойной точности вычислений, поскольку его основная погрешность определяется теоретической ошибкой метода O(1/n²), а не вычислительной ошибкой округления.&lt;br /&gt;
&lt;br /&gt;
===  Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Основной способ распределения данных. Весь диапазон [a, b] разбивается на p блоков (где p - количество процессов), каждый процесс получает свой непрерывный блок интервалов. Для балансировки нагрузки при неравномерном количестве интервалов применяется циклическое распределение остатка - первые r процессов получают на один интервал больше. &lt;br /&gt;
&lt;br /&gt;
Ключевая коммуникационная операция - глобальная редукция (MPI_Reduce) для суммирования частичных интегралов. Объем пересылаемых данных минимален - каждый процесс отправляет всего одно вещественное число (свой частичный интеграл).&lt;br /&gt;
&lt;br /&gt;
Параллельная эффективность ограничена последовательной долей по закону Амдала, которая включает инициализацию и финальную редукцию. При больших n эта доля становится пренебрежимо малой. Для достижения максимальной производительности рекомендуется выбирать размер задачи n таким, чтобы каждый процесс/поток получал достаточно большую порцию работы (обычно тысячи интервалов), минимизируя относительные накладные расходы.&lt;br /&gt;
&lt;br /&gt;
=== Результаты прогонов === &lt;br /&gt;
=== Выводы для классов архитектур === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
[1] Самарский А.А., Гулин А.В. Численные методы. М.: Наука, 1989. – 432 с.&lt;br /&gt;
&lt;br /&gt;
[2] Якобовский М.В. Введение в параллельные методы решения задач, 2013. - 328 с.&lt;br /&gt;
&lt;br /&gt;
[3] Антонов А.С. Технологии параллельного программирования MPI и OpenMP, 2012. - 344 с.&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=30017</id>
		<title>Участник:Без имени</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=30017"/>
		<updated>2025-11-16T14:07:22Z</updated>

		<summary type="html">&lt;p&gt;Без имени: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро метода трапеций представляет собой вычисление суммы значений в узлах сетки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  S = f(x_0) + f(x_1) + ... + f(x_n) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; - подынтегральная функция&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; x_i = a+ih &amp;lt;/math&amp;gt; - узлы сетки &lt;br /&gt;
&lt;br /&gt;
n - количество интервалов разбиения &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I \approx \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная нагрузка приходится на &amp;lt;math&amp;gt;\sum_{i=1}^{n-1} f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро становится особо затратным для сложных функций, где приходится дополнительно вычислять ещё возведение в степень, экспоненту и др. Поэтому сама подынтегральная функция сильно сказывается на сложности. &lt;br /&gt;
&lt;br /&gt;
===  Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; INIT(a, b, n) → h, sum_initial &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычисление шага сетки: &amp;lt;source&amp;gt; h = (b - a) / n &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Инициализация суммы: &amp;lt;source&amp;gt; sum_initial = 0.5 * (f(a) + f(b)) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление суммы значений функции&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; SUM_FUNCTION_VALUES(a, h, n) -&amp;gt; sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная макрооперация&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;Вычисление: sum_core = ∑[i=1 to n-1] f(a + i·h) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Финальное вычисление интеграла&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; FINALIZE(sum_initial, sum_core, h) -&amp;gt; integral &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Объединение результатов: &amp;lt;source&amp;gt; total_sum = sum_initial + sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Финальное вычисление: &amp;lt;source&amp;gt; integral = total_sum * h &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров интегрирования&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Параметры интегрирования&lt;br /&gt;
    double a = 0.0;    // нижний предел&lt;br /&gt;
    double b = 10.0;   // верхний предел&lt;br /&gt;
    int n = 1000000;   // количество интервалов&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление шага сетки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double h = (b - a) / n;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляется равномерное расстояние между соседними узлами&lt;br /&gt;
&lt;br /&gt;
- Определяет плотность разбиения области интегрирования&lt;br /&gt;
&lt;br /&gt;
3. Инициализация суммы граничных значений&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double integral = 0.5 * (f(a) + f(b));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляются значения функции на границах интервала&lt;br /&gt;
&lt;br /&gt;
- Умножаются на коэффициент 0.5 согласно формуле трапеций&lt;br /&gt;
&lt;br /&gt;
- Создается начальное приближение интеграла&lt;br /&gt;
&lt;br /&gt;
4. Основной вычислительный цикл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
for (int i = 1; i &amp;lt; n; i++) &lt;br /&gt;
    {&lt;br /&gt;
        double x = a + i * h;&lt;br /&gt;
        integral += f(x);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Для каждого i от 1 до n-1 вычисляется x_i = a + i·h&lt;br /&gt;
&lt;br /&gt;
- Для каждого узла вычисляется f(x_i). Это наиболее вычислительно затратная часть алгоритма&lt;br /&gt;
&lt;br /&gt;
- Накопление суммы&lt;br /&gt;
&lt;br /&gt;
5. Финальное вычисление интеграла &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
result = integral * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полная схема алгоритма&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
НАЧАЛО&lt;br /&gt;
  │&lt;br /&gt;
  |- Ввод параметров: a, b, n&lt;br /&gt;
  │&lt;br /&gt;
  |- Проверка: n &amp;gt; 0, a &amp;lt; b&lt;br /&gt;
  │&lt;br /&gt;
  |- Вычисление: h = (b - a) / n&lt;br /&gt;
  │&lt;br /&gt;
  |- Инициализация: sum = 0.5 * [f(a) + f(b)]&lt;br /&gt;
  │&lt;br /&gt;
  |- ЦИКЛ i = 1 ДО n-1:&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |-Вычисление: x = a + i * h&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |- Вычисление: fx = f(x)&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |─ Накопление: sum = sum + fx&lt;br /&gt;
  │&lt;br /&gt;
   Результат: integral = sum * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Метод трапеций относится к классу алгоритмов с линейной сложностью &amp;lt;math&amp;gt; O(n) &amp;lt;/math&amp;gt; по количеству интервалов разбиения n. Основной вклад в сложность вносят вычисления функции &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; именно от неё зависит количество проводимых вычислений в процессе применения формулы трапеций от каждого участка. &lt;br /&gt;
&lt;br /&gt;
=== Информационный граф === &lt;br /&gt;
[[File:Graph_1456.png|center|V1 - получение параметров интегрирования, V2.i - рассылка границ на каждый процесс, V3.i - вычисление площадей на каждом отрезке, V4 - итоговое суммирование]]&lt;br /&gt;
Рис. 1. - Информационный граф, V1 - получение параметров интегрирования, V2.i - рассылка границ на каждый процесс, V3.i - вычисление площадей на каждом отрезке, V4 - итоговое суммирование&lt;br /&gt;
=== Ресурс параллелизма алгоритма === &lt;br /&gt;
Основная вычислительная нагрузка сосредоточена в полностью независимых операциях вычисления значений функции в узлах сетки. Параллельная сложность составляет &amp;lt;math&amp;gt; O(1) &amp;lt;/math&amp;gt; для основной расчетной части при использовании достаточного количества процессоров. Структура параллелизма обеспечивает балансировку нагрузки и простоту реализации. При больших n доля последовательных операций стремится к нулю.&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма === &lt;br /&gt;
&lt;br /&gt;
На вход алгоритму подается подынтегральная функция, пределы интегрирования и количество участков, на которые разбивается отрезок интегрирования. На выходе число – значение определенного интеграла.&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма === &lt;br /&gt;
Для большинства практических применений метода трапеций достаточно одинарной точности (float). В большинстве практических случаев не требует двойной точности вычислений, поскольку его основная погрешность определяется теоретической ошибкой метода O(1/n²), а не вычислительной ошибкой округления.&lt;br /&gt;
&lt;br /&gt;
===  Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Основной способ распределения данных. Весь диапазон [a, b] разбивается на p блоков (где p - количество процессов), каждый процесс получает свой непрерывный блок интервалов. Для балансировки нагрузки при неравномерном количестве интервалов применяется циклическое распределение остатка - первые r процессов получают на один интервал больше. &lt;br /&gt;
&lt;br /&gt;
Ключевая коммуникационная операция - глобальная редукция (MPI_Reduce) для суммирования частичных интегралов. Объем пересылаемых данных минимален - каждый процесс отправляет всего одно вещественное число (свой частичный интеграл).&lt;br /&gt;
&lt;br /&gt;
Параллельная эффективность ограничена последовательной долей по закону Амдала, которая включает инициализацию и финальную редукцию. При больших n эта доля становится пренебрежимо малой. Для достижения максимальной производительности рекомендуется выбирать размер задачи n таким, чтобы каждый процесс/поток получал достаточно большую порцию работы (обычно тысячи интервалов), минимизируя относительные накладные расходы.&lt;br /&gt;
&lt;br /&gt;
=== Результаты прогонов === &lt;br /&gt;
=== Выводы для классов архитектур === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
[1] Самарский А.А., Гулин А.В. Численные методы. М.: Наука, 1989. – 432 с.&lt;br /&gt;
&lt;br /&gt;
[2] Якобовский М.В. Введение в параллельные методы решения задач, 2013. - 328 с.&lt;br /&gt;
&lt;br /&gt;
[3] Антонов А.С. Технологии параллельного программирования MPI и OpenMP, 2012. - 344 с.&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=30016</id>
		<title>Участник:Без имени</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=30016"/>
		<updated>2025-11-16T14:00:45Z</updated>

		<summary type="html">&lt;p&gt;Без имени: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро метода трапеций представляет собой вычисление суммы значений в узлах сетки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  S = f(x_0) + f(x_1) + ... + f(x_n) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; - подынтегральная функция&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; x_i = a+ih &amp;lt;/math&amp;gt; - узлы сетки &lt;br /&gt;
&lt;br /&gt;
n - количество интервалов разбиения &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I \approx \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная нагрузка приходится на &amp;lt;math&amp;gt;\sum_{i=1}^{n-1} f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро становится особо затратным для сложных функций, где приходится дополнительно вычислять ещё возведение в степень, экспоненту и др. Поэтому сама подынтегральная функция сильно сказывается на сложности. &lt;br /&gt;
&lt;br /&gt;
===  Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; INIT(a, b, n) → h, sum_initial &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычисление шага сетки: &amp;lt;source&amp;gt; h = (b - a) / n &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Инициализация суммы: &amp;lt;source&amp;gt; sum_initial = 0.5 * (f(a) + f(b)) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление суммы значений функции&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; SUM_FUNCTION_VALUES(a, h, n) -&amp;gt; sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная макрооперация&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;Вычисление: sum_core = ∑[i=1 to n-1] f(a + i·h) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Финальное вычисление интеграла&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; FINALIZE(sum_initial, sum_core, h) -&amp;gt; integral &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Объединение результатов: &amp;lt;source&amp;gt; total_sum = sum_initial + sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Финальное вычисление: &amp;lt;source&amp;gt; integral = total_sum * h &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров интегрирования&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// Параметры интегрирования&lt;br /&gt;
    double a = 0.0;    // нижний предел&lt;br /&gt;
    double b = 10.0;   // верхний предел&lt;br /&gt;
    int n = 1000000;   // количество интервалов&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление шага сетки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double h = (b - a) / n;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляется равномерное расстояние между соседними узлами&lt;br /&gt;
&lt;br /&gt;
- Определяет плотность разбиения области интегрирования&lt;br /&gt;
&lt;br /&gt;
3. Инициализация суммы граничных значений&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
double integral = 0.5 * (f(a) + f(b));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляются значения функции на границах интервала&lt;br /&gt;
&lt;br /&gt;
- Умножаются на коэффициент 0.5 согласно формуле трапеций&lt;br /&gt;
&lt;br /&gt;
- Создается начальное приближение интеграла&lt;br /&gt;
&lt;br /&gt;
4. Основной вычислительный цикл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
for (int i = 1; i &amp;lt; n; i++) &lt;br /&gt;
    {&lt;br /&gt;
        double x = a + i * h;&lt;br /&gt;
        integral += f(x);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Для каждого i от 1 до n-1 вычисляется x_i = a + i·h&lt;br /&gt;
&lt;br /&gt;
- Для каждого узла вычисляется f(x_i). Это наиболее вычислительно затратная часть алгоритма&lt;br /&gt;
&lt;br /&gt;
- Накопление суммы&lt;br /&gt;
&lt;br /&gt;
5. Финальное вычисление интеграла &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
result = integral * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полная схема алгоритма&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
НАЧАЛО&lt;br /&gt;
  │&lt;br /&gt;
  |- Ввод параметров: a, b, n&lt;br /&gt;
  │&lt;br /&gt;
  |- Проверка: n &amp;gt; 0, a &amp;lt; b&lt;br /&gt;
  │&lt;br /&gt;
  |- Вычисление: h = (b - a) / n&lt;br /&gt;
  │&lt;br /&gt;
  |- Инициализация: sum = 0.5 * [f(a) + f(b)]&lt;br /&gt;
  │&lt;br /&gt;
  |- ЦИКЛ i = 1 ДО n-1:&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |-Вычисление: x = a + i * h&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |- Вычисление: fx = f(x)&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |─ Накопление: sum = sum + fx&lt;br /&gt;
  │&lt;br /&gt;
   Результат: integral = sum * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Метод трапеций относится к классу алгоритмов с линейной сложностью &amp;lt;math&amp;gt; O(n) &amp;lt;/math&amp;gt; по количеству интервалов разбиения n. Основной вклад в сложность вносят вычисления функции &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; именно от неё зависит количество проводимых вычислений в процессе применения формулы трапеций от каждого участка. &lt;br /&gt;
&lt;br /&gt;
=== Информационный граф === &lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма === &lt;br /&gt;
Основная вычислительная нагрузка сосредоточена в полностью независимых операциях вычисления значений функции в узлах сетки. Параллельная сложность составляет &amp;lt;math&amp;gt; O(1) &amp;lt;/math&amp;gt; для основной расчетной части при использовании достаточного количества процессоров. Структура параллелизма обеспечивает балансировку нагрузки и простоту реализации. При больших n доля последовательных операций стремится к нулю.&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма === &lt;br /&gt;
&lt;br /&gt;
На вход алгоритму подается подынтегральная функция, пределы интегрирования и количество участков, на которые разбивается отрезок интегрирования. На выходе число – значение определенного интеграла.&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма === &lt;br /&gt;
Для большинства практических применений метода трапеций достаточно одинарной точности (float). В большинстве практических случаев не требует двойной точности вычислений, поскольку его основная погрешность определяется теоретической ошибкой метода O(1/n²), а не вычислительной ошибкой округления.&lt;br /&gt;
&lt;br /&gt;
===  Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Основной способ распределения данных. Весь диапазон [a, b] разбивается на p блоков (где p - количество процессов), каждый процесс получает свой непрерывный блок интервалов. Для балансировки нагрузки при неравномерном количестве интервалов применяется циклическое распределение остатка - первые r процессов получают на один интервал больше. &lt;br /&gt;
&lt;br /&gt;
Ключевая коммуникационная операция - глобальная редукция (MPI_Reduce) для суммирования частичных интегралов. Объем пересылаемых данных минимален - каждый процесс отправляет всего одно вещественное число (свой частичный интеграл).&lt;br /&gt;
&lt;br /&gt;
Параллельная эффективность ограничена последовательной долей по закону Амдала, которая включает инициализацию и финальную редукцию. При больших n эта доля становится пренебрежимо малой. Для достижения максимальной производительности рекомендуется выбирать размер задачи n таким, чтобы каждый процесс/поток получал достаточно большую порцию работы (обычно тысячи интервалов), минимизируя относительные накладные расходы.&lt;br /&gt;
&lt;br /&gt;
=== Результаты прогонов === &lt;br /&gt;
=== Выводы для классов архитектур === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
[1] Самарский А.А., Гулин А.В. Численные методы. М.: Наука, 1989. – 432 с.&lt;br /&gt;
&lt;br /&gt;
[2] Якобовский М.В. Введение в параллельные методы решения задач, 2013. - 328 с.&lt;br /&gt;
&lt;br /&gt;
[3] Антонов А.С. Технологии параллельного программирования MPI и OpenMP, 2012. - 344 с.&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Graph_1456.png&amp;diff=29962</id>
		<title>Файл:Graph 1456.png</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Graph_1456.png&amp;diff=29962"/>
		<updated>2025-11-06T14:32:50Z</updated>

		<summary type="html">&lt;p&gt;Без имени: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Информационный граф&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29961</id>
		<title>Участник:Без имени</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29961"/>
		<updated>2025-11-06T09:22:34Z</updated>

		<summary type="html">&lt;p&gt;Без имени: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро метода трапеций представляет собой вычисление суммы значений в узлах сетки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  S = f(x_0) + f(x_1) + ... + f(x_n) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; - подынтегральная функция&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; x_i = a+ih &amp;lt;/math&amp;gt; - узлы сетки &lt;br /&gt;
&lt;br /&gt;
n - количество интервалов разбиения &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I \approx \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная нагрузка приходится на &amp;lt;math&amp;gt;\sum_{i=1}^{n-1} f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро становится особо затратным для сложных функций, где приходится дополнительно вычислять ещё возведение в степень, экспоненту и др. Поэтому сама подынтегральная функция сильно сказывается на сложности. &lt;br /&gt;
&lt;br /&gt;
===  Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; INIT(a, b, n) → h, sum_initial &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычисление шага сетки: &amp;lt;source&amp;gt; h = (b - a) / n &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Инициализация суммы: &amp;lt;source&amp;gt; sum_initial = 0.5 * (f(a) + f(b)) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление суммы значений функции&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; SUM_FUNCTION_VALUES(a, h, n) -&amp;gt; sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная макрооперация&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;Вычисление: sum_core = ∑[i=1 to n-1] f(a + i·h) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Финальное вычисление интеграла&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; FINALIZE(sum_initial, sum_core, h) -&amp;gt; integral &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Объединение результатов: &amp;lt;source&amp;gt; total_sum = sum_initial + sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Финальное вычисление: &amp;lt;source&amp;gt; integral = total_sum * h &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров интегрирования&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Входные параметры&lt;br /&gt;
a = 0.0      # Нижний предел интегрирования&lt;br /&gt;
b = 10.0     # Верхний предел интегрирования  &lt;br /&gt;
n = 1000000  # Количество интервалов разбиения&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление шага сетки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Входные параметры&lt;br /&gt;
h = (b - a) / n  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляется равномерное расстояние между соседними узлами&lt;br /&gt;
&lt;br /&gt;
- Определяет плотность разбиения области интегрирования&lt;br /&gt;
&lt;br /&gt;
3. Инициализация суммы граничных значений&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
integral = 0.5 * (f(a) + f(b))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляются значения функции на границах интервала&lt;br /&gt;
&lt;br /&gt;
- Умножаются на коэффициент 0.5 согласно формуле трапеций&lt;br /&gt;
&lt;br /&gt;
- Создается начальное приближение интеграла&lt;br /&gt;
&lt;br /&gt;
4. Основной вычислительный цикл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for i in range(1, n):&lt;br /&gt;
    # Вычисление координаты текущего узла&lt;br /&gt;
    x = a + i * h&lt;br /&gt;
    # Вычисление значения функции в узле&lt;br /&gt;
    fx = f(x)&lt;br /&gt;
    # Накопление суммы&lt;br /&gt;
    integral += fx&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Для каждого i от 1 до n-1 вычисляется x_i = a + i·h&lt;br /&gt;
&lt;br /&gt;
- Для каждого узла вычисляется f(x_i). Это наиболее вычислительно затратная часть алгоритма&lt;br /&gt;
&lt;br /&gt;
- Накопление суммы&lt;br /&gt;
&lt;br /&gt;
5. Финальное вычисление интеграла &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
result = integral * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полная схема алгоритма&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
НАЧАЛО&lt;br /&gt;
  │&lt;br /&gt;
  |- Ввод параметров: a, b, n&lt;br /&gt;
  │&lt;br /&gt;
  |- Проверка: n &amp;gt; 0, a &amp;lt; b&lt;br /&gt;
  │&lt;br /&gt;
  |- Вычисление: h = (b - a) / n&lt;br /&gt;
  │&lt;br /&gt;
  |- Инициализация: sum = 0.5 * [f(a) + f(b)]&lt;br /&gt;
  │&lt;br /&gt;
  |- ЦИКЛ i = 1 ДО n-1:&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |-Вычисление: x = a + i * h&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |- Вычисление: fx = f(x)&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |─ Накопление: sum = sum + fx&lt;br /&gt;
  │&lt;br /&gt;
   Результат: integral = sum * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Метод трапеций относится к классу алгоритмов с линейной сложностью &amp;lt;math&amp;gt; O(n) &amp;lt;/math&amp;gt; по количеству интервалов разбиения n. Основной вклад в сложность вносят вычисления функции &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; именно от неё зависит количество проводимых вычислений в процессе применения формулы трапеций от каждого участка. &lt;br /&gt;
&lt;br /&gt;
=== Информационный граф === &lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма === &lt;br /&gt;
Основная вычислительная нагрузка сосредоточена в полностью независимых операциях вычисления значений функции в узлах сетки. Параллельная сложность составляет &amp;lt;math&amp;gt; O(1) &amp;lt;/math&amp;gt; для основной расчетной части при использовании достаточного количества процессоров. Структура параллелизма обеспечивает балансировку нагрузки и простоту реализации. При больших n доля последовательных операций стремится к нулю.&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма === &lt;br /&gt;
&lt;br /&gt;
На вход алгоритму подается подынтегральная функция, пределы интегрирования и количество участков, на которые разбивается отрезок интегрирования. На выходе число – значение определенного интеграла.&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма === &lt;br /&gt;
Для большинства практических применений метода трапеций достаточно одинарной точности (float). В большинстве практических случаев не требует двойной точности вычислений, поскольку его основная погрешность определяется теоретической ошибкой метода O(1/n²), а не вычислительной ошибкой округления.&lt;br /&gt;
&lt;br /&gt;
===  Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Основной способ распределения данных. Весь диапазон [a, b] разбивается на p блоков (где p - количество процессов), каждый процесс получает свой непрерывный блок интервалов. Для балансировки нагрузки при неравномерном количестве интервалов применяется циклическое распределение остатка - первые r процессов получают на один интервал больше. &lt;br /&gt;
&lt;br /&gt;
Ключевая коммуникационная операция - глобальная редукция (MPI_Reduce) для суммирования частичных интегралов. Объем пересылаемых данных минимален - каждый процесс отправляет всего одно вещественное число (свой частичный интеграл).&lt;br /&gt;
&lt;br /&gt;
Параллельная эффективность ограничена последовательной долей по закону Амдала, которая включает инициализацию и финальную редукцию. При больших n эта доля становится пренебрежимо малой. Для достижения максимальной производительности рекомендуется выбирать размер задачи n таким, чтобы каждый процесс/поток получал достаточно большую порцию работы (обычно тысячи интервалов), минимизируя относительные накладные расходы.&lt;br /&gt;
&lt;br /&gt;
=== Результаты прогонов === &lt;br /&gt;
=== Выводы для классов архитектур === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
[1] Самарский А.А., Гулин А.В. Численные методы. М.: Наука, 1989. – 432 с.&lt;br /&gt;
&lt;br /&gt;
[2] Якобовский М.В. Введение в параллельные методы решения задач, 2013. - 328 с.&lt;br /&gt;
&lt;br /&gt;
[3] Антонов А.С. Технологии параллельного программирования MPI и OpenMP, 2012. - 344 с.&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29960</id>
		<title>Участник:Без имени</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29960"/>
		<updated>2025-11-06T08:54:40Z</updated>

		<summary type="html">&lt;p&gt;Без имени: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро метода трапеций представляет собой вычисление суммы значений в узлах сетки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  S = f(x_0) + f(x_1) + ... + f(x_n) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; - подынтегральная функция&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; x_i = a+ih &amp;lt;/math&amp;gt; - узлы сетки &lt;br /&gt;
&lt;br /&gt;
n - количество интервалов разбиения &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I \approx \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная нагрузка приходится на &amp;lt;math&amp;gt;\sum_{i=1}^{n-1} f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро становится особо затратным для сложных функций, где приходится дополнительно вычислять ещё возведение в степень, экспоненту и др. Поэтому сама подынтегральная функция сильно сказывается на сложности. &lt;br /&gt;
&lt;br /&gt;
===  Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; INIT(a, b, n) → h, sum_initial &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычисление шага сетки: &amp;lt;source&amp;gt; h = (b - a) / n &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Инициализация суммы: &amp;lt;source&amp;gt; sum_initial = 0.5 * (f(a) + f(b)) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление суммы значений функции&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; SUM_FUNCTION_VALUES(a, h, n) -&amp;gt; sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная макрооперация&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;Вычисление: sum_core = ∑[i=1 to n-1] f(a + i·h) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Финальное вычисление интеграла&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; FINALIZE(sum_initial, sum_core, h) -&amp;gt; integral &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Объединение результатов: &amp;lt;source&amp;gt; total_sum = sum_initial + sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Финальное вычисление: &amp;lt;source&amp;gt; integral = total_sum * h &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров интегрирования&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Входные параметры&lt;br /&gt;
a = 0.0      # Нижний предел интегрирования&lt;br /&gt;
b = 10.0     # Верхний предел интегрирования  &lt;br /&gt;
n = 1000000  # Количество интервалов разбиения&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление шага сетки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Входные параметры&lt;br /&gt;
h = (b - a) / n  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляется равномерное расстояние между соседними узлами&lt;br /&gt;
&lt;br /&gt;
- Определяет плотность разбиения области интегрирования&lt;br /&gt;
&lt;br /&gt;
3. Инициализация суммы граничных значений&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
integral = 0.5 * (f(a) + f(b))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляются значения функции на границах интервала&lt;br /&gt;
&lt;br /&gt;
- Умножаются на коэффициент 0.5 согласно формуле трапеций&lt;br /&gt;
&lt;br /&gt;
- Создается начальное приближение интеграла&lt;br /&gt;
&lt;br /&gt;
4. Основной вычислительный цикл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for i in range(1, n):&lt;br /&gt;
    # Вычисление координаты текущего узла&lt;br /&gt;
    x = a + i * h&lt;br /&gt;
    # Вычисление значения функции в узле&lt;br /&gt;
    fx = f(x)&lt;br /&gt;
    # Накопление суммы&lt;br /&gt;
    integral += fx&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Для каждого i от 1 до n-1 вычисляется x_i = a + i·h&lt;br /&gt;
&lt;br /&gt;
- Для каждого узла вычисляется f(x_i). Это наиболее вычислительно затратная часть алгоритма&lt;br /&gt;
&lt;br /&gt;
- Накопление суммы&lt;br /&gt;
&lt;br /&gt;
5. Финальное вычисление интеграла &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
result = integral * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полная схема алгоритма&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
НАЧАЛО&lt;br /&gt;
  │&lt;br /&gt;
  |- Ввод параметров: a, b, n&lt;br /&gt;
  │&lt;br /&gt;
  |- Проверка: n &amp;gt; 0, a &amp;lt; b&lt;br /&gt;
  │&lt;br /&gt;
  |- Вычисление: h = (b - a) / n&lt;br /&gt;
  │&lt;br /&gt;
  |- Инициализация: sum = 0.5 * [f(a) + f(b)]&lt;br /&gt;
  │&lt;br /&gt;
  |- ЦИКЛ i = 1 ДО n-1:&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |-Вычисление: x = a + i * h&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |- Вычисление: fx = f(x)&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |─ Накопление: sum = sum + fx&lt;br /&gt;
  │&lt;br /&gt;
   Результат: integral = sum * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Метод трапеций относится к классу алгоритмов с линейной сложностью &amp;lt;math&amp;gt; O(n) &amp;lt;/math&amp;gt; по количеству интервалов разбиения n. Основной вклад в сложность вносят вычисления функции &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; именно от неё зависит количество проводимых вычислений в процессе применения формулы трапеций от каждого участка. &lt;br /&gt;
&lt;br /&gt;
=== Информационный граф === &lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма === &lt;br /&gt;
Основная вычислительная нагрузка сосредоточена в полностью независимых операциях вычисления значений функции в узлах сетки. Параллельная сложность составляет &amp;lt;math&amp;gt; O(1) &amp;lt;/math&amp;gt; для основной расчетной части при использовании достаточного количества процессоров. Структура параллелизма обеспечивает балансировку нагрузки и простоту реализации. При больших n доля последовательных операций стремится к нулю.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
[1] Самарский А.А., Гулин А.В. Численные методы. М.: Наука, 1989. – 432 с.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29959</id>
		<title>Участник:Без имени</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29959"/>
		<updated>2025-11-06T08:14:07Z</updated>

		<summary type="html">&lt;p&gt;Без имени: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро метода трапеций представляет собой вычисление суммы значений в узлах сетки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;  S = f(x_0) + f(x_1) + ... + f(x_n) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; - подынтегральная функция&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; x_i = a+ih &amp;lt;/math&amp;gt; - узлы сетки &lt;br /&gt;
&lt;br /&gt;
n - количество интервалов разбиения &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I \approx \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная нагрузка приходится на &amp;lt;math&amp;gt;\sum_{i=1}^{n-1} f(x_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро становится особо затратным для сложных функций, где приходится дополнительно вычислять ещё возведение в степень, экспоненту и др. Поэтому сама подынтегральная функция сильно сказывается на сложности. &lt;br /&gt;
&lt;br /&gt;
===  Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; INIT(a, b, n) → h, sum_initial &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вычисление шага сетки: &amp;lt;source&amp;gt; h = (b - a) / n &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Инициализация суммы: &amp;lt;source&amp;gt; sum_initial = 0.5 * (f(a) + f(b)) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление суммы значений функции&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; SUM_FUNCTION_VALUES(a, h, n) -&amp;gt; sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная вычислительная макрооперация&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;Вычисление: sum_core = ∑[i=1 to n-1] f(a + i·h) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Финальное вычисление интеграла&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt; FINALIZE(sum_initial, sum_core, h) -&amp;gt; integral &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Объединение результатов: &amp;lt;source&amp;gt; total_sum = sum_initial + sum_core &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Финальное вычисление: &amp;lt;source&amp;gt; integral = total_sum * h &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
1. Инициализация параметров интегрирования&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Входные параметры&lt;br /&gt;
a = 0.0      # Нижний предел интегрирования&lt;br /&gt;
b = 10.0     # Верхний предел интегрирования  &lt;br /&gt;
n = 1000000  # Количество интервалов разбиения&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Вычисление шага сетки&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Входные параметры&lt;br /&gt;
h = (b - a) / n  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляется равномерное расстояние между соседними узлами&lt;br /&gt;
&lt;br /&gt;
- Определяет плотность разбиения области интегрирования&lt;br /&gt;
&lt;br /&gt;
3. Инициализация суммы граничных значений&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
integral = 0.5 * (f(a) + f(b))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Вычисляются значения функции на границах интервала&lt;br /&gt;
&lt;br /&gt;
- Умножаются на коэффициент 0.5 согласно формуле трапеций&lt;br /&gt;
&lt;br /&gt;
- Создается начальное приближение интеграла&lt;br /&gt;
&lt;br /&gt;
4. Основной вычислительный цикл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for i in range(1, n):&lt;br /&gt;
    # Вычисление координаты текущего узла&lt;br /&gt;
    x = a + i * h&lt;br /&gt;
    # Вычисление значения функции в узле&lt;br /&gt;
    fx = f(x)&lt;br /&gt;
    # Накопление суммы&lt;br /&gt;
    integral += fx&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Для каждого i от 1 до n-1 вычисляется x_i = a + i·h&lt;br /&gt;
&lt;br /&gt;
- Для каждого узла вычисляется f(x_i). Это наиболее вычислительно затратная часть алгоритма&lt;br /&gt;
&lt;br /&gt;
- Накопление суммы&lt;br /&gt;
&lt;br /&gt;
5. Финальное вычисление интеграла &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
result = integral * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полная схема алгоритма&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
НАЧАЛО&lt;br /&gt;
  │&lt;br /&gt;
  |- Ввод параметров: a, b, n&lt;br /&gt;
  │&lt;br /&gt;
  |- Проверка: n &amp;gt; 0, a &amp;lt; b&lt;br /&gt;
  │&lt;br /&gt;
  |- Вычисление: h = (b - a) / n&lt;br /&gt;
  │&lt;br /&gt;
  |- Инициализация: sum = 0.5 * [f(a) + f(b)]&lt;br /&gt;
  │&lt;br /&gt;
  |- ЦИКЛ i = 1 ДО n-1:&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |-Вычисление: x = a + i * h&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |- Вычисление: fx = f(x)&lt;br /&gt;
  │   │&lt;br /&gt;
  │   |─ Накопление: sum = sum + fx&lt;br /&gt;
  │&lt;br /&gt;
   Результат: integral = sum * h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Метод трапеций относится к классу алгоритмов с линейной сложностью &amp;lt;math&amp;gt; O(n) &amp;lt;/math&amp;gt; по количеству интервалов разбиения n. Основной вклад в сложность вносят вычисления функции &amp;lt;math&amp;gt; f(x) &amp;lt;/math&amp;gt; именно от неё зависит количество проводимых вычислений в процессе применения формулы трапеций от каждого участка. &lt;br /&gt;
&lt;br /&gt;
=== Информационный граф === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
[1] Самарский А.А., Гулин А.В. Численные методы. М.: Наука, 1989. – 432 с.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29807</id>
		<title>Участник:Без имени</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29807"/>
		<updated>2025-10-28T10:45:57Z</updated>

		<summary type="html">&lt;p&gt;Без имени: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Погрешность метода &amp;lt;math&amp;gt;R_n = I - I_h&amp;lt;/math&amp;gt; оценивается по формуле: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R_n = -\frac{(b-a)}{12} h^2 f&#039;&#039;(\xi), \xi \in [a,b]&amp;lt;/math&amp;gt;&lt;br /&gt;
Или: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;|R_n| \leq \frac{(b-a)}{12} h^2 \max_{x \in [a,b]} |f&#039;&#039;(x)|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
На вычислительное ядро алгоритма приходится рекурсивное применение формулы трапеций на каждом из разбитых сегментов, пока не достигается требуемая точность. &lt;br /&gt;
&lt;br /&gt;
Вычисление трех интегральных оценок:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_1 = I_h(f, x_i, x_{i+1})&amp;lt;/math&amp;gt; - оценка по формуле трапеций на каждом отрезке&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_2 = I_h(f, x_i, m) + I_h(f, m, x_{i+1})&amp;lt;/math&amp;gt; - сумма оценок на двух половинках, где &amp;lt;math&amp;gt;m = \frac{x_i + x_{i+1}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оценка погрешности:&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon = |I_1 - I_2|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Критерий остановки рекурсии:&lt;br /&gt;
Если &amp;lt;math&amp;gt;\varepsilon &amp;gt; |I_1 - I_2|&amp;lt;/math&amp;gt;, возвращается &amp;lt;math&amp;gt;I_2&amp;lt;/math&amp;gt;&lt;br /&gt;
Иначе: рекурсивный вызов для &amp;lt;math&amp;gt;[x_i, m]&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;[m, x_{i+1}]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формула трапеций. Суммирование всех значений интегралов с каждого элементарного отрезка:&lt;br /&gt;
Для отрезка &amp;lt;math&amp;gt;[x_i, x_{i+1}]&amp;lt;/math&amp;gt; с &amp;lt;math&amp;gt;h = \frac{x_{i+1} - x_i}{n}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_h(f, x_i, x_{i+1}) = h \times [\frac{f(x_i)}{2} + \frac{f(x_{i+1})}{2} + \sum_{k=1}^{n-1} f(x_i + k \times h)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где суммирование ведется по &amp;lt;math&amp;gt;k = 1,\dots,n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
[1] Самарский А.А., Гулин А.В. Численные методы. М.: Наука, 1989. – 432 с.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29806</id>
		<title>Участник:Без имени</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29806"/>
		<updated>2025-10-28T10:38:11Z</updated>

		<summary type="html">&lt;p&gt;Без имени: /* Вычислительное ядро алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Погрешность метода &amp;lt;math&amp;gt;R_n = I - I_h&amp;lt;/math&amp;gt; оценивается по формуле: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R_n = -\frac{(b-a)}{12} h^2 f&#039;&#039;(\xi), \xi \in [a,b]&amp;lt;/math&amp;gt;&lt;br /&gt;
Или: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;|R_n| \leq \frac{(b-a)}{12} h^2 \max_{x \in [a,b]} |f&#039;&#039;(x)|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
На вычислительное ядро алгоритма приходится рекурсивное применение формулы трапеций на каждом из разбитых сегментов, пока не достигается требуемая точность. &lt;br /&gt;
&lt;br /&gt;
Вычисление трех интегральных оценок:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_1 = I_h(f, x_i, x_{i+1})&amp;lt;/math&amp;gt; - оценка по формуле трапеций на каждом отрезке&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_2 = I_h(f, x_i, m) + I_h(f, m, x_{i+1})&amp;lt;/math&amp;gt; - сумма оценок на двух половинках, где &amp;lt;math&amp;gt;m = \frac{x_i + x_{i+1}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оценка погрешности:&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon = |I_1 - I_2|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Критерий остановки рекурсии:&lt;br /&gt;
Если &amp;lt;math&amp;gt;\varepsilon &amp;gt; |I_1 - I_2|&amp;lt;/math&amp;gt;, возвращается &amp;lt;math&amp;gt;I_2&amp;lt;/math&amp;gt;&lt;br /&gt;
Иначе: рекурсивный вызов для &amp;lt;math&amp;gt;[x_i, m]&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;[m, x_{i+1}]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формула трапеций. Суммирование всех значений интегралов с каждого элементарного отрезка:&lt;br /&gt;
Для отрезка &amp;lt;math&amp;gt;[x_i, x_{i+1}]&amp;lt;/math&amp;gt; с &amp;lt;math&amp;gt;h = \frac{x_{i+1} - x_i}{n}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_h(f, x_i, x_{i+1}) = h \times [\frac{f(x_i)}{2} + \frac{f(x_{i+1})}{2} + \sum_{k=1}^{n-1} f(x_i + k \times h)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где суммирование ведется по &amp;lt;math&amp;gt;k = 1,\dots,n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29805</id>
		<title>Участник:Без имени</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29805"/>
		<updated>2025-10-28T10:37:37Z</updated>

		<summary type="html">&lt;p&gt;Без имени: /* Вычислительное ядро алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Погрешность метода &amp;lt;math&amp;gt;R_n = I - I_h&amp;lt;/math&amp;gt; оценивается по формуле: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R_n = -\frac{(b-a)}{12} h^2 f&#039;&#039;(\xi), \xi \in [a,b]&amp;lt;/math&amp;gt;&lt;br /&gt;
Или: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;|R_n| \leq \frac{(b-a)}{12} h^2 \max_{x \in [a,b]} |f&#039;&#039;(x)|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
На вычислительное ядро алгоритма приходится рекурсивное применение формулы трапеций на каждом из разбитых сегментов, пока не достигается требуемая точность. &lt;br /&gt;
&lt;br /&gt;
Вычисление трех интегральных оценок:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_1 = I_h(f, x_i, x_{i+1})&amp;lt;/math&amp;gt; - оценка по формуле трапеций на каждом отрезке&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_2 = I_h(f, x_i, m) + I_n(f, m, x_{i+1})&amp;lt;/math&amp;gt; - сумма оценок на двух половинках, где &amp;lt;math&amp;gt;m = \frac{x_i + x_{i+1}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оценка погрешности:&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon = |I_1 - I_2|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Критерий остановки рекурсии:&lt;br /&gt;
Если &amp;lt;math&amp;gt;\varepsilon &amp;gt; |I_1 - I_2|&amp;lt;/math&amp;gt;, возвращается &amp;lt;math&amp;gt;I_2&amp;lt;/math&amp;gt;&lt;br /&gt;
Иначе: рекурсивный вызов для &amp;lt;math&amp;gt;[x_i, m]&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;[m, x_{i+1}]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формула трапеций. Суммирование всех значений интегралов с каждого элементарного отрезка:&lt;br /&gt;
Для отрезка &amp;lt;math&amp;gt;[x_i, x_{i+1}]&amp;lt;/math&amp;gt; с &amp;lt;math&amp;gt;h = \frac{x_{i+1} - x_i}{n}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_h(f, x_i, x_{i+1}) = h \times [\frac{f(x_i)}{2} + \frac{f(x_{i+1})}{2} + \sum_{k=1}^{n-1} f(x_i + k \times h)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где суммирование ведется по &amp;lt;math&amp;gt;k = 1,\dots,n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29804</id>
		<title>Участник:Без имени</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29804"/>
		<updated>2025-10-28T10:36:27Z</updated>

		<summary type="html">&lt;p&gt;Без имени: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Погрешность метода &amp;lt;math&amp;gt;R_n = I - I_h&amp;lt;/math&amp;gt; оценивается по формуле: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R_n = -\frac{(b-a)}{12} h^2 f&#039;&#039;(\xi), \xi \in [a,b]&amp;lt;/math&amp;gt;&lt;br /&gt;
Или: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;|R_n| \leq \frac{(b-a)}{12} h^2 \max_{x \in [a,b]} |f&#039;&#039;(x)|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
На вычислительное ядро алгоритма приходится рекурсивное применение формулы трапеций на каждом из разбитых сегментов, пока не достигается требуемая точность. &lt;br /&gt;
&lt;br /&gt;
Вычисление трех интегральных оценок:&lt;br /&gt;
&amp;lt;math&amp;gt;I_1 = I_h(f, x_i, x_{i+1})&amp;lt;/math&amp;gt; - оценка по формуле трапеций на каждом отрезке&lt;br /&gt;
&amp;lt;math&amp;gt;I_2 = I_h(f, x_i, m) + I_n(f, m, x_{i+1})&amp;lt;/math&amp;gt; - сумма оценок на двух половинках, где &amp;lt;math&amp;gt;m = \frac{x_i + x_{i+1}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оценка погрешности:&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon = |I_1 - I_2|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Критерий остановки рекурсии:&lt;br /&gt;
Если &amp;lt;math&amp;gt;\varepsilon &amp;gt; |I_1 - I_2|&amp;lt;/math&amp;gt;, возвращается &amp;lt;math&amp;gt;I_2&amp;lt;/math&amp;gt;&lt;br /&gt;
Иначе: рекурсивный вызов для &amp;lt;math&amp;gt;[x_i, m]&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;[m, x_{i+1}]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формула трапеций. Суммирование всех значений интегралов с каждого элементарного отрезка:&lt;br /&gt;
Для отрезка &amp;lt;math&amp;gt;[x_i, x_{i+1}]&amp;lt;/math&amp;gt; с &amp;lt;math&amp;gt;h = \frac{x_{i+1} - x_i}{n}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_h(f, x_i, x_{i+1}) = h \times [\frac{f(x_i)}{2} + \frac{f(x_{i+1})}{2} + \sum_{k=1}^{n-1} f(x_i + k \times h)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где суммирование ведется по &amp;lt;math&amp;gt;k = 1,\dots,n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирования]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29803</id>
		<title>Участник:Без имени</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29803"/>
		<updated>2025-10-28T10:35:25Z</updated>

		<summary type="html">&lt;p&gt;Без имени: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Участник: Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции f(x) на отрезке [a,b]:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Погрешность метода &amp;lt;math&amp;gt;R_n = I - I_h&amp;lt;/math&amp;gt; оценивается по формуле: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R_n = -\frac{(b-a)}{12} h^2 f&#039;&#039;(\xi), \xi \in [a,b]&amp;lt;/math&amp;gt;&lt;br /&gt;
Или: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;|R_n| \leq \frac{(b-a)}{12} h^2 \max_{x \in [a,b]} |f&#039;&#039;(x)|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
На вычислительное ядро алгоритма приходится рекурсивное применение формулы трапеций на каждом из разбитых сегментов, пока не достигается требуемая точность. &lt;br /&gt;
&lt;br /&gt;
Вычисление трех интегральных оценок:&lt;br /&gt;
&amp;lt;math&amp;gt;I_1 = I_h(f, x_i, x_{i+1})&amp;lt;/math&amp;gt; - оценка по формуле трапеций на каждом отрезке&lt;br /&gt;
&amp;lt;math&amp;gt;I_2 = I_h(f, x_i, m) + I_n(f, m, x_{i+1})&amp;lt;/math&amp;gt; - сумма оценок на двух половинках, где &amp;lt;math&amp;gt;m = \frac{x_i + x_{i+1}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оценка погрешности:&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon = |I_1 - I_2|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Критерий остановки рекурсии:&lt;br /&gt;
Если &amp;lt;math&amp;gt;\varepsilon &amp;gt; |I_1 - I_2|&amp;lt;/math&amp;gt;, возвращается &amp;lt;math&amp;gt;I_2&amp;lt;/math&amp;gt;&lt;br /&gt;
Иначе: рекурсивный вызов для &amp;lt;math&amp;gt;[x_i, m]&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;[m, x_{i+1}]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формула трапеций. Суммирование всех значений интегралов с каждого элементарного отрезка:&lt;br /&gt;
Для отрезка &amp;lt;math&amp;gt;[x_i, x_{i+1}]&amp;lt;/math&amp;gt; с &amp;lt;math&amp;gt;h = \frac{x_{i+1} - x_i}{n}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_h(f, x_i, x_{i+1}) = h \times [\frac{f(x_i)}{2} + \frac{f(x_{i+1})}{2} + \sum_{k=1}^{n-1} f(x_i + k \times h)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где суммирование ведется по &amp;lt;math&amp;gt;k = 1,\dots,n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#[[Категория:Алгоритмы численного интегрирвоания]]&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29802</id>
		<title>Участник:Без имени</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%91%D0%B5%D0%B7_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=29802"/>
		<updated>2025-10-28T10:32:43Z</updated>

		<summary type="html">&lt;p&gt;Без имени: Новая страница: «{{algorithm | name              = Алгоритм параллельного вычисления интеграла с использованием состав...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм параллельного вычисления интеграла с использованием составной формулы трапеций.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Основные авторы описания: [[Кузнецова Д. Д.]]&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Метод трапеций является отдельным представителем класса алгоритмов численного интегрирования (приближённого вычисления определённых интегралов), также известных как квадратурные формулы.&lt;br /&gt;
Алгоритм предназначен для решения задачи нахождения приближённого значения определённого интеграла от функции f(x) на отрезке [a,b]:&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Требуется найти приближённое значение определённого интеграла от функции &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; на отрезке &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I = \int_a^b f(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный отрезок &amp;lt;math&amp;gt;[a,b]&amp;lt;/math&amp;gt; разбивается на &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; элементарных отрезков с помощью узлов интегрирования &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n&amp;lt;/math&amp;gt;, таких что: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_0 = a, x_n = b&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На каждом элементарном отрезке &amp;lt;math&amp;gt;[x_i,x_{i+1}]&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;i = 0,1,\dots,n-1&amp;lt;/math&amp;gt;, применяется формула трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_{x_i}^{x_{i+1}} f(x)dx \approx \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;math&amp;gt;h_i = x_{i+1} - x_i&amp;lt;/math&amp;gt; – длина элементарного отрезка.&lt;br /&gt;
Суммируя приближённые значения интегралов по всем элементарным отрезкам, получаем составную формулу трапеций: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx \sum_{i=0}^{n-1} \frac{f(x_i) + f(x_{i+1})}{2} h_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В частности, когда все элементарные отрезки имеют одинаковую длину (&amp;lt;math&amp;gt;h_i = h = \frac{b-a}{n}&amp;lt;/math&amp;gt;), формула принимает вид: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\int_a^b f(x)dx \approx I_h = \frac{h}{2} [f(x_0) + 2\sum_{i=1}^{n-1} f(x_i) + f(x_n)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_i = a + ih, i = 0,1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Погрешность метода &amp;lt;math&amp;gt;R_n = I - I_h&amp;lt;/math&amp;gt; оценивается по формуле: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R_n = -\frac{(b-a)}{12} h^2 f&#039;&#039;(\xi), \xi \in [a,b]&amp;lt;/math&amp;gt;&lt;br /&gt;
Или: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;|R_n| \leq \frac{(b-a)}{12} h^2 \max_{x \in [a,b]} |f&#039;&#039;(x)|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Метод трапеций имеет второй порядок точности и является точным для многочленов степени не выше первой.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
На вычислительное ядро алгоритма приходится рекурсивное применение формулы трапеций на каждом из разбитых сегментов, пока не достигается требуемая точность. &lt;br /&gt;
&lt;br /&gt;
Вычисление трех интегральных оценок:&lt;br /&gt;
&amp;lt;math&amp;gt;I_1 = I_h(f, x_i, x_{i+1})&amp;lt;/math&amp;gt; - оценка по формуле трапеций на каждом отрезке&lt;br /&gt;
&amp;lt;math&amp;gt;I_2 = I_h(f, x_i, m) + I_n(f, m, x_{i+1})&amp;lt;/math&amp;gt; - сумма оценок на двух половинках, где &amp;lt;math&amp;gt;m = \frac{x_i + x_{i+1}}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Оценка погрешности:&lt;br /&gt;
&amp;lt;math&amp;gt;\varepsilon = |I_1 - I_2|&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Критерий остановки рекурсии:&lt;br /&gt;
Если &amp;lt;math&amp;gt;\varepsilon &amp;gt; |I_1 - I_2|&amp;lt;/math&amp;gt;, возвращается &amp;lt;math&amp;gt;I_2&amp;lt;/math&amp;gt;&lt;br /&gt;
Иначе: рекурсивный вызов для &amp;lt;math&amp;gt;[x_i, m]&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;[m, x_{i+1}]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Формула трапеций. Суммирование всех значений интегралов с каждого элементарного отрезка:&lt;br /&gt;
Для отрезка &amp;lt;math&amp;gt;[x_i, x_{i+1}]&amp;lt;/math&amp;gt; с &amp;lt;math&amp;gt;h = \frac{x_{i+1} - x_i}{n}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_h(f, x_i, x_{i+1}) = h \times [\frac{f(x_i)}{2} + \frac{f(x_{i+1})}{2} + \sum_{k=1}^{n-1} f(x_i + k \times h)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где суммирование ведется по &amp;lt;math&amp;gt;k = 1,\dots,n-1&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Без имени</name></author>
	</entry>
</feed>