# 二分法 # 関数の定義 f <- function(x) { return(x ^ 3 - 9 * x) } # 反復の回数 iter <- 100 # δ delta <- 1e-10 # 2点の初期値 x1 <- 1 x2 <- 10 f1 <- f(x1) f2 <- f(x2) # 反復 for (k in 1 : iter) { # 中点 xm <- (x1 + x2) * 0.5 fm <- f(xm) print(sprintf("%d回目 %.20f", k, xm), quote = FALSE) # |f(x)|<δ を満たせば終了 if (abs(fm) < delta) { break } # fmとf1の符号が同じか if (fm * f1 >= 0.0) { x1 <- xm f1 <- fm } else { x2 <- xm f2 <- fm } }