Integrais aproximados usando simulação de Monte Carlo em R


12

Como aproximar a seguinte integral usando a simulação MC?

1111|xy|dxdy

Obrigado!

Editar (em algum contexto): estou tentando aprender como usar a simulação para aproximar integrais e estou praticando alguma prática quando me deparei com algumas dificuldades.

Edit 2 + 3 : De alguma forma, fiquei confuso e pensei que precisava dividir a integral em partes separadas. Então, eu realmente descobri:

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

2
Você está no caminho certo! A resposta que você dá está muito perto de estar correta. Está faltando uma pequena parte. ( Dica : qual é o pdf de uma variável aleatória )? U(1,1)
cardeal

2
É 0,5. Então, eu preciso multiplicar por dois 2 para dar: 'mean (4 * abs (xy))'. Eu finalmente entendi?
Meu nome

3
(+1) Sim ! :) Você pode ter que esperar algumas (8?) Horas, mas considere voltar e colocar sua edição em uma resposta para que outros usuários (como eu) possam aprová-la. Bem vindo ao site! Espero ver você continuar participando aqui. Felicidades. :)
cardeal

1
Um ponto a acrescentar: acho o maxima extremamente útil para a matemática simbólica. Se eu tivesse que fazer cálculos analíticos, teria o mesmo problema que o @EpiGrad. Mas, no máximo, você poderia fazer integrate(integrate(abs(x-y), y, -1, 1), x, -1, 1);e obter a resposta 8/3.
Karl

2
Para o R interessado, embora não seja tão elegante no código máximo publicado por Karl, pode-se fazer integrate(Vectorize(function(y) integrate(function(x) abs(x-y), -1, 1)$value), -1, 1)e obter uma aproximação numérica. Usando o pacote cubatureadaptIntegrate(function(x) abs(x[1] - x[2]), c(-1, -1), c(1, 1)) pode ser usado. Isso serve apenas para fornecer algumas idéias para avaliação numérica de integrais que podem ser úteis, por exemplo, ao testar se uma simulação funciona corretamente.
NRH 24/10/11

Respostas:


1

Apenas para referência, uma integral de baixa dimensão como essa geralmente é feita de maneira mais eficiente por quadratura determinística em vez de Monte Carlo. Monte Carlo se destaca em cerca de 4 a 6 dimensões. Primeiro aprendemos em baixas dimensões, é claro ...


2
Eu acho que é por isso que esta pergunta é marcada como lição de casa :-).
whuber

0

Você pode fazer isso no Excel com o Tukhi .

Entrar

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

e aperte o botão executar.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.