# ニュートン法 # 関数の定義 f <- function(x) { return(x ^ 3 - 9 * x) } # 関数の微分 fp <- function(x) { return(3 * x ^ 2 - 9) } # 反復の回数 iter <- 100 # δ delta <- 1e-10 # 初期値 x0 <- 3.6 f0 <- f(x0) # 反復 for (k in 1 : iter) { x0 <- x0 - f0 / fp(x0) print(sprintf("%d回目 %.20f", k, x0), quote = FALSE) f0 <- f(x0) # |f(x)|<δ を満たせば終了 if (abs(f0) < delta) { break } }