階差機関
出典: フリー百科事典『ウィキペディア(Wikipedia)』
階差機関(かいさきかん、difference engine)または差分機関(さぶんきかん)は、歴史上の機械式用途固定計算機で、多項式の数表を作成するよう設計された。対数も三角関数も多項式で近似できるため、そのようなマシンは当初登場したとき想定されたよりも汎用性があった。
目次 |
[編集] 歴史
最初のその種の機械を考案したのは1786年の J.H. ミューラー(J. H. Mueller)であるが、これは製作されなかった。
階差機関は忘れ去られ、1822年にチャールズ・バベッジによって再発見(再発明)された。彼は王立天文学会に「天文暦と数表の計算への機械の適用に関する覚え書き」[1]と題する論文を提出した。その機械は十進数を使い、人の手でクランクを回すことで動作する。英国政府は当初この計画に資金を提供したが、後にサポートをやめている。開発に当たっては、当時の金額で17000ポンド(さらにバベッジの自己資金がほぼ同額)がつぎ込まれた。
階差機関の開発が失敗した理由としては、当時の工作技術力が不足しているという説もある。しかし、ショイツ親子による階差機関が完成しているため、工作技術力というよりは、実際の開発作業を行なった技術者クレメントとの間での確執、すなわち必要とする費用の問題であったという説もある。
バベッジはより汎用的な解析機関の設計に興味を移したが、1847年から1849年にかけて改良した階差機関二号機を設計した。
バベッジの階差機関計画に刺激されたスウェーデンの実業家ゲオルギ・ショイツは1843年ごろからスウェーデン政府の援助を受けて階差機関の製作を開始し、1853年には実用機が完成した。ショイツの階差機関はイギリスやアメリカにもわずかながら売れている。しかし、バベッジの本来の設計よりも階数を少なくしたため用途が限られ、想定よりも売れず、ショイツは破産している。マーティン・ウィバーグもスウェーデンでさらに改良した階差機関を製作したが、彼はそれを使って対数表を作ることしか興味がなかった。しかし、そのころには歯車式計算機を使うことで一般の数表も間違いが少なくなってきていたため、彼の商売も行き詰った。
バベッジの本来の計画に基づいて、ロンドン科学博物館は実動する階差機関二号機を1989年から1991年にかけて製作した。2000年には、バベッジが設計したプリンターも完成している。どちらも問題なく動作した。階差機関とプリンターは19世紀の技術水準の信頼性や精度に合わせて製作され、バベッジの設計したものは動くのかという長年の議論に終止符を打った。
[編集] 階差の手法
階差機関の原理はアイザック・ニュートンの微積分法である。以下では小さな例でその原理を示す。次の二次多項式を考える。
- p(x) = 2x2 − 3x + 2
この多項式の数表を、p(0), p(0.1), p(0.2), p(0.3), p(0.4) といった値について作成する。下記の表の作成方法は次の通りである。まず第一カラムは多項式の計算値が入っている。第二カラムは第一カラムの上下に隣り合う二つの値の差を書き込んだものである。そして第三カラムは第二カラムの上下に隣り合う二つの値の差を書き込んだものである。
p(0)=2.0 | ||
2.0−1.72=0.28 | ||
p(0.1)=1.72 | 0.28−0.24=0.04 | |
1.72−1.48=0.24 | ||
p(0.2)=1.48 | 0.24−0.20=0.04 | |
1.48−1.28=0.20 | ||
p(0.3)=1.28 | 0.20−0.16=0.04 | |
1.28−1.12=0.16 | ||
p(0.4)=1.12 |
第三カラムの値が一定の数値になっていることに注意されたい。これは偶然の一致ではない。実際 N 次多項式では、N+1 カラム目で定数が出現する。この驚くべき事実によって階差機関は動作するのである。
我々はこの表を左から右へ作っていったが、ここからは右から左に作業してさらに多項式の計算結果を求めていく。
p(0.5) を求めるため、まず右下の値から見てみよう。右下のカラムの値は 0.04 である。次に第二カラムの一番下の値 0.16 から 0.04 を引くと 0.12 になる。さらに第一カラムの一番下の値 1.12 から 0.12 を引くと 1.0 になる。これが p(0.5) の値である。p(0.6) を計算するには、同じことを p(0.5) の値を使って実行すればよい。0.04を 0.12 から引いて 0.08、0.08 を 1.0 から引いて 0.92 が p(0.6) の値である。
この処理は無限大まで続けられる。多項式の値は乗算を使用せずに得られるので、差分機関はただ減算が出来さえすればよい。この例ではループするたびに二つの値を覚えておく必要がある(第一カラムと第二カラムの一番下の値)。N 次多項式の表を作るには N 個の数値を保持する機構が必要である。
バベッジの階差機関二号機は1991年に完成したが、7個の数値を31桁保持することが出来るようになっており、7次多項式の数表を作成する能力がある。ショイツの作った最も大規模なものでも 4つの15桁の数値までしか保持できなかった。