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

Урок про базовые квадратурные формулы: как приблизить определённый интеграл суммой площадей простых фигур.

Квадратурная формула приближает определённый интеграл взвешенной суммой значений функции в узлах: ∫f dx ≈ Σ w_i·f(x_i).

Идея: разбить площадь на полоски

Определённый интеграл — это площадь под графиком. Если первообразную не выписать (а это сплошь и рядом), площадь считают численно: делят отрезок на n полосок шириной h и приближают площадь каждой простой фигурой. Чем мельче полоски, тем точнее. Это та же дискретизация, что в первом разделе, но теперь — для интегрирования.

Простейший способ — прямоугольники: высоту берём по левому краю, правому или (лучше) середине полоски. Точнее — трапеции: соединяем значения на краях полоски прямой и берём площадь трапеции.

ФормулаВысота полоскиПорядок
Левые/правые прямоугольникизначение на одном краю1
Средние прямоугольникизначение в середине2
Трапециисреднее значений на краях2
def средние_прямоугольники(f, a, b, n):
    h = (b - a) / n
    s = sum(f(a + (i + 0.5) * h) for i in range(n))   # высота — в середине
    return s * h

def трапеции(f, a, b, n):
    h = (b - a) / n
    s = (f(a) + f(b)) / 2 + sum(f(a + i * h) for i in range(1, n))
    return s * h

g = lambda x: x * x          # интеграл x^2 от 0 до 1 = 1/3
точно = 1/3
for n in [2, 4, 8, 16, 64]:
    пр = средние_прямоугольники(g, 0.0, 1.0, n)
    тр = трапеции(g, 0.0, 1.0, n)
    print(f"n={n:3}: прямоуг={пр:.6f} (ош {abs(пр-точно):.1e})  "
          f"трапеции={тр:.6f} (ош {abs(тр-точно):.1e})")

Вывод:

n=  2: прямоуг=0.312500 (ош 2.1e-02)  трапеции=0.375000 (ош 4.2e-02)
n=  4: прямоуг=0.328125 (ош 5.2e-03)  трапеции=0.343750 (ош 1.0e-02)
n=  8: прямоуг=0.332031 (ош 1.3e-03)  трапеции=0.335938 (ош 2.6e-03)
n= 16: прямоуг=0.333008 (ош 3.3e-04)  трапеции=0.333984 (ош 6.5e-04)
n= 64: прямоуг=0.333313 (ош 2.0e-05)  трапеции=0.333374 (ош 4.1e-05)

При удвоении n ошибка обеих формул падает примерно вчетверо — это второй порядок (ошибка ∝ h²). Любопытно: средние прямоугольники здесь точнее трапеций (примерно вдвое) — это общее свойство, их ошибки имеют противоположный знак и наполовину компенсируются.

  трапеция:                    средний прямоугольник:
   f(a)___                          ___ f((a+b)/2)
   |    \___ f(b)                  |       |
   |       |                       |       |
   |_______|                       |_______|
   a       b                       a       b
   соединяем края прямой           высота — в середине полоски

Составные формулы

То, что мы написали, и есть составные формулы: одна простая формула применяется к каждой из n полосок, а результаты суммируются. Именно составные формулы используют на практике — простая формула на весь отрезок целиком слишком груба. Обратите внимание на трюк в трапециях: внутренние узлы входят в сумму один раз, а краевые — с весом 1/2, потому что каждый внутренний узел делят две соседние трапеции.

Как работает под капотом

Погрешность составной формулы трапеций равна −(b−a)·h²·f''(ξ)/12 — отсюда виден и порядок (), и то, что для линейной функции (f''=0) трапеции точны. У средних прямоугольников ошибка +(b−a)·h²·f''(ξ)/24 — вдвое меньше по модулю и противоположного знака. Эта противоположность знаков — ключ к следующему уроку: если взять «1/3 трапеций + 2/3 прямоугольников», член с f'' сократится, и мы получим формулу Симпсона четвёртого порядка почти даром.

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

  • Считать краевые узлы трапеций с полным весом. Концы отрезка входят с весом 1/2; забыв это, получите систематическую ошибку.
  • Брать левые/правые прямоугольники, когда доступна середина. Односторонние — первый порядок; средние — второй при той же цене.
  • Применять равномерную сетку к функции с пиком. Где функция резко меняется, нужно мельче — это мотивирует адаптивные методы.

Итоги

  • Интеграл приближают суммой площадей полосок; составная формула применяет простую к каждой полоске.
  • Средние прямоугольники и трапеции имеют второй порядок (ошибка ∝ h²): удвоение n уменьшает ошибку вчетверо.
  • В трапециях краевые узлы берут с весом 1/2; средние прямоугольники обычно вдвое точнее трапеций.
  • Противоположные знаки их ошибок — мост к точной формуле Симпсона.
Проверьте себя
1. Какой порядок точности у составной формулы трапеций?
Aпервый
Bвторой (ошибка ∝ h²)
Cтретий
Dчетвёртый
2. С каким весом входят краевые узлы a и b в составную формулу трапеций?
Aс весом 1
Bс весом 1/2
Cс весом 0
Dс весом 2
3. Почему ошибки средних прямоугольников и трапеций важны для метода Симпсона?
Aони равны
Bони противоположны по знаку, и их комбинация сокращает член с f'', давая 4-й порядок
Cони оба нулевые
Dони растут с n