У меня есть (2-мерный) неправильный интеграл
где область интегрирования меньше, чем , но дополнительно ограничена . Так как и гладкие иx = [ - 1 , 1 ] y = [ - 1 , 1 ] F ( x , y ) > 0 F W W ≠ 0 F ( x , y ) y x I W ( x , y )на границах из более позднего соотношения следует, что подынтегральное выражение может быть сингулярным на границах. Интегральная функция конечна, хотя. Пока что я вычисляю этот интеграл с помощью вложенного числового интегрирования. Это успешно, но медленно. Я ищу более подходящий (более быстрый) метод для решения интегрального, может быть, метода Монте-Карло. Но мне нужна такая, которая не ставит точки на границе некубической области A и правильно принимает предел несобственного интеграла. Может ли интегральное преобразование помочь в этом общем выражении? Обратите внимание, что я могу определить для как функцию от и даже вычислить для нескольких специальных весовых функций .
источник
Ответы:
Отказ от ответственности: я написал свою кандидатскую диссертацию по адаптивной квадратуре, поэтому этот ответ будет сильно смещен к моей собственной работе.
QAGS от GSL - это старый интегратор QUADPACK , и он не совсем устойчив, особенно при наличии особенностей. Обычно это приводит к тому, что пользователи запрашивают гораздо больше цифр точности, чем им действительно нужно, что делает интеграцию довольно дорогой.
Если вы используете GSL, вы можете попробовать мой собственный код CQUAD , описанный в этой статье . Он предназначен для того, чтобы справляться с особенностями, как на краях промежутка, так и внутри области. Обратите внимание, что оценка ошибки достаточно надежна, поэтому запрашивайте столько цифр, сколько вам действительно нужно.
Что касается интеграции Монте-Карло, то это зависит от того, какую точность вы ищете. Я также не совсем уверен, насколько хорошо он будет работать вблизи сингулярностей.
источник
Методы Монте-Карло, как правило, не могут конкурировать с адаптивной квадратурой, если у вас нет высокоразмерного интеграла, где вы не можете позволить комбинаторный взрыв квадратурных точек с размерностью.
Причина относительно проста для понимания. Взять, к примеру, просто где - размерность задачи. Предположим, для простоты, что вы подразделяете каждое измерение на подинтервалов, т.е. вы получаете в общей сложности ячеек гиперкуба. Предположим далее, что вы используете формулу Гаусса с точками Гаусса, просто в качестве примера. Тогда у вас есть квадратурных точек в общей сложности, и поскольку гауссовых точек обеспечивают точность порядка , , ваша общая точность как функция оценочных баллов будет∫[0,1]nf(x)dnx n M Mn k N=(kM)n k (2k−1) e=O(h5)=O(M−(2k−1))
Теперь существуют практические (стабильность) проблемы с интеграцией, скажем, с 8 или 10 точками за интервал. Так что если вы хотите , то вы не можете выйти за пределы . С другой стороны, в этом случае даже выбор одного интервала для каждого направления ( ) дает точек интегрирования, что намного больше, чем вы могли бы оценить за всю жизнь. Другими словами, до тех пор, пока вы можете оценить достаточно точек интеграции, квадратура подразделений вашей области интеграции всегда является более эффективным подходом. Это случаи, когда у вас есть многомерный интеграл, для которого вы не можете больше оценить точки интеграции даже на одном подразделении, когда люди используют методы Монте-Карло, несмотря на их худший порядок сходимости.n = 30 M = 1 N = 8 30k≤8 n=30 M=1 N=830
источник
Попробуйте вложенную двойную экспоненциальную квадратуру (см. Реализации Ooura ). В этом методе используется переменное преобразование, которое позволяет преобразованному интегрирующему себя вести себя очень плавно на границах и является очень эффективным для обработки особенностей на границе. На его сайте также есть очень хороший список ссылок на квадратуру DE.
источник