EssayAI
Блог
Блог
Математика и алгоритмы

Метод Симпсона: численное интегрирование

12 февраля 2026Время чтения: 9 минут
#метод Симпсона#численное интегрирование#квадратурные формулы#аппроксимация интеграла#погрешность
Метод Симпсона: численное интегрирование

Метод Симпсона - квадратурная формула численного интегрирования, в которой подынтегральная функция на каждом маленьком отрезке заменяется параболой через три равноотстоящие точки, а интеграл от параболы берётся аналитически. В обмен на чуть более громоздкую формулу, чем у трапеций, метод получает алгебраическую точность 3 (точно интегрирует все многочлены до третьей степени) и глобальную погрешность O(h4)O(h^4) - на порядок лучше трапеций при том же числе вычислений ff.

Постановка задачи и идея

Нужно вычислить определённый интеграл I=abf(x)dxI = \int_a^b f(x)\, dx, когда первообразная неизвестна, выражается через специальные функции (как ex2dx\int e^{-x^2} dx) или функция вообще задана таблично. Идея всех квадратурных формул одна: разбить [a,b][a, b] на куски, на каждом заменить ff простой функцией и сложить. Прямоугольники заменяют ff константой, трапеции - линейной, метод Симпсона - параболой P2(x)P_2(x) через три точки.

Возьмём отрезок [a,b][a, b] и три узла: концы x0=ax_0 = a, x2=bx_2 = b и середину x1=(a+b)/2x_1 = (a+b)/2. Шаг h=(ba)/2h = (b - a)/2. Через f0,f1,f2f_0, f_1, f_2 проходит единственный многочлен Лагранжа P2(x)P_2(x). Заменяем ff на P2P_2 и интегрируем:

abP2(x)dx=h3[f0+4f1+f2].\int_a^b P_2(x)\, dx = \frac{h}{3}\bigl[f_0 + 4 f_1 + f_2\bigr].

Это базовая формула Симпсона для «двойного» отрезка длиной 2h2h. Веса 1,4,11, 4, 1 получаются прямым вычислением интегралов от базисных многочленов Лагранжа. Алгебраическая точность - 3: формула точна не только для 1,x,x21, x, x^2, но и для x3x^3 - за счёт симметрии узлов относительно x1x_1.

Tool: посчитать интеграл методом Симпсона

Подставлять «руками» формулу h3[f0+4f1+f2]\frac{h}{3}[f_0 + 4f_1 + f_2] для n=16n = 16 узлов утомительно: восемь четвёрок, семь двоек, два краевых значения. Ниже - мини-форма: выбираешь функцию из списка (или вписываешь свою), границы a,ba, b и число отрезков nn - получаешь подробный разбор с подстановкой в составную формулу и сравнением с аналитическим ответом, где он есть.

Составная формула Симпсона

Один глобальный шаг h=(ba)/2h = (b - a)/2 - это грубо. Поэтому разбивают [a,b][a, b] на nn равных отрезков длиной h=(ba)/nh = (b - a)/n, причём nn обязательно чётное, и применяют базовую формулу к каждой паре соседних отрезков. Узлы: xi=a+ihx_i = a + i h, i=0,1,,ni = 0, 1, \ldots, n, значения fi=f(xi)f_i = f(x_i). После приведения подобных получается составная формула Симпсона:

Ih3[f0+4(f1+f3++fn1)+2(f2+f4++fn2)+fn].I \approx \frac{h}{3}\bigl[f_0 + 4(f_1 + f_3 + \ldots + f_{n-1}) + 2(f_2 + f_4 + \ldots + f_{n-2}) + f_n\bigr].

Запоминается просто: крайние значения с весом 1, нечётные узлы (центры «двойных» отрезков) - с весом 4, чётные внутренние - с весом 2. В сумме f0+4нечёт+2чёт+fnf_0 + 4\sum_{\text{нечёт}} + 2\sum_{\text{чёт}} + f_n участвует n+1n + 1 значение функции - столько же, сколько в формуле трапеций, но точность выше в h2/h4=1/h2h^2/h^4 = 1/h^2 раз.

Требование чётности $n$ - не косметическое. Если разбить $[a, b]$ на нечётное число отрезков, последняя пара «не закроется», и для неё придётся отдельно применять правило Симпсона 3/8 или формулу трапеций, иначе формула просто не определена.

Оценка погрешности и порядок O(h4)O(h^4)

Точное представление остатка для составной формулы:

R=(ba)h4180f(4)(ξ),ξ(a,b).R = -\frac{(b - a)\, h^4}{180}\, f^{(4)}(\xi), \qquad \xi \in (a, b).

Отсюда оценка сверху:

R(ba)h4180maxx[a,b]f(4)(x).|R| \le \frac{(b - a)\, h^4}{180}\, \max_{x \in [a,b]} |f^{(4)}(x)|.

Главный вывод: погрешность падает как h4h^4. Удвоение числа отрезков (уменьшение hh вдвое) снижает ошибку в 24=162^4 = 16 раз. У трапеций тот же двукратный шаг даёт 4 раза. Метод Симпсона точен для кубических многочленов: f(4)0f^{(4)} \equiv 0 для любого ff степени 3\le 3, остаток обнуляется.

Практически погрешность контролируют правилом Рунге: считают интеграл с шагом hh и с шагом h/2h/2, разность Ih/2IhI_{h/2} - I_h делят на 241=152^4 - 1 = 15 - это оценка остатка для Ih/2I_{h/2}. Если разность меньше ε\varepsilon, точность достигнута, а ответ можно уточнить по Ричардсону: IIh/2+(Ih/2Ih)/15I \approx I_{h/2} + (I_{h/2} - I_h)/15 - это уже O(h6)O(h^6). Альтернативный способ связать сумму значений функции с интегралом и явно выписать поправочные члены через производные на концах даёт формула Эйлера-Маклорена - её разложение по сути объясняет, почему симметричные квадратуры типа Симпсона теряют чётные степени hh в остатке.

Сравнение с прямоугольниками и трапециями

Все три классические формулы Ньютона-Котеса используют равноотстоящие узлы и отличаются только порядком интерполяции:

МетодИнтерполяцияПогрешностьАлгебраическая точность
Левые прямоугольникиконстанта f(xi)f(x_i)O(h)O(h)0
Средние прямоугольникиконстанта f(xi+1/2)f(x_{i+1/2})O(h2)O(h^2)1
ТрапециилинейнаяO(h2)O(h^2)1
СимпсонпараболаO(h4)O(h^4)3
Симпсон 3/8кубическаяO(h4)O(h^4)3

Для гладких функций метод Симпсона почти всегда оптимален: точность h4h^4 при тех же n+1n + 1 вычислениях ff, что и у трапеций. Для функций с разрывом производной порядок h4h^4 не достигается - нужна адаптивная схема или замена переменной.

Метод Симпсона 3/8

Если интерполировать тремя интервалами (четырьмя точками x0,x1,x2,x3x_0, x_1, x_2, x_3) кубической параболой и взять интеграл, получится правило Симпсона 3/8:

x0x3fdx3h8[f0+3f1+3f2+f3],h=(x3x0)/3.\int_{x_0}^{x_3} f\, dx \approx \frac{3h}{8}\bigl[f_0 + 3 f_1 + 3 f_2 + f_3\bigr], \qquad h = (x_3 - x_0)/3.

Алгебраическая точность та же - 3, порядок тот же - O(h4)O(h^4), но константа в остатке чуть хуже, и формула требует, чтобы число отрезков было кратно 3. На практике 3/8 идёт добивкой, когда nn оказалось нечётным: последние три отрезка считают по 3/8, остальные - обычным Симпсоном.

Адаптивная квадратура Симпсона

Когда ff ведёт себя неравномерно - гладко в одной части отрезка и резко меняется в другой, - равномерное разбиение тратит точки впустую. Адаптивный Симпсон работает рекурсивно: для отрезка [a,b][a, b] считает S(a,b)S(a, b) на n=2n = 2, потом S(a,m)+S(m,b)S(a, m) + S(m, b) на середине m=(a+b)/2m = (a + b)/2. Если S(a,m)+S(m,b)S(a,b)<15ε|S(a, m) + S(m, b) - S(a, b)| < 15 \varepsilon, считает результат достаточно точным; иначе рекурсивно вызывает себя на половинках с допуском ε/2\varepsilon / 2. Алгоритм автоматически кладёт больше точек туда, где f(4)|f^{(4)}| велика. Это базовый трюк библиотек численного интегрирования (scipy.integrate.quad).

Классические примеры и типовые задачи

Площадь под sinx\sin x на [0,π][0, \pi]. Точное значение - 0πsinxdx=2\int_0^\pi \sin x\, dx = 2. Возьмём n=4n = 4, h=π/4h = \pi/4: f0=0f_0 = 0, f1=sin(π/4)0,7071f_1 = \sin(\pi/4) \approx 0{,}7071, f2=1f_2 = 1, f30,7071f_3 \approx 0{,}7071, f4=0f_4 = 0. Подстановка: Iπ/43[0+40,7071+21+40,7071+0]2,0046I \approx \frac{\pi/4}{3}[0 + 4 \cdot 0{,}7071 + 2 \cdot 1 + 4 \cdot 0{,}7071 + 0] \approx 2{,}0046. Ошибка 0,00460{,}0046 при всего пяти значениях функции.

Интеграл Гаусса 11ex2dx\int_{-1}^1 e^{-x^2}\, dx аналитически выражается через функцию ошибок πerf(1)1,4936\sqrt{\pi}\, \mathrm{erf}(1) \approx 1{,}4936. Метод Симпсона на n=8n = 8 даёт 1,4937\approx 1{,}4937 - никакая первообразная не нужна. Длина дуги L=ab1+(f)2dxL = \int_a^b \sqrt{1 + (f')^2}\, dx почти никогда не берётся аналитически; численный Симпсон на n=16n = 16-3232 даёт точность 4-5 знаков.

В типовых задачах на коллоквиуме просят: посчитать интеграл с заданным nn и сравнить с точным значением; оценить минимальное nn, при котором погрешность ε\le \varepsilon, через формулу R(ba)h4180M4|R| \le \frac{(b-a) h^4}{180} M_4; применить правило Рунге и уточнить ответ по Ричардсону; сравнить точность Симпсона, трапеций и средних прямоугольников на одном ff.

Частые ошибки

  • Берут нечётное nn. Составная формула Симпсона не определена для нечётного числа отрезков - нужна либо чётность, либо добивка правилом 3/8 на последних трёх отрезках.
  • Путают веса 4 и 2. Узлы с нечётными индексами (середины «двойных» отрезков) - это 4; чётные внутренние - это 2. Проверка: при f1f \equiv 1 сумма должна дать bab - a.
  • Считают шаг через (ba)/(n1)(b - a)/(n - 1). На самом деле h=(ba)/nh = (b - a)/n, а узлов получается n+1n + 1. Ошибка сдвигает все fif_i.
  • Применяют Симпсон к функции с особенностью. В точке излома или на 01xdx\int_0^1 \sqrt{x}\, dx четвёртая производная неограничена, и обещанный O(h4)O(h^4) не работает - нужно разбить интеграл на гладкие куски или взять адаптивную схему.

FAQ

Почему метод Симпсона точен для кубических многочленов, если интерполируем параболой? Из-за симметрии узлов. Базовая формула берёт три симметричные относительно x1x_1 точки. Кубический член x3x^3 - нечётная функция относительно середины, и его интеграл по симметричному отрезку, посчитанный через симметричные веса, совпадает с точным значением. Формально это видно из остатка Rf(4)(ξ)R \propto f^{(4)}(\xi): для кубики f(4)=0f^{(4)} = 0, и R=0R = 0 автоматически.

Когда лучше использовать правило 3/8? Когда число отрезков nn кратно трём, но не кратно двум (например, n=9,15,21n = 9, 15, 21) - тогда обычный Симпсон не применим, а 3/8 ложится ровно. Чаще 3/8 используют как добивку: для n=5n = 5 берут n3=2n - 3 = 2 отрезка обычным Симпсоном плюс последние 3 отрезка - правилом 3/8. На гладких функциях обе формулы дают сопоставимую точность.

Чем метод Симпсона отличается от квадратур Гаусса? Симпсон - это формула Ньютона-Котеса с равноотстоящими узлами. Квадратуры Гаусса выбирают узлы оптимально (нули полиномов Лежандра) и для kk узлов дают алгебраическую точность 2k12k - 1 против k1k - 1 у Ньютона-Котеса. Гаусс точнее, но узлы и веса заранее не очевидны - нужны таблицы; зато для аналитических функций сходимость экспоненциальная, а не степенная. Симпсон проще объяснить и удобнее, когда ff задана таблично с равномерным шагом.

Коротко

Метод Симпсона - квадратурная формула, заменяющая подынтегральную функцию параболой через три равноотстоящие точки. Базовая формула h3[f0+4f1+f2]\frac{h}{3}[f_0 + 4 f_1 + f_2] точна для всех многочленов до куба включительно. Составная формула h3[f0+4нечёт+2чёт+fn]\frac{h}{3}[f_0 + 4 \sum_{\text{нечёт}} + 2 \sum_{\text{чёт}} + f_n] на nn чётных отрезках даёт погрешность O(h4)O(h^4) - на порядок лучше трапеций при том же числе вычислений ff. Удвоение nn снижает ошибку в 16 раз; точность контролируют правилом Рунге, а адаптивные варианты Симпсона лежат в основе библиотек численного интегрирования. Для нечётного числа отрезков работает правило Симпсона 3/8 с тем же порядком. Метод применим к любой гладкой ff, не требует первообразной и одинаково удобен как для аналитически заданной функции, так и для табличных данных.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также