Прежде всего, вам нужно задать себе вопрос, если вам нужна круговая квадратурная процедура, в которой интеграл должен быть черным ящиком. Если это так, вы не можете не пойти на адаптивную квадратуру, где вы надеетесь, что адаптивность найдет «трудные» места в подынтегральном выражении. И это одна из причин, по которой Piessens et al. выбрал для правила Гаусса-Кронрода (этот тип правила позволяет вычислять аппроксимацию интеграла и оценку погрешности аппроксимации, используя те же оценки функций) скромного порядка, примененного в адаптивной схеме (с делением интервала на наибольшая ошибка), пока не будут достигнуты требуемые допуски. Алгоритм Винна-Эпсилона позволяет обеспечить ускорение сходимости и обычно помогает в тех случаях, когда имеются особенности конечных точек.
Но если вы знаете «форму» или «тип» вашего интеграта, вы можете адаптировать свой метод к тому, что вам нужно, чтобы вычислительные затраты были ограничены для необходимой точности. Итак, что вам нужно посмотреть:
интегрант:
- Гладкость: может ли она быть аппроксимирована (хорошо) полиномом из семейства ортогональных полиномов (если это так, квадратура Гаусса будет успешной)
- Особенности: можно ли разбить интеграл на интегралы только с особенностями конечной точки (если так, то правило IMT или двойная экспоненциальная квадратура будут хороши на каждом подинтервале)
- Вычислительная стоимость для оценки?
- Можно ли вычислить подынтегральное выражение? Или доступны только ограниченные точечные данные?
- Высоко колебательный интеграл: ищите методы типа Левина.
| х-с |- αсα
Интервал интегрирования: конечный, полубесконечный или бесконечный. В случае полубесконечных или бесконечных интервалов, могут ли они быть сведены к конечному интервалу путем преобразования переменной? Если нет, то полиномы Лагерра или Эрмита можно использовать в квадратурном подходе Гаусса.
У меня нет ссылки на реальную блок-схему для квадратуры в целом, но книга QUADPACK (не страницы Netlib, а настоящая книга) содержит блок-схему для выбора соответствующей подпрограммы на основе интеграла, который вы хотите оценить. Книга также описывает выбор алгоритмов, сделанных Piessens et al. для разных процедур.
Для низкоразмерных интегралов обычно используется вложенная одномерная квадратура. В частном случае двумерных интегралов (кубатуры) существуют правила интегрирования для разных случаев областей интегрирования. Р. Кулс собрал большое количество правил в своей энциклопедии кубатурных формул и является основным автором пакета Cubpack . Для больших размерных интегралов обычно прибегают к методам типа Монте-Карло. Однако, как правило, для получения разумной точности требуется очень большое количество оценок подынтегральных функций. Для низкоразмерных интегралов методы приближения, такие как квадратура / кубатура / вложенная квадратура, часто превосходят эти стохастические методы.
Общие интересные ссылки:
- Quadpack, Piessens, Роберт; де Донкер-Капенга, Элиз; Überhuber, Кристоф У .; Каханер, Дэвид (1983). QUADPACK: пакет подпрограмм для автоматической интеграции. Springer-Verlag. ISBN 978-3-540-12553-2
- Методы численного интегрирования: второе издание, доктор Дэвис и доктор Рабиновиц, 2007, Dover Books по математике, ISBN 978-0486453392