読者です 読者をやめる 読者になる 読者になる

倭算数理研究所

科学・数学・学習関連の記事を、「倭マン日記」とは別に書いていくのだ!

高校数学で線型代数入門 (1) ~行列の定義~

前回、軌跡を使ってグラフを回転する方法を見ましたが、ここまできたら行列を使わないのは逆に不自然な気もするので、簡単に行列(線型代数)に入門してみましょう。 数学的にあんまり(というかまったく)厳密ではないので、詳しくは専門書を参照のこと。

シリーズ目次

  1. 行列の定義
  2. 行列の演算
  3. 行列式はどこからきたのか(番外編)
  • (続く予定)

この記事の内容

参考

行列の導入

 { (x_1,\,x_2) } を原点の周りに反時計回りに  { \theta } だけ回転した点の座標を  { (x'_1,\,x'_2) } とすると(前回と添字の使い方を変えているので注意)

  { \displaystyle\begin{align*}
  \begin{cases}
    x'_1 = x_1\cos\theta - x_2\sin\theta \\
    x'_2 = x_1\sin\theta + x_2\cos\theta
  \end{cases}
\end{align*}}

という関係があるのでした。 これを踏まえて、2つの添字でラベル付けされる、以下のような4つの定数  { a_{ij}\,(i,\,j = 1,\,2) } で定められる変換を考えます:

  { \displaystyle\begin{align*}
  \begin{cases}
    x'_1 = a_{11} x_1 + a_{12} x_2 \\
    x'_2 = a_{21} x_1 + a_{22} x_2
  \end{cases}
\end{align*}}

もしくは、まとめて以下のようにも書けます:

  { \displaystyle\begin{align*}
  x'_i &= a_{i1}x_1 + a_{i2}x_2 \\
        &= \sum_{j=1}^2 a_{ij}x_j \qquad(i = 1,\,2)
\end{align*}}

さて、ここで原点が始点で点  { (x_1,\,x_2) } が終点のベクトルを縦ベクトル(列ベクトル)として

  { \displaystyle\begin{align*}
  \textbf{x} = \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
\end{align*}}

と書くことにし、上記の変換をこの縦ベクトルへの作用と見なしましょう。 そのために行列 (matrix)  { A }

  { \displaystyle\begin{align*}
  A = \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix}
\end{align*}}

で導入して、行列  { A } のベクトル  { \textbf{x} } への作用を

  { \displaystyle\begin{align*}
  A\textbf{x}
    &= \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix}
      \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} \\
    &= \begin{pmatrix} a_{11}x_1 + a_{12}x_2 \\ a_{21}x_1 + a_{22}x_2 \end{pmatrix}
\end{align*}}

と定めます。  { \textbf{x} } { A } を作用させた結果(像)、つまり  { A\textbf{x} } 自体はベクトルになります。

具体例
  { \displaystyle\begin{align*}
  A &= \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} &
  \textbf{x} &= \begin{pmatrix} 5 \\ 6 \end{pmatrix}
\end{align*}}

とすると

  { \displaystyle\begin{align*}
A\textbf{x}
    &= \begin{pmatrix} 1 & 2 \\\hline 3 & 4 \end{pmatrix}
      \begin{pmatrix} 5 \\ 6 \end{pmatrix} \\
    &= \begin{pmatrix} 1 \cdot 5 + 2 \cdot 6 \\ 3 \cdot 5 + 4 \cdot 6 \end{pmatrix} \\
    &= \begin{pmatrix} 17 \\ 39 \end{pmatrix}
\end{align*}}

となります(途中の横線は見易さのために入れてます)。

一般化
上記の定義を「2次元のベクトルとその変換」から「 { n } 次元のベクトルとその変換」へ一般化するのは簡単ですね。  { n } 次元ベクトル  { \textbf{x} } { n } 次の正方行列  { A }

  { \displaystyle\begin{align*}
  \textbf{x} &= \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{pmatrix} &
  A &= \begin{pmatrix}
    a_{11} & a_{12} & \cdots & a_{1n} \\
    a_{21} & a_{22} & \cdots & a_{2n} \\
    \vdots  &             & \ddots & \\
    a_{n1} & a_{n2} & \cdots & a_{nn}
  \end{pmatrix}
\end{align*}}

で定義し、 { A } { \textbf{x} } への作用を

  { \displaystyle\begin{align*}
  A\textbf{x}
    &= \begin{pmatrix}
      a_{11} & a_{12} & \cdots & a_{1n} \\\hline
      a_{21} & a_{22} & \cdots & a_{2n} \\\hline
      \vdots  &             & \ddots & \\\hline
      a_{n1} & a_{n2} & \cdots & a_{nn}
    \end{pmatrix}
    \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{pmatrix} \\
    &= \begin{pmatrix}
      a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n \\
      a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n \\
      \vdots \\
      a_{n1}x_1 + a_{n2}x_2 + \cdots + a_{nn}x_n
    \end{pmatrix}
\end{align*}}

全ての要素を書き出したり和と点々をたくさん書くのは面倒かつ読みづらいので、代表要素を取り出して書く方法も導入しておきましょう。 角括弧 [ ] に添字をつけて、囲まれたベクトルや行列の成分を取り出すことを表すことにします。 上記の  { \textbf{x},\,A } に対して

  { \displaystyle\begin{align*}
  [\textbf{x}]_i &= x_i  &
  [A]_{ij} &= a_{ij}
\end{align*}}

このとき、 { A\textbf{x} } { i } 成分 ( { i = 1,\,2,\,\cdots,n }) は以下のようになります:

  { \displaystyle\begin{align*}
  [A\textbf{x}]_i &= a_{i1}x_1 + a_{i2}x_2 + \cdots + a_{in}x_n \\
       &= \sum_{j=1}^n a_{ij}x_j
\end{align*}}

となります。

行列について

一応、行列についての用語を書いておきます。 基本的にはこの記事(シリーズ記事)内で使うためのものです。 後で色々追記するかもしれません。 一般に使われる正式な定義は専門書を参照のこと。

既に使っていますが、ベクトルや行列を構成している値を要素 (element) もしくは成分 (coefficient) と呼びます。 以下の行列  { A } に対して (1, 2) 成分は 2、(2, 1) 成分は3などとなります:

  { \displaystyle\begin{align*}
  A &= \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}
\end{align*}}

前節の成分を取り出す書き方をすれば、以下のようになります:

  { \displaystyle\begin{align*}
  [A]_{12} &= 2 &
  [A]_{21} &= 3
\end{align*}}

行列の2つの添字のうち1つ目で指定される横の連なりを (row)、2つ目の添字で指定される縦の連なりを (column) と呼びます:

  { \displaystyle\begin{align*}
  &\begin{pmatrix}
      \textrm{1} & \textrm{行} & \textrm{目} \\\hline
      \textrm{2} & \textrm{行} & \textrm{目} \\\hline
      \textrm{3} & \textrm{行} & \textrm{目} \\\hline
      & \vdots &
    \end{pmatrix} &
  &\left(\begin{array}{c|c|c} 1 & 2 & 3 & \\
      \textrm{列} & \textrm{列} &\textrm{列} & \cdots \\
      \textrm{目} & \textrm{目} &\textrm{目} &
    \end{array}\right) \\
\end{align*}}

正方行列で行番号と列番号が等しい要素( { a_{11},\,a_{22} } など)を対角要素(対角成分)と言います。 これは要素を並べて書く書き方で左上から右下にかけての対角線上に位置する要素になります(右上から左下にかけての対角線は考えません)。

  { \displaystyle\begin{align*}
  \begin{pmatrix}
      \textrm{対} &                    &            &                    & \\
                         & \textrm{角} &            &                    & \\
                         &                    & \ddots &                    & \\
                         &                    &            & \textrm{要} & \\
                         &                    &            &                    & \textrm{素} \\
    \end{pmatrix} 
\end{align*}}

対角要素以外の要素を非対角要素と言います。

線型変換について

少し行列が行う変換の性質について見ておきましょう。  { n } 次元への一般化は簡単なので、ここでは2次元で話を進めます。 行列は以下のような変換を規定するのでした:

  { \displaystyle\begin{align*}
  \begin{cases}
    x'_1 = a_{11} x_1 + a_{12} x_2 \\
    x'_2 = a_{21} x_1 + a_{22} x_2
  \end{cases}
\end{align*}}

この変換の行列を  { A } とします。

原点(零ベクトル)の変換
この変換の定義より、 { x_1 = x_2 = 0 } ならどんな行列に対しても  { x'_1 = x'_2 = 0 }、つまり原点は必ず原点に移されます。 特に点の平行移動は扱えません*1

ベクトルの和の変換
2つのベクトル  { \textbf{x},\,\textbf{y} } の和  { \textbf{x} + \textbf{y} } { A } によってどのように変換されるかを見てみましょう:

  { \displaystyle\begin{align*}
  [A(\textbf{x} + \textbf{y})] _i
    &= a_{i1}(x_1 + y_1) + a_{i2}(x_2 + y_2) \\
    &= (a_{i1}x_1 + a_{i2}x_2) + (a_{i1}y_1 + a_{i2}y_2) \\
    &= [A\textbf{x} + A\textbf{y}]_i
\end{align*}}

よって

  { \displaystyle\begin{align*}
  A(\textbf{x} + \textbf{y}) = A\textbf{x} + A\textbf{y}
\end{align*}}

つまり、ベクトルの和を変換した結果はそれぞれのベクトルを変換した結果の和に等しいことがわかります。

ベクトルの実数倍の変換
また、 { p } を実数として、ベクトル  { \textbf{x} } の実数倍  { p\textbf{x} } がどのように変換されるかも見てみましょう:

  { \displaystyle\begin{align*}
  [A(p\textbf{x})]_i
    &= a_{i1}(px_1) + a_{i2}(px_2) \\
    &= p(a_{i1}x_1 + a_{i2}x_2) \\
    &= [p(A\textbf{x})]_i
\end{align*}}

よって

  { \displaystyle\begin{align*}
  A(p\textbf{x}) = p(A\textbf{x})
\end{align*}}

となって、ベクトルの実数倍を変換した結果はベクトルを変換した結果の実数倍と等しいことが分かります。

ベクトルの線形結合の変換
ここで、2つのベクトル  { \textbf{x},\,\textbf{y} }線形結合 (linear combination) を  { p\textbf{x} + q\textbf{y} } { p,\,q } は実数)として定義すると、上記と同様にして

  { \displaystyle\begin{align*}
  A(p\textbf{x} + q\textbf{y}) = p(A\textbf{x}) + q(A\textbf{y})
\end{align*}}

が示せます。 つまり、2つのベクトルの線形結合を変換した結果は、それぞれのベクトルを変換した結果の(同じ)線形結合になります。 線形結合に対する変換が分かれば、上記のベクトルの和と実数倍に対する変換はどちらも示せたことになりますね(和は  { p = q = 1 } の場合、実数倍は  { q = 0 } の場合。 零ベクトルの場合も含まれてますが)。

上記のように線形結合を保つ変換を線形変換と言います。 すべての線型変換は行列と一対一対応があるそうです*2

さて、任意の2次元ベクトル  { \textbf{x} } は、次の2つのベクトル

  { \displaystyle\begin{align*}
  \textbf{e}_1 &= \begin{pmatrix} 1 \\ 0 \end{pmatrix} &
  \textbf{e}_2 &= \begin{pmatrix} 0 \\ 1 \end{pmatrix}
\end{align*}}

を使って

  { \displaystyle\begin{align*}
  \textbf{x}
    = \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} 
    = x_1 \textbf{e}_1 + x_2 \textbf{e}_2
\end{align*}}

のように線形結合で書けるので、結局行列  { A } がどのようにベクトルを変換するかは、上記の2つのベクトル  { \textbf{e}_1,\,\textbf{e}_2 } がどのように変換されるで決まることになります。 この流れでベクトル空間の基底次元の話に触れるといいかと思いますが、当面使わないので省略。

さて、以上のようにベクトル(座標)の変換から出発して行列を導入しました。 この記事で行列の積までやろうかと思ってたんですが、思ったより長くなったので続きは次回に。

*1:ただし同次座標というものを使えば行列で平行移動を扱えます。 こちらを参照。

*2:このような線型性は、高校数学でも微分積分や和の記号  { \sum } の説明のときに言及されているかもしれません。 また、ベクトルの線形結合は高校数学でのベクトルの問題でも暗に重要な概念です。 なぜか、高校数学では線形結合という言葉を出してはいけないようで、言葉がないために概念として認識できずに問題を解く(理解する)のを苦労している生徒をよく見ましたなぁ。 ちなみに同じような概念に「基底」というのもあります。 大学入試のベクトルの問題は基底を選んで線形結合を計算する、という手順で大抵解けるんですけどね。