を台形則で数値積分してみて、分割数と誤差を評価する。
trapezoid <- function(fun, start, end, div) { x <- seq(start, end, length.out=div) step <- (end - start) / (div - 1) fx <- fun(x) return(step / 2 * (2 * sum(fx) - fx[1] - fx[div])) } div <- seq(1, 1000, 100) errors <- rep(0, length(div)) for (i in 1:length(div)) { errors[i] <- abs(1 - trapezoid(function(x){cos(x)}, 0, pi / 2, div[i])) } plot(div, errors, type="o")
深い意味はない。なんとなく書いてみたくなっただけ。