行列とベクトルの積とは何か?わかりやすく解説

ベクトルと行列の積は、簡単に言うと「ベクトルを行列に入力して新たなベクトルを出力すること」です。これは、線形代数のさまざまな概念を理解する上で中核となるものです。

当ページでは、このベクトルと行列の積について以下の順番で解説していきます。

  1. ベクトルと行列の積とは一体何か
  2. ベクトルと行列の積の幾何学的な意味
  3. ベクトルと行列の積の計算方法

学習者にとって、きっと目から鱗の発見が満載だと思います。ぜひ楽しんでいただければと思います。

それでは始めましょう。

目次

1. 行列とベクトルの積とは

線形代数においてベクトルと行列の積は、「行列にベクトルを入力することで新しいベクトルを出力すること」を意味しています。

行列とは何かについて深く考える必要はありません。単純に行列を関数のようなものと捉えてください。関数とは \(y=f(x)\) で表される \(f()\) の部分のことです。これは、「何らかの値 \(x\) を入力したら、別の値 \(y\) を出力する」ということを表しています。たとえば、ある関数が \(y=x^2\) と定義されているとしたら、この関数は \(f(2)=4\)、\(f(3)=9\) というように入力に応じた値を出力します。

これと同じことを線形代数では \(\vec{y}=A\vec{x}\) と表します(\(A\) は行列です)。この式の中の行列 \(A\) が関数 \(f()\)、ベクトル \(\vec{x}\) が入力、ベクトル \(\vec{y}\) が出力です。

このように、ベクトルと行列の積は「関数である行列 \(A\) にベクトル \(\vec{x}\) を入力して、新しいベクトル \(\vec{y}\) を出力する」ということを表しているのです。

このことは以下のアニメーションを見るとハッキリと理解できますので、ぜひご覧ください。

このように行列を「入力したベクトルを新しいベクトルとして出力する関数である(「写像」ともいう)」と理解しておくと、線形代数のさまざまな概念がとても理解しやすくなります。次に、この点についてお伝えします。

ポイント
ベクトルと行列の積とは、行列 \(A\) にベクトル \(\vec{x}\) を入力して、新たなベクトル \(\vec{y}\) を出力することです。これを式で表したのが以下です。これは重要な式なので覚えておきましょう。

\[A\vec{x}=\vec{y}\]

2. 行列とベクトルの積の幾何学的な意味

さて、以上のように、行列とベクトルの積とは、行列という関数に対してベクトルを入力することで、その行列とベクトルの積を計算し、計算結果である新しいベクトルを出力するというものです。

なぜこのように理解しておくと良いのかというと、線形代数においては、行列とベクトルの積は「あるベクトルを、行列に入力することによって、それが出力ベクトルに変化する様・・・・・」を表しているからです。これについては言葉で解説するよりも、以下のアニメーションをご確認頂ければ一目瞭然に理解することができます。

このようにベクトルと行列の積は、単に新しいベクトルを計算するというだけではなく、幾何学的には、「行列に入力したベクトルが、新しく出力されるベクトルに変化する」ということなのです。

そして、ベクトルと行列の積をこのように幾何学的に理解しておくことで、「線形変換」という概念がとてもわかりやすくなります。そのため、ぜひこのことは覚えておいてください。

それでは以上のことを踏まえた上で、最後に計算方法を確認しましょう。

3. 行列とベクトルの積の計算方法

ベクトルと行列の積は、次のように計算します。

2次元ベクトルと2次行列の積

\[
\begin{eqnarray}
A\vec{v}
=
\left[ \begin{array}{cc} a_{11} & a_{12} \\a_{21}&a_{22} \end{array} \right]
\left[ \begin{array}{cc} v_1 \\ v_2 \end{array} \right]
=
\left[ \begin{array}{cc}
a_{11}v_1+a_{12}v_2 \\
a_{21}v_1+a_{22}v_2 \end{array} \right]
\end{eqnarray}
\]

3次元ベクトルと3次行列の積

\[
A\vec{v}= \left[ \begin{array}{cc}
a_{11} & a_{12} & a_{13} \\
a_{21}& a_{22} & a_{23}\\
a_{31}& a_{32} & a_{33}
\end{array} \right]
\left[ \begin{array}{cc} v_1 \\ v_2 \\ v_3 \end{array} \right]
=
\left[ \begin{array}{cc}
a_{11}v_1 +a_{12}v_2+ a_{13}v_3 \\
a_{21}v_1+ a_{22}v_2 + a_{23}v_3\\
a_{31}v_1+ a_{32}v_2 + a_{33}v_3
\end{array} \right]
\]

覚え方としては、「行列の一行ごとのそれぞれの要素と、ベクトルのそれぞれの要素を掛けて足し合わせる」ことを意識しましょう。以下のアニメーションを見ることで、はるかに覚えやすくなることでしょう。

なお、ご覧のように、ベクトルと行列の積を計算する際は、行列をベクトルの左側から・・・・掛けることが特徴です。これも数学やプログラミングにおける関数とまったく同じです。たとえば関数 \(f()\) があるなら、これにある値 \(x\) を入力するときは \(f(x)\) と表現します。そして、この出力値をさらに別の関数 \(g()\) に入力する際は、\(g(f(x))\) と表現します。

線形代数においては、行列は関数なので、ベクトルと行列の積を求めるときは、関数と同じように、ベクトルを行列に入力するという意味で \(A\vec{x}\) と計算します。そして、この出力値をさらに別の行列 \(B\) に入力する場合は、\(BA\vec{x}\) というように、新しい行列を左側に置いて計算していきます。

なぜこのようになっているのかは、後のページで解説する重要概念である線形変換を理解することで腑に落とすことができます。ここでは、ベクトルと行列の積では、行列を左側において計算するということをしっかりと覚えるようにしましょう。

4. ベクトルと行列の積の練習問題

最後にベクトルと行列の積の練習問題を用意しておきます。ぜひご自身で一度は解いてみてください。

【練習問題】2次元ベクトルと2次行列の積

問題:以下の2次元ベクトルと2次行列の積を求めよ。

\[
A= \left[ \begin{array}{cc} 2 & 0 \\ 1 & 2 \end{array} \right]
,\hspace{3mm}
\vec{v}= \left[ \begin{array}{cc} 2 \\ 1 \end{array} \right]
\]

解答

これらの積は次のように計算します。

\[
\begin{eqnarray}
A\vec{v}
=
\left[ \begin{array}{cc} 2 & 0 \\1&2 \end{array} \right]
\left[ \begin{array}{cc} 2 \\ 1 \end{array} \right]
&=&
\left[ \begin{array}{cc}
2\cdot2+0\cdot1 \\
1\cdot2+2\cdot1 \end{array} \right]\\
&=&
\left[ \begin{array}{cc}
4+0 \\
2+2 \end{array} \right]\\
&=&
\left[ \begin{array}{cc} 4 \\ 4 \end{array} \right]
\end{eqnarray}
\]

【練習問題】3次元ベクトルと3次行列の積

問題:以下の3次行列と3次元ベクトルの積を求めよ。

次に以下の3次行列 \(M\) と3次元ベクトル \(\vec{v}\) を例に具体的に見てみましょう。

\[
A= \left[ \begin{array}{cc}
2 & 0 & 1 \\
0 & -1 & 0 \\
0 & 0 & 1
\end{array} \right]
,\hspace{3mm}
\vec{v}= \left[ \begin{array}{cc} 1 \\ -1 \\ 2 \end{array} \right]
\]

解答

これらの積は次のように計算します。

\[\begin{eqnarray}
A\vec{v}= \left[ \begin{array}{cc}
2 & 0 & 1 \\
0 & -1 & 0\\
0 & 0 & 1
\end{array} \right]
\left[ \begin{array}{cc} 1 \\ -1 \\ 2 \end{array} \right]
&=&
\left[ \begin{array}{cc}
2\cdot1 +0\cdot(-1)+ 1\cdot2 \\
0\cdot1+ (-1)\cdot(-1) + 0\cdot2\\
0\cdot1+ 0\cdot(-1) + 1\cdot2
\end{array} \right]\\
&=&
\left[ \begin{array}{cc}
2 +0+ 2 \\
0+ 1 + 0\\
0+ 0 + 2
\end{array} \right]\\
&=&
\left[ \begin{array}{cc} 4 \\ 1 \\ 2 \end{array} \right]
\end{eqnarray}\]

5. まとめ

以上がベクトルと行列の積です。

繰り返しになりますが、重要なのは、「ベクトルと行列の積とは一体何をするものなのか」、そして「ベクトルと行列の積の幾何学的な意味」を理解することです。

まず、ベクトルと行列の積とは、「行列にベクトルを入力することで、その出力として新しいベクトルを得る」ということです。そして、これは幾何学的には、「入力したベクトルが出力ベクトルに変化する様」を意味しています。これらのことを理解しておくことが、次の線形変換の理解にとても役に立ちます。

知識の土台として、これらをしっかりと知った上で、ベクトルと行列の積の計算方法を抑えることが重要です。さて、次のページではいよいよ、線形代数のメインテーマである線形変換に足を踏み入れていきます。

ここまで学習してきた内容が、ようやくフルに活かせるようになっていきますし、線形代数とはどういうものかがわかるようになっていきます。ぜひ読み進めてください。

このページが、あなたの理解にとって役に立ったとしたら嬉しく思います。

次に読みたいページ
次からいよいよ線形代数の本丸に突入していきます。早速『線形変換とは?誰でも必ず理解できるようにアニメーションで解説』へと読み進めましょう。

Python初心者におすすめのプログラミングスクール

「未経験からでもPythonを学べるプログラミングスクールを探しているけど、色々ありすぎてわからない」なら、次の3つのプログラミングスクールから選んでおけば間違いはありません。

Aidemy Premium:全くの初心者ができるだけ効率よく短期間で実務的に活躍できるAI人材になることを目的とした講座。キャリアカウンセリングや転職エージェントの紹介などの転職支援も充実しており、受講者の転職成功率が高い。

AIジョブカレPythonの基本をおさえた人が、実際に機械学習やディープラーニングを活用できるようになるための講座。転職補償型があるなどキャリア支援の内容が非常に手厚く、講師の質も最高クラス。コスパ最高。Python初心者用の対策講座もある。

データミックスプログラミング経験者のビジネスマンが、更なるキャリアアップのためにデータの処理方法を学んでデータサイエンティストになるための講座。転職だけでなく起業やフリーランスとして独立する人も多い。Python初心者用の対策講座もある。

特に、あなたが以下のような目標を持っているなら、この中から選んでおけば間違いはないでしょう。

・未経験からPythonエンジニアとして就職・転職したい
・AIエンジニアやデータサイエンティストとしてキャリアアップしたい
・起業やフリーランスを視野に入れたい

理由は「Python初心者のためのおすすめプログラミングスクール3選」で解説しています。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメント一覧 (1件)

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる