У меня есть функция таким образом, что
конечна, и я хочу , чтобы приблизить этот интеграл.
Я знаком с квадратурными правилами и аппроксимациями интегралов по методу Монте-Карло, но вижу некоторые трудности при их реализации в бесконечной области. В случае Монте-Карло, как можно провести выборку бесконечной области (особенно, если области, которые вносят более существенный вклад в интеграл, неизвестны)? В квадратурном случае, как найти оптимальные точки? Должен ли я просто зафиксировать произвольно большую область вокруг центра координат и применить разреженные квадратурные правила? Как я могу приблизиться к этому интегралу?
Стандартный способ сделать это состоит в том, чтобы извлечь из выражения для экспоненциальный коэффициент, преобразовать его в e - x 2 , а затем использовать гауссовы квадратурные правила (или гауссовский кронрон) с этим в качестве веса. Если f гладкое, это обычно дает отличные результаты.f(x) e−x2 f
В то же самое работает с весом e - | х | 2 , и соответствующие кубатурные формулы можно найти, например, в книге Энгельса «Числовая квадратура и кубатура».R3 e−|x|2
Формулы онлайн находятся по адресу http://nines.cs.kuleuven.be/ecf/
источник
Для одномерной квадратуры вы можете проверить книгу по Quadpack (золотое старое, но все еще очень актуально в одномерной квадратуре) и методы, используемые в алгоритме QAGI, автоматическом интеграторе для бесконечного диапазона.
Другой метод - квадратурная формула с двумя экспонентами, хорошо реализованная Урой для бесконечного интервала .
Для кубатуры, вы можете обратиться к энциклопедии кубатурных формул Рональда Кулса.
источник
Если вы помните, как работала квадратура, вы также знаете один способ аппроксимации бесконечных интегралов. А именно: для квадратуры вы приближаете функциюе( х ) Вы хотите интегрировать что-то подобное, скажем, полином е~( х ) (или кусочно-полином), для которого вы можете записать интеграл аналитически. Вы получаетее~ из е путем интерполяции в точках интерполяции - которые будут вашими квадратурными точками.
Для бесконечных интегралов один подход использует точно такое же мышление. Например, вы можете попытаться приблизитьсяе( х ) по всей строке, используя более простую функцию, например е~( х ) = е- х2р ( х ) с полиномом р ( х ) это интерполирует е( х ) еИкс2 в ряде пунктов. Тогда есть простые формулы для вычисления интеграла∫∞- ∞е~( х ) дИкс , Выбор точек интерполяции следует той же логике, что и для обычного квадратурного вывода.
источник
Если вы хотите использовать интеграцию Монте-Карло, вы можете начать с выборки по важности с помощью сэмплера, который приблизительно соответствует вашему интегралу. Чем лучше ваш сэмплер соответствует вашему интегралу, тем меньше дисперсия в ваших интегральных оценках. Неважно, что ваш домен бесконечен, если ваш сэмплер имеет тот же домен.
источник