Perkiraan integral menggunakan simulasi Monte Carlo di R

12

Bagaimana cara memperkirakan integral berikut menggunakan simulasi MC?

1111|xy|dxdy

Terima kasih!

Sunting (Beberapa konteks): Saya mencoba mempelajari cara menggunakan simulasi untuk memperkirakan integral, dan saya mendapatkan beberapa latihan yang dilakukan ketika saya mengalami beberapa kesulitan.

Sunting 2 + 3 : Entah bagaimana saya menjadi bingung dan berpikir saya perlu membagi integral menjadi bagian yang terpisah. Jadi, saya benar-benar menemukan jawabannya:

n <- 15000
x <- runif(n, min=-1, max=1)
y <- runif(n, min=-1, max=1)
mean(4*abs(x-y))
Namaku
sumber
2
Anda berada di jalur yang benar! Jawaban yang Anda berikan sangat dekat dengan benar. Anda kehilangan satu bagian kecil. ( Petunjuk : Apa pdf dari variabel acak )? U(1,1)
kardinal
2
Ini 0,5. Jadi saya perlu mengalikan dua 2 untuk memberikan: 'berarti (4 * abs (xy))'. Apakah saya akhirnya mendapatkannya?
My Name
3
(+1) Ya ! :) Anda mungkin harus menunggu beberapa (8?) Jam, tetapi Anda harus mempertimbangkan untuk kembali dan menempatkan hasil edit Anda ke dalam jawaban sehingga pengguna lain (seperti saya) dapat membatalkannya. Selamat datang di situs ini! Saya harap Anda terus berpartisipasi di sini. Bersulang. :)
kardinal
1
Satu hal untuk ditambahkan: Saya menemukan maxima sangat berguna untuk matematika simbolik. Jika saya harus melakukan perhitungan analitik sendiri, saya akan memiliki masalah yang sama dengan @EpiGrad. Namun secara maksimal, Anda bisa melakukan integrate(integrate(abs(x-y), y, -1, 1), x, -1, 1);dan mendapatkan jawaban 8/3.
Karl
2
Untuk R yang tertarik, meskipun tidak seanggun kode maxima yang diposting oleh Karl, orang dapat melakukan integrate(Vectorize(function(y) integrate(function(x) abs(x-y), -1, 1)$value), -1, 1)dan mendapatkan perkiraan numerik. Menggunakan paket cubatureadaptIntegrate(function(x) abs(x[1] - x[2]), c(-1, -1), c(1, 1)) bisa digunakan. Ini hanya untuk memberikan beberapa ide untuk evaluasi numerik integral yang bisa berguna, misalnya ketika menguji apakah simulasi berfungsi dengan benar.
NRH

Jawaban:

1

Hanya untuk referensi, integral dimensi rendah seperti itu biasanya lebih efisien dilakukan melalui quadrature deterministik daripada Monte Carlo. Monte Carlo datang sendiri pada sekitar 4 hingga 6 dimensi. Harus mempelajarinya dalam dimensi rendah dulu, tentu saja ...

pengguna873
sumber
2
Saya kira itu sebabnya pertanyaan ini ditandai pekerjaan rumah :-).
whuber
0

Anda bisa melakukannya di Excel dengan Tukhi .

Memasukkan

=tukhi.average(abs(2*rand()-1 - (2*rand()-1))) 

dan tekan tombol run.

Keith A. Lewis
sumber