Числова інтеграція багатовимірного інтеграла з відомими межами


12

У мене (2-мірний) неправильний інтеграл

I=AW(x,y)F(x,y)dxdy

де область інтеграції менша, ніж , але додатково обмежена . Оскільки і гладкі, аx = [ - 1 , 1 ] y = [ - 1 , 1 ] F ( x , y ) > 0 F W W 0Ax=[1,1]y=[1,1]F(x,y)>0FWW0на кордонах пізніше відношення означає, що інтегрант може бути єдиним на кордонах. Інтегрант хоч і кінцевий. Я поки що обчислюю цей інтеграл за допомогою вкладеної чисельної інтеграції. Це успішно, але повільно. Я шукаю більш підходящий (швидший) метод для вирішення цілісного, можливо, методу Монте-Карло. Але мені потрібна така, яка не ставить крапки на межі некубічної області A і правильно приймає межу неправильного інтеграла. Чи може інтегральна трансформація допомогти цьому загальному вираженню? Зауважте, що я можу вирішити для як функцію і навіть обчислити для кількох спеціальних вагових функцій .y x I W ( x , y )F(x,y)yxIW(x,y)


Чи можете ви бути трохи більш конкретними щодо методів, які ви використовували до цього часу? Які конкретні процедури ви використовували вкладеним способом? Також, чи всередині , тобто корені лише на межі? A F ( x , y )F(x,y)0AF(x,y)
Педро

Алгоритм GSL QAGS: gnu.org/software/gsl/manual/html_node/… . Дякуємо за редагування (не бачив можливості вводити рівняння)!
highsciguy

Відповіді:


7

Відмова: Я написав кандидатську дисертацію про адаптивну квадратуру, тому ця відповідь буде сильно упереджена щодо моєї власної роботи.

QAGS GSL є старим Quadpack інтегратора, і це не зовсім надійним, особливо при наявності особливостей. Зазвичай це призводить до того, що користувачі вимагають набагато більше цифр точності, ніж їм насправді потрібно, що робить інтеграцію досить дорогою.

Якщо ви використовуєте GSL, ви можете спробувати мій власний код, CQUAD , описаний у цій статті . Він розроблений для того, щоб впоратися з особливостями, як на інтервальних краях, так і всередині домену. Зауважте, що оцінка помилок є досить надійною, тому запитуйте лише стільки цифр, скільки вам потрібно.

Що стосується інтеграції Монте-Карло, то це залежить від того, яку точність ви шукаєте. Я також не зовсім впевнений у тому, наскільки добре це буде працювати поблизу особливості.


Я обов'язково буду дивитись на це, тому що це буде найпростіше здійснити. Насправді я переконався, що звичайна QAGS не є надто стабільною для цієї проблеми.
highsciguy

Чи можна вплинути на появу "GSL_EDIVERGE"? Здається, це з'являється для деяких параметрів.
highsciguy

@highsciguy: Алгоритм повертає GSL_EDIVERGE, коли він вважає, що інтеграл не є кінцевим. Якби ви могли надати мені приклад, для якого це не вдається, я міг би детальніше розглянути його.
Педро

Просту процедуру виділити досить складно, оскільки вона вбудована в загальний код для n-розмірних інтегралів. Я побачу ... Але для фіксованого y 1 / sqrt (F (x, y)) повинен вести себе як 1 / sqrt (x), коли x наближається до нулів F (x, y), оскільки F (x, y) може бути записаний як многочлен у x. Але може бути, що поведінка 1 / sqrt (x) починається пізно. Можливо також, що числова точність інтегралу не надто хороша.
highsciguy

1
@highsciguy: Так, це погана ідея. Більшість правил квадратури передбачають, що інтеграл має певну ступінь гладкості, і якщо встановити його до нуля, як для якоїсь довільної точки, ви вводите розрив. Ви отримаєте набагато кращі результати, якщо будете використовувати фактичний інтервал!
Педро

5

Методи Монте-Карло, як правило, не можуть конкурувати з адаптивною квадратурою, якщо у вас є інтеграл високого розміру, де ви не можете дозволити комбінаторний вибух квадратурних точок з розмірністю.

[0,1]nf(x)dnxnMMnkN=(kM)nk(2k1)e=O(h5)=O(M(2k1))

e=O(N(2k1)/n).
e=O(N1/2)
k>n/4+1/2

k8n=30M=1N=830інтеграційні бали, набагато більше, ніж ви могли коли-небудь оцінити за все життя. Іншими словами, якщо ви можете оцінити достатньо балів інтеграції, квадратура в підрозділах вашого інтеграційного домену завжди є більш ефективним підходом. Це випадки, коли у вас є інтеграл високої міри, для якого ви вже не можете оцінити точки інтеграції навіть на одному підрозділі, що люди використовують методи Монте-Карло, незважаючи на гірший порядок конвергенції.


1

Спробуйте вкладену подвійну експоненціальну квадратуру (див. Реалізацію Ooura ). Ця методика використовує змінну трансформацію, яка змушує трансформований інтегрант вести себе дуже плавно на межах і є дуже ефективним для обробки сингулярностей на кордоні. На його веб-сайті також є дуже хороший список посилань на квадратуру DE.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.