人と星とともにある数学 第35回

コンピューターの父、バベッジの夢
~幻の階差機関~

数表を作り続ける人類

今回は、前回の「エイダ・ラブレス」に登場した数学者チャールズ・バベッジを取り上げます。

古代ギリシャから作られ始めた三角関数表は、時代を追うごとにその精度が大きくなっていきました。そのために誕生することになるのがネイピアによる対数表だったことは連載第5回「ジョン・ネイピア対数誕生物語」で紹介しました。

人は死して数表を遺す。魂を削って作られた数表のおかげで、多くの人々の計算時間を節約することができました。

ネイピアの対数表から200年後、天才出現

ところが、数表の精度が大きくなることは新たな問題も引き起こすことになります。ミスがない数表を作ることの困難さです。すべての計算は人間の手によるものだったからです。

計算道具といっても、18世紀のヨーロッパではネイピアの計算棒(九九表を印字した棒)や算盤だけでした。“computer”とは元々「計算する者」という意味ですが、“コンピューター”が計算したものを印刷工が活字を組んで印刷することで数表は作成されます。そのすべてのプロセスでミスが生まれてしまうのです。

1812年、間違いだらけの対数表を眺めながら奇想天外なアイディアを思いつきます。「そうだ、数表作成をすべて機械にやらせよう」、そう呟いた者こそ数学者チャールズ・バベッジ(1791-1871)です。

裕福な資産家の家に生まれたバベッジは、1810年にケンブリッジ大学トリニティ・カレッジに入学します。学生時代はケンブリッジ大学に浸透するニュートン流微分積分法に反発し、合理的なライプニッツ流を推し進めるために仲間と解析協会(Analytical Society)を設立するほどでした。後に、バベッジはニュートンが座っていたルーカス教授職を務めています。

1812年、20歳を過ぎたばかりの青年バベッジの頭脳に浮かんだアイデアが、数表自動作成マシンです。

階差の手法(Method of differences)

三角関数や対数の数値計算に有効なのが、マクローリン級数です。マクローリン級数は多項式なのでxのn乗──かけ算──の計算が必要になります。

対数のアイデアは、まさにかけ算をたし算で行う画期的な計算方法でした。バベッジが「歯車」を用いた機械を考えたのは、対数に代わるかけ算をたし算で行う方法を知っていたからです。階差の方法(Method of differences)と呼ばれる数値計算法です。

以下に具体的なその計算方法を見ていきます。最初の例は、バベッジ自身も用いた多項式f(x)=x2+x+41です。ステップは表にすることで分かりやすくなります。先に結論を見てみます。

第1階差D1(x)と第2階差D2(x)がポイントです。この数表を、単純なたし算、ひき算だけで眺めていると、それぞれどのようなルールで計算されているのかが分かってきます。D1(x)とD2(x)は次のように定義されます。

第1階差 D1(x)=f(x+1)-f(x)
第2階差 D2(x)= D1(x+1)-D1(x)

それでは空欄の表から順に空欄を埋めていきます。xが0の欄に上から41、2、2と入ります。これが初期値(x=0の数値)になるのですが、次のように計算されます。

2次多項式 f(x)=a+bx+cx2の場合の初期値(x=0の数値)
f(0)=a
D1(0)=f(1)-f(0)
=(a+b+c)-a
=b+c
D2(0)=D1(1)-D1(0)
=f(2)-f(1)-(b+c)
=a+2b+4c-(a+b+c)-(b+c)
=2c

この公式から、f(x)=41+x+x2(a=41、b=1、c=1)の初期値(x=0の数値)は
f(0)=a=41
D1(0)=b+c=1+1=2
D2(0)=2c=2
と求まります。すると、次にこの初期値からたし算だけでx=1の3つの数値が次のように求まります。

第2階差 D2(x)= D1(x+1)-D1(x)
より、
D1(x+1)=D2(x)+D1(x)
だから、x=0として
D1(1)=D2(0)+D1(0)=2+2=4
となります。次に
第1階差 D1(x)=f(x+1)-f(x)
より、
f(x+1)=f(x) +D1(x)
だから、x=0として
f(1)=f(0) +D1(0)=41+2=43
となります。

このようにx=0の3つの数値からx=1の3つの数値がたし算だけで計算されます。同様にx=2の3つの数値がたし算だけで計算されます。

ここで、気づく重要なことがあります。第2階差はすべて定数2であるということです。このことから、第1階差とf(x)が順に求まっていきます。

第2階差はすべて定数2であることは、微分の計算から理解されます。f(x)=x2+x+41を微分するとf'(x)=2x+1となり、さらに微分するとf”(x)=2となります。2次関数の2階微分f”(x)が定数になるということです。

残りの空間を埋めていってみてください。f(x)にはxの2乗がありますが、たし算だけでf(1)、f(2)、f(3)、…と順に求まっていくことが分かります。

ところでこの2次多項式x2+x+41は、オイラーが素数生成式として発見したもので、x=0から39まですべて素数になる興味深い式です。バベッジはそのことを知っていたのでしょう。

次いでに次数を上げた例をもう一つ紹介しておきましょう。
4次多項式f(x)=x4+2x3-4x2+7x+6(a=6、b=7、c=-4、d=2、e=1)

まず、初期値 f(x)=a+bx+cx2+dx3+ex4の計算
f(0)=a=6
第1階差D1(0)=b+c+d+e=7-4+2+1=6
第2階差D2(0)=2c+6d+14e=-8+12+14=18
第3階差D3(0)=6d+36e=12+36=48
第4階差D4(0)=24(4階微分)

あとは最初の2次関数の計算を真似てx=1、2、3、…と準備計算していきます。次のように空欄が埋まっていきます。

階差機関(difference engine)

階差(difference)の手法を実現させるマシンとしてバベッジが設計したのが階差機関(difference engine)です。1822年、31歳のバベッジは論文”Note on the application of machinery to the computation of astronomical and mathematical tables”(天文暦と数表の計算への機械の適用に関する覚書)の中で言及したmachineryこそ階差機関です。

階差(difference)の手法を実際に実行してみると分かることですが、f(10)の数値を求めるには、x=1、2、3、…、9、10と途中のすべての計算が必要であることが特徴です。これは不便にも思えますが、バベッジの目標はあくまでも数表作成なのでこれでいいのです。

ここに数表自動作成マシンの驚くべき能力があります。印刷機能です。数表は紙に印刷されて完成です。バベッジのマシンとは、自動で計算を行い、その結果を自動で印刷して数表がプリントアウトされるという代物だったのです。

階差機関の開発のために、英国政府による資金約17,000ポンドと同額の自己資金をつぎ込みましたが、バベッジ自身は階差機関を完成させることができず、1833年に製作は中止されました。

その原因の一つは、バベッジが階差機関の開発の最中にさらに高度なマシンを考案したことにあります。バベッジが解析機関(Analytical Engine)と呼んだマシンは、数値記憶と演算部分を分けた構造で、プログラムとデータの入力用にパンチカードを備え、印刷原版作成機と曲線プロッターを出力装置としたもので、動力源として蒸気機関を用いるというモンスターマシンです。バベッジは製作に取りかかるも、こちらも実際には完成させることができませんでした。

アラン・チューリング(1912-1954)の100年前にプログラム可能、プリンター内蔵の計算機を考案した数学者が「コンピューターの父」と呼ばれるチャールズ・バベッジです。

今でこそコンピューターの心臓部分である演算装置CPUは、車のそれになぞらえてエンジンと呼ばれます。今から200年以上も昔、蒸気機関の時代に自動演算装置を夢見て、それをエンジンと呼んだのもチャールズ・バベッジです。

人は死して数表を遺す

三角関数や対数の数表は、バベッジにディファレンス・エンジンを考え出させるほど大きな存在だったということです。数値計算の根底にあるのは、人生という大きな制限です。いかに計算に費やす時間を節約するか、ネイピアもバベッジも考えていました。

バベッジは、統計学会創立にも尽力しています。現在、私たちが使っている平均寿命(0歳の平均余命)がわかる数表「生命表」もバベッジが考案者です。

執筆者ご紹介  桜井進(さくらいすすむ)様
1968年山形県生まれ。
サイエンスナビゲーター®。株式会社sakurAi Science Factory 代表取締役CEO。
(略歴)
東京工業大学理学部数学科卒、同大学大学院院社会理工学研究科博士課程中退。 東京理科大学大学院非常勤講師。
理数教育研究所Rimse「算数・数学の自由研究」中央審査委員。 高校数学教科書「数学活用」(啓林館)著者。
公益財団法人 中央教育研究所 理事。
国土地理院研究評価委員会委員。
2000年にサイエンスナビゲーターを名乗り、数学の驚きと感動を伝える講演活動をスタート。東京工業大学世界文明センターフェローを経て現在に至る。 子どもから大人までを対象とした講演会は年間70回以上。
全国で反響を呼び、テレビ・新聞・雑誌など様々なメディアに出演。
著書に『感動する!数学』『わくわく数の世界の大冒険』『面白くて眠れなくなる数学』など50冊以上。
サイエンスナビゲーターは株式会社sakurAi Science Factoryの登録商標です。

タイトルとURLをコピーしました