線形代数って？
三谷純

2024.4.20

1 はじめにこの解説は、大学初年次に線形代数を学び始めて「これは何なんだ？いったい何を言いたいの？」と、とまどってしまった（おもに工学系の）学生の方々を対象としています。「線形代数とは何か」という高度に抽象的な質問の回答を求めることはあきらめて、何に使うのか、という視点から理解を進めていきましょう*1 。線
形代数の応用範囲は限りなく広いので*2 、「連立 1 次方程式を解くため」と「ある形を別の形に変換するため」という 2 点から説明していきます。

2 連立 1 次方程式を解く道具
中学校で学んだ連立 1 次方程式*3 は次のような形をしていました。

{2x + 3y = 54x − y = 1x と y という 2 つの未知数に対して 2 つの式があればそれぞれの値を求めることができます。これを行列を使って表すと次のようになります。

[24][ ] [ ]3x5=−1 y1

左辺の 2 × 2 の行列を A、2 変数を並べた縦ベクトルを x、右辺のベクトルを b とすると、よく見かける次のような式で表されます*4 （A のことを係数行列と呼ぶことがあります）。

Ax = b
今は 2 × 2 というちっちゃい行列の例を見ていますが、これが工学の分野では 10, 000 × 10, 000 といった規模の大きな行列を扱うことになります。工学の分野では、未知数がたくさんある連立方程式を解く機会がたくさんあるのです*5 。
*1 ドライバーって何？と聞かれたときに「プラスまたはマイナスの形をした金属製の先端と主にプラスチック製の柄がついているもの」と答えるよりも「ネジを締めるのに使う道具」と言ったほうがわかりやすいでしょう。
*2 だから大学初年次にみんな学ぶ必要があるのです。残念ながら、学ばなくていいや、ではすみません。
*3 x2 とか xy などは含まれない方程式です*4 この x は、先ほどの連立方程式に登場した x と表記が同じですが違うものです。
*5 むしろ、積極的に問題を連立 1 次方程式に落とし込むことを試みます。そうすると、線形代数の問題として様々な解析をしたり、既知の方法で解を求めたりできるからです。

1さて、このようにして連立方程式を行列の式に書き換えられることがわかりました。これだけでは意味が無くて、当然この連立方程式を解く必要があります。これをどうやって解くのか。そこで登場するのが逆行列です。
行列 A に対して、ある行列 B をかけると、次の式のようにちょうどそれが単位行列になることがありま
す*6 。

AB = BA = I
このとき、B を A の逆行列といい、B = A−1 と書きます。つまり、AA−1 ＝ A−1 A = I です。
この逆行列を使って、先ほどの Ax = b の両辺に左から A−1 をかけると、A−1 Ax = A−1 bx = A−1 bとなって、未知数の集まりであった x を行列とベクトルの積を計算するだけで求められるのです。すばら
しい！
だけど、一つ大事なことを言い忘れていました。A に対して、掛けるとちょうど I となるような行列、つまり逆行列が常に存在するとは限らないのです。逆行列が存在しない場合には方程式が一意の解を持つとは限らず、解が存在しないか、無限に多くの解が存在する可能性があります*7 。このような行列を特異行列といいます。
解があるかどうかの判定は、連立方程式を解く際に極めて重要な情報になります。そこで、まずは特異行列であるかどうかを行列式 (determinant) を見ることで調べられます。行列式の値がゼロであるとき、この行列は逆行列をもたず、特異行列であると言えます。
そのようなわけで、線形代数の授業では行列式の計算、逆行列の求め方、この 2 点を重点的に学習するのです。
それ以外にも、線形代数の授業で学ぶ、さまざまな行列に対する操作（対角化、上三角形化やジョルダン標準形を求めること）は連立方程式を効率的に解くこと、または（ランクを求める操作とかは）連立方程式の性質を知ることを目的としています。
つまり、線形代数の授業では、たくさんの変数を持つ連立 1 次方程式を解くための仕組みを学ぶ、と言うことができます。もちろんこれは、一面的な見方であることに注意が必要です。次の節では、異なる見方をしてみます。

3 ある形を別の形に変換する
前節で見た式を、もう一度見てみましょう。

Ax = bx が未知数のとき、これを連立方程式だとみなすことができました。今回はこの x が既知だとしましょう。そうすると、『この式は「x に A を作用させた結果が b になる」ということを言っている』とみなすことができます。
*6 A が正方行列のときには、AB = I であれば BA = I が成り立ちます。
*7 例えば次のような場合には、x + y = 1 を満たすような x と y の組すべてが解になります。

[1111][ ] [ ]x1=y12例えば、ある点 p の座標を x が表している場合、点 p は行列 A によって b の位置に写されることになります。ある図形に含まれる点すべてに対して同じような操作を行うと、図形は異なる形に写されます*8 。このように「図形の形を変える」という目的に行列を用いることができます。
次のような行列 S があるとき*9 、[sS= x00sy]

Sx = b で示される b は、x を横方向に sx 倍、縦方向に sy 倍に拡大した位置を示すことになります。
次のような行列 R があるとき*10 、[cos θ
R=sin θ− sin θcos θ]

Rx = b で示される b は、x を原点を中心として反時計回りに角度 θ だけ回転させた位置を示すことになります（このような行列 R を回転行列と呼びます）。ある図形に含まれる点すべてを写せば、行列 S では横方向にsx 、縦方向に sy だけ引き延ばされた形になり、行列 R では角度 θ だけ反時計回りに回転させた形になります。
点の位置と座標系（原点と座標軸の向き）の関係は相対的なものです。つまり、「点の位置が変わった」と言うのと、「座標系が変わった」と言うことの間に本質的な違いはありません。図形が変形したのではなくて、座標系が変わったとみなすと、先ほどの行列は「座標系を変える行列」だとみなすこともできます。このことを「ベクトル空間の基底変換」という表現で説明することがあります。
なお、要素がすべてゼロのベクトル（ゼロベクトル）に対しては、どのような行列を掛けても結果はゼロベクトルのままです。そのため、このような行列を掛けることによる変換によって、原点は必ず原点に写されます（そのため、図形の平行移動を表すことはできないことに注意しましょう）。このような変換を線形変換と呼びます*11 。線形変換によって、直線は直線に写されるという特徴があります。
さて、行列による形の変換を行った後に、また元の形に戻すにはどうすればよいでしょうか。そこで登場するのが、やはり逆行列です。逆行列によって形を変換することで、元に戻すことができます。先ほどの行列 Sと R の逆行列は次のようになります。

S−1[1/sx=0]0,1/syR−1[cos(−θ)=sin(−θ)− sin(−θ)
cos(−θ)]横方向に sx 倍、縦方向に sy 倍に拡大する行列 S の逆行列 S −1 は、横方向を 1/sx 倍、縦方向に 1/sy 倍にします。角度 θ の回転を表す行列 R の逆行列 R−1 は、角度 −θ の回転を表す行列です（それぞれ、掛け合わせると単位行列になることを確認してみましょう）。
ところで前節では、連立方程式が一意の解をもつかどうかの判定に行列式の値を使えました。本節の「形を変換する」という文脈では、行列式の値は変換による図形の面積の拡大率を表します。回転行列では形の面積は変化しないので、行列式は 1 です（確認してみましょう）。一方で、行列式の値がゼロのときには変換後の図形の面積がゼロになってしまいます。つまり、ぺったんこな図形になってしまうわけです。こうなってしま*8 「写される」ではなくて「移される」という表現を使ってもよいのですが、数学では写された先のことを写像と言うため、ここでは「写される」としています*9 行列を表す記号は何でもよいのですが、スケール (Scale) 変換する行列であることを示すためにアルファベットの S を使用しました*10 回転 (Rotate) を行う行列を示すためにアルファベットの R を使用しました*11

2D グラフィックスを扱うプログラミングでは、2 次元図形の平行移動を表すために、次元を 1 つあげた同次座標というものを使用して 3 × 3 の行列の演算を行うことがあります。

3

うと、もうどのような操作をしても元の形に戻せません（元に戻すための情報が足りないからです）。つまり連立方程式の話の時と同様に、行列式の値がゼロの時には逆行列が存在しない、ということを直感的に理解できます。
また、授業の中では行列の性質を表すものとして固有ベクトルと固有値というものを学びます*12 。固有ベ
クトルは変形の際の拡大縮小の方向を表し*13 、固有値は変換による固有ベクトル方向の拡大率を表します*14 。
このように、固有値と固有ベクトルは図形がどのように変形されるかを知るための大きな手掛かりになります。
さて、これまでに説明したように、「ある図形を他の図形に写す」という目的に行列を使うことができました。ここでは 2 × 2 の行列で 2 次元の図形を扱う例を取り上げましたが、もっと次元の高い形（データセット）に対して座標系を変えることでその特徴を捉えやすくするとか、たくさんの変数で表されるデータ（高次元空間に存在する点の集まり）を、もっと少ない変数で表されるデータ（低次元空間に存在する点の集まり）に写すといった操作を実現するためにも使用されます。こういった操作は、データサイエンスの分野で必須になりますので、そのために必要な内容を学習しているのだと言うこともできるでしょう。

*12 固有ベクトルは複数あり、それぞれの固有ベクトルに対応する固有値があります*13 固有ベクトルそのものは、変換の前後で向きが変わらないという性質があります*14 一つでも固有値がゼロである場合、図形の面積はゼロになってしまうので、やはり逆行列は存在しません

4