Адаптивная квадратура — это метод численного интегрирования , в котором интеграл функции аппроксимируется с использованием статических квадратурных правил на адаптивно уточненных подынтервалах области интегрирования. Как правило, адаптивные алгоритмы столь же эффективны и действенны , как и традиционные алгоритмы для «хорошо себя ведущих» интегрантов, но также эффективны для «плохо себя ведущих» интегрантов, для которых традиционные алгоритмы могут потерпеть неудачу.
Адаптивная квадратура следует общей схеме
1. процедура интегрирования ( f, a, b, τ )2. 3. 4. если ε > τ , то 5. м = (а + б) / 26. Q = интегрировать(f, a, m, τ/2) + интегрировать (f, m, b, τ/2)7. конецесли 8. возврат Q
Вычисляется приближение к интегралу по интервалу (строка 2), а также оценка погрешности (строка 3). Если оцененная погрешность больше требуемого допуска (строка 4), интервал делится (строка 5) и квадратура применяется к обеим половинам по отдельности (строка 6). Возвращается либо начальная оценка, либо сумма рекурсивно вычисленных половин (строка 7).
Важными компонентами являются само квадратурное правило.
оценка погрешности
и логика принятия решения о том, какой интервал следует разделить и когда завершить.
Существует несколько вариантов этой схемы. Наиболее распространенный будет рассмотрен далее.
Правила квадратуры обычно имеют вид
где узлы и веса обычно вычисляются заранее.
В простейшем случае используются формулы Ньютона–Котеса четной степени, где узлы равномерно распределены на интервале:
При использовании таких правил точки, в которых была выполнена оценка, могут быть повторно использованы при рекурсии:
Аналогичная стратегия используется с квадратурой Кленшоу–Кертиса , где узлы выбираются как
Или, когда используется квадратура Фейера ,
Также могут использоваться другие квадратурные правила, такие как квадратура Гаусса или квадратура Гаусса-Кронрода .
Алгоритм может использовать различные квадратурные методы на различных подынтервалах, например, использовать метод высокого порядка только там, где подынтегральное выражение является гладким.
Некоторые квадратурные алгоритмы генерируют последовательность результатов, которая должна приближаться к правильному значению. В противном случае можно использовать «нулевое правило», которое имеет форму квадратурного правила выше, но значение которого будет равно нулю для простого интегранта (например, если интегрант был полиномом соответствующей степени).
Видеть:
«Локальная» адаптивная квадратура делает приемлемую ошибку для заданного интервала пропорциональной длине этого интервала. Этот критерий может быть трудновыполнимым, если подынтегральные функции ведут себя плохо только в нескольких точках, например, с несколькими разрывами шага. В качестве альтернативы можно было бы потребовать только, чтобы сумма ошибок на каждом из подынтервалов была меньше, чем требуется пользователю. Это была бы «глобальная» адаптивная квадратура. Глобальная адаптивная квадратура может быть более эффективной (используя меньше оценок подынтегральной функции), но, как правило, более сложна в программировании и может потребовать больше рабочего пространства для записи информации о текущем наборе интервалов.