私も別な角度から生徒の計算練習になり、数列の収斂を実感できる実習問題を紹介いたします。1962年に海外留学から帰国した私は、国際基督教大学の物理教室で、カシオという耳慣れない会社の製造したリレー式計算機に出会ったのです。この計算機は羽の付いた円盤(厚紙?)の羽を切り取ってプログラムを作る計算機でした。24ステップか28ステップのプログラムが作れました。四則演算の機能があるだけの簡単なもの(今の基準からすると)でしたが、涙が出るほど便利な機械でした。ハンドルをぐるぐる回すタイガー計算機よりもはるかに高級な機械に見えました。しかし、開平の機能も、勿論立方根も求めることはできませんでした。そこで、同じプログラムを繰り返し使って平方根を計算するプログラムを考案したのです。
それから10年以上が経過し、北大に戻っていた私はマイコンに出会います。最初は機械語だけ、その内に簡単なBASICが付いた機械が出始めました。あるとき企業の業務用プログラムを作っていたソフト屋さんが、研究室に私を訪ねてきて平方根を求めるプログラムは作れないかと相談しました。そこでカシオのリレー式計算機で作った開平計算のプログラムを、その場で、BASICで組んで渡しました。彼らが帰った後で、HPの電卓でメモリーを利用して、手計算でこのアルゴリズムを確かめました。
数年後に私の研究室では、リスト処理言語LAPLASという人工知能言語を開発しました。これは再帰処理ができるので、この開平プログラムと立方根を求めるプログラムを作り、この言語の学習パックの一部といたしました。それはほんの数行の簡単なプログラムです。
BASICでプログラムを作るときは、繰り返しの回数を変数として実行の最初に与えるようにしておくと効率的です。得られる数列の収斂を数学的に証明するのは高校生には期待できませんが、誤差がだんだん減少することだけは数学好きの生徒ならば証明できるでしょう。
このアルゴリズムはプログラミングの実習に利用するのも面白いでしょう。なお、言語LAPLASのWindows版はまだ作っておりません。
a0 = 100 a1 = (3529/100 + 100)/2 = 67.645 a2 = (3529/67.645 + 67.645)/2 = 59.90720692586296104664054992978 a3 = (3529/59.907 + 59.907・・)/2 = 59.407488738932143348990673805071 a4 = (3529/59.407 + 59.407・・)/2 = 59.405386998295985359668526247912 a5 = (3529/59.405 + 59.405・・)/2 = 59.40538696111658190081640103178 a6 = (3529/59.405 + 59.405・・)/2 = 59.405386961116581889181866587447 a7 = (3529/59.405 + 59.405・・)/2 = 59.405386961116581889181866587447上記の計算式で a3 以降は小数点以下3桁しか記入されていないが実際の計算では右辺のすべての桁を用いて計算した。これだけの桁数でも a7 で十分であることが分かる。ついでにan2を計算するといかのような結果が得られる。
a12 = 4575.846025 a22 = 3588.8734416581631276043647032463 a32 = 3529.2497182663494236595990067065 a42 = 3529.000004417313701677789652848 a52 = 3529.0000000000000013823080415561 a62 = 3529 a72 = 3529