$f(x)=0$ の解をニュートン法で求めるRのプログラムを第2回のプログラムを元に作って提出しなさい。
ただし、ニュートン法で使う $f(x)$ の微分は $h=0.1$ とした Romberg 1段公式による数値微分を使うこと。
$f(x)=-x^{4}-x^{3}+10x^{2}+x-2$ の場合(他の場合は 5行目を変えること)
# Romberg1段公式を使ったニュートン法 # 関数の定義 } # 中心差分 } # Romberg1段公式 } # 反復の回数 iter <- 100 # δ delta <- 1e-10 # h h <- 1e-1 # 初期値 x0 <- 0.5 f0 <- f(x0) # 反復 x0 <- x0 - f0 / fr(x0, h) f0 <- f(x0) # |f(x)|<δ を満たせば終了 } }
第2回のニュートン法で微分を fp という関数で定義していたが、そこを Romberg 1段公式に変えている(8〜16行目)。