Существует несколько семейств методов для числовой квадратуры. Если у меня есть определенный класс подынтегральных функций, как выбрать идеальный метод?
Какие уместные вопросы следует задать как о подынтегральном выражении (например, является ли оно гладким? Есть ли у него особенности?), Так и о вычислительной проблеме (например, устойчивость к ошибкам, вычислительный бюджет)?
Как ответы на эти вопросы исключают или продвигают различные семейства методов? Для простоты рассмотрим только единичные или низкоразмерные интегралы.
Например, статья в Википедии о QUADPACK гласит, что довольно общая QAGS
процедура « использует глобальную адаптивную квадратуру, основанную на квадратуре Гаусса-Кронрода из 21 точки в каждом подинтервале, с ускорением по алгоритму Эпсилона Питера Уинна »
Как было принято это решение? Как можно принимать аналогичные решения, когда известно больше?
источник
Ответы:
Прежде всего, вам нужно задать себе вопрос, если вам нужна круговая квадратурная процедура, в которой интеграл должен быть черным ящиком. Если это так, вы не можете не пойти на адаптивную квадратуру, где вы надеетесь, что адаптивность найдет «трудные» места в подынтегральном выражении. И это одна из причин, по которой Piessens et al. выбрал для правила Гаусса-Кронрода (этот тип правила позволяет вычислять аппроксимацию интеграла и оценку погрешности аппроксимации, используя те же оценки функций) скромного порядка, примененного в адаптивной схеме (с делением интервала на наибольшая ошибка), пока не будут достигнуты требуемые допуски. Алгоритм Винна-Эпсилона позволяет обеспечить ускорение сходимости и обычно помогает в тех случаях, когда имеются особенности конечных точек.
Но если вы знаете «форму» или «тип» вашего интеграта, вы можете адаптировать свой метод к тому, что вам нужно, чтобы вычислительные затраты были ограничены для необходимой точности. Итак, что вам нужно посмотреть:
интегрант:
Интервал интегрирования: конечный, полубесконечный или бесконечный. В случае полубесконечных или бесконечных интервалов, могут ли они быть сведены к конечному интервалу путем преобразования переменной? Если нет, то полиномы Лагерра или Эрмита можно использовать в квадратурном подходе Гаусса.
У меня нет ссылки на реальную блок-схему для квадратуры в целом, но книга QUADPACK (не страницы Netlib, а настоящая книга) содержит блок-схему для выбора соответствующей подпрограммы на основе интеграла, который вы хотите оценить. Книга также описывает выбор алгоритмов, сделанных Piessens et al. для разных процедур.
Для низкоразмерных интегралов обычно используется вложенная одномерная квадратура. В частном случае двумерных интегралов (кубатуры) существуют правила интегрирования для разных случаев областей интегрирования. Р. Кулс собрал большое количество правил в своей энциклопедии кубатурных формул и является основным автором пакета Cubpack . Для больших размерных интегралов обычно прибегают к методам типа Монте-Карло. Однако, как правило, для получения разумной точности требуется очень большое количество оценок подынтегральных функций. Для низкоразмерных интегралов методы приближения, такие как квадратура / кубатура / вложенная квадратура, часто превосходят эти стохастические методы.
Общие интересные ссылки:
источник