最近J言語(J Programming Language)というAPLの派生言語をかじっているのですが、ようやく行列の積にたどり着いたので、備忘です。
l×m行列Aとm×n行列Bの積はl×n行列となり、C=ABの(i,j)成分cijは、それぞれの要素の積の合計。
一般に、ABとBAは等しくならない。
wikipediaにある例をJで表すと次のようになります。
]a=:2 2$5 6 7 8 5 6 7 8 ]b=:2 2$1 2 3 4 1 2 3 4 ]ab=:a +/ . * b 23 34 31 46 ]ba=:b +/ . * a 19 22 43 50
つまり、(+/ . *)というのが積(matrix product)です。
(+/ . *)は不思議な感じがしますが、J言語のVocabularyの「. Determinant • Dot Product」のところにいろいろ書いてあります。とりあえず理解不能なのでわかったら追記します。
以上