はじめに
行列の掛け算では、同じ位置の数をそのまま掛け合わせるわけではありません。「2行3列の行列と3行2列の行列は掛けられるのに、組み合わせによっては計算できないのはなぜか」と迷いやすいところです。
行列の積は、左の行列の列数と右の行列の行数が一致するときに計算でき、結果の各要素は「左の行」と「右の列」を使って求めます。この考え方を理解すると、行列とベクトルの積、逆行列、固有値・固有ベクトルなどへ進みやすくなります。
この記事で分かること
- 行列の積を計算できる条件
- 結果の行列の大きさを決める方法
- 「行×列」で各要素を求める計算方法
- 行列とベクトルの積をどう捉えるか
行列の積とは
行列の積とは、2つの行列を一定の規則で掛け合わせて、新しい行列を作る計算です。普通の数の掛け算と違い、行列では「どの大きさの行列同士でも掛けられる」わけではありません。
左の行列をA、右の行列をBとすると、積はABと書きます。ABの各要素は、Aの1つの行とBの1つの列を対応させ、同じ位置の数を掛けた結果を足し合わせて求めます。
行列そのものの表し方やベクトルとの違いを先に整理したい場合は、「ベクトルと行列の違いとは?表し方と役割をわかりやすく解説」を先に読むと理解しやすくなります。
行列の積が計算できる条件
行列の積を計算するには、左の行列の列数と右の行列の行数が一致している必要があります。
例えば、Aが2行3列、Bが3行4列なら、Aの列数3とBの行数3が一致するためABを計算できます。結果は、Aの行数2とBの列数4を引き継いだ2行4列の行列になります。
| 左の行列A | 右の行列B | ABを計算できるか | 結果の大きさ |
|---|---|---|---|
| 2行3列 | 3行4列 | できる | 2行4列 |
| 2行3列 | 2行4列 | できない | - |
| 3行2列 | 2行1列 | できる | 3行1列 |
「内側の数が一致すれば計算でき、外側の数が結果に残る」と覚えると整理しやすくなります。
行列の積の計算方法
1つの要素は「行×列」で求める
積ABの1行1列目を求めるときは、Aの1行目とBの1列目を使います。それぞれの同じ位置にある数を掛け、その結果をすべて足します。
同じように、ABの1行2列目ならAの1行目とBの2列目、2行1列目ならAの2行目とBの1列目を使います。つまり、結果の「何行何列目を求めるか」によって、使う行と列が決まります。
2行3列と3行2列の計算例
次の行列を考えます。
A = [[1, 2, 3],
[4, 5, 6]]
B = [[7, 8],
[9, 10],
[11, 12]]
Aは2行3列、Bは3行2列なので、内側の数3が一致し、ABを計算できます。結果は2行2列です。
1行1列目は、Aの1行目とBの1列目から求めます。
1×7 + 2×9 + 3×11 = 58
1行2列目は、Aの1行目とBの2列目を使います。
1×8 + 2×10 + 3×12 = 64
同じように2行目も計算すると、
AB = [[58, 64],
[139, 154]]
となります。行列の積では、各要素についてこの「行と列を対応させ、掛けて足す」計算を繰り返します。
行列とベクトルの積
列ベクトルは、1列の行列と同じ形で表せます。そのため、行列とベクトルの積も同じ規則で計算できます。
例えば、2行2列の行列Aと2次元の列ベクトルvを考えます。
A = [[1, 2],
[0, 1]]
v = [[2],
[3]]
Aは2行2列、vは2行1列なのでAvを計算でき、結果は2行1列になります。
Av = [[1×2 + 2×3],
[0×2 + 1×3]]
= [[8],
[3]]
この結果は、行列Aがベクトルvを別のベクトルへ変換したものと捉えられます。行列がベクトルへ作用するという見方は、固有値・固有ベクトルなどを学ぶときにも重要です。
行列の積では順序が重要
行列の積では、ABとBAを同じものとして扱えません。行列の大きさによってはABを計算できてもBAは計算できないことがあります。また、両方を計算できる場合でも、一般にはABとBAの結果は一致しません。
例えば、2行3列のAと3行4列のBではABは計算できますが、BAではBの列数4とAの行数2が一致しないため計算できません。
普通の数の掛け算では2×3と3×2が同じ6になりますが、行列では順序を入れ替えてよいとは限らない点に注意が必要です。
まとめ
行列の積は、左の行列の列数と右の行列の行数が一致するときに計算できます。m行n列の行列とn行p列の行列を掛けると、結果はm行p列です。
各要素は、左の行列の1つの行と右の行列の1つの列を使い、対応する数を掛けて足すことで求めます。この規則は行列同士だけでなく行列とベクトルの積にも共通し、行列を「ベクトルへ作用する変換」として理解する基礎になります。
また、行列の積は順序が重要で、一般にはABとBAは同じになりません。成立条件と「行×列」の計算を押さえておくと、逆行列や固有値・固有ベクトルなど次の線形代数の知識へ進みやすくなります。