行列とベクトルの積とは何か?わかりやすく解説
https://www.headboost.jp/vector_matrix_multiplication/#google_vignette
『線形代数
2021年1月4日
2021年11月17日
ベクトルと行列の積は、簡単に言うと「ベクトルを行列に入力して新たなベクトルを出力すること」です。これは、線形代数のさまざまな概念を理解する上で中核となるものです。
当ページでは、このベクトルと行列の積について以下の順番で解説していきます。
ベクトルと行列の積とは一体何か
ベクトルと行列の積の幾何学的な意味
ベクトルと行列の積の計算方法
学習者にとって、きっと目から鱗の発見が満載だと思います。ぜひ楽しんでいただければと思います。
それでは始めましょう。
目次
- 行列とベクトルの積とは
- 行列とベクトルの積の幾何学的な意味
- 行列とベクトルの積の計算方法
- ベクトルと行列の積の練習問題
- まとめ
- 行列とベクトルの積とは
線形代数においてベクトルと行列の積は、「行列にベクトルを入力することで新しいベクトルを出力すること」を意味しています。
行列とは何かについて深く考える必要はありません。単純に行列を関数のようなものと捉えてください。
関数とは y=f(x)
で表される f()
の部分のことです。これは、「何らかの値 x
を入力したら、別の値 y
を出力する」ということを表しています。
たとえば、ある関数が y=x2
と定義されているとしたら、この関数は f(2)=4
、f(3)=9
というように入力に応じた値を出力します。
これと同じことを線形代数では y⃗ =Ax⃗
と表します(A
は行列です)。
この式の中の行列 A
が関数 f()
、ベクトル x⃗
が入力、ベクトル y⃗
が出力です。
このように、ベクトルと行列の積は「関数である行列 A
にベクトル x⃗
を入力して、新しいベクトル y⃗
を出力する」ということを表しているのです。
このことは以下のアニメーションを見るとハッキリと理解できますので、ぜひご覧ください。
このように行列を「入力したベクトルを新しいベクトルとして出力する関数である(「写像」ともいう)」と理解しておくと、線形代数のさまざまな概念がとても理解しやすくなります。次に、この点についてお伝えします。
ポイント
ベクトルと行列の積とは、行列 A
にベクトル x⃗
を入力して、新たなベクトル y⃗
を出力することです。
これを式で表したのが以下です。これは重要な式なので覚えておきましょう。
Ax⃗ =y⃗
- 行列とベクトルの積の幾何学的な意味
さて、以上のように、行列とベクトルの積とは、行列という関数に対してベクトルを入力することで、その行列とベクトルの積を計算し、計算結果である新しいベクトルを出力するというものです。
なぜこのように理解しておくと良いのかというと、線形代数においては、行列とベクトルの積は「あるベクトルを、行列に入力することによって、それが出力ベクトルに変化する様・・・・・」を表しているからです。
これについては言葉で解説するよりも、以下のアニメーションをご確認頂ければ一目瞭然に理解することができます。
このようにベクトルと行列の積は、単に新しいベクトルを計算するというだけではなく、幾何学的には、「行列に入力したベクトルが、新しく出力されるベクトルに変化する」ということなのです。
そして、ベクトルと行列の積をこのように幾何学的に理解しておくことで、「線形変換」という概念がとてもわかりやすくなります。そのため、ぜひこのことは覚えておいてください。
それでは以上のことを踏まえた上で、最後に計算方法を確認しましょう。
- 行列とベクトルの積の計算方法
ベクトルと行列の積は、次のように計算します。
2次元ベクトルと2次行列の積
Av⃗ =[a11a21a12a22][v1v2]=[a11v1+a12v2a21v1+a22v2]
3次元ベクトルと3次行列の積
Av⃗ =⎡⎣⎢a11a21a31a12a22a32a13a23a33⎤⎦⎥⎡⎣⎢v1v2v3⎤⎦⎥=⎡⎣⎢a11v1+a12v2+a13v3a21v1+a22v2+a23v3a31v1+a32v2+a33v3⎤⎦⎥
覚え方としては、「行列の一行ごとのそれぞれの要素と、ベクトルのそれぞれの要素を掛けて足し合わせる」ことを意識しましょう。以下のアニメーションを見ることで、はるかに覚えやすくなることでしょう。
なお、ご覧のように、ベクトルと行列の積を計算する際は、行列をベクトルの左側から・・・・掛けることが特徴です。これも数学やプログラミングにおける関数とまったく同じです。
たとえば関数 f()
があるなら、これにある値 x
を入力するときは f(x)
と表現します。そして、この出力値をさらに別の関数 g()
に入力する際は、g(f(x))
と表現します。
線形代数においては、行列は関数なので、ベクトルと行列の積を求めるときは、関数と同じように、ベクトルを行列に入力するという意味で Ax⃗
と計算します。
そして、この出力値をさらに別の行列 B
に入力する場合は、BAx⃗
というように、新しい行列を左側に置いて計算していきます。
なぜこのようになっているのかは、後のページで解説する重要概念である線形変換を理解することで腑に落とすことができます。ここでは、ベクトルと行列の積では、行列を左側において計算するということをしっかりと覚えるようにしましょう。
- ベクトルと行列の積の練習問題
最後にベクトルと行列の積の練習問題を用意しておきます。ぜひご自身で一度は解いてみてください。
【練習問題】2次元ベクトルと2次行列の積
A=[2102],v⃗ =[21]
Av⃗ =[2102][21]===[2⋅2+0⋅11⋅2+2⋅1][4+02+2][44]
【練習問題】3次元ベクトルと3次行列の積
M
v⃗
A=⎡⎣⎢2000−10101⎤⎦⎥,v⃗ =⎡⎣⎢1−12⎤⎦⎥
Av⃗ =⎡⎣⎢2000−10101⎤⎦⎥⎡⎣⎢1−12⎤⎦⎥===⎡⎣⎢2⋅1+0⋅(−1)+1⋅20⋅1+(−1)⋅(−1)+0⋅20⋅1+0⋅(−1)+1⋅2⎤⎦⎥⎡⎣⎢2+0+20+1+00+0+2⎤⎦⎥⎡⎣⎢412⎤⎦⎥
- まとめ
以上がベクトルと行列の積です。
繰り返しになりますが、重要なのは、「ベクトルと行列の積とは一体何をするものなのか」、そして「ベクトルと行列の積の幾何学的な意味」を理解することです。
まず、ベクトルと行列の積とは、「行列にベクトルを入力することで、その出力として新しいベクトルを得る」ということです。
そして、これは幾何学的には、「入力したベクトルが出力ベクトルに変化する様」を意味しています。
これらのことを理解しておくことが、次の線形変換の理解にとても役に立ちます。
知識の土台として、これらをしっかりと知った上で、ベクトルと行列の積の計算方法を抑えることが重要です。さて、次のページではいよいよ、線形代数のメインテーマである線形変換に足を踏み入れていきます。
ここまで学習してきた内容が、ようやくフルに活かせるようになっていきますし、線形代数とはどういうものかがわかるようになっていきます。ぜひ読み進めてください。
このページが、あなたの理解にとって役に立ったとしたら嬉しく思います。』