MC.hitormiss {animation}R Documentation

Hit or Miss Monte Carlo Integration

Description

Integrate a function using the Hit-or-Miss Monte Carlo algorithm

Usage

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), ...)

Arguments

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 points

Details

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).

Value

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 x1
n number of points drawn from the Uniform distribtion
est the estimated value of the integral

Note

This function is for demonstration purpose only; the integral might be very inaccurate when n is small.

Author(s)

Yihui Xie <http://yihui.name>

References

http://animation.yihui.name/compstat:hit_or_miss_monte_carlo

See Also

integrate

Examples

oopt = ani.options(interval = 0.2, nmax = 100)

# should be close to 1/6
MC.hitormiss()$est
# should be close to 1/12
MC.hitormiss(from = 0.5, to = 1)$est 

## Not run: 
## HTML animation page
ani.options(interval = 0.5, title = "Hit or Miss Monte Carlo Integration",
    description = "Generate Uniform random numbers and compute the proportion
                  of points under the curve.")
ani.start()
MC.hitormiss()
ani.stop()
## End(Not run)

ani.options(oopt)

[Package animation version 1.0-10 Index]