# レポート # モンテカルロ法 # 判別関数 f <- function(x, y) { fx <- -x ^ 4 - x ^ 3 + 10 * x ^ 2 + x - 2 if (fx > y && y > 0) return(1) if (fx < y && y < 0) return(1) return(0) } # 点の個数 n <- 1000 # 図形を囲む長方形の座標 x1 <- -3.63423216189401010467 x2 <- 2.71669197614524948747 y1 <- -2.1 y2 <- 35 # n個の一様乱数 x <- runif(n, x1, x2) y <- runif(n, y1, y2) m <- 0 for (i in 1 : n) { # 図形内部の点を判別関数でカウント m <- m + f(x[i], y[i]) } # 面積 s <- m / n * (x2 - x1) * (y2 - y1) print(s)