ベクトルの内積について解説してみた

　はじめまして、[りょーつ](https://twitter.com/Gomachan_2021)と申します。高専出身の大学院生です。中学生から大学生までいろいろなロボコンを経験し、主に機械設計を担当してました。高専卒業後は制御工学にも興味が湧き、たまに倒立振子を作ったりして遊んでいます。ちなみに現在は機構学に関する研究をしています。

# 目次
[1.はじめに](#1-はじめに)
[2.ベクトルの内積とは](#2-ベクトルの内積とは)
[3.内積の図的イメージ](#3-内積の図的イメージ)
[4.内積を使った成分の抽出](#4-内積を使った成分の抽出)
[5.内積と仕事](#5-内積と仕事)
[6.仕事と線積分](#6-仕事と線積分)
[7.おわりに](#7-おわりに)

 # 1. はじめに
　本記事は線形代数を学んだ直後の高専生や工学系の大学生に向けて書いた記事です。線形代数の中身には深入りせずに、どうやって使うのか？知ってるとなにがうれしいのか？という観点で分かりやすく解説することを目指します。本記事は線形代数の中でも「ベクトルの内積」の解説に注目しました。最後に少しだけ力学の話も書いているので、物理の勉強にも役立つと思います(^^)

# 2. ベクトルの内積とは
　ベクトルの内積ってなんですか？と聞かれたらどう答えますか？授業で学んだことを言葉にしてみると

「大きさ×大きさ×cos(なす角)のアレ」
「なんか成分をかけて足すやつ」

みたいな感じのイメージだと思います。ただ、ここでは内積をもう少しフワッと説明してみましょう。内積は

「2つのベクトルから1つのスカラーを作る操作」

なんです。なにを当たり前のことを、と思われるかもしれませんが、このイメージを持つことは結構重要です！
　ちなみに似たような流れで「2つのベクトルから1つのベクトルを作る操作」や「2つのベクトルから1つの行列を作る操作」も存在し、これらの操作はそれぞれ、外積、テンソル積と呼ばれています。分かりやすく図1にまとめてみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/e924704e-ddf6-ee08-57f8-3ff669ded6dc.png)
図1　ベクトルの内積、外積、テンソル積

数式で書くと、ベクトルの内積、外積、テンソル積は、それぞれ以下のように表現されます。
```math
\boldsymbol{a} \cdot \boldsymbol{b} = c
\tag{1}
```
```math
\boldsymbol{a} \times \boldsymbol{b} = \boldsymbol{c}
\tag{2}
```
```math
\boldsymbol{a} \otimes \boldsymbol{b} = C
\tag{3}
```
外積やテンソル積についてはまた別の機会に解説したいと思います。とりあえずベクトルの内積は、「2つのベクトルから1つのスカラーを生成する操作」ということを覚えておいてください。

　では内積を使って、2つのベクトルからどのようにして1つのスカラーを作るのかについておさらいしてみましょう。ベクトルの内積の計算結果は、2つのベクトルの各要素を掛け算し、それらをすべて足したものになります。文章で書いても分かりずらいので例題を解いてみましょう。以下の内積の計算結果を予想してみてください。
```math
\begin{pmatrix}
 1 \\
 2 \\
 3 \\
\end{pmatrix}
\cdot
\begin{pmatrix}
 5 \\
 7 \\
 11 \\
\end{pmatrix}
=
\tag{4}
```
どうでしょうか？答えは以下の流れで計算されます。
```math
\begin{pmatrix}
 1 \\
 2 \\
 3 \\
\end{pmatrix}
\cdot
\begin{pmatrix}
 5 \\
 7 \\
 11 \\
\end{pmatrix}
= (1 \times5) + (2 \times 7) + (3 \times 11) = 5 + 14 + 33 = 52
\tag{5}
```
やってみればなんてことはないと思います。なんとな～くノリが伝わったらうれしいです(^^)
　いちおう(5)式の内容を一般化して書いてみると以下のような見た目になります。分かりづらかったら(6)式は無視してください。
```math
\boldsymbol{a} = 
\begin{pmatrix}
 a_1 \\
 a_2 \\
 \vdots \\
 a_n \\
\end{pmatrix}
```
```math
\boldsymbol{b} = 
\begin{pmatrix}
 b_1 \\
 b_2 \\
 \vdots \\
 b_n \\
\end{pmatrix}
```
```math
\boldsymbol{a} \cdot \boldsymbol{b} = 
a_1 b_1 + a_2 b_2 + \cdots + a_n b_n = 
\sum_{i=1}^n a_i b_i
\tag{6}
```
# 3. 内積の図的イメージ
　内積の基本的な計算方法が分かったところで、これが何を意味するのかについて考えてみましょう。実はベクトル$\boldsymbol{a}$と$\boldsymbol{b}$の内積の計算結果は(6)式とは異なる形式で以下のようにも表すことができます。
```math
\boldsymbol{a} \cdot \boldsymbol{b} = \lVert{\boldsymbol{a}}\rVert \lVert{\boldsymbol{b}}\rVert \cos{\theta}
\tag{7}
```
いきなりいろんな記号が出てきましたが、$\lVert{a}\rVert$はベクトル$\boldsymbol{a}$の大きさ、$\lVert{b}\rVert$はベクトル$\boldsymbol{b}$の大きさ、$\theta$はベクトル$\boldsymbol{a}$とベクトル$\boldsymbol{b}$のなす角を意味します。これは結構凄いことで、ベクトルの成分が分からなくても、「ベクトルの長さと交わる角度さえ分かれば内積は計算できる」ってことなんです！！詳しい証明は本記事では省きますが、この性質を使えば、内積はとっても便利な計算ツールになるので使い方だけでも覚えてみてください！
　ためしに以下の2つのベクトルの内積を計算してみましょう。2つのベクトルのなす角は45°です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/00d2f97d-744e-487e-fcbe-f4cb311c0dab.png)
図2　内積の計算例

(7)式にあてはめて計算してみましょう。図からベクトルの大きさが分かるので、
```math
\boldsymbol{a} \cdot \boldsymbol{b} = 5 \times 3 \times \cos{45°} = \dfrac{15}{\sqrt{2}}
\tag{8}
```
が内積の計算結果となります。実際に(6)式の計算方法と計算結果が一致するのか確かめてみましょう。
```math
\boldsymbol{a} \cdot \boldsymbol{b}
= 
\begin{pmatrix}
 3 \\
 0 \\
\end{pmatrix}
\cdot
\begin{pmatrix}
\dfrac{5}{\sqrt{2}} \\
\dfrac{5}{\sqrt{2}} \\
\end{pmatrix}
=
\bigg( 3\times \dfrac{5}{\sqrt{2}} \bigg) + \bigg( 0\times \dfrac{5}{\sqrt{2}} \bigg)
=
\dfrac{15}{\sqrt{2}}
\tag{9}
```
たしかに一致してますね！(8)式と(9)式の例から、内積の計算方法は(6)式の方法と(7)式の方法の2通りが存在することが分かりますね！なぜこの2つが一致するのかについてはそのうち別の記事で解説しようと思います。

# 4. 内積を使った成分の抽出
　内積を使うと、ベクトルから成分を抽出することができます。これは結構便利で、機構の解析を行うときとかに使うことが多いです。いきなり抽出とか言ってもよく分からないので、いったん以下の2つのベクトルの内積を考えてみましょう。
```math
\boldsymbol{x} = 
\begin{pmatrix}
5 \\
3 \\
\end{pmatrix}
```
```math
\boldsymbol{e} = 
\begin{pmatrix}
\dfrac{1}{2} \\
\dfrac{\sqrt{3}}{2} \\
\end{pmatrix}
```
```math
※
\lVert{\boldsymbol{e}}\rVert = 1
```
ベクトル$\boldsymbol{x}$はなんの変哲もないただのベクトルですが、ベクトル$\boldsymbol{e}$は大きさが1の単位ベクトルであることに注意してください！
　実際に(6)式を使って内積を計算してみると以下のような結果が得られます。
```math
\boldsymbol{x} \cdot \boldsymbol{e}
= 
\begin{pmatrix}
 5 \\
 3 \\
\end{pmatrix}
\cdot
\begin{pmatrix}
\dfrac{1}{2} \\
\dfrac{\sqrt{3}}{2} \\
\end{pmatrix}
=
\bigg( 5\times \dfrac{1}{2} \bigg) + \bigg( 3\times \dfrac{\sqrt{3}}{2} \bigg)
=
\dfrac{5+3\sqrt{3}}{2}
\tag{10}
```
　もう内積の計算に慣れてきたと思います。ここではただ計算するだけではなくて、(10)式の計算を図形的に考えてみましょう。ベクトル$\boldsymbol{x}$とベクトル$\boldsymbol{e}$のなす角を$\phi$と置いてみます。$\lVert{\boldsymbol{e}}\rVert = 1$に注意すると、(10)式の内積の計算は以下のようにも表されます。
```math
\boldsymbol{x} \cdot \boldsymbol{e} = 
\lVert{\boldsymbol{x}}\rVert \lVert{\boldsymbol{e}}\rVert \cos{\phi} =
\lVert{\boldsymbol{x}}\rVert \cos{\phi}
\tag{11}
```
すると(11)式を図に表したら三角比の関係から以下の図のような関係が得られますね！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/198ef821-8d6f-4318-4038-67341c379882.png)
図3　ベクトルと単位ベクトルの内積の図的イメージ

　図3を見て納得された方も多いのではないでしょうか？そうです、あるベクトル$\boldsymbol{x}$と単位ベクトル$\boldsymbol{e}$の内積を計算すると、$\boldsymbol{x}$の$\boldsymbol{e}$方向成分が文字通り抽出できるんです！

# 5. 内積と仕事
　4章では、内積の「ベクトルから成分を抽出できる」という性質について解説しました。5章では、そもそもベクトルから成分を抽出できる嬉しさってなんなの？という疑問にお答えしていきたいと思います！
　ところで皆さん、力学で学んだ仕事って覚えていますか？ざっくりいうと仕事$W$ [J]は力$F$ [N]と力の方向の変位$\Delta P$ [m]の積で表されます。例えば以下の例を考えましょう。A君が10 Nの力で箱を5 m移動させたとき、A君がした仕事はいくらでしょうか？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/0274de0d-8619-284c-c94c-21b0a1a7c9e8.png)
図4　仕事をするA君

A君がした仕事$W$は以下のように計算されると思います。
```math
W = F \times \Delta P = 10 N \times 5 m = 50 J
\tag{12}
```
ここまではシンプルですね。
　これだけではつまらないので、少しややこしくしてみます。以下の図のように、A君がななめに10 Nの力で箱を5 m引っ張った場合の仕事はどうでしょうか？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/a78fc9a5-0179-f93e-f266-3230940b1864.png)
図5　仕事をするA君

A君が発生させている力のうち、箱が移動する方向の成分のみが仕事をするので、A君がした仕事$W$は以下のように計算できますね。
```math
W = F\cos{\theta} \times \Delta P = 10 N \times \cos{30°} \times 5 m = 25\sqrt{3} J
\tag{13}
```
納得いただけたでしょうか？ここで注目いただきたいのは(13)式の中でも「$10 N \times \cos{30°}$」の部分です。これは、「力$F$から、箱が移動する方向の成分だけを抽出したもの」を意味しています。抽出ってことは内積が使えそうですよね！
　ということで、図5の問題をベクトルと内積を使って考えてみましょう。図6に示すように座標系を取り、A君が発生させる力をベクトル$\boldsymbol{F}$、箱の変位を表すベクトルを$\Delta \boldsymbol{P}$とします。さらに箱の移動方向を表す単位ベクトルを$\boldsymbol{e}$とします。$\Delta \boldsymbol{P}$と$\boldsymbol{e}$の向きが一致しているため、以下の関係がなりたつことに注意してください。
```math
\Delta \boldsymbol{P} = 
\Delta P \boldsymbol{e}
\tag{14}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/28abce48-ba95-a4e5-7cbc-8497af720ae6.png)
図6　A君の仕事のベクトルを用いた表現
 
ではA君がした仕事$W$を計算してみましょう。まずは力$\boldsymbol{F}$から箱が移動する方向の成分を抽出します。図3のイメージを使うと、力$\boldsymbol{F}$の箱が移動する方向成分$F_t$は以下の内積によって抽出できます。
```math
F_t = 
\boldsymbol{F} \cdot \boldsymbol{e}
\tag{15}
```
$F_t$は内積の計算結果なので、ベクトルではなくスカラーだということに注意してください！！
　力$F_t$が抽出できたのであとは掛け算で仕事$W$を求めるだけです。よって仕事$W$は以下のように計算できます。
```math
W = 
F_t \times \Delta P
\tag{16}
```
物理と数学のつながりが見えてきたのではないでしょうか？ここで(14)~(16)式をまとめてみましょう。$F_t$と$\Delta P$を消去してみると以下の関係が見えてきます。
```math
W = 
F_t \times \Delta P = 
(\boldsymbol{F} \cdot \boldsymbol{e}) \times \Delta P =
\boldsymbol{F} \cdot (\Delta P \boldsymbol{e})  =
\boldsymbol{F} \cdot \Delta \boldsymbol{P}
\tag{17}
```
凄くないですか！？力と変位の内積を取るだけで仕事が計算できちゃうんです。実際に図5の問題をベクトルの内積を使って解いてみましょう。力$\boldsymbol{F}$と変位$\Delta \boldsymbol{P}$をベクトルで表すと以下のようになります。
```math
\boldsymbol{F} = 
\begin{pmatrix}
-10 \cos{30°} N \\
10 \sin{30°} N \\
\end{pmatrix}
=
\begin{pmatrix}
-5\sqrt{3} N \\
5 N \\
\end{pmatrix}
```
```math
\Delta \boldsymbol{P} = 
\begin{pmatrix}
-5 m \\
0 m \\
\end{pmatrix}
```
実際に内積を計算してみると...？
```math
W = \boldsymbol{F} \cdot \Delta \boldsymbol{P} = 
\begin{pmatrix}
-5\sqrt{3} N \\
5 N \\
\end{pmatrix}
\cdot
\begin{pmatrix}
-5 m \\
0 m \\
\end{pmatrix}
=
(-5\sqrt{3} N \times -5 m) + (5 N \times 0 m)
=
25\sqrt{3} J
\tag{18}
```
たしかに(13)式と(18)式の計算結果が一致しており、仕事$W$はベクトルの内積を使って(17)式のように表現できることが確認できました！

# 6. 仕事と線積分
　ここからは5章の内容をさらに発展させて仕事と線積分のつながりについて解説します。5章では仕事$W$が力$\boldsymbol{F}$と変位$\Delta \boldsymbol{P}$の内積で表されることを示しました。ただし、現実世界はそう甘くありません。現実世界では、地面が曲がりくねっているかもしれないのです。地面が曲がりくねっていると、箱の変位を単純なベクトル$\Delta \boldsymbol{P}$で表すことができず、(17)式が適用できないのです（´・ω・｀）

　そんな問題を解決してくれるのが「線積分」です！積分というワードがでてきただけでアレルギーが出そうですが、5章まで理解した貴方ならきっとついてこれるはず。

　図7に示すような、曲がった経路$c$にそってA君が仕事をするようなシチュエーションを考えてみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/52b839a5-b408-6ec1-c58a-d6ac07bdfad2.png)
図7　曲がった経路$c$に沿って仕事するA君

上述のとおり、箱の変位は単純なベクトル$\Delta \boldsymbol{P}$で表すことができないため、ここでは経路$c$を細かく分解して仕事を計算してみることにします。
　例えば図8に示すように、経路$c$を複数の区間に分割してみましょう。そしてそれぞれの区間で仕事$dw_1$、$dw_2$、$\cdots$、$dw_n$を計算して、それらをすべて合計すれば、A君がした仕事$W$を求めることができそうです！この考え方を数式に落とし込むと以下のようにまとめられます。
```math
W = \int_{c} dw
\tag{19}
```
いきなり積分を書きましたが、怯む必要はありません。「微小区間の微小仕事$dw$を経路$c$に沿って合計する」ということをシンプルに数式で表現しただけです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/d569ebab-d058-b00f-c23c-5d40c5fc1bc8.png)
図8　経路$c$の分割

A君の仕事が(19)式の積分で表せそうってことは分かりましたが、中身の$dw$がいまいちよく分からないですよね。ここからは$dw$の中身を明らかにしていきます。

　そもそも積分を考える羽目になったのは、経路$c$が曲がっているからです。まっすぐならば(17)式が使えるのに...。そこで過去の天才たちはこう考えました。
 
「(17)式を使えるように経路$c$を直線で近似してやろう！」

　つまり、曲がった経路$c$も、図8のように限界まで細かく分割してやれば、直線の集まりとして考えられるのです。こう考えてしまえば簡単です。図9に示すように、A君は経路$c$の各区間において、力$\boldsymbol{F}$で箱に変位$\boldsymbol{dc}$を発生させる仕事$dw$をしているのです。
　つまり(17)式と同じ形式で、微小仕事$dw$は以下のように表現できます。
```math
dw = \boldsymbol{F} \cdot \boldsymbol{dc}
\tag{20}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031572/57539089-c041-604c-17fe-b892b9224932.png)
図9　経路$c$を直線で近似して計算できるA君の微小仕事

納得いただけたでしょうか..?最後に(20)式を(19)式に代入することで仕事$W$を求める式が導出されます。
```math
W = \int_{c} \boldsymbol{F} \cdot \boldsymbol{dc}
\tag{21}
```
(21)式のように、あるベクトルから、ある経路$c$に沿った成分を抽出しながら積分するような計算は「線積分」と呼ばれています。今回は力$\boldsymbol{F}$から経路$c$に沿った成分を抽出しながら積分してますよね～。線積分は数学や物理でよく扱いますし、今回解説した例を参考にそのイメージを知っておくと今後の授業の理解度が上がると思います(^^)

# 7. おわりに
　本記事では、線形代数の授業に登場する内積のざっくりとした使い方と、特筆すべき性質である「成分の抽出」について解説しました。また、具体例として、力学分野の仕事と内積の関連性について解説し、フワッと線積分についても触れてみました。
　ベクトルの内積を理解すると、きっと私生活が豊かになるので、読者の皆様にはぜひこの機会に内積と仲良くなってほしいです！
　最後までよんでくださり、ありがとうございました。