トップページ > 数学 > 内積

内積

ベクトルの内積

内積の定義

まずはベクトルの内積から見ておきましょう。

以下の図のような3次元の直交座標系を用意したとします。

単位ベクトル

図中の \(\boldsymbol{e}_x\)、\(\boldsymbol{e}_y\)、\(\boldsymbol{e}_z\) はそれぞれ \(x\) 軸、\(y\)軸、\(z\) 軸と同じ方向に向いた長さが \(1\) のベクトルです。

これらは単位ベクトルと呼ばれます。

そして内積の定義として次を採用することにします。

式(1)

\[ \begin{align*} \boldsymbol{e}_x \cdot \boldsymbol{e}_y = 0 \\[10pt] \boldsymbol{e}_y \cdot \boldsymbol{e}_z = 0 \\[10pt] \boldsymbol{e}_z \cdot \boldsymbol{e}_x = 0 \end{align*} \]

式(2)

\[ \begin{align*} \boldsymbol e_x \cdot \boldsymbol e_x = |\boldsymbol e_x|^2 = 1 \\[10pt] \boldsymbol e_y \cdot \boldsymbol e_y = |\boldsymbol e_y|^2 = 1 \\[10pt] \boldsymbol e_z \cdot \boldsymbol e_z = |\boldsymbol e_z|^2 = 1 \end{align*} \]

この段階では計算ではなく、そういう演算ルールを決めますと言った程度の認識です。

式(1), (2)の意味を言語化しておきましょう。

式(1)は、2つの単位ベクトルについてそれらが互いに垂直な関係にあるとき内積が \(0\) となることを表しています。

また式(2)は、自分自身との内積は \(1\) となることを表しています。

次は任意のベクトルaについての内積を考えます。

このベクトル \(\boldsymbol{a}\) がどのように表現されるか考えましょう。

例えば、図のように点A \((a_x,~a_y,~a_z)\)を決めて、原点から点Aにまで伸びるベクトルを \(\boldsymbol{a}\) とします。

任意のベクトル

すると、ベクトルaは単位ベクトルを用いて次のように表現することができます。

式(3)

\[ \boldsymbol a = a_x \boldsymbol e_x + a_y \boldsymbol e_y + a_z \boldsymbol e_z \]

これにならって、別のベクトル \(\boldsymbol{b}\) を用意します。

\[ \boldsymbol b = b_x \boldsymbol e_x + b_y \boldsymbol e_y + b_z \boldsymbol e_z \]

これら \(\boldsymbol{a}\) および \(\boldsymbol{b}\) の内積 \(\boldsymbol{a} \cdot \boldsymbol{b}\) を考えていくのですが、その前にベクトルの内積について成り立つ計算法則を確認しておきましょう。

次の計算法則が成り立つとして話を進めていきます。

交換法則

\[ \boldsymbol{x} \cdot \boldsymbol{y} = \boldsymbol{y} \cdot \boldsymbol{x} \]

分配法則

\[ \boldsymbol{x} \cdot (\boldsymbol{y} + \boldsymbol{z}) = \boldsymbol{x} \cdot \boldsymbol{y} + \boldsymbol{x} \cdot \boldsymbol{z} \]

スカラー倍の結合法則

\[ \alpha (\beta \boldsymbol{x}) = (\alpha \beta) \boldsymbol{x} \]

\(\alpha\) と \(\beta\) はスカラーであることに気をつけて下さい。

ちなみに「内積の結合法則」は成立しません。

実際に計算しようとすると分かります。

結合法則(?)

\[ (\boldsymbol{e}_i \cdot \boldsymbol{e}_j) \cdot \boldsymbol{e}_k = \boldsymbol{e}_i \cdot (\boldsymbol{e}_j \cdot \boldsymbol{e}_k) ~ (?) \]

カッコで囲んでいる部分は数値(スカラー)になるので、ベクトルどうしの演算である内積として計算することはできないのです。

それでは、以上の計算ルールに従って実際に \(\boldsymbol{a} \cdot \boldsymbol{b}\) を計算してみましょう。

式(4)

\[ \begin{align*} \boldsymbol a \cdot \boldsymbol b &= (a_x \boldsymbol e_x + a_y \boldsymbol e_y + a_z \boldsymbol e_z) \cdot (b_x \boldsymbol e_x + b_y \boldsymbol e_y + b_z \boldsymbol e_z) \\[10pt] &= (a_x \boldsymbol e_x) \cdot (b_x \boldsymbol e_x) + (a_x \boldsymbol e_x) \cdot (b_y \boldsymbol e_y) + (a_x \boldsymbol e_x) \cdot (b_z \boldsymbol e_z) + (a_y \boldsymbol e_y) \cdot (b_x \boldsymbol e_x) + (a_y \boldsymbol e_y) \cdot (b_y \boldsymbol e_y) + (a_y \boldsymbol e_y) \cdot (b_z \boldsymbol e_z) + (a_z \boldsymbol e_z) \cdot (b_x \boldsymbol e_x) + (a_z \boldsymbol e_z) \cdot (b_y \boldsymbol e_y) + (a_z \boldsymbol e_z) \cdot (b_z \boldsymbol e_z) \\[10pt] &= a_xb_x(\boldsymbol{e}_x \cdot \boldsymbol{e}_x) + a_xb_y(\boldsymbol{e}_x \cdot \boldsymbol{e}_y) + a_xb_z(\boldsymbol{e}_x \cdot \boldsymbol{e}_z) + a_yb_x(\boldsymbol{e}_y \cdot \boldsymbol{e}_x) + a_yb_y(\boldsymbol{e}_y \cdot \boldsymbol{e}_y) + a_yb_z(\boldsymbol{e}_y \cdot \boldsymbol{e}_z) + a_zb_x(\boldsymbol{e}_z \cdot \boldsymbol{e}_x) + a_zb_y(\boldsymbol{e}_z \cdot \boldsymbol{e}_y) + a_zb_z(\boldsymbol{e}_z \cdot \boldsymbol{e}_z) \\[10pt] &= a_xb_x + 0 + 0 + 0 + a_yb_y + 0 + 0 + 0 + a_zb_z \\[10pt] &= a_xb_x + a_yb_y + a_zb_z \end{align*} \]

計算ミスせずにできましたか?

※ちなみに内積を表す記号として、\(\boldsymbol{a} \cdot \boldsymbol{b}\) の他に \(\langle{\boldsymbol{a}, \boldsymbol{b}} \rangle\) などがあります。

式(4)の結果をよく見てみると、添字が同じものどうしの積の和となっていることが分かります。

これくらい簡単に覚えられますが、新しいベクトルの表現を導入することで視覚的(?)に計算できるようになります。

単位ベクトルを次のように書けるとしましょう。

式(5)

\[ \boldsymbol{e}_x = \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix},~ \boldsymbol{e}_y = \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix},~ \boldsymbol{e}_z = \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} \]

ベクトルが指し示す座標を、縦向きに並べたかのようにしてみました。

これをベクトルの成分表示などと呼んだりします。

これらを式(3)に代入してみます。

\[ \begin{align*} \boldsymbol a &= a_x \boldsymbol e_x + a_y \boldsymbol e_y + a_z \boldsymbol e_z \\[10pt] &= a_x \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} + a_y \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix} + a_z\begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} =\begin{bmatrix} a_x \\ a_y \\ a_z \end{bmatrix} \end{align*} \]

となります。

単位ベクトルの場合でもそうでしたが、やっぱりベクトル \(\boldsymbol{a}\) が指し示す点Aの座標を縦に並べたかのような表現になりました。

同様に \(\boldsymbol{b}\) は

\[ \boldsymbol{b} = \begin{bmatrix} b_x \\ b_y \\ b_z \end{bmatrix} \]

と表現されます。

以上の成分表示されたベクトルを用いて、内積がどのように表現されるのかを次に示しました。

式(6)

\[ \boldsymbol{a} \cdot \boldsymbol{b} = \begin{bmatrix} a_x \\ a_y \\ a_z \end{bmatrix} \cdot \begin{bmatrix} b_x \\ b_y \\ b_z \end{bmatrix} = a_xb_x + a_yb_y + a_zb_z \]

計算の仕方を知っておかなければいけませんが、成分を上から順番に掛けて足していくというだけなので、式(4)で示したような単位ベクトルの内積を考えるより簡単ですね。

そして最後に、任意のベクトルは初めに定めた単位ベクトルの特徴を継承していることを見ておきます。

というのも、もしベクトル \(\boldsymbol{a}\) とベクトル \(\boldsymbol{b}\) が垂直な関係にあるなら、内積の計算結果は \(0\) になるということなのですが、

例えば、次のベクトルを考えてみましょう。

\[ \begin{bmatrix} 3 \\ 4 \\ 4 \end{bmatrix} \cdot \begin{bmatrix} -4 \\ 2 \\ 1 \end{bmatrix} = -12 + 8 + 4 = 0 \]

内積の結果が \(0\) となるようなベクトルを選択しました。

それぞれのベクトルが垂直な関係となっているのか確認しておきます。

内積が0になるベクトルの直交関係

数値的な確認は今回行いませんが、絵的にも垂直な関係を持っていることが分かっていただけると思います。

またグラフ内に示してある青いメッシュはそれぞれのベクトルが作る面を表しています。

以上のようにベクトル内積が0となるとき、それぞれのベクトルは直交していると表現するので覚えておきましょう。

次元を拡張してみる

以降ベクトルが矢印であるという認識を捨ててもらいます。

例えばベクトルの成分が4つ並ぶと、つまり4次元ベクトルということになるわけですが、私達はこれを図形的に解釈できなくなってしまいます。

\[ \boldsymbol{a} = \begin{bmatrix} a_1 \\ a_2 \\ a_3 \\ a_4 \end{bmatrix} \]

では、どう考えるか?

筆者は4次元以上のベクトルを「情報のセット」と考えています。

なにもベクトルが位置を示すだけのものと考える必要なんかどこにもないですからね。

筆者の捉え方の話は以上にして、続きに進みます。

拡張された \(n\) 次元のベクトルどうしの内積を考えてみましょう。

先程得た式(6)を参考にして計算すると、

式(7)

\[ \boldsymbol{a} \cdot \boldsymbol{b} = \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{bmatrix} \cdot \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \end{bmatrix} =a_1b_1 + a_2b_2 + \cdots + a_nb_n = \sum_{i=1}^n a_ib_i \]

となることが分かります。

そして、もし内積の計算結果が \(0\) になる場合は、3次元以下の場合と同様に直交していると表現します。

3次元以下のベクトルと違って何が直交しているのかイメージが掴めませんが、拡張概念として理解しておくといいでしょう。

関数の内積

内積計算を関数にまで拡張することを考えます。

まず結論から示しておくことにしましょう。

関数の内積とは次のように表現されます。

式(8)

\[ \langle{f, g} \rangle = \int_{a}^b f(x)g(x)dx \]

左辺は関数 \(f\) と \(g\) の内積を表す記号で、右辺は関数 \(f\) と \(g\) の積を考え、任意の区間 \([a, ~b]\) での積分を示しています。

それでは、以下で式(8)が内積であることの説明をしていきます。

まず式(7)を再度提示しておくことにします。

式(7)

\[ \boldsymbol{a} \cdot \boldsymbol{b} = \sum_{i=1}^n a_ib_i \]

これは数列 \(\left\{a_ib_i\right\}\) の級数にほかならないのですが、少し見方を変えて次のようにしてみます。

式(7)’

\[ \boldsymbol{a} \cdot \boldsymbol{b} = \sum_{i=1}^n (a_ib_i \times 1) \]

意味がないように思えますが、筆者が示したい主張はこうです。

内積とは、底辺が \(1\) で、高さが \(a_ib_i\) の長方形の面積の和である

とみなしたい。

そして、最終的には底面の幅を無限小にすることで区分求積法の考えを適用し、和を積分に置き換えたいのです。

※区分求積法についてはこちらのコンテンツを参照

たとえば

\[ \begin{bmatrix} 1 \\ 2 \\ 3 \\ 4 \end{bmatrix} \cdot \begin{bmatrix} 1 \\ 2 \\ 2 \\ 3 \end{bmatrix} = 1 + 4 + 6 + 12 \]

のような内積は 「\(1 \times 1\)、\(1 \times 4\)、\(1 \times 6\)、\(1 \times 12\) の長方形の面積の和」として考えます。

内積を面積の和で考える1

単に数値として計算することと、図を用いて計算するのとで一見やっていることが異なるように見えますが、得られる結果は当然同じということが分かります。

それでは、長方形の幅を \(1\) から小さくしていくことを考えます。

ただしここで注意したいのは、先程の図で示した長方形の幅をそのまま縮めるということではなく、細かい長方形に分割するということです。

ただ長方形の幅を狭めてしまうだけと、面積の値は小さくなるだけなので。

内積を面積の和で考える2

仮にそれら長方形の幅を \(\Delta s\) とすれば、式(7)’の \(\times 1\) をそれに置き換えて、更に \(\Delta s \rightarrow 0\) の極限を施すと

式(9)

\[ \boldsymbol{a} \cdot \boldsymbol{b} = \lim_{\Delta s \rightarrow 0} \sum_{i=1}^n a_ib_i \Delta s \]

こうですね。

図と式(9)からも分かっていただけるとは思いますが、\(n\) は長方形の数を表しており、極限をとることによって \(n \rightarrow \infty\) のように無限個になります。

続いて積分範囲を考えます。

図を見ていただければ良いのですが、積分範囲は \(1\) 番目の長方形が位置する \(x\) 座標から \(n\) 番目の長方形が位置する \(x\) 座標までとなりますね。

長方形の幅を狭める前は、長方形の個数 \(n\) が積分区間の上端となって、すなわち \([0, ~n]\) を考えればよかったのですが、

長方形の幅を狭めることによって長方形の個数は無限個になってしまうために \(n\) を積分区間上端に設定できませんね。

そこで、新たに \(N\) という定数値を設けました。

つまり積分範囲は \([0,~N]\) ということです。

最後に、数値の連続化ですね。

ここまでに示したグラフは、横方向に \(1\) 進むごとに異なる高さになっており、一般的によく見る関数の滑らかさはありませんでした。

そこで、つぎのように長方形の高さが連続的に変化していくようにしてみます。

内積を面積の和で考える3

勝手にそれぞれの長方形の高さを変更していますがいいのでしょうか。

これに関してはこれまでの長方形の高さは、それぞれ幅 \(1\) の区間での平均値であったとして考えれば説明ができますね。

その平均値が変わらないように長方形の高さを変形しても問題ないはずです。

具体例として、区間 \([1,~2]\) の長方形の面積の和が \(4\) であるとするなら、その値を変えないようにその区間に含まれる長方形の高さを自由に変えることは許されるということ。

これを更に細かい長方形にしていくと、非常に滑らかな連続関数として表現できそうです。

したがって、以上から式(9)を次のように書き換えても問題ないでしょう。

式(10)

\[ \boldsymbol{a} \cdot \boldsymbol{b} = \int_0^N a(s)b(s)ds \]

そしてこれは式(8)と同じ形をしていることが分かります。

それを任意の積分区間と、関数の内積を表現する記号を用意して改めて以下に提示しておくことにします。

式(8)

\[ \langle{f, g} \rangle = \int_{a}^b f(x)g(x)dx \]

【サイト運営 : だいご】

今年で物理化学歴11年目になります。

大学入試2次数学でたった3割しか得点できなかったいわゆる数弱落ちこぼれ。それでも好きこそものの上手なれと言ったところか、学会で最優秀賞受賞したり首席卒業できてしまったので、役に立つ知識を当サイトに全て惜しみなく公開しようと思います。ブックマークをオススメ。