【高校では教えてくれない裏ワザ】

高校では教えてくれない裏ワザ[1]:ベクトルの外積

3次元空間において2つのベクトル $\vec{a} = (a_x, a_y, a_z), \vec{b} = (b_x, b_y, b_z)$(ここで、$\vec{a}$と$\vec{b}$ は平行ではないとする。)が与えられた時に、この2つのベクトルに直交するベクトル $\vec{n}$ を求めたいと思ったことはありませんか?

このようなベクトルが分かると簡単に解ける問題として、次のような空間図形の問題があります。

[問]
直線 $l$ が
\begin{eqnarray}
\frac{x – 4}{3} = \frac{y – 2}{2} = \frac{z + 5}{5}
\end{eqnarray}
で与えられているとする。この直線 $l$ と点 $A = (2, 1, 3)$ を通る平面の方程式を求めよ。

[通常の答]
先ず、直線 $l$ をパラメータ表示する。すなわち
\begin{eqnarray}
\frac{x – 4}{3} = \frac{y – 2}{2} = \frac{z + 5}{5} = t
\end{eqnarray}
と置くと
\begin{eqnarray}
x &=& 3 t + 4 \\
y &=& 2 t + 2 \\
z &=& 5 t – 5
\end{eqnarray}
と表すことが出来る。ここで、$\vec{n} = (n_x, n_y, n_z)$ を求める平面の方程式の法線ベクトルとすると、点 $A = (2, 1, 3)$ を通ることから、求める平面の方程式は
\begin{eqnarray}
n_x (x – 2) + n_y (y – 1) + n_z (z – 3) = 0
\end{eqnarray}
と書くことが出来る。

この式に、直線 $l$ のパラメータ表示した $x, y, z$ を代入すると
\begin{eqnarray}
n_x ((3t + 4) – 2) + n_y((2 t + 2) – 1) + n_z((5 t – 5) – 3) &=& 0 \\
(3 n_x + 2 n_y + 5 n_z) t + (2 n_x + n_y – 8 n_z) &=& 0
\end{eqnarray}
が得られる。直線上の点はすべて求める平面に含まれていなければいけないので、任意の $t$ について定式が成り立つはずである。すなわち
\begin{eqnarray}
3 n_x + 2 n_y + 5 n_z &=& 0 \\
2 n_x + n_y – 8 n_z &=& 0
\end{eqnarray}
が成り立つ。これより、$n_x : n_y : n_z$ の比が
\begin{eqnarray}
n_x : n_y : n_z &=& 21 : -34 : 1
\end{eqnarray}
と求まる。従って、求める平面の方程式は
\begin{eqnarray}
21(x – 2) – 34 (y – 1) + (z – 3) &=& 0 \\
21 x – 34 y + z &=& 11
\end{eqnarray}
と求まる。

要するに何を計算しているのか?

上記の[通常の答]において、結局は平面の法線ベクトル $\vec{n}$ を求めている訳です。もちろん $\vec{n}$ は一意的に決まらず、$x, y, z$ 成分の比が決まるだけです。

平面の法線ベクトルは、平面に含まれる2つの独立な(つまり平行ではない)ベクトルと直交するベクトルです。従って、例えば、直線 $l$ の方向ベクトル $(3, 2, 5)$ と平面に含まれる2点間のベクトル $(2, 1, 3) – (4, 2, -5) = (-2, – 1,8)$ という2つのベクトルに直交するベクトルさえ求めることが出来れば、連立方程式などを解かずとも、求める平面の方程式を求めることが出来るのです。

その2つのベクトルに直交するベクトルの作り方を以下に示しましょう。

法線ベクトルの求め方

先ず、2つのベクトルのうちの1つ(どちらでも良い)の $x$ 成分、$y$ 成分、$z$ 成分、$x$ 成分(2度書くことになる)を横に並べて書きましょう。

次に、もう一方のベクトルの $x$ 成分、$y$ 成分、$z$ 成分、$x$ 成分(2度書くことになる)をその下に少し縦に隙間を空けて横に並べて書きましょう。
今の場合だと




となります。

そして、先ずは $\vec{n}$ の $x$ 成分である $n_x$ を求めましょう。
それには、上の行の2番めの数字「2」に着目して、それとそれの右斜めしたにある「8」をかけます。
すなわち、$2 \times 8 = 16$ です。次に、「2」の右にある「5」に着目して、それとその左下にある「ー1」をかけ合わせます。すなわち、$5 \times (-1) = -5$ です。
そして、最初に求めた数から次に求めた数を引きます。すなわち、$16 – (- 5) = 21$ です。
これが、$n_x$ の値になります。つまり $n_x = 21$ です。

次に、$n_y$ を求めるには、この計算を上の行の3番目の「5」とその右下の「−2」をかけた数字から、上の行の4番目の「3」とその左下の「8」をかけた数字を引きます。
すなわち、$5 \times (-2) – 3 \times 8 = -34$ です。これが $n_y$ の値になります。つまり、$n_y = – 34$ です。

最後に、上の行の1番目の「3」に着目して、それとその右下にある「−1」をかけたものから、上の行の2番めの「2」に着目して、その左下にある「−2」とをかけて引きます。すなわち $3 \times (-1) – 2 \times (-2) = 1$ これが $n_z$ になります。つまり $n_z = 1$ です。

まとめると
\begin{eqnarray}
\vec{n} &=& (21, – 34, 1)
\end{eqnarray}
となります。

これが、最初に考えた2つのベクトルと直交していることを見ましょう。直交していることを見るには、内積が0であることを確かめれば良いので
\begin{eqnarray}
(21, -34, 1) \cdot (3, 2, 5) &=& 63 – 68 + 5 = 0 \\
(21, -34, 1) \cdot (-2, -1, 8) &=& -42 + 34 + 8 = 0
\end{eqnarray}
となり、確かに2つのベクトルに直交していますね。ここでベクトルの間の「$\cdot$ 」は内積を表します。

すなわち、この計算をすれば、即座に求める平面の方程式は
\begin{eqnarray}
21 (x – 2) – 34 (y – 1) + (z – 3) = 0
\end{eqnarray}
と求まるのです。

これは偶然なのか?

これは偶然なのでしょうか?いえ、このようにして求めた $\vec{n}$ は必ず2つのベクトルに直交することが次のようにして示せます。先ず2つのベクトルを $\vec{a} = (a_x, a_y, a_z), \vec{b} = (b_x, b_y, b_z)$ と書くことにしましょう。

上で計算したように $\vec{n}$ を求めると、$\vec{n}$ の成分は次のようになります
\begin{eqnarray}
\vec{n} &=& (a_y b_z – a_z b_y, a_z b_x – a_x b_z, a_x b_y – a_y b_x)
\end{eqnarray}
この$\vec{n}$ と $\vec{a}, \vec{b}$ との内積を各々計算してみましょう。
\begin{eqnarray}
\vec{a} \cdot \vec{n} &=& a_x (a_y b_z – a_z b_y) + a_y (a_z b_x – a_x b_z) + a_z (a_x b_y – a_y b_x) = 0 \\
\vec{b} \cdot \vec{n} &=& b_x (a_y b_z – a_z b_y) + b_y (a_z b_x – a_x b_z) + b_z (a_x b_y – a_y b_x) = 0
\end{eqnarray}
となり、確かに直交することが分かります。

ご利益はこれだけじゃない!

確かに、3次元空間の2つのベクトル $\vec{a}, \vec{b}$ に直交するベクトル $\vec{n}$ が上記の手順で作れることが分かりました。でもご利益はこれだけではないのです。

ベクトルには、「向き」の他に「大きさ」、すなわち、「長さ」があります。この「長さ」がとても有益な情報を持っているのです。
結論から言うと、$\vec{n}$ の長さは2つのベクトル $\vec{a}, \vec{b}$ の張る平行四辺形の面積と同じなのです。

この事実を証明しましょう。

先ずは、$|\vec{n}|^2$ を計算しましょう。
\begin{eqnarray}
|\vec{n}|^2 &=& (a_y b_z – a_z b_y)^2 + (a_z b_x – a_x b_z)^2 + (a_x b_y – a_y b_x)^2
\end{eqnarray}
となります。

次に、2つのベクトル $\vec{a}, \vec{b}$ の内積の2乗を考えてみましょう。
\begin{eqnarray}
(\vec{a} \cdot \vec{b})^2 &=& |\vec{a}|^2 |\vec{b}|^2 \cos^2\theta \\
(a_x b_x + a_y b_y + a_z b_z)^2 &=& |\vec{a}|^2 |\vec{b}|^2 (1 – \sin^2 \theta)
\end{eqnarray}
ここに、$\theta$ は2つのベクトル $\vec{a}, \vec{b}$ のなす角度です。

ここで、2つのベクトルが張る平行四辺形の面積 $S$ が
\begin{eqnarray}
S = |\vec{a}| |\vec{b}| \sin\theta
\end{eqnarray}
となることに注意して、上式を書き換えてみましょう。
\begin{eqnarray}
(a_x b_x + a_y b_y + a_z b_z)^2 &=& |\vec{a}|^2 |\vec{b}|^2 – S^2 \\
S^2 &=& (a_x^2 + a_y^2 + a_z^2) (b_x^2 + b_y^2 + b_z^2) – (a_x b_x + a_y b_y + a_z b_z)^2
\end{eqnarray}
この右辺を丁寧に計算してみると
\begin{eqnarray}
S^2 &=& (a_x^2 b_x^2 + a_x^2 b_y^2 + a_x^2 b_z^2) + (a_y^2 b_x^2 + a_y^2 b_y^2 + a_y^2 b_z^2) + (a_z^2 b_x^2 + a_z^2 b_y^2 + a_z^2 b_z^2)
\nonumber \\
&&- (a_x^2 b_x^2 + a_y^2 b_y^2 + a_z^2 b_z^2 + 2 a_x b_x a_y b_y + 2 a_x b_x a_z b_z + 2 a_y b_y a_z b_z) \\
&=& (a_x^2 b_y^2 + a_x^2 b_z^2) + (a_y^2 b_x^2 + a_y^2 b_z^2) + (a_z^2 b_x^2 + a_z^2 b_y^2)
– (2 a_x b_x a_y b_y + 2 a_x b_x a_z b_z + 2 a_y b_y a_z b_z) \\
&=& (a_y b_z – a_z b_y)^2 + (a_z b_x – a_x b_z)^2 + (a_x b_y – a_y b_x)^2
\end{eqnarray}
となります。
すなわち、
\begin{eqnarray}
S^2 &=& |\vec{n}|^2 \\
S &=& |\vec{n}|
\end{eqnarray}
が言えました。

実は。。。

このように、2つのベクトル $\vec{a}, \vec{b}$ から $\vec{n}$ を作り出す演算はベクトルの「外積(がいせき)」と呼ばれており、
\begin{eqnarray}
\vec{n} &=& \vec{a} \times \vec{b}
\end{eqnarray}
と書かれることが多いです。

このような演算は高校では習わないので、あからさまに答案に書くことは避けたほうが良いでしょう。
しかし、例えば、2つのベクトル $\vec{a}, \vec{b}$ が与えられた時に(答案には書かずに、別のところで計算して)「ここでベクトル $\vec{n} = (n_x, n_y, n_z)$ を考える。これは、2つのベクトルに各々直交していることが、実際に $\vec{a} \cdot \vec{n} = 0, \vec{b} \cdot \vec{n} = 0$ となることから分かる 。」という風に記述すれば、どのように見つけたかは(採点者には)分からないけれども、そのようなベクトルを(解答者が)見つけたことは事実ですから、減点の対象にはならないと考えられます。

また、$\vec{n}$ の長さが $\vec{a}, \vec{b}$ の張る平行四辺形の面積と等しいことは、「検算」にも使えるでしょう。

その意味で、知っておいて損のない知識の1つだと思いますが、皆さんはどのように思われるでしょうか?

↓この記事のダウンロードはこちらから