Tomasのアルゴリズムは以下のような形式の連立方程式を特くためのアルゴリズムです。
⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛b1a200⋮00c1b2a30⋮000c2b3a4⋮0000c3b4⋮00000c4⋮an−10⋯⋯⋯⋯⋱bn−1an0000⋮cn−1bn⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛x1x2x3x4⋮xn−1xn⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞=⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛d1d2d3d4⋮dn−1dn⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞
1番目の式は以下の式で表されます。
b1x1−c1x2=d1(1)
式(1)を変形して式(2)を得ます。
x1+b1c1x2=b1d1(2)
ここで e1, f1 を式(3),(4)とします。
e1=b1c1(3)
f1=b1d1(4)
式(2),(3),(4)から式(5)を得ます。
x1+e1x2=f1(5)
連立方程式の2番目の式は以下の式で(6)表されます。
a2x1+b2x2+c2x3=d2(6)
式(5)を式変形し
x1=f1−e1x2(7)
式(6)に代入します。
a2(f1−e1x2)+b2x2−c2x3=d2a2f1−a2e1x2+b2x2−c2x3=d2(b2−a2e1)x2+c2x3=d2−a2f1x2+b2−a2e1c2x3=b2−a2e1d2−a2f1(8)
ここで e2, f2 は式(9),(10)として、式(11)を得ます。
e2=b2−a2e1c2(9)
f2=b2−a2e1d2−a2f1(10)
x2+e2x3−f2x2=f2−e2x3(11)
式(11)を連立方程式の3番目の式(12)に代入して式(13)を得ます。
a3x2+b3x3+c3x4=d3(12)
a3(f2−e2x3)+b3x3+c3x4=d3a3f2−a3e2x3+b3x3+c3x4=d3(b3−a3e2)x3+c3x4=d3−a3f2x3+b3−a3e2c3=b3−a3e2d3−a3f2(13)
ここで e3, f3 は式(14),(15)として、式(16)を得ます。
e3=b3−a3e2c3(14)
f3=b3−a3e2d3−a3f2(15)
x3=f3−e3x4(16)
これを繰り返して、式(17),(18),(19)を得ます。
ei=bi−aiei−1ci(17)
fi=bi−aiei−1di−aifi−1(18)
xn−1=fn−1−en−1xn(19)
連立方程式の最後の式は式(20)となります。
anxn+bnxn=dn(20)
式(19),(20)から xn を求めます。
−an(fn−1−en−1xn)+bnxn=dn−anfn−1−anen−1xn+bnxn=dnxn(bn−anen−1)=dn−anfn−1xn=bn−anen−1dn−anfn−1(21)
xn を求めることができたので、式(20)から xn−1 を求め、式(19)から xn−1,n−2,...1 を求めます。