☆TOP☆ ☆BACK☆ ☆NEXT☆

 漸化式 Xn+1 = a Xn + b(a, b は定数、n = 0, 0, 2, ・・・)で定められる数列 {Xn} の一般項は  Xn - α = a (Xn - α) と変形することによって求まります。この式変形やαの持つ意味はどんなところにあるのでしょうか。 この点を視覚的に理解させようとしたのが、いわゆる「リターンマップ」と呼ばれるものです。

 関数と漸化式

 漸化式は前の項に何らかの演算を施して、次の項を定めていくものです。そう考えると、関数の一種と見なすこともできます。
 漸化式 Xn+1 = a Xn + b に、初期値 X0 から始めて次々と次の項を求めていきましょう。
  X0, X1 = a X0 + b, X2 = a X1 + b, X3 = a X2 + b, ・・・
 例えば、Xn+1 = 0.5 Xn + 3 (X0 = 2) のとき
  X0 = 2, X1 = 4, X2 = 5, X3 = 5.5, ・・・
となります。この1つの X0, X1, X2, ・・・ , Xn+1 を Y = a Xn + b 上の点と考えると、
  X = 2 → X = 2, Y = 4 → X = 4, Y = 5 → X = 5, Y = 5.5 → ・・・
と帰納的に求まっていき、漸化式も関数の一つだという意味がわかると思います。

 漸化式とグラフ

 今度は同様のことを、グラフ上の点の移動としてとらえてみましょう。漸化式において次の項を帰納的に求めていくことは、2つの直線
  Y = a X + b ・・・@,    Y = X  ・・・A
に対して、初期値 X0 から出発し、
  X0 → 直線@ → 直線A → 直線@ → 直線A  ・・・
と点が変化していくのと同じことです。
 先ほど例にあげた Xn+1 = 0.5 Xn + 3 (X = 2) を例にとってシミュレートしてみましょう。用いるパラメーターは 
  漸化式の係数 a, b と初期値 X0, 計算項数 n
の4つです。a = 0.5, b = 1, X0 = 2, n = 50 を設定して下さい。設定したら DRAW ボタンを押して下さい。
 左側の図は、関数 Y = a X + b と Y = X の2つの直線に対して、初期値 X0 から出発して帰納的に次の点に移動していくリターンマップを表しています。右側の図は横軸に項数 n, 縦軸に Xn の値を単純にプロットしたものです。
 リターンマップをみると、点がどんどん2つの直線の交点に近づいていくのがわかります。
また、その点の Y座標に右側のグラフも近づいていっています。これは数列  {Xn} が一定の値に「収束」していくことを示しています。
 この場合の収束点は2つの連立方程式 Y = 0.5 X + 3, Y = X の解 6 なのです。この値がαの正体だったわけです。

 パラメータの値とグラフの変化

 先ほどのリターンマップでパラメータをいろいろ変えてシミュレートしてみましょう。パラメータはリストボックスを上下にドラッグして取得することができます。
 まず、初期値 X0 の値をいろいろ変化させてみましょう。例として X = -1, 1, 4 の3つの値をとって描画してみて下さい。それ以外のパラメータは a = 0.5, b=3, n=50 のままにとりあえずしておきましょう。どうですか。初期値 X0 の値を変化させても、同じ値に収束していくのがわかると思います。
 次に計算項数 n の値を変化させてみましょう。n = 20, 50, 100 で描画してみて下さい。(a = 0.5, b = 3, X0 = 0.2) この n は第何項までを計算するかを決定するわけですから、n の値を大きくすればするほど正確にグラフに表示してくれます。
 次に係数 a の値を変化させてみます。a = 0.4, 1.2, -1 で描画してみて下さい。
(b = 3, X0 = 0.2, n = 50)どうですか。係数 a の値が変化するとグラフの様子が大きく変化するのがわかります。
 最後に係数 b の値を変化させてみましょう。b = 0.3, 1.2, 2 の値で描画してみて下さい。(a = 0.5, X0 = 0.2, n = 50)収束していく点が変化していますが、グラフ全体の様子には変化は見られません。
 これらのシミュレートにより、グラフを大きく変化させる大きな要因は、係数 a の値にあることがわかりました。

 数列の極限

 このように、線形な漸化式 Xn+1 = a Xn + b で与えられる数列 {Xn} はパラメータ  a の値に大きく左右されることがわかりました。シミュレートしたときの項数  n の値はたかだか 50〜100 ぐらいでしたが、この値を無限に大きくしたらどうなるでしょうか。実はその極限の値も存在する場合と、しない場合があるのです。
 もう一度、係数 a の値を細かく変えてシミュレートしてみましょう。a = -1.2, -1, 0.2, 1, 1.3 の5つの値で描画してみて下さい。(b = 1, X0 = 0.2, n = 100)
どうですか。一定の値に近づく場合、どんどん値を変えて不安定になる場合、2つの値をとりながら安定する場合の3通りがあることがわかりましたか。それらを、それぞれ収束、発散、振動といいます。まとめると次のようになります。

   a < 1 のとき   不動点 X = b / (1 - a) に収束
   a = 1 のとき   発散
   a < 1 のとき   a = 1 で発散、a = -1 で振動

☆TOP☆ ☆BACK☆ ☆NEXT☆