Mathematical operation in linear algebra
行列の乗算では、最初の行列の列数は2番目の行列の行数と等しくなければなりません。結果の行列は、最初の行列の行数と2番目の行列の列数を持ちます。 数学 、特に 線形代数 において、 行列の乗算は2つの行列から1つ の 行列 を生成する 二項演算 です 。行列の乗算では、最初の行列の列数は2番目の行列の行数と等しくなければなりません。結果として得られる行列は 行列積 と呼ばれ、最初の行列の行数と2番目の行列の列数を持ちます。行列 A と行列 Bの積は AB と表されます 。 [1]
行列の乗算は、1812年にフランスの数学者 ジャック・フィリップ・マリー・ビネ によって初めて記述され、 [2] 行列で表される 線型写像 の 合成 を表現するために用いられました。したがって、行列の乗算は 線型代数 の基本的なツールであり、数学の多くの分野、さらには 応用数学 、 統計 学、 物理学 、 経済学 、 工学 など、多岐にわたる分野で応用されています。 [3] [4] 行列の積の計算は、線型代数のあらゆる計算応用において中心的な演算です。
表記 この記事では、以下の表記規則を使用します。行列は太字の大文字で表します(例: A ) 。 ベクトルは 太字の小文字で表します(例: a )。ベクトルと行列のエントリはイタリック体(体からの数)で表します(例: A および a ) 。 インデックス表記は 、定義を表す最も明確な方法であることが多く、文献では標準として使用されています。行列 A の i 行 j 列の エントリ は 、 ( A ) ij 、 A ij 、 または a ij で示されます 。一方、単一の添字(例: A 1 、 A 2 )は、行列のコレクションから行列(行列エントリではない)を選択するために使用されます。
定義
行列×行列 A が m × n 行列で B が n × p 行列の場合 、 行列積 C = AB ( 乗算記号やドットなしで表記)は、 i = 1, ..., m および j = 1, ..., p に対して、次の式 が成り立つ m × p 行列 [5] [6] [7] [8] と定義されます。 A = ( a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ) , B = ( b 11 b 12 ⋯ b 1 p b 21 b 22 ⋯ b 2 p ⋮ ⋮ ⋱ ⋮ b n 1 b n 2 ⋯ b n p ) {\displaystyle \mathbf {A} ={\begin{pmatrix}a_{11}&a_{12}&\cdots &a_{1n}\\a_{21}&a_{22}&\cdots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\a_{m1}&a_{m2}&\cdots &a_{mn}\\\end{pmatrix}},\quad \mathbf {B} ={\begin{pmatrix}b_{11}&b_{12}&\cdots &b_{1p}\\b_{21}&b_{22}&\cdots &b_{2p}\\\vdots &\vdots &\ddots &\vdots \\b_{n1}&b_{n2}&\cdots &b_{np}\\\end{pmatrix}}} C = ( c 11 c 12 ⋯ c 1 p c 21 c 22 ⋯ c 2 p ⋮ ⋮ ⋱ ⋮ c m 1 c m 2 ⋯ c m p ) {\displaystyle \mathbf {C} ={\begin{pmatrix}c_{11}&c_{12}&\cdots &c_{1p}\\c_{21}&c_{22}&\cdots &c_{2p}\\\vdots &\vdots &\ddots &\vdots \\c_{m1}&c_{m2}&\cdots &c_{mp}\\\end{pmatrix}}} c i j = a i 1 b 1 j + a i 2 b 2 j + ⋯ + a i n b n j = ∑ k = 1 n a i k b k j , {\displaystyle c_{ij}=a_{i1}b_{1j}+a_{i2}b_{2j}+\cdots +a_{in}b_{nj}=\sum _{k=1}^{n}a_{ik}b_{kj},}
つまり、積の項 は、 c i j {\displaystyle c_{ij}} A のi 行目 と B のj 列目 の項を項ごとに 掛け合わせ、それらの積を合計する こと で得られます。言い換えれば、 は A のi 行目 と B のj 列目 の ドット積 です 。 c i j {\displaystyle c_{ij}}
したがって、 ABは 次のようにも書ける。 C = ( a 11 b 11 + ⋯ + a 1 n b n 1 a 11 b 12 + ⋯ + a 1 n b n 2 ⋯ a 11 b 1 p + ⋯ + a 1 n b n p a 21 b 11 + ⋯ + a 2 n b n 1 a 21 b 12 + ⋯ + a 2 n b n 2 ⋯ a 21 b 1 p + ⋯ + a 2 n b n p ⋮ ⋮ ⋱ ⋮ a m 1 b 11 + ⋯ + a m n b n 1 a m 1 b 12 + ⋯ + a m n b n 2 ⋯ a m 1 b 1 p + ⋯ + a m n b n p ) {\displaystyle \mathbf {C} ={\begin{pmatrix}a_{11}b_{11}+\cdots +a_{1n}b_{n1}&a_{11}b_{12}+\cdots +a_{1n}b_{n2}&\cdots &a_{11}b_{1p}+\cdots +a_{1n}b_{np}\\a_{21}b_{11}+\cdots +a_{2n}b_{n1}&a_{21}b_{12}+\cdots +a_{2n}b_{n2}&\cdots &a_{21}b_{1p}+\cdots +a_{2n}b_{np}\\\vdots &\vdots &\ddots &\vdots \\a_{m1}b_{11}+\cdots +a_{mn}b_{n1}&a_{m1}b_{12}+\cdots +a_{mn}b_{n2}&\cdots &a_{m1}b_{1p}+\cdots +a_{mn}b_{np}\\\end{pmatrix}}}
したがって、積 ABは、 Aの列数が B の行数と等しい 場合にのみ定義されます ( [1] この場合は n) 。
ほとんどの場合、要素は数値ですが、 加算と乗算が定義され、 結合法則 を持ち、加算が可換法則を持ち、乗算が加算に関して分配法則を持つような、任意の種類の数学的オブジェクトを要素とすることが でき ます 。 特に 、要素は行列自体である場合もあります( ブロック行列を 参照)。
行列×ベクトル 長さの ベクトルは、 要素が で与えられる行列 に 対応する 列ベクトル として見ることができます。 が行列で ある 場合 、 で表される行列とベクトルの積は 、列ベクトルとして見ると 行列に等しい ベクトルです。 インデックス表記では、これは次のようになります。 x {\displaystyle \mathbf {x} } n {\displaystyle n} n × 1 {\displaystyle n\times 1} X {\displaystyle \mathbf {X} } X i 1 = x i . {\displaystyle \mathbf {X} _{i1}=\mathbf {x} _{i}.} A {\displaystyle \mathbf {A} } m × n {\displaystyle m\times n} A x {\displaystyle \mathbf {Ax} } y {\displaystyle \mathbf {y} } m × 1 {\displaystyle m\times 1} A X . {\displaystyle \mathbf {AX} .}
y i = ∑ j = 1 n a i j x j . {\displaystyle y_{i}=\sum _{j=1}^{n}a_{ij}x_{j}.} これを見る一つの方法は、「プレーン」ベクトルから列ベクトルへの変更とその逆の変更が想定され、暗黙的に残されるということです。
ベクトル×行列 同様に、長さの ベクトルは 行ベクトル と見なすことができ 、これは 行列に対応します。行ベクトルであることを明確にするために、この文脈では列ベクトルの 転置 として表すのが慣例です。そのため、次のような表記が見られます。 恒等式が成り立ちます 。添字表記では、 が 行列の場合、 は次のようになります。 x {\displaystyle \mathbf {x} } n {\displaystyle n} 1 × n {\displaystyle 1\times n} x T A . {\displaystyle \mathbf {x} ^{\mathrm {T} }\mathbf {A} .} x T A = ( A T x ) T {\displaystyle \mathbf {x} ^{\mathrm {T} }\mathbf {A} =(\mathbf {A} ^{\mathrm {T} }\mathbf {x} )^{\mathrm {T} }} A {\displaystyle \mathbf {A} } n × p {\displaystyle n\times p} x T A = y T {\displaystyle \mathbf {x} ^{\mathrm {T} }\mathbf {A} =\mathbf {y} ^{\mathrm {T} }} y k = ∑ j = 1 n x j a j k . {\displaystyle y_{k}=\sum _{j=1}^{n}x_{j}a_{jk}.}
ベクトル×ベクトル 長さが等しい 2 つのベクトルの ドット 積は 、 これらのベクトルを行ベクトルと列ベクトルとして乗算して得られる行列の単一の要素に等しいため、次のようになります (または、 同じ 行列になります)。 a ⋅ b {\displaystyle \mathbf {a} \cdot \mathbf {b} } a {\displaystyle \mathbf {a} } b {\displaystyle \mathbf {b} } 1 × 1 {\displaystyle 1\times 1} a T b {\displaystyle \mathbf {a} ^{\mathrm {T} }\mathbf {b} } b T a , {\displaystyle \mathbf {b} ^{\mathrm {T} }\mathbf {a} ,} 1 × 1 {\displaystyle 1\times 1}
図 右の図は、 2 つの行列 A と B の積を図式的に示しており、積行列の各交点が A の行と B の列にどのように対応しているかを示しています。 [ a 11 a 12 ⋅ ⋅ a 31 a 32 ⋅ ⋅ ] 4 × 2 matrix [ ⋅ b 12 b 13 ⋅ b 22 b 23 ] 2 × 3 matrix = [ ⋅ c 12 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ c 33 ⋅ ⋅ ⋅ ] 4 × 3 matrix {\displaystyle {\overset {4\times 2{\text{ matrix}}}{\begin{bmatrix}a_{11}&a_{12}\\\cdot &\cdot \\a_{31}&a_{32}\\\cdot &\cdot \\\end{bmatrix}}}{\overset {2\times 3{\text{ matrix}}}{\begin{bmatrix}\cdot &b_{12}&b_{13}\\\cdot &b_{22}&b_{23}\\\end{bmatrix}}}={\overset {4\times 3{\text{ matrix}}}{\begin{bmatrix}\cdot &c_{12}&\cdot \\\cdot &\cdot &\cdot \\\cdot &\cdot &c_{33}\\\cdot &\cdot &\cdot \\\end{bmatrix}}}}
右の図で円でマークされた交差点の値は次のとおりです。 c 12 = a 11 b 12 + a 12 b 22 c 33 = a 31 b 13 + a 32 b 23 . {\displaystyle {\begin{aligned}c_{12}&=a_{11}b_{12}+a_{12}b_{22}\\c_{33}&=a_{31}b_{13}+a_{32}b_{23}.\end{aligned}}}
基本的な応用 歴史的に、行列乗算は線形代数 における計算を容易にし、明確化するために導入されてきました。行列乗算と線形代数の間のこの強い関係は、 物理学 、 化学 、 工学 、そして コンピュータサイエンス だけでなく、あらゆる数学において基礎となっています 。
線形マップ ベクトル空間が 有限の 基底 を持つ場合 、そのベクトルはそれぞれ、 座標ベクトル と呼ばれる有限の スカラー列 によって一意に表現されます。座標ベクトルの要素は、 ベクトルの基底上の 座標 です。これらの座標ベクトルは、元のベクトル空間と 同型な別のベクトル空間を形成します。座標ベクトルは通常、 列行列 ( 列ベクトル とも呼ばれます)として構成されます。列行列は、1列のみを持つ行列です。したがって、列ベクトルは座標ベクトルと、元のベクトル空間のベクトルの両方を表します。
n 次元のベクトル空間から m 次元のベクトル空間への 線型写像 A は 列ベクトルを写す。
x = ( x 1 x 2 ⋮ x n ) {\displaystyle \mathbf {x} ={\begin{pmatrix}x_{1}\\x_{2}\\\vdots \\x_{n}\end{pmatrix}}} 列ベクトルに
y = A ( x ) = ( a 11 x 1 + ⋯ + a 1 n x n a 21 x 1 + ⋯ + a 2 n x n ⋮ a m 1 x 1 + ⋯ + a m n x n ) . {\displaystyle \mathbf {y} =A(\mathbf {x} )={\begin{pmatrix}a_{11}x_{1}+\cdots +a_{1n}x_{n}\\a_{21}x_{1}+\cdots +a_{2n}x_{n}\\\vdots \\a_{m1}x_{1}+\cdots +a_{mn}x_{n}\end{pmatrix}}.} 線形写像 A は行列によって定義される。
A = ( a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ) , {\displaystyle \mathbf {A} ={\begin{pmatrix}a_{11}&a_{12}&\cdots &a_{1n}\\a_{21}&a_{22}&\cdots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\a_{m1}&a_{m2}&\cdots &a_{mn}\\\end{pmatrix}},} 列ベクトルを 行列積に
写像する x {\displaystyle \mathbf {x} }
y = A x . {\displaystyle \mathbf {y} =\mathbf {Ax} .} B が前述の m 次元のベクトル空間から p 次元のベクトル空間への別の線型写像である 場合、それは p × m {\displaystyle p\times m} 行列 で表されます。簡単な計算により、 合成写像 の行列は行列積であることがわかります。 関数合成を定義する 一般的な式 ) は、ここでは行列積の結合性の特定のケースとして例示されています (以下の § 結合性を参照)。 B . {\displaystyle \mathbf {B} .} B ∘ A {\displaystyle B\circ A} B A . {\displaystyle \mathbf {BA} .} ( B ∘ A ) ( x ) = B ( A ( x ) ) {\displaystyle (B\circ A)(\mathbf {x} )=B(A(\mathbf {x} ))}
( B A ) x = B ( A x ) = B A x . {\displaystyle (\mathbf {BA} )\mathbf {x} =\mathbf {B} (\mathbf {Ax} )=\mathbf {BAx} .}
幾何学的回転 ユークリッド平面における 直交座標 系を用いると、 原点を 中心とした 角度による 回転は 線形写像となります。より正確には、 原点 とその像は 列ベクトルとして表されます。 α {\displaystyle \alpha } [ x ′ y ′ ] = [ cos α − sin α sin α cos α ] [ x y ] , {\displaystyle {\begin{bmatrix}x'\\y'\end{bmatrix}}={\begin{bmatrix}\cos \alpha &-\sin \alpha \\\sin \alpha &\cos \alpha \end{bmatrix}}{\begin{bmatrix}x\\y\end{bmatrix}},} ( x , y ) {\displaystyle (x,y)} ( x ′ , y ′ ) {\displaystyle (x',y')}
回転 と 回転の合成は、2番目の等式に 適切な 三角関数の恒等式 を用いた行列積に対応します
。つまり、この合成は 予想通り、 角度 の回転に対応します。 α {\displaystyle \alpha } β {\displaystyle \beta } [ cos β − sin β sin β cos β ] [ cos α − sin α sin α cos α ] = [ cos β cos α − sin β sin α − cos β sin α − sin β cos α sin β cos α + cos β sin α − sin β sin α + cos β cos α ] = [ cos ( α + β ) − sin ( α + β ) sin ( α + β ) cos ( α + β ) ] , {\displaystyle {\begin{bmatrix}\cos \beta &-\sin \beta \\\sin \beta &\cos \beta \end{bmatrix}}{\begin{bmatrix}\cos \alpha &-\sin \alpha \\\sin \alpha &\cos \alpha \end{bmatrix}}={\begin{bmatrix}\cos \beta \cos \alpha -\sin \beta \sin \alpha &-\cos \beta \sin \alpha -\sin \beta \cos \alpha \\\sin \beta \cos \alpha +\cos \beta \sin \alpha &-\sin \beta \sin \alpha +\cos \beta \cos \alpha \end{bmatrix}}={\begin{bmatrix}\cos(\alpha +\beta )&-\sin(\alpha +\beta )\\\sin(\alpha +\beta )&\cos(\alpha +\beta )\end{bmatrix}},} α + β {\displaystyle \alpha +\beta }
経済における資源配分 左下のエントリの計算は、 生産フロー グラフ内の基本商品から 最終製品までの すべてのパス (強調表示) を考慮することに対応します。 A B {\displaystyle \mathbf {AB} } b 4 {\displaystyle b_{4}} f 1 {\displaystyle f_{1}} 例として、架空の工場が4種類の 基礎財 ,を使って3種類の 中間財 , を生産し 、さらにそれらを使って3種類の 最終製品 ,を生産するとします 。行列 b 1 , b 2 , b 3 , b 4 {\displaystyle b_{1},b_{2},b_{3},b_{4}} m 1 , m 2 , m 3 {\displaystyle m_{1},m_{2},m_{3}} f 1 , f 2 , f 3 {\displaystyle f_{1},f_{2},f_{3}}
A = ( 1 0 1 2 1 1 0 1 1 1 1 2 ) {\displaystyle \mathbf {A} ={\begin{pmatrix}1&0&1\\2&1&1\\0&1&1\\1&1&2\\\end{pmatrix}}} そして B = ( 1 2 1 2 3 1 4 2 2 ) {\displaystyle \mathbf {B} ={\begin{pmatrix}1&2&1\\2&3&1\\4&2&2\\\end{pmatrix}}} は、与えられた量の中間財に必要な基礎財の量、および与えられた量の最終製品に必要な中間財の量をそれぞれ提供します。例えば、中間財 1単位 、基礎財 1単位を生産するには 、 2単位 、 0単位 、 1単位が 必要であり、これらは の最初の列に相当します 。 m 1 {\displaystyle m_{1}} b 1 {\displaystyle b_{1}} b 2 {\displaystyle b_{2}} b 3 {\displaystyle b_{3}} b 4 {\displaystyle b_{4}} A {\displaystyle \mathbf {A} }
行列乗算を使用して計算します
A B = ( 5 4 3 8 9 5 6 5 3 11 9 6 ) ; {\displaystyle \mathbf {AB} ={\begin{pmatrix}5&4&3\\8&9&5\\\ 6&5&3\\11&9&6\\\end{pmatrix}};} この行列は、与えられた量の最終財に必要な基礎商品の量を直接示します。例えば、左下の は と計算され、 1単位の を生産するには の単位が必要である ことを示しています 。実際、 には 1単位 、 2単位の それぞれに 1単位 、単位 を構成する 4単位の それぞれに 1単位 が必要です (図を参照)。 A B {\displaystyle \mathbf {AB} } 1 ⋅ 1 + 1 ⋅ 2 + 2 ⋅ 4 = 11 {\displaystyle 1\cdot 1+1\cdot 2+2\cdot 4=11} 11 {\displaystyle 11} b 4 {\displaystyle b_{4}} f 1 {\displaystyle f_{1}} b 4 {\displaystyle b_{4}} m 1 {\displaystyle m_{1}} m 2 {\displaystyle m_{2}} 2 {\displaystyle 2} m 3 {\displaystyle m_{3}} f 1 {\displaystyle f_{1}}
例えば、最終製品を100ユニット 、を80ユニット 、を60ユニット生産する場合 、必要な基本商品の量は次のように計算できます。 f 1 {\displaystyle f_{1}} f 2 {\displaystyle f_{2}} f 3 {\displaystyle f_{3}}
( A B ) ( 100 80 60 ) = ( 1000 1820 1180 2180 ) , {\displaystyle (\mathbf {AB} ){\begin{pmatrix}100\\80\\60\\\end{pmatrix}}={\begin{pmatrix}1000\\1820\\1180\\2180\end{pmatrix}},} つまり、 単位 、 単位 、 単位 、 単位が 必要である。同様に、積行列は 他の最終財量データの基礎財必要量を計算するために使用できる。 [9] 1000 {\displaystyle 1000} b 1 {\displaystyle b_{1}} 1820 {\displaystyle 1820} b 2 {\displaystyle b_{2}} 1180 {\displaystyle 1180} b 3 {\displaystyle b_{3}} 2180 {\displaystyle 2180} b 4 {\displaystyle b_{4}} A B {\displaystyle \mathbf {AB} }
線形方程式のシステム 線形方程式系 の一般的な形 は
a 11 x 1 + ⋯ + a 1 n x n = b 1 , a 21 x 1 + ⋯ + a 2 n x n = b 2 , ⋮ a m 1 x 1 + ⋯ + a m n x n = b m . {\displaystyle {\begin{matrix}a_{11}x_{1}+\cdots +a_{1n}x_{n}=b_{1},\\a_{21}x_{1}+\cdots +a_{2n}x_{n}=b_{2},\\\vdots \\a_{m1}x_{1}+\cdots +a_{mn}x_{n}=b_{m}.\end{matrix}}} 上記と同じ表記法を用いると、このようなシステムは単一の行列 方程式と等価である。
A x = b . {\displaystyle \mathbf {Ax} =\mathbf {b} .}
2つの列ベクトルのドット 積 は行列積の唯一の要素である。
x T y , {\displaystyle \mathbf {x} ^{\mathsf {T}}\mathbf {y} ,} ここで、 は 転置 によって得られる 行ベクトル です 。(通常どおり、1×1行列はその一意の要素で識別されます。) x T {\displaystyle \mathbf {x} ^{\mathsf {T}}} x {\displaystyle \mathbf {x} }
より一般的には、有限次元ベクトル空間上の任意の 双線型形式は 行列積として表現できる。
x T A y , {\displaystyle \mathbf {x} ^{\mathsf {T}}\mathbf {Ay} ,} そして任意の セクスティライン形式は 次のように表される。
x † A y , {\displaystyle \mathbf {x} ^{\dagger }\mathbf {Ay} ,} ここで、 は の 共役転置 (転置の共役、または共役の転置と同等) を表します。 x † {\displaystyle \mathbf {x} ^{\dagger }} x {\displaystyle \mathbf {x} }
一般的な特性 行列の乗算は通常の乗算 といくつかの性質を共有しています 。しかし、最初の因子の列数と2番目の因子の行数が異なる場合、行列の乗算は定義されません 。また、因子の順序を入れ替えた後でも積が定義されている場合でも、行列の乗算は非可換です。 [ 10 ] [11] [12 ]
非可換性 演算が 可換で あるとは、 積が定義される2つの要素 A と B が与えられ、かつ も定義され、 A B {\displaystyle \mathbf {A} \mathbf {B} } B A {\displaystyle \mathbf {B} \mathbf {A} } A B = B A . {\displaystyle \mathbf {A} \mathbf {B} =\mathbf {B} \mathbf {A} .}
A と B がそれぞれサイズ m × n {\displaystyle m\times n} と p × q {\displaystyle p\times q} の行列である場合 、 のときは が定義され 、 のときは が定義されます 。したがって、積の片方が定義されていれば、もう片方は定義される必要はありません。 の場合、2つの積は定義されますが、サイズが異なります。したがって、それらは等しくなれません。 の場合、つまり A と B が 同じサイズの正方行列 である場合にのみ 、両方の積が定義され、同じサイズになります。この場合でも、一般に A B {\displaystyle \mathbf {A} \mathbf {B} } n = p {\displaystyle n=p} B A {\displaystyle \mathbf {B} \mathbf {A} } m = q {\displaystyle m=q} m = q ≠ n = p {\displaystyle m=q\neq n=p} m = q = n = p {\displaystyle m=q=n=p}
A B ≠ B A . {\displaystyle \mathbf {A} \mathbf {B} \neq \mathbf {B} \mathbf {A} .} 例えば
( 0 1 0 0 ) ( 0 0 1 0 ) = ( 1 0 0 0 ) , {\displaystyle {\begin{pmatrix}0&1\\0&0\end{pmatrix}}{\begin{pmatrix}0&0\\1&0\end{pmatrix}}={\begin{pmatrix}1&0\\0&0\end{pmatrix}},} しかし
( 0 0 1 0 ) ( 0 1 0 0 ) = ( 0 0 0 1 ) . {\displaystyle {\begin{pmatrix}0&0\\1&0\end{pmatrix}}{\begin{pmatrix}0&1\\0&0\end{pmatrix}}={\begin{pmatrix}0&0\\0&1\end{pmatrix}}.} この例は、 A が 体 F n × n {\displaystyle n\times n} を 要素とする行列で ある場合 、 F を 要素とする すべての行列 B に対して 、 が 成り立つ ことと、 が 成り立つこと 、 また I が 単位 行列 で ある場合に限ることを示す ために 拡張 できます。体ではなく、要素が 環に属すると仮定する場合は、 c が環の 中心 に属する という条件を追加する必要があります 。 A B = B A {\displaystyle \mathbf {A} \mathbf {B} =\mathbf {B} \mathbf {A} } n × n {\displaystyle n\times n} A = c I {\displaystyle \mathbf {A} =c\,\mathbf {I} } c ∈ F {\displaystyle c\in F} n × n {\displaystyle n\times n}
交換法則が成り立つ特別なケースとして、 D と Eが 2つの(正方) 対角行列 (同じサイズ)である場合が挙げられます。このとき DE = ED となります。 [10] また、行列が体ではなく一般環上にある場合、この関係が成り立つためには、それぞれの対応する要素も互いに交換可能でなければなりません。
分配性 行列積は 行列の加算 に関して 分配的 である。つまり、 A 、 B 、 C 、 Dがそれぞれ m × n 、 n × p 、 n × p 、 p × q の大きさの行列 である場合、(左分配性)が成り立つ。
A ( B + C ) = A B + A C , {\displaystyle \mathbf {A} (\mathbf {B} +\mathbf {C} )=\mathbf {AB} +\mathbf {AC} ,} そして(右分配性)
( B + C ) D = B D + C D . {\displaystyle (\mathbf {B} +\mathbf {C} )\mathbf {D} =\mathbf {BD} +\mathbf {CD} .} [10] これは、係数の分配性から
∑ k a i k ( b k j + c k j ) = ∑ k a i k b k j + ∑ k a i k c k j {\displaystyle \sum _{k}a_{ik}(b_{kj}+c_{kj})=\sum _{k}a_{ik}b_{kj}+\sum _{k}a_{ik}c_{kj}} ∑ k ( b i k + c i k ) d k j = ∑ k b i k d k j + ∑ k c i k d k j . {\displaystyle \sum _{k}(b_{ik}+c_{ik})d_{kj}=\sum _{k}b_{ik}d_{kj}+\sum _{k}c_{ik}d_{kj}.}
スカラーとの積 A が行列で c が スカラーの場合 、行列 と は A の すべての要素に c を左または右に掛けることによって得られます 。スカラーが 交換法則 を持つ場合、 c A {\displaystyle c\mathbf {A} } A c {\displaystyle \mathbf {A} c} c A = A c . {\displaystyle c\mathbf {A} =\mathbf {A} c.}
積 が定義されている場合(つまり、 Aの列の数が B の行の数に等しい 場合)、 A B {\displaystyle \mathbf {AB} }
c ( A B ) = ( c A ) B {\displaystyle c(\mathbf {AB} )=(c\mathbf {A} )\mathbf {B} } そして ( A B ) c = A ( B c ) . {\displaystyle (\mathbf {A} \mathbf {B} )c=\mathbf {A} (\mathbf {B} c).} スカラーが交換法則を持つ場合、4つの行列はすべて等しい。より一般的には、 cが 行列の要素を含む 環 の 中心 に属する場合、4つの行列はすべて等しい。この場合、 すべての行列 Xに対して c X = X c となるためである。
これらの特性はスカラー積の 双線型性 から生じます。
c ( ∑ k a i k b k j ) = ∑ k ( c a i k ) b k j {\displaystyle c\left(\sum _{k}a_{ik}b_{kj}\right)=\sum _{k}(ca_{ik})b_{kj}} ( ∑ k a i k b k j ) c = ∑ k a i k ( b k j c ) . {\displaystyle \left(\sum _{k}a_{ik}b_{kj}\right)c=\sum _{k}a_{ik}(b_{kj}c).}
転置 スカラーが 交換法則 を持つ場合、行列の積の 転置 は、因子の転置を逆順に積んだものとなる。つまり、
( A B ) T = B T A T {\displaystyle (\mathbf {AB} )^{\mathsf {T}}=\mathbf {B} ^{\mathsf {T}}\mathbf {A} ^{\mathsf {T}}} ここで、 T は 転置、つまり行と列の入れ替えを表します。
この恒等式は非可換なエントリには当てはまりません。行列積の定義を展開すると、 A と B のエントリ間の順序が逆になるからです。
複素共役 A と B が複素数 要素を持つ 場合 、
( A B ) ∗ = A ∗ B ∗ {\displaystyle (\mathbf {AB} )^{*}=\mathbf {A} ^{*}\mathbf {B} ^{*}} ここで、 * は行列の 要素ごとの 複素共役を表します。
これは、和の共役は加数の共役の和であり、積の共役は因数の共役の積であるという事実を行列積の定義に適用した結果です。
転置は要素の添え字に作用しますが、共役は要素自体に独立して作用します。したがって、 A と Bが 複素要素を持つ場合、
( A B ) † = B † A † , {\displaystyle (\mathbf {AB} )^{\dagger }=\mathbf {B} ^{\dagger }\mathbf {A} ^{\dagger },} ここで、 † は 共役転置 (転置の共役、または共役の転置と同等) を表します。
結合性 3つの行列 A 、 B 、 C が与えられたとき、積 ( AB ) C と A ( BC )は、 A の列数が B の行数に等しく、かつ B の列数が C の行数に等しい場合に限り定義されます (特に、積の1つが定義されている場合、もう1つも定義されます)。この場合、 結合法則が成り立ちます。
( A B ) C = A ( B C ) . {\displaystyle (\mathbf {AB} )\mathbf {C} =\mathbf {A} (\mathbf {BC} ).} 結合演算と同様に、括弧を省略して上記の積を次のように書くことができ ます 。 A B C . {\displaystyle \mathbf {ABC} .}
これは次元が一致する限り、任意の数の行列の積に自然に拡張されます。つまり、 A 1 、 A 2 、…、 A n が行列であり、 A i の列数がA i + 1 の行数と等しい 場合( i = 1, …, n – 1 ) 、積は
∏ i = 1 n A i = A 1 A 2 ⋯ A n {\displaystyle \prod _{i=1}^{n}\mathbf {A} _{i}=\mathbf {A} _{1}\mathbf {A} _{2}\cdots \mathbf {A} _{n}} は定義されており、行列の順序が固定されている場合、乗算の順序 に依存しません 。
これらの性質は、単純だが複雑な加法 操作によって証明できる。この結果は、行列が 線型写像 を表すという事実からも導かれる。したがって、行列の結合法則は、単に関数 合成 の結合法則の特殊なケースに過ぎない 。
計算の複雑さは括弧の付け方に依存する 一連の行列積の結果は 演算の順序 に依存しませんが(行列の順序が変更されない限り)、 計算の複雑さは この順序に大きく依存する可能性があります。
たとえば、 A 、 B 、 C がそれぞれ10×30、30×5、5×60 のサイズの行列である場合 、 ( AB ) C の計算には10×30×5 + 10×5×60 = 4,500 回の 乗算が必要ですが、 A ( BC ) の計算には 30×5×60 + 10×30×60 = 27,000 回の乗算が必要です 。
積の最適な順序を選択するためのアルゴリズムが設計されている。 行列連鎖乗算 を参照のこと。行列の数 nが増加すると、最適な順序の選択の複雑さは [13] [14] になることが示されている。 O ( n log n ) . {\displaystyle O(n\log n).}
類似性への応用 任意 の可逆行列は 相似変換 を定義する ( と同じサイズの正方行列に対して ) P {\displaystyle \mathbf {P} } P {\displaystyle \mathbf {P} }
S P ( A ) = P − 1 A P . {\displaystyle S_{\mathbf {P} }(\mathbf {A} )=\mathbf {P} ^{-1}\mathbf {A} \mathbf {P} .} 相似変換は積を積に写像する。つまり
S P ( A B ) = S P ( A ) S P ( B ) . {\displaystyle S_{\mathbf {P} }(\mathbf {AB} )=S_{\mathbf {P} }(\mathbf {A} )S_{\mathbf {P} }(\mathbf {B} ).} 実際、
P − 1 ( A B ) P = P − 1 A ( P P − 1 ) B P = ( P − 1 A P ) ( P − 1 B P ) . {\displaystyle \mathbf {P} ^{-1}(\mathbf {AB} )\mathbf {P} =\mathbf {P} ^{-1}\mathbf {A} (\mathbf {P} \mathbf {P} ^{-1})\mathbf {B} \mathbf {P} =(\mathbf {P} ^{-1}\mathbf {A} \mathbf {P} )(\mathbf {P} ^{-1}\mathbf {B} \mathbf {P} ).}
正方行列 環 R (実際には 体 であることが多い)内の要素を持つ n × n 正方行列 の集合を 表します 。 M n ( R ) {\displaystyle {\mathcal {M}}_{n}(R)}
において 、積は行列のあらゆるペアに対して定義されます。これにより環 が形成され 、 その 単位 行列 I を 単位元 (対角成分が1で、その他の成分がすべて0である行列)として持ちます 。この環は 結合的 R 代数 でもあります。 M n ( R ) {\displaystyle {\mathcal {M}}_{n}(R)} M n ( R ) {\displaystyle {\mathcal {M}}_{n}(R)}
n > 1 の場合、多くの行列は 逆行列 を持たない 。例えば、ある行(またはある列)のすべての要素が0であるような行列には逆行列は存在しない。もし逆行列が存在する場合、行列 Aの逆行列は A −1 と表され 、したがって
A A − 1 = A − 1 A = I . {\displaystyle \mathbf {A} \mathbf {A} ^{-1}=\mathbf {A} ^{-1}\mathbf {A} =\mathbf {I} .} 逆行列を持つ行列は 可逆行列 と呼ばれます。逆行列を持たない行列は 特異行列 と呼ばれます。
行列の積が逆行列を持つのは、各因子が逆行列を持つ場合のみである。この場合、
( A B ) − 1 = B − 1 A − 1 . {\displaystyle (\mathbf {A} \mathbf {B} )^{-1}=\mathbf {B} ^{-1}\mathbf {A} ^{-1}.} R が 可換 な場合 、特に体の場合、積の 行列式 は行列式の積となる。行列式はスカラーであり、スカラーは可換なので、
det ( A B ) = det ( B A ) = det ( A ) det ( B ) . {\displaystyle \det(\mathbf {AB} )=\det(\mathbf {BA} )=\det(\mathbf {A} )\det(\mathbf {B} ).} 他の行列 不変量は 積に対してはうまく機能しない。しかしながら、 R が可換であれば、 AB と BAは 同じ トレース 、同じ 特性多項式 、そして同じ重複度を持つ同じ 固有値を 持つ。しかし、 AB ≠ BA の場合、固有ベクトル は一般に異なる 。
行列の累乗 正方行列は、通常の数と同様に、自身を繰り返し乗じることで、 任意の非負整数 乗にすることができます。つまり、
A 0 = I , {\displaystyle \mathbf {A} ^{0}=\mathbf {I} ,} A 1 = A , {\displaystyle \mathbf {A} ^{1}=\mathbf {A} ,} A k = A A ⋯ A ⏟ k times . {\displaystyle \mathbf {A} ^{k}=\underbrace {\mathbf {A} \mathbf {A} \cdots \mathbf {A} } _{k{\text{ times}}}.} 行列の k 乗を計算するには 、単純なアルゴリズム(繰り返し乗算)を用いると、1回の行列乗算の k – 1倍の時間がかかります。これは非常に時間がかかる可能性があるため、一般的には2 乗によるべき乗法が好まれます。この方法では 2 log 2 k 回の行列乗算よりも少ない回数で済むため 、はるかに効率的です。
指数関数の簡単な例としては、 対角行列 があります。対角行列の積は、対応する対角要素同士を単純に掛け合わせるだけなので、対角行列の k乗は、各要素を k 乗することで得られます 。
[ a 11 0 ⋯ 0 0 a 22 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ a n n ] k = [ a 11 k 0 ⋯ 0 0 a 22 k ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ a n n k ] . {\displaystyle {\begin{bmatrix}a_{11}&0&\cdots &0\\0&a_{22}&\cdots &0\\\vdots &\vdots &\ddots &\vdots \\0&0&\cdots &a_{nn}\end{bmatrix}}^{k}={\begin{bmatrix}a_{11}^{k}&0&\cdots &0\\0&a_{22}^{k}&\cdots &0\\\vdots &\vdots &\ddots &\vdots \\0&0&\cdots &a_{nn}^{k}\end{bmatrix}}.}
抽象代数 行列積の定義では、要素が半環に属していることが必要であり、半環の元の乗算が 可換で ある必要はない。多くのアプリケーションでは、行列の要素は体に属しますが、 熱帯半環もグラフ 最短経路 問題でよく選択されます 。 [15] 体上の行列の場合でも、積は一般に可換ではありませんが、 結合法則 があり、 行列の加算 に対して 分配法則 があります。 単位行列 ( 主対角線の外側の要素が 0 で主対角線の要素が 1 である正方行列)は、行列積の単位元です 。 したがって 、 環上の n × n 行列は 環を形成し、 n = 1 で基底環が可換である場合を除いて非可換です。
正方行列には 逆行列が 存在する場合があり、これを 逆行列 と呼びます。要素が 可換環 Rに属する一般的なケースでは、 行列の行列式が R に逆行列を持つ 場合のみ、行列は逆行列を持ちます 。正方行列の積の行列式は、因子の行列式の積です。 逆行列を持つ n × n 行列は行列乗法のもとで 群を 形成し、その 部分群は 行列群 と呼ばれます。多くの古典的な群 (すべての 有限群 を含む) は行列群と 同型です。これが 群表現 の理論の出発点です 。
行列は 、 行列 の圏である圏 の 射 である。対象は行列の大きさを測る 自然数 であり、射の合成は行列の乗算である。射のソースは対応する行列の列数であり、ターゲットは行数である。
計算の複雑さ 行列乗算の計算複雑性に対する指数 ω の推定値の経時的改善 O ( n ω ) {\displaystyle O(n^{\omega })} 定義から得られる 行列乗算 アルゴリズムは、 最悪の場合 、 2つの正方 n n 3 {\displaystyle n^{3}} × n 行列の積を計算するために、スカラー値の乗算と加算を 必要 と し ます。したがって、 ( n − 1 ) n 2 {\displaystyle (n-1)n^{2}} スカラー 演算が定数時間かかる計算モデル では、 その 計算複雑度は O ( n 3 ) {\displaystyle O(n^{3})} です 。
驚くべきことに、この計算量は最適ではない。1969 年に Volker Strassen が、現在 Strassen のアルゴリズムと呼ばれる計算量が [16] のアルゴリズムを提案した 。 Strassen のアルゴリズムは並列化することでさらに性能を向上させることができる。 [17]
2024 年 1 月現在 、最も優れた査読済みの行列乗算アルゴリズムは Virginia Vassilevska Williams 、 Yinzhan Xu、 Zixuan Xu、および Renfei Zhou によるもので、計算量 O ( n 2.371552 ) である。 [18] [19]行列乗算が n 2 + o(1) 時間
で実行できるかどうかは不明である 。 [20] これは、行列を別の行列と乗算するためには行列の要素を 読み取る 必要 があるため、最適であると考えられる。 O ( n log 2 7 ) ≈ O ( n 2.8074 ) . {\displaystyle O(n^{\log _{2}7})\approx O(n^{2.8074}).} [update] n 2 {\displaystyle n^{2}}
行列の乗算は多くのアルゴリズムの基礎を形成し、行列に対する多くの演算は行列の乗算と同じ複雑さ(乗法定数まで)を持つため、行列の乗算の計算複雑さは 数値線形代数 と 理論計算機科学の 全体に現れます。
一般化 その他の種類の行列積には次のものがあります。
参照
注記 ^ ab Nykamp, Duane. 「行列とベクトルの乗算」. Math Insight . 2020年 9月6日 閲覧 。 ^ オコナー、ジョン・J.; ロバートソン、エドマンド・F. 、「ジャック・フィリップ・マリー・ビネ」、 マクチューター数学史アーカイブ 、 セントアンドリュース大学 ^ Lerner, RG ; Trigg, GL (1991). 物理学百科事典 (第2版). VHC出版社. ISBN 978-3-527-26954-9 。 ^ パーカー, CB (1994). マグロウヒル物理学百科事典 (第2版). マグロウヒル. ISBN 978-0-07-051400-3 。 ^ リプシュッツ、S.;リプソン、M. (2009)。 線形代数 。シャウムの概要 (第 4 版)。マグロウヒル(アメリカ)。ページ 30–31。ISBN 978-0-07-154352-1 。 ^ ライリー, KF; ホブソン, MP; ベンス, SJ (2010). 物理学と工学のための数学的手法 . ケンブリッジ大学出版局. ISBN 978-0-521-86153-3 。 ^ Adams, RA (1995). 微積分学完全講座 (第3版). Addison Wesley. p. 627. ISBN 0-201-82823-5 。 ^ ホーン、ジョンソン (2013). マトリックス分析 (第2版). ケンブリッジ大学出版局. p. 6. ISBN 978-0-521-54823-6 。 ^ ピーター・スティングル (1996)。 Mathematik für Fachhochschulen – Technik und Informatik (ドイツ語) (第 5 版)。 ミュンヘン : カール・ハンザー・フェルラーク 。 ISBN 3-446-18668-9 。 ここでは、Exm.5.4.10、p.205-206を参照してください。 ^ abc Weisstein, Eric W. 「行列乗算」. mathworld.wolfram.com . 2020年9月6日 閲覧 。 ^ Lipcshutz, S.; Lipson, M. (2009). "2". 線形代数 . Schaum's Outlines (第4版). McGraw Hill (USA). ISBN 978-0-07-154352-1 。 ^ ホーン、ジョンソン (2013). 「第0章」. 行列分析 (第2版). ケンブリッジ大学出版局. ISBN 978-0-521-54823-6 。 ^ Hu, TC ; Shing, M.-T. (1982). 「行列連鎖積の計算、パートI」 (PDF) . SIAM Journal on Computing . 11 (2): 362– 373. CiteSeerX 10.1.1.695.2923 . doi :10.1137/0211028. ISSN 0097-5397. ^ Hu, TC ; Shing, M.-T. (1984). 「行列連鎖積の計算、パートII」 (PDF) . SIAM Journal on Computing . 13 (2): 228– 251. CiteSeerX 10.1.1.695.4875 . doi :10.1137/0213017. ISSN 0097-5397. ^ モトワニ、ラジーブ 、 ラガヴァン、プラバカール (1995). ランダム化アルゴリズム. ケンブリッジ大学出版局. p. 280. ISBN 9780521474658 。 ^ フォルカー・ストラッセン (1969 年 8 月)。 「ガウス消去法は最適ではありません。」 数学 。 13 (4): 354–356 。 土井 :10.1007/BF02165411。 S2CID 121656251。 ^ C.-C. Chou、Y.-F. Deng、G. Li、Y. Wang (1995). 「分散メモリMIMDアーキテクチャにおける行列乗算のためのStrassen法の並列化」 (PDF) . Computers Math. Applic . 30 (2): 49– 69. doi :10.1016/0898-1221(95)00077-C. ^ Vassilevska Williams, Virginia; Xu, Yinzhan; Xu, Zixuan; Zhou, Renfei. 行列乗算の新しい境界:アルファからオメガへ . 2024 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA) Proceedings of the 2024 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA). pp. 3792– 3835. arXiv : 2307.07970 . doi :10.1137/1.9781611977912.134. ^ Nadis, Steve (2024年3月7日). 「新たなブレークスルーにより行列乗算が理想に近づく」 . 2024年3月9日 閲覧。 ^ つまり、時間 n 2+f(n) において、ある関数 f に対して 、 n →∞ の とき f ( n ) → 0 となる
参考文献 ウィキメディア コモンズには、行列の乗算 に関連するメディアがあります 。
ウィキブック 線形代数には、 行列乗算 に関するページがあります。
Wikibook Applicable Mathematicsには、 行列の乗算 に関するページがあります。
Henry Cohn、 Robert Kleinberg 、 Balázs Szegedy 、Chris Umans. 行列乗算のための群論的アルゴリズム. arXiv : math.GR/0511460 . Proceedings of the 46th Annual Symposium on Foundations of Computer Science , 2005年10月23~25日, Pittsburgh, PA, IEEE Computer Society, pp. 379–388. Henry Cohn, Chris Umans. 高速行列乗算への群論的アプローチ. arXiv : math.GR/0307321 . 第44回IEEEコンピュータサイエンス基礎シンポジウム議事録 , 2003年10月11~14日, マサチューセッツ州ケンブリッジ, IEEEコンピュータソサエティ, pp. 438~449. Coppersmith, D.; Winograd, S. (1990). 「算術級数による行列乗算」. J. Symbolic Comput . 9 (3): 251– 280. doi : 10.1016/s0747-7171(08)80013-2 . ホーン、ロジャー A.; ジョンソン、チャールズ R. (1991)、 『行列分析のトピックス』 、 ケンブリッジ大学出版局 、 ISBN 978-0-521-46713-1 Knuth, DE , 『コンピュータプログラミングの技法 第2巻:半数値アルゴリズム 』Addison-Wesley Professional; 第3版(1997年11月14日) 。ISBN 978-0-201-89684-8 501ページ。 Press, William H.; Flannery, Brian P.; Teukolsky, Saul A .; Vetterling, William T. (2007)、『 Numerical Recipes: The Art of Scientific Computing』 (第3版)、 ケンブリッジ大学出版局 、 ISBN 978-0-521-88068-8 。 ラン・ラズ . 行列積の計算量について. 第34回ACMコンピューティング理論シンポジウム議事録. ACM Press, 2002. doi :10.1145/509907.509932. ロビンソン、サラ、 「行列乗算の最適アルゴリズムに向けて」、 SIAM News 38(9)、2005年11月。PDF Strassen, Volker、 「ガウス消去法は最適ではない」 、Numer. Math. 13、p. 354–356、1969年。 Styan, George PH (1973)、「アダマール積と多変量統計解析」 (PDF) 、 線形代数とその応用 、 6 : 217– 240、 doi : 10.1016/0024-3795(73)90023-2 ウィリアムズ、バージニア・ヴァシレフスカ (2012-05-19). 「Coppersmith-Winograd法よりも高速な行列乗算」. 第44回計算理論シンポジウム - STOC '12 議事録 . ACM. pp. 887– 898. CiteSeerX 10.1.1.297.2680 . doi :10.1145/2213977.2214056. ISBN 9781450312455 . S2CID 14350287。