R에서 Monte Carlo 시뮬레이션을 사용한 근사 적분


12

MC 시뮬레이션을 사용하여 다음 적분을 어떻게 근사합니까?

1111|xy|dxdy

감사!

편집 (일부 상황) : 시뮬레이션을 사용하여 적분을 근사화하는 방법을 배우려고 노력하고 있으며 어려움을 겪을 때 연습을하고 있습니다.

편집 2 + 3 : 어떻게 든 혼란스러워서 적분을 별도의 부분으로 나눌 필요가 있다고 생각했습니다. 그래서 실제로 알아 냈습니다.

n <- 15000
x <- runif(n, min=-1, max=1)
y <- runif(n, min=-1, max=1)
mean(4*abs(x-y))

2
당신은 올바른 길을 가고 있습니다! 당신이주는 대답은 정답에 매우 가깝습니다. 작은 부분이 없습니다. ( 힌트 : 랜덤 변수 의 pdf 란 무엇입니까 ?) U(1,1)
추기경

2
0.5입니다. 따라서 'mean (4 * abs (xy))'를 제공하려면 두 개의 2를 곱해야합니다. 드디어 얻었습니까?
내 이름

3
(+1) ! :) 몇 시간을 기다려야 할 수도 있지만 다른 사용자 (예 : 나와 같은)가 응답 할 수 있도록 되돌아 와서 수정 사항을 답변에 배치하는 것을 고려해야합니다. 사이트에 오신 것을 환영합니다! 계속 여기에 참여하기를 바랍니다. 건배. :)
추기경

1
한 가지 추가 할 점 : maxima 가 기호 수학에 매우 유용하다는 것을 알았습니다 . 분석 계산을 직접 수행해야한다면 @EpiGrad와 같은 문제가 있습니다. 그러나 맥시마에서는 integrate(integrate(abs(x-y), y, -1, 1), x, -1, 1);8/3로 답을 얻을 수 있습니다.
Karl

2
Karl이 게시 한 최대 코드에서 우아하지는 않지만 관심있는 R의 integrate(Vectorize(function(y) integrate(function(x) abs(x-y), -1, 1)$value), -1, 1)경우 숫자 근사를 수행 하고 얻을 수 있습니다 . 은 Using cubature의 패키지하는 adaptIntegrate(function(x) abs(x[1] - x[2]), c(-1, -1), c(1, 1))데 사용할 수 있습니다. 이는 시뮬레이션이 올바르게 작동하는지 테스트 할 때 유용 할 수있는 적분의 수치 평가에 대한 몇 가지 아이디어를 제공하기위한 것입니다.
NRH

답변:


1

참고로, 저 차원 적분은 일반적으로 Monte Carlo 대신 결정적 구적법을 통해 더 효율적으로 수행됩니다. 몬테 카를로는 약 4-6 크기로 자체 제공됩니다. 물론 낮은 차원에서 먼저 배워야합니다 ...


2
그 이유는이 질문에 숙제 :-) 태그가 붙은 것 같습니다 .
whuber

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.