Integrasi numerik integral multi-dimensi dengan batas yang diketahui

12

Saya memiliki integral (2 dimensi) yang tidak tepat

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

di mana domain integrasi lebih kecil dari x = [ - 1 , 1 ] , y = [ - 1 , 1 ] tetapi selanjutnya dibatasi oleh F ( x , y ) > 0 . Karena F dan W halus dan W 0Ax=[1,1]y=[1,1]F(x,y)>0FWW0pada batas, relasi selanjutnya menyiratkan bahwa integand dapat tunggal pada batas. Integrandnya terbatas. Saya, sejauh ini, menghitung integral ini dengan integrasi numerik bersarang. Ini berhasil tetapi lambat. Saya mencari metode yang lebih tepat (lebih cepat) untuk mengatasi integral, mungkin metode Monte-Carlo. Tapi saya butuh satu yang tidak menempatkan poin pada batas domain non-kubik A dan mengambil batas integral yang tidak tepat dengan benar. Dapatkah transformasi Integral membantu ekspresi umum ini? Perhatikan bahwa saya dapat menyelesaikan untuk y sebagai fungsi x dan bahkan menghitung I untuk beberapa fungsi bobot khusus W (F(x,y)yxI .W(x,y)

kelas tinggi
sumber
Bisakah Anda sedikit lebih spesifik tentang metode apa yang telah Anda gunakan sejauh ini? Rutinitas spesifik apa yang telah Anda gunakan dengan cara bersarang? Juga, apakah di dalam A , yaitu apakah akar F ( x , y ) hanya pada batas? F(x,y)0AF(x,y)
Pedro
Algoritma GSL QAGS: gnu.org/software/gsl/manual/html_node/… . Terima kasih atas pengeditannya (tidak melihat opsi untuk persamaan typeset)!
highsciguy

Jawaban:

7

Penafian: Saya menulis tesis PhD saya tentang quadrature adaptif, jadi jawaban ini akan sangat bias terhadap pekerjaan saya sendiri.

QAGS GSL adalah integrator QUADPACK lama , dan tidak sepenuhnya kuat, terutama di hadapan singularitas. Ini biasanya menyebabkan pengguna meminta lebih banyak digit akurasi daripada yang sebenarnya mereka butuhkan, sehingga membuat integrasi cukup mahal.

Jika Anda menggunakan GSL, Anda mungkin ingin mencoba kode saya sendiri, CQUAD , yang dijelaskan dalam makalah ini . Ini dirancang untuk mengatasi singularitas, baik di tepi interval dan di dalam domain. Perhatikan bahwa perkiraan kesalahan cukup kuat, jadi hanya minta sebanyak digit yang Anda butuhkan.

Berkenaan dengan integrasi Monte-Carlo, itu tergantung pada akurasi yang Anda cari. Saya juga tidak begitu yakin seberapa baik kerjanya di dekat singularitas.

Pedro
sumber
Saya pasti akan melihat ini karena akan paling mudah untuk mengimplementasikannya. Sebenarnya saya mengalami bahwa rutinitas QAGS tidak super-stabil untuk masalah ini.
highsciguy
Apakah ada cara untuk memengaruhi terjadinya 'GSL_EDIVERGE'? Tampaknya muncul untuk beberapa parameter.
highsciguy
@highsciguy: Algoritme mengembalikan GSL_EDIVERGE ketika meyakini bahwa integral tidak terbatas. Jika Anda bisa memberi saya contoh yang gagal, saya bisa melihat lebih dekat.
Pedro
Agak sulit untuk mengisolasi rutin sederhana, seperti yang ditanamkan dalam kode generik untuk integral n-dimensinal. Saya akan melihat ... Tetapi untuk fix y, 1 / sqrt (F (x, y)) harus berperilaku seperti 1 / sqrt (x) karena x mendekati nol F (x, y) karena F (x, y) kemudian dapat ditulis sebagai polinomial dalam x. Tapi bisa jadi perilaku 1 / sqrt (x) mulai terlambat. Bisa juga bahwa precisi numerik dari integrand tidak terlalu bagus.
highsciguy
1
@highsciguy: Ya, ini ide yang buruk. Sebagian besar aturan kuadratur berasumsi bahwa integand memiliki tingkat kelancaran, dan jika Anda menetapkannya menjadi nol pada beberapa titik arbitrer, Anda memperkenalkan diskontinuitas. Anda akan mendapatkan hasil yang lebih baik jika Anda menggunakan interval yang sebenarnya!
Pedro
5

Metode Monte Carlo secara umum tidak dapat bersaing dengan quadrature adaptif kecuali jika Anda memiliki integral dimensi tinggi di mana Anda tidak mampu membeli ledakan kombinatorial titik quadrature dengan dimensi.

[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=830poin integrasi, jauh lebih dari yang bisa Anda evaluasi seumur hidup. Dengan kata lain, selama Anda dapat mengevaluasi poin integrasi yang cukup, quadrature pada subdivisi domain integrasi Anda selalu merupakan pendekatan yang lebih efisien. Ini adalah kasus di mana Anda memiliki integral dimensi tinggi yang Anda tidak dapat mengevaluasi poin integrasi bahkan pada satu subdivisi lagi bahwa orang menggunakan metode Monte Carlo meskipun urutan konvergensi mereka lebih buruk.

Wolfgang Bangerth
sumber
1

Coba Quadrature Eksponensial Ganda bersarang (lihat implementasi Ooura ). Teknik ini menggunakan transformasi variabel yang membuat integand yang ditransformasikan untuk berperilaku sangat lancar di perbatasan dan sangat efisien untuk menangani singularitas di perbatasan. Ada juga daftar referensi DE quadrature yang sangat bagus di situs webnya.

GertVdE
sumber