行列の転置と対称行列|行と列を入れ替えるだけの操作が、積の順序をひっくり返す
行列の行と列を入れ替える操作が転置です。 行列 から作った行列を転置行列といい、 と書きます。
やっていることは主対角線での折り返しにすぎません。それでも、内積の相手を移す、積の順序をひっくり返す、対称行列を生み出すといった働きで、線形代数のあちこちに顔を出します。
折り返しても動かない行列、つまり を満たす行列が対称行列です。
<svg viewBox="0 0 460 210" width="100%" style="max-width:460px;display:block;margin:0 auto">
<text x="230" y="20" font-size="11" fill="#9a9a9a" text-anchor="middle">第 1 行がそのまま第 1 列へ移ります</text>
<text x="105" y="52" font-size="12" fill="#1f1f1f" text-anchor="middle">A</text>
<rect x="45" y="60" width="120" height="40" fill="#1b81e0" fill-opacity="0.12"></rect>
<rect x="45" y="60" width="120" height="80" fill="none" stroke="#c8c8c8" stroke-width="1"></rect>
<line x1="85" y1="60" x2="85" y2="140" stroke="#c8c8c8" stroke-width="1"></line>
<line x1="125" y1="60" x2="125" y2="140" stroke="#c8c8c8" stroke-width="1"></line>
<line x1="45" y1="100" x2="165" y2="100" stroke="#c8c8c8" stroke-width="1"></line>
<text x="65" y="85" font-size="12" fill="#1b81e0" text-anchor="middle">1</text>
<text x="105" y="85" font-size="12" fill="#1b81e0" text-anchor="middle">2</text>
<text x="145" y="85" font-size="12" fill="#1b81e0" text-anchor="middle">3</text>
<text x="65" y="125" font-size="12" fill="#1f1f1f" text-anchor="middle">4</text>
<text x="105" y="125" font-size="12" fill="#1f1f1f" text-anchor="middle">5</text>
<text x="145" y="125" font-size="12" fill="#1f1f1f" text-anchor="middle">6</text>
<line x1="190" y1="100" x2="265" y2="100" stroke="#1b81e0" stroke-width="1"></line>
<polygon points="265,95 275,100 265,105" fill="#1b81e0"></polygon>
<text x="227" y="90" font-size="11" fill="#1b81e0" text-anchor="middle">転置</text>
<text x="340" y="32" font-size="12" fill="#1f1f1f" text-anchor="middle">転置行列</text>
<rect x="300" y="40" width="40" height="120" fill="#1b81e0" fill-opacity="0.12"></rect>
<rect x="300" y="40" width="80" height="120" fill="none" stroke="#c8c8c8" stroke-width="1"></rect>
<line x1="340" y1="40" x2="340" y2="160" stroke="#c8c8c8" stroke-width="1"></line>
<line x1="300" y1="80" x2="380" y2="80" stroke="#c8c8c8" stroke-width="1"></line>
<line x1="300" y1="120" x2="380" y2="120" stroke="#c8c8c8" stroke-width="1"></line>
<text x="320" y="65" font-size="12" fill="#1b81e0" text-anchor="middle">1</text>
<text x="360" y="65" font-size="12" fill="#1f1f1f" text-anchor="middle">4</text>
<text x="320" y="105" font-size="12" fill="#1b81e0" text-anchor="middle">2</text>
<text x="360" y="105" font-size="12" fill="#1f1f1f" text-anchor="middle">5</text>
<text x="320" y="145" font-size="12" fill="#1b81e0" text-anchor="middle">3</text>
<text x="360" y="145" font-size="12" fill="#1f1f1f" text-anchor="middle">6</text>
<text x="230" y="192" font-size="11" fill="#9a9a9a" text-anchor="middle">2 行 3 列の行列は、転置すると 3 行 2 列になります</text>
</svg>転置行列の定義
の 成分を とします。転置行列 の 成分は、添字を入れ替えた です。
の第 行が の第 列になる、と読み替えても同じことをいっています。
型も入れ替わります。 行列の転置は 行列なので、正方行列でなくても転置は取れます。
記法は本によってまちまちで、 のほかに 、、、 が使われます。指しているものはどれも同じです。
転置の基本性質
計算規則は 4 つあれば足ります。
はじめの 3 つは添字を追えばすぐに出ます。2 回転置すれば と戻りますし、和とスカラー倍は成分ごとの計算なので、位置を動かす順番は結果に響きません。
引っかかるのは 4 つ目だけです。積を転置すると、掛ける順序がひっくり返ります。
積の転置で順序が入れ替わる理由
まず型を見ます。 を 、 を とすると は なので、 は です。
いっぽう は 、 は です。この順では掛け算が成立せず、 の順にして初めて が出てきます。
型を合わせるだけで順序が決まってしまうわけです。中身も確かめておきます。
の 成分は、定義より の 成分です。
こんどは の 成分を、 の第 行と の第 列から計算します。
2 つの和は、各項が同じ数の積で並び方が違うだけです。したがって が成り立ちます。
理由をひとことでいえば、行列の積では左の行と右の列が向き合うからです。転置で行と列が入れ替わったあとも向き合う相手を保とうとすれば、左右も入れ替えるしかありません。
例:積の転置を数値で確かめる
2 次の行列で試します。
先に積を計算し、それから転置します。
つぎに、それぞれを転置してから逆の順序で掛けます。
ぴたりと一致しました。順序をそのままにした だと、まるで違う行列が出てきます。
3 つ以上の積とべき乗
積の規則は繰り返し使えます。 なら をひとかたまりと見て、2 回続けて適用します。
因子が何個並んでいても、全体をそっくり逆順に書き直すだけです。
同じ行列を掛け合わせるべき乗では、逆順にしても並びが変わりません。
転置と逆行列
に逆行列があるなら、 にも逆行列があります。しかも転置と逆行列は、施す順番を入れ替えられます。
証明は積の規則から 1 行です。 の両辺を転置します。
単位行列は転置しても のままです。この式は が の逆行列であることをそのまま述べています。
どちらを先にしても行き先が同じなので、この行列を と略記することもあります。
転置と行列式
正方行列では、転置しても行列式の値が変わりません。
2 次なら目で追えます。 のうち入れ替わるのは と だけで、積 は同じ値だからです。
一般の次数でも同じ等式が成り立ちます。証明には行列式の定義そのものが要るので、行列式の記事に譲ります。
この事実には地味な使い道があります。行について証明した性質が、そっくりそのまま列についても言えてしまうのです。行列式の議論が半分の手間で済むのは、この等式のおかげです。
三角行列と対角行列の転置
折り返しの操作だと思えば、特別な形の行列がどこへ行くかは見当がつきます。
| もとの行列 | 転置した行列 |
|---|---|
| 対角行列 | 同じ対角行列 |
| 上三角行列 | 下三角行列 |
| 下三角行列 | 上三角行列 |
| 対称行列 | 同じ行列 |
対角行列は非対角成分がすべて なので、折り返しても何ひとつ動きません。単位行列もその仲間で、 が成り立ちます。逆行列の証明で使ったのは、まさにこの事実でした。
上三角行列は主対角線より下がすべて の行列です。折り返せば の領域が下側から上側へ移るので、行き先は下三角行列になります。
列ベクトルと行ベクトル
ベクトルを の列ベクトルと見なすと、転置は行ベクトルを作る操作になります。
こうしておくと、内積が行列の積として書けます。 は と の積なので 行列、つまり数です。
順序を逆にすると、出てくるものが一変します。
と の積で、結果は数 1 つ。 が成り立ちます
と の積で、結果は 次の正方行列。 成分は になります
同じ 2 本のベクトルから、数と行列という似ても似つかないものが作られます。転置をどちらに付けるかだけの違いです。
例:内積と行列を並べて計算する
、 で確かめます。内積は数になります。
順序を入れ替えた は、3 次の正方行列です。
各行が の定数倍、各列が の定数倍になっています。 個の成分が並んでいても、元をたどれば 2 本のベクトルから組み上がったものです。
転置は内積を移す
転置の本当の役どころは、内積の相手を移し替えることです。 を実の 行列、 を 次元、 を 次元とします。
証明には積の規則しか使いません。内積を の形に書き直して変形します。
左のベクトルに掛かっていた が、 に姿を変えて右のベクトルへ渡りました。
この等式は を言い当ててもいます。すべての と で が成り立つとすれば、 は 以外にありません。
確かめるには基本ベクトルを入れます。、 とすると左辺は 、右辺は になり、すべての組で が要求されるからです。
添字を入れ替えるという素朴な定義と、内積を移すという働きが、同じ一つの操作を指しています。
対称行列の定義
正方行列 が転置しても変わらないとき、 を対称行列といいます。
成分で書けば です。主対角線を折り目にすると、上半分と下半分がぴったり重なります。
対角成分は折り目の上に乗っているので、どんな値を置いてもかまいません。自由に決められるのは主対角線とその上側だけで、下側は写して埋まります。
長方形の行列が対称になることはありません。 と を比べる以上、行数と列数が等しくなければ条件そのものが書けないからです。
例:対称行列かどうかを見分ける
3 つの行列を見比べます。
は 成分と 成分がそろって なので対称です。 のような対角行列も、非対角成分がすべて である以上かならず対称になります。
だけは符号が食い違うので対称ではありません。転置すると になるこの型は交代行列と呼ばれ、交代行列の記事で扱います。
対称行列の作り方
どんな行列からでも対称行列を作れます。手口は 3 通りあります。
正方行列 と、その転置を足したものは対称です。転置を取っても和の順序が入れ替わるだけなので、元の式に戻ってきます。
残る 2 つは長方形の行列にも使えます。 行列 に対して、 と はどちらも対称になります。
積の規則で順序が逆転し、二重転置が元に戻るので、出発点と同じ式へ着きます。 でも筋書きは変わりません。
<svg viewBox="0 0 460 250" width="100%" style="max-width:460px;display:block;margin:0 auto">
<text x="230" y="22" font-size="11" fill="#9a9a9a" text-anchor="middle">同じ A から、大きさの違う 2 つの対称行列ができます</text>
<rect x="80" y="59" width="78" height="52" fill="#1b81e0" fill-opacity="0.12" stroke="#1b81e0" stroke-width="1"></rect>
<text x="119" y="89" font-size="12" fill="#1b81e0" text-anchor="middle">A<tspan font-size="9" dy="-4">T</tspan></text>
<rect x="168" y="46" width="52" height="78" fill="#1b81e0" fill-opacity="0.12" stroke="#1b81e0" stroke-width="1"></rect>
<text x="194" y="89" font-size="12" fill="#1b81e0" text-anchor="middle">A</text>
<text x="240" y="89" font-size="13" fill="#9a9a9a" text-anchor="middle">=</text>
<rect x="262" y="59" width="52" height="52" fill="#f5f5f5" stroke="#c8c8c8" stroke-width="1"></rect>
<text x="288" y="89" font-size="12" fill="#1f1f1f" text-anchor="middle">n 次</text>
<text x="392" y="86" font-size="11" fill="#9a9a9a" text-anchor="middle">大きさは</text>
<text x="392" y="102" font-size="11" fill="#9a9a9a" text-anchor="middle">A の列の個数</text>
<rect x="80" y="146" width="52" height="78" fill="#1b81e0" fill-opacity="0.12" stroke="#1b81e0" stroke-width="1"></rect>
<text x="106" y="189" font-size="12" fill="#1b81e0" text-anchor="middle">A</text>
<rect x="142" y="159" width="78" height="52" fill="#1b81e0" fill-opacity="0.12" stroke="#1b81e0" stroke-width="1"></rect>
<text x="181" y="189" font-size="12" fill="#1b81e0" text-anchor="middle">A<tspan font-size="9" dy="-4">T</tspan></text>
<text x="240" y="189" font-size="13" fill="#9a9a9a" text-anchor="middle">=</text>
<rect x="262" y="146" width="78" height="78" fill="#f5f5f5" stroke="#c8c8c8" stroke-width="1"></rect>
<text x="301" y="189" font-size="12" fill="#1f1f1f" text-anchor="middle">m 次</text>
<text x="392" y="186" font-size="11" fill="#9a9a9a" text-anchor="middle">大きさは</text>
<text x="392" y="202" font-size="11" fill="#9a9a9a" text-anchor="middle">A の行の個数</text>
<text x="230" y="243" font-size="11" fill="#9a9a9a" text-anchor="middle">A が m 行 n 列のときの図です</text>
</svg>は 次、 は 次なので、そもそも大きさが違います。 が正方行列でないかぎり、この 2 つを比べることすらできません。
例:A から 2 つの対称行列を作る
行列で両方を作ります。
は 2 次です。 成分は の第 行と第 行の内積になります。
のほうは 3 次で、 成分は第 列と第 列の内積です。
どちらも主対角線について対称になりました。対角成分をよく見ると、 の は第 1 行 の長さの平方、 は第 2 行 の長さの平方です。
でも同じことが起きています。対角に並ぶ 、、 は、 の 3 本の列それぞれの長さの平方にほかなりません。
対角成分が長さの平方である以上、実行列であるかぎり負の数がそこに現れることはありません。
対称行列の和と積
対称行列どうしの和もスカラー倍も対称です。転置が線形な操作なので、そのまま素通りします。
つまり 次の対称行列全体は、正方行列全体の部分空間をなします。次元は自由に選べる成分の個数、すなわち です。
ところが積になると話が崩れます。 と が対称でも、 が対称になるとはかぎりません。
右端に が残ってしまいました。 が対称であることと が成り立つことは、まったく同じ主張です。
行列の積は順序を入れ替えられないのが普通ですから、対称性は積で壊れるほうが既定だと思っておくと安全です。
例:積が対称にならない組
対称な 2 つを掛けてみます。
積を計算すると、対角線をはさんだ 2 か所が食い違います。
成分が 、 成分が なので対称ではありません。順序を変えると別の行列が出ます。
は を転置したものになっています。 という先ほどの式が、そのまま数字の上に現れました。
対称行列のべき乗と逆行列
同じ行列どうしは順序を気にしなくてよいので、べき乗は対称性を保ちます。 なら です。
逆行列も保たれます。 が逆行列を持つ対称行列なら となり、 もまた対称です。
対称性を保つ操作は、ほかにもあります。どんな行列 ではさんでも、 は対称のままです。
この形の変換を合同変換といい、二次形式を扱うときに主役を務めます。
理解の確認
と がどちらも対称行列のとき、積 について正しいのはどれでしょうか。
- いつでも対称になる。対称行列どうしの積は対称性を保つ
- が成り立つときにかぎり対称になる
- けっして対称にならない。積では対称性がかならず壊れる
対称行列が現れる場面
対称行列は、2 つのものの関係を書き並べた表として自然に出てきます。関係に向きがなければ、表は勝手に対称になります。
ベクトル を列に並べた から作る です。 成分は内積 で、内積が順序によらないので対称になります。
グラフの点と点がつながっていれば 、つながっていなければ を置いた行列です。辺に向きがない無向グラフでは対称になります。
成分に地点 と地点 の距離を置いた行列です。距離が向きによらないので対称で、対角成分はすべて です。
多変数関数の 2 階偏微分を並べた行列です。偏微分の順序を交換してよい条件のもとで対称になります。
確率変数の組について、 成分に と の共分散を置いた行列です。共分散が順序によらないので対称です。
どれも「 と の関係」を成分にしています。その関係が と を入れ替えても変わらないことが、そのまま行列の対称性として現れているわけです。
裏を返せば、向きのある関係を並べたときは対称になりません。一方通行を含む道路網の所要時間や、有向グラフの隣接行列がその例です。
他の話題とのつながり
成分が複素数になると、転置だけでは内積とかみ合わなくなります。転置してから各成分の複素共役を取る共役転置が代役を務め、これは次の記事の主題です。
転置すると符号が変わる の行列が交代行列です。どんな正方行列も対称な部分と交代な部分に分かれるという話は、交代行列の記事にあります。
を満たす行列は直交行列と呼ばれます。転置がそのまま逆行列になる行列で、長さと角度を保つ変換、つまり回転や鏡映がその正体です。
対称行列 から作る という式を二次形式といいます。実対称行列がかならず対角化できるという定理がこの分野の要になりますが、道具立てがそろうのは固有値の話が済んでからです。













(AB)⊤=B⊤A⊤=BA となるので、AB が対称であることと AB=BA は同じ主張です。単位行列を掛けた場合や、同じ行列どうしを掛けた場合のように、可換な組では対称になります。一般には対称にならないのは、行列の積が順序に左右されるためです。