行列乗算計算機

次へ

行列A(m×n)と行列B(n×p)を入力してください。Aの列数がBの行数と一致する場合、計算機はm×pの行列である積ABを返します。結果の各要素はAの1つの行とBの1つの列の内積であり、本ツールはそれらの内積の和を一つひとつ明示的に表示するため、途中の計算を鵜呑みにすることなく代数の過程を追うことができます。

行列の乗算の仕組み

  1. 1

    次元を設定する

    AとBの行数・列数。Aの列数はBの行数と一致していなければなりません。

  2. 2

    値を入力する

    各セルに値を入力します。小数や負の数も入力できます。

  3. 3

    積を読み取る

    C = A・B。次元はAの行数 × Bの列数です。

  4. 4

    セルを1つ展開する

    任意のC_ijをタップすると、内積 row_i(A)・col_j(B) が各積とともに表示されます。

規則

(AB)_ij = Σ_k A_ik · B_kj

積の要素(i, j)は、Aのi行目とBのj列目を対応させた積の総和です。

2×2の計算例

A = [[1, 2], [3, 4]], B = [[5, 6], [7, 8]]

  • C_11 = 1·5 + 2·7 = 5 + 14 = 19
  • C_12 = 1·6 + 2·8 = 6 + 16 = 22
  • C_21 = 3·5 + 4·7 = 15 + 28 = 43
  • C_22 = 3·6 + 4·8 = 18 + 32 = 50

AB = [[19, 22], [43, 50]]

逆の順序も確認しましょう: BA = [[23, 34], [31, 46]]。ABとは等しくありません。行列の乗算は交換法則を満たしません。

次元の適合性

Aの次元 Bの次元 適合するか 積の次元
2×3 3×4 はい 2×4
3×3 3×3 はい 3×3
2×3 4×3 いいえ -
1×n n×1 はい 1×1(スカラー)
n×1 1×n はい n×n(外積)

性質

  • 結合法則: A(BC) = (AB)C。
  • 分配法則: A(B + C) = AB + AC。
  • 交換法則は成り立たない: 一般に AB ≠ BA。
  • 単位元: AI = IA = A(Iは適切なサイズの単位行列)。
  • 零行列: A · 0 = 0。ただし注意が必要で、AB = 0 だからといって A = 0 または B = 0 とは限りません。

応用において順序が重要な理由

  • コンピュータグラフィックス: 変換行列は右から左へ合成されます。M_screen = M_projection · M_view · M_model。拡大縮小と回転を入れ替えると異なる結果になります。
  • 回転: X軸まわりに回転してからY軸まわりに回転するのは、Y軸まわりに回転してからX軸まわりに回転するのと同じではありません。
  • マルコフ連鎖: 遷移行列に状態ベクトルを掛けると1ステップ進みます。順序を入れ替えると意味をなしません。

計算量

2つのn×n行列を教科書どおりの方法で乗算すると、演算数はO(n³)になります。ストラッセンのアルゴリズムはこれをO(n^2.81)まで下げ、理論的な下限はさらに低いことが知られています。ただし、サイズが数百までの行列では、キャッシュに適したアクセスパターンのおかげで教科書どおりの方法が実際には最も高速です。

よくある質問

1つ目の行列の列数が2つ目の行列の行数と一致していなければなりません。2×3 · 2×3 は、Aの列数が3であるのに対しBの行数が2しかないため失敗します。Bを転置すればよく、2×3 · 3×2 なら問題なく計算でき、2×2の行列が得られます。

スカラーと行列の積には汎用の行列計算機をご利用ください。本ツールは2つの行列どうしの乗算に特化しています。

ABの各要素がAの行とBの列の内積であり、順序を入れ替えると異なる行と異なる列の内積になるためです。特別な組み合わせ(Aとその逆行列、Aと単位行列、成分の異なる対角行列どうしなど)だけがたまたま交換可能になります。

はい。1×nの行と n×1 の列の積は 1×1 のスカラー(内積)になります。逆に、n×1 と 1×n の積は n×n の外積となり、これはランク1の行列です。

いいえ。乗算はお使いのブラウザ内で実行され、値がデバイスの外に出ることはありません。

関連ツール

このツールは他の言語でも利用できます