問題

問8 次のアルゴリズムの説明及びプログラムを読んで、設問に答えよ。

 方程式の解の一つを求めるアルゴリズムである。任意に定めた解の予測値から始めて、計算を繰り返しながらその値を真の値に近づけていく。この方法は、ニュートン法と呼ばれる。

〔アルゴリズム1の説明〕
 3次方程式a3x3+a2x2+a1x+a0=0の解の一つを、次の手順で求める。

(1) 解の予測値x、係数a3 、a2 、a1 、a0を読み込む。
(2) 3×a3の値をb2に、2×a2の値をb1に、1×a1の値をb0に、それぞれ求める。
(3) 次の1~4の処理を一定の回数繰り返す。
 1 a3x3+a2x2+a1x+a0の値を求め、これをfとする。
 2 b2x2+b1x+b0の値を求め、これをdとする。
 3 x、f、dの値を印字する。
 4 x-(f/d)の値(解の一つにより近い値となる)を求め、これを新たなxとする。

 プログラム1は、このアルゴリズム1を実装したものである。

〔アルゴリズム2の説明〕
 アルゴリズム1を一般化して、n次方程式anxn+an-1xn-1+…+a1x+a0 =0の解の一つを、次の手順で求める。

 なお、方程式によっては解が求められない場合がある。

(1) 次数n、解の予測値x、係数an 、an-1 、… 、a1、a0を読み込む。
(2) n×anの値をbn-1に、(n-1)× an-1の値をbn-2に、… 、2×a2の値をb1に、1×a1の値をb0に、それぞれ求める。
(3) 次の1~4の処理を一定の回数繰り返す。
 1 an xn+an-1xn-1+…+a1x+a0の値を求め、これをfとする。
 2 bn-1xn-1+bn-2xn-2+…+b1x+b0 の値を求め、これをdとする。
 3 x、f、dの値を印字する。
 4 x-(f/d)の値(解の一つにより近い値となる)を求め、これを新たなxとする。

 プログラム 2 は、このアルゴリズム2を実装したものである。