複式簿記における試算表や仕訳はベクトルとして表現できることを、以下の記事で紹介しました。
【君の知らない複式簿記4】簿記代数の教科書『Algebraic Models For Accounting Systems』とバランスベクトル
本記事では複式簿記の「ベクトル」を、「行列」や「テンソル」へと拡張するアイデアについて述べます。
バランスベクトルとその性質
複式簿記のベクトル表現は、勘定科目をベクトルの各要素に対応させ、借方に置かれる勘定の金額はプラス、貸方に置かれる勘定の金額をマイナスとして表すことで得られます。
資産 & a & 負債 & l\\
& & 純資産 & e\\
費用 & c & 収益 & r\\
\end{array}
= \left(
\begin{array}{r}
a\\
-l\\
-e\\
-r\\
c \end{array} \right)
\leftarrow \left(
\begin{array}{c}
資産\\
負債\\
純資産\\
収益\\
費用
\end{array} \right)\]
このようにして試算表をベクトル表示したものを、バランスベクトルといいます。
試算表の借方・貸方の合計額は一致するというのが、複式簿記の大原則です。つまり
借方合計金額&=貸方合計金額\\
\Leftrightarrow a+c&=l+e+r
\end{split} \end{equation}
が成り立ちます。右辺を移項すると
a-l-e-r+c&=0\\
\Leftrightarrow\left( 1,1,1,1,1\right)\left(
\begin{array}{r}
a\\
-l\\
-e\\
-r\\
c \end{array} \right)&=0
\end{split} \end{equation}
であることがわかります。2つ目の等式は\( \vec{1}\)ベクトル\(=\left(1,\cdots,1\right)\)とバランスベクトルの内積がゼロ、つまり両者が直交することを意味します。
バランス行列への拡張
b&=\left(
\begin{array}{r}
a_1\\
a_2\\
\vdots\\
a_n \end{array} \right)=\left( a_i\right)
\end{split} \end{equation}
をバランスベクトルとします。つまり\(\sum_{i=1}^na_i=0\)です。
バランスベクトル\( b_1,b_2,\cdots,b_m\)を横に並べて得られる行列
M&=\left( b_1,b_2,\cdots,b_m\right)\\
&=\left(
\begin{array}{rrrr}
a_{1,1}&a_{1,2}&\cdots&a_{1,m}\\
a_{2,1}&a_{2,2}&\cdots&a_{2,m}\\\\
\vdots\\
a_{n,1}&a_{n,2}&\cdots&a_{n,m}\\ \end{array}
\right)\\
&=\left( a_{i,j}\right)
\end{split} \end{equation}
は、複数のバランスベクトルを行列という形で同時に扱うことができ、バランスベクトルを拡張したものと言えます。これをバランス行列と呼ぶことにしましょう。バランス行列の各列は\( \vec{1}\)ベクトルに直交します。
バランス行列を使うことで、バランスベクトルでは扱えなかった異なる「軸」を扱うことができ、たとえば次のようなケースで活躍します。
- 異なる「時間」のバランスベクトルを表す(バランスベクトルの時間変化)
- 異なる「基準」のバランスベクトルを表す(いわゆるGAAP差)
- 異なる「主体」のバランスベクトルを表す(例えば連結会計)
参考文献[1]ではここで示したようなバランス行列を「時間の経過順に並べたバランスベクトル」として導入し、ある会社のバランスベクトル(試算表)の推移を表すものとして紹介しています。
また、バランス行列によって複素数簿記を考えることも可能です。
勘定科目数×2列の実バランス行列を考え、各行の実数のペアを複素数とみなせば、勘定科目の数だけ次元をもつ複素数簿記になります。四元数や八元数の簿記にも拡張可能です。
完全バランス行列
上述の
M&=\left( b_1,b_2,\cdots,b_m\right)\\
&=\left(
\begin{array}{rrrr}
a_{1,1}&a_{1,2}&\cdots&a_{1,m}\\
a_{2,1}&a_{2,2}&\cdots&a_{2,m}\\\\
\vdots\\
a_{n,1}&a_{n,2}&\cdots&a_{n,m}\\ \end{array}
\right)\\
&=\left( a_{i,j}\right)
\end{split} \end{equation}
は、各「列」がバランスベクトルになっていましたが、各「行」もまたバランスベクトルであるようなものを考えることもできます。すなわち
M&=\left( a_{i,j}\right)
\end{split} \end{equation}
\sum_{i=1}^na_{i,j}=0
\end{split} \end{equation}
\sum_{j=1}^ma_{i,j}=0
\end{split} \end{equation}
このように「列」方向にも「行」方向にもバランスベクトルであると考えることができるバランス行列を、完全バランス行列と呼ぶことにします。
例として、次のような\(3\times 3\)完全バランス行列を考えることができます。
M&=\left(
\begin{array}{rrr}
100&-120&20\\
-50&80&-30\\
-50&40&10\\
\end{array}
\right)
\end{split} \end{equation}
この完全バランス行列の各列の要素はそれぞれ
\left(
\begin{array}{c}
資産a\\
負債l\\
純資産e\\
\end{array} \right)
\end{split} \end{equation}
つまり
M&=\left(
\begin{array}{rrr}
連a&-単a&-修正a\\
連l&-単l&-修正l\\
連e&-単e&-修正e\\
\end{array}
\right)
\end{split} \end{equation}
列(縦)方向は資産=負債+純資産が成り立っており、バランスベクトルとなっていますが、行(横)方向についても、
連結ベースの資産=単体ベースの資産合計+資産に係る連結修正
\end{split} \end{equation}
M&=\left(
\begin{array}{rrr}
100&-120&20\\
-50&80&-30\\
-50&40&-10\\
\end{array}
\right)
\end{split} \end{equation}
\begin{array}{r|r} \hline
120 & 80\\
& 40
\end{array}
\end{split} \end{equation}
\begin{array}{r|r} \hline
-20 & -30\\
& 10
\end{array}
\end{split} \end{equation}
\begin{array}{r|r} \hline
100 & 50\\
& 50
\end{array}
\end{split} \end{equation}
仕訳の仕訳
M
&=\left(
\begin{array}{rrrr}
a_{1,1}&a_{1,2}&\cdots&a_{1,m}\\
a_{2,1}&a_{2,2}&\cdots&a_{2,m}\\\\
\vdots\\
a_{n,1}&a_{n,2}&\cdots&a_{n,m}\\
\end{array}
\right)\\
&=\left( b_1,b_2,\cdots,b_m\right)\\
\end{split} \end{equation}
\sum_{j=1}^m b_j&=
\sum_{j=1}^m\left(
\begin{array}{c}
a_{1,j}\\
\vdots\\
a_{n_j}
\end{array}\right)\\
&=
\left(
\begin{array}{c}
\sum_{j=1}^ma_{1,j}\\
\vdots\\
\sum_{j=1}^ma_{n_j}
\end{array}\right)\\
&=\left(
\begin{array}{c}
0\\
\vdots\\
0
\end{array}\right)\\
&={\bf 0}
\end{split} \end{equation}
完全バランス行列\(M=\left(b_1,\cdots,b_m\right),\sum b_j={\bf 0}\)という式は、バランスベクトル\(b=\left(a_1,\cdots,a_n\right),\sum a_i=0\)と構造が全く同じであることに気づくでしょう。
バランスベクトル\(b=\left(a_1,a_2,a_3\right)\)が、試算表や仕訳のT勘定図
\begin{array}{r|r} \hline
a_1 & a_2\\
& a_3
\end{array}
\end{split} \end{equation}
\begin{array}{r|r} \hline
b_1 & b_2\\
& b_3
\end{array}
\end{split} \end{equation}
バランスベクトルにおける各要素\(a_i\)は勘定の金額を表していましたが、T表現した完全バランス行列の各要素\(b_j\)はそれぞれがバランスベクトル、つまり試算表や仕訳です。
標語的なフレーズで表すとしたら、完全バランス行列のT表現は「仕訳の仕訳」と呼べるものです。
なぜなら、完全バランス行列\(M\)をT表現した時の各\(b_j\)がそれぞれT表現を持ち、
\begin{array}{r|r} \hline
\begin{array}{r|r} \hline
a_{1,1} & a_{2,1}\\
& a_{3,1}
\end{array}
&
\begin{array}{r|r} \hline
a_{1,2} & a_{2,2}\\
& a_{3,2}
\end{array}\\
&
\begin{array}{r|r} \hline
a_{1,3} & a_{2,3}\\
& a_{3,3}
\end{array}
\end{array}
\end{split} \end{equation}
バランステンソル
ベクトルは1次元配列、行列は2次元配列の一種です。3次元以上の配列は、テンソルと呼ばれます(数学的には別の定義があります、参考文献をご覧ください)。
バランスベクトルやバランス行列を考えることができるなら、バランステンソルも同様に考えうるのではないか、というのは素朴なアイデアです。
バランス行列\( M_1,M_2,\cdots,M_K\)を並べた
T=\left( M_1,M_2,\cdots,M_K\right)=\left( a_{i,j,k}\right)
\end{split} \end{equation}
\(M_k\)が(必ずしも完全バランス行列ではない)バランス行列であるとき、これらを並べてできる\(T\)を、バランステンソルと呼ぶことにしましょう。
この\(T\)をさらに並べて、より高階のテンソルも考えることができます。
バランスベクトルは1階のバランステンソル、バランス行列は2階のバランステンソルです。
バランス行列で異なる「軸」を考えることができたように、高階のバランステンソルを考えればより複雑な状況を表せると考えられます。
完全バランステンソル
バランス行列(2階バランステンソル)\(M=\left(a_{i,j}\right)\)について
\sum_i a_{ i,j }=\sum_j a_{ i,j }=0
\end{split} \end{equation}
同様に、\(D\)階のバランステンソル
T^D=\left(a_{ i_1,\cdots,i_D }\right)
\end{split} \end{equation}
\sum_{i_1} a_{ i_1,\cdots,i_D }=\cdots=\sum_{i_D} a_{ i_1,\cdots,i_D }=0
\end{split} \end{equation}
一般の\(D\)階のテンソル(\(D\)次元配列)\(\left(x_{ i_1,\cdots,i_D }\right)\)について、\(d\)番目のインデックス\(i_d\)に関する要素和がゼロになるようなもの、つまり
\mathrm{ tensor:}~x_{ i_1,\cdots,i_D } \mathrm{ s.t.}~\sum_{i_d}x_{ i_1,\cdots,i_D }= 0
\end{split} \end{equation}
バランス行列\(a_{i,j}\)で、列(縦、\(i\))方向にはバランスベクトルであって、行(横、\(j\))方向にはバランスベクトルではないものは、\(2\)階の\( 1-\)バランステンソルです。
参考文献
複式簿記の代数構造やバランスベクトルの性質について、この本に述べられている内容が最先端と言っていいでしょう。
テンソルを「\( n\)次元配列」と考えること、その応用についてはこちらが参考になります。高次元配列を関係データの分析に活用する方法が述べられています。
テンソルの直感的定義と具体的な計算方法については、こちらをおすすめします。基礎的な線形代数の理解があれば読めるでしょう。テンソルの計算方法や「アインシュタイン記法」「縮約」などのルールについて、詳しく説明されています。
テンソルの数学的な定義については、以下が詳しいです。由緒ある教科書であり、線形代数の基礎から学ぶことができます。
コメント