入力した多項式の根を求める


これまでの事を使えば,入力した多項式の根をニュートン法で計算することができます。まずプログラムを示しましょう。

サンプルプログラム9

サンプルプログラム8からの変更点は,行番号 15 - 75 の部分のみです(ここでは,行番号が 5 ずつ増えていますが,プログラムは間違ってはいません)。

では,プログラムを実行してみましょう。次の多項式

の根を計算してみましょう。f(x) = (x+1)(x+2) なので,根は -1 と -2 です。 n = 2, x0 = 2, a(i) = 2, 3, 1 と入力してみましょう。

となって,根 ,-1 が計算されました。今度は,n = 2, x0 = -3, a(i) = 2, 3, 1 と入力してみましょう。そうすると今度は

となってもう1つの根が計算されました。x0 の値を変えることで,2つの異なった根を求めることができました。どうしてこうなったのでしょうか?
実は f(x) のグラフが次のようになってるため,

x(1)=2 の時には,x(1) > x(2) > x(3) > .... となって次第に x = -1 に近づいていきます。一方,x(1) = -3 の時には x(1) < x(2) < x(3) < ... となって次第に x = -2 に近づいていき,上のような結果になるのです。

このように,ニュートン法は始めの値 x(1) によって計算される根が変わったり,下手をすると根が全く求まらなかったりすることがあります。このため,ニュートン法を使って f(x) の根を計算する時には,y = f(x) のグラフの大体の形がわかっている必要があります。このためには,増減表などを計算しても良いのですが,BASIC のグラフィックス機能を使えば,コンピュータにそのグラフを書かせることができます。この次の「サンプルプログラムとその解説(その3)」では,BASICのグラフィックス機能について解説していきます。