Ich möchte (1/y)*(2/(1+(log(y))^2))
von 0 bis 1 integrieren. Wolfram alpha sagt mir, das sollte pi sein. Aber wenn ich monte carlo Integration in R mache, bekomme ich 3,00 und 2,99, nachdem ich 10 mal probiert habe. Dies ist, was ich getan habe:Monte Carlo Integration funktioniert nicht?
y=runif(10^6)
f=(1/y)*(2/(1+(log(y))^2))
mean(f)
ich die genaue Funktion in Wolfram Alpha kopiert zu überprüfen, ob das Integral pi sein sollte
Ich versuchte, mein y zu überprüfen, ob richtig Mittelwert es verteilt wird, indem überprüft und Plotten ein historgram, und es scheint in Ordnung zu sein. Könnte etwas mit meinem Computer nicht stimmen?
Edit: Vielleicht könnte jemand anderes meinen Code kopieren und selbst ausführen, um zu bestätigen, dass es nicht mein Computer ist.
Apropos 10-mal, haben Sie bedeuten 10 Proben? Das ist viel zu wenig! Sie sollten ungefähr 1.000.000 Proben machen. Überprüfen Sie auch die Wichtigkeitsprobenahme (anstelle einer einheitlichen Zufallszahlenverteilung), um den Fehler zu verringern. –
Es scheint, er macht es um 10^6 Proben jeweils. Ich denke, er/sie meinte 10 Mal das R-Programm laufen –
Ich habe 10^6 Proben, ja. Was ich meinte ist, dass ich den gleichen Code 10 Mal ausgeführt habe. – user124249