Diagram showing method of differences差動の方法を示す図

Babbage's second Difference Engineの詳細's second Difference Engine
Difference Engine No. 1, detail, 1832

Modern construction, Difference Engine No. 2, 2005

差動エンジンの原理

差動エンジンは、有限差分法という数学的原理に基づいていることから、このように呼ばれています。 一般に、多項式の値を計算するには、足し算、引き算、掛け算、割り算のいずれかまたはすべてが必要になります。

有限差分法の利点は、乗算や除算が不要で、単純な足し算だけで多項式の値を算出できることです。

多項式の最初のいくつかの値がわかっていれば、残りの値は単純な繰り返しの足し算で計算できます。 この方法は、上の図のように、関数F(x) = x2 + 4で示されています。 xの値は最初の列に示されており、毎回1ずつ増加しています(x = 1, 2, 3, 4 …)。 関数x2 + 4の値は、暗算または手計算で求めた最初の4つの値が2列目に表示されています(5、8、13、20)。

次に、1回目と2回目の差を計算します。 1回目の差は3列目に表示され、左から右に流れる実線の矢印で示されているように、前の列から連続した値を引いて計算されます(8-5=3、13-8=5など)。

これらの初期値を計算した後、関数の残りの値は逆の手順で計算できます。 計算したい値は、上の点線の下に表示されています。 この多項式では、2番目の差は定数(2)となります。 x=5の関数の値を計算するには、最初の差(7)に定数の差(2)を加えて次の最初の差(9)を求め(赤矢印)、これを最後の関数の値(青矢印)に加えると、F(5)=29となります。 これが、乗算を行わずに得られる望ましい結果です。

このプロセスを繰り返すと、次の最初の差(11)が得られ、これを最後の関数値に加えると、F(6)=40などが得られます。

Babbage’s Difference Engine No.2 は、表の各列から 1 つの数字を保持する「レジスタ」を持っています (たとえば、20、7、2)。 2番目の差を1番目の差に加え、その結果を関数値に加えて表の次の項目を計算するのです。 7つの差に十分な「レジスター」があり、x7までの項を持つ多項式の31桁の値を計算することができました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です