Численные методы

Численное интегрирование

Stanislaw Ulam, 1946 год, болезнь - и пасьянс. Он считает вероятность выигрыша комбинаторно, потом думает: а что если просто разыграть тысячу партий и посчитать? Так родился метод Монте-Карло - и через год он уже считал нейтронный транспорт для ядерной бомбы. Сегодня тот же принцип: байесовские нормализующие константы, AUC под ROC - численный интеграл, где размерность убивает классику.

  • **scipy.integrate.quad:** вычисление нормализующих констант в вероятностных моделях; площадь под PR-кривой через трапеции
  • **Монте-Карло в ML:** оценка ELBO в вариационных автоэнкодерах (VAE); Монте-Карло Dropout; MCMC-сэмплирование
  • **AUC-ROC:** sklearn.metrics.auc использует правило трапеций по точкам ROC-кривой - численный интеграл

Предварительные знания

  • Numerical Eigenvalue Computation

Формулы Ньютона-Котеса

Численное интегрирование - вычисление ∫ᵃᵇ f(x) dx, когда аналитическая первообразная недоступна. Формулы Ньютона-Котеса аппроксимируют f(x) полиномом через равноотстоящие узлы. Метод трапеций: O(h²), Симпсон 1/3: O(h⁴).

**Формулы Ньютона-Котеса:** **Трапеций (степень 1):** ∫ᵃᵇ f dx ≈ h/2·(f₀ + 2f₁ + ... + 2fₙ₋₁ + fₙ), h = (b−a)/n Погрешность: O(h²) - при h → 0 ошибка уменьшается как h² **Симпсон 1/3 (степень 2):** ∫ᵃᵇ f dx ≈ h/3·(f₀ + 4f₁ + 2f₂ + 4f₃ + ... + fₙ) Погрешность: O(h⁴) - гораздо точнее при малом h! **Симпсон 3/8 (степень 3):** O(h⁴)

МетодПорядокУзловПрименение
ПрямоугольникO(h)nБыстрая оценка
ТрапецийO(h²)n+1Общее использование
Симпсон 1/3O(h⁴)n+1 (чётное n)Точное интегрирование
Симпсон 3/8O(h⁴)3k+1Тройное разбиение

Почему формула Симпсона точнее метода трапеций при одинаковом числе точек?

Квадратуры Гаусса

Квадратуры Гаусса - оптимальное интегрирование: выбирают не только веса, но и **узлы**. n узлов Гаусса-Лежандра точно интегрируют полиномы степени до 2n−1. Это вдвое лучше любой формулы с n равноотстоящими узлами!

**Гаусс-Лежандр квадратура:** ∫₋₁¹ f(x) dx ≈ Σᵢ wᵢ f(xᵢ) Узлы xᵢ = корни полинома Лежандра Pₙ(x) Веса wᵢ = 2 / ((1−xᵢ²)[Pₙ'(xᵢ)]²) **n = 5 точек точно интегрируют полиномы степени ≤ 9!** Перевод с [a,b]: x = (b−a)/2·t + (a+b)/2, t ∈ [−1,1]. `scipy.integrate.fixed_quad(f, a, b, n=5)` - квадратура Гаусса

Квадратуры Гаусса оптимальны для **гладких** функций. Для функций с особенностями (разрыв производной, сингулярность) используйте адаптивное интегрирование `scipy.integrate.quad` или специальные формулы.

Квадратура Гаусса с n узлами точно интегрирует полиномы степени:

Адаптивное интегрирование и Монте-Карло

Адаптивное интегрирование автоматически делит [a,b] на подотрезки там, где функция быстро меняется. `scipy.integrate.quad` - адаптивное Гаусс-Kronrod правило. Монте-Карло интегрирование случайными выборками масштабируется намного лучше в высоких размерностях.

**Монте-Карло интегрирование:** ∫_Ω f(x) dx ≈ Vol(Ω) · (1/N) Σᵢ f(xᵢ), xᵢ ~ Uniform(Ω) **Скорость сходимости:** O(1/√N) - независимо от размерности! Для d-мерного интеграла: - Ньютон-Котес: O(h^p) = O(N^{-p/d}) - плохо при больших d - Монте-Карло: O(N^{-1/2}) - всегда! При d = 10 и p = 4: нужно N^{2/5} = N^{0.4} узлов квадратуры для той же точности что √N Монте-Карло.

Почему метод Монте-Карло предпочтительнее квадратур для многомерных интегралов (d > 5)?

Ключевые идеи

  • **Трапеции/Симпсон:** O(h²)/O(h⁴) точность; простые; scipy.integrate.trapezoid, simpson
  • **Гаусс-Лежандр:** оптимальные узлы; n точек точны для полиномов степени 2n−1; scipy.integrate.fixed_quad
  • **scipy.integrate.quad:** адаптивное Гаусс-Kronrod; автоматический контроль ошибки; стандарт для 1D
  • **Монте-Карло:** O(N^{-1/2}) независимо от размерности; единственный реалистичный выбор для d > 5

Связанные темы

Численное интегрирование связано с ОДУ и вероятностными методами:

  • Численные методы для ОДУ — Численное интегрирование - основа методов Рунге-Кутты: каждый шаг интегрирует f(t, y) по малому интервалу
  • Numerical Methods в ML — Монте-Карло интегрирование лежит в основе VAE, MCMC, Dropout - все используют случайную аппроксимацию интегралов

Вопросы для размышления

  • Почему формула Симпсона имеет погрешность O(h⁴), хотя она аппроксимирует f параболой (степень 2)?
  • Как оценить необходимое число выборок N в методе Монте-Карло для достижения ошибки ε?
  • Когда квазислучайные последовательности (quasi-MC, Sobol, Halton) лучше псевдослучайных для интегрирования?

Связанные уроки

  • calc-11-definite
Численное интегрирование

0

1

Войти