| MC.hitormiss {animation} | R Documentation |
Integrate a function using the Hit-or-Miss Monte Carlo algorithm.
MC.hitormiss(FUN = function(x) x - x^2, n = ani.options("nmax"), from = 0, to = 1,
col.points = c("black", "red"), pch.points = c(20, 4), ...)
FUN |
the function to be integrated |
n |
number of points to be sampled from the Uniform(0, 1) distribution |
from,to |
the limits of integration |
col.points,pch.points |
colors and point characters for points which “hit” or “miss” the area under the curve |
... |
other arguments passed to
|
We compute the proportion of points hitting the area under the curve, and the integral can be estimated by the proportion multiplied by the total area of the rectangle (from xmin to xmax, ymin to ymax).
A list containing
x1 |
the Uniform random numbers generated on x-axis |
x2 |
the Uniform random numbers generated on y-axis |
y |
function values
evaluated at |
n |
number of points drawn from the Uniform distribtion |
est |
the estimated value of the integral |
This function is for demonstration purpose only; the
integral might be very inaccurate when n is small.
ani.options('nmax') specifies the maximum number
of trials.
Yihui Xie <http://yihui.name>
http://animation.yihui.name/compstat:hit_or_miss_monte_carlo
oopt = ani.options(interval = 0.2, nmax = ifelse(interactive(), 100, 2))
## should be close to 1/6
MC.hitormiss()$est
## should be close to 1/12
MC.hitormiss(from = 0.5, to = 1)$est
## HTML animation page
saveHTML({
ani.options(interval = 0.5, nmax = ifelse(interactive(), 100, 2))
MC.hitormiss()
}, img.name = "MC.hitormiss", htmlfile = "MC.hitormiss.html", title = "Hit or Miss Monte Carlo Integration",
description = c("", "Generate Uniform random numbers", "and compute the proportion",
"of points under the curve."))
ani.options(oopt)