2つのベクトルが張る平面の法線ベクトルを求める超簡単な方法(高校生もエンジニアも必見)
<前置き>こんなご時世、芸能人なら面白動画を作ってちょっとは世の中の役に立ったりしてるが、そういうセンスがゼロの私が代わりにできることを考えた結果、表題のような話を書こうと思ったのだ。もし今の高校数学のカリキュラムに「外積」が入っていたらこの話は必要ないのだが…その場合でもエンジニアでこの手の問題に手を焼く人は読んで欲しい(というか、私自身が周りのエンジニアからけっこうこの手の質問をされるので、知らない人がそこそこいるはずだと思う)。<設問>まぁ表題通りだが、ベクトルaとベクトルbがあって(3次元空間に話を限定)、その双方に垂直なベクトルcはどうやって求めれば「簡単」か、というもの。勿論、aとbが張る平面の法線ベクトルを求める、としても同じ(末尾に手書きの図を貼っておくので適宜参照)。<解けない人が嵌るワナ>「外積」を知らずにこれを普通に解こうと思えば、「内積」を使うことになる。つまり、・aとcの内積=0・bとcの内積=0と方程式を2本立てる。ここまではいい。問題はもう1本方程式を立てないと解けないってこと。そこで、法線ベクトルの正規化条件(これは全く本質的ではないが)を入れる。それは、・cの長さ=1である。しかし、この3本目の方程式だけ2次になるので、原理的には解けるけど実際やるとなると大変。私が相談を受ける人も必ずこの手順で嵌ってしまう。<嵌らずに簡単に解く方法>内積を使うから嵌るのであって、外積を使えば方程式すら解かずに答えに辿り着ける。まず「外積」が何であるかは後回しにして、やり方だけ解説。まず、a、b、cの成分をそれぞれ、a=(a1,a2,a3)b=(b1,b2,b3)c=(c1,c2,c3)とする。そして、a1 a2 a3 と書いた後にもう1回 a1 と書く。その下に、b1 b2 b3 と書いた後にやはり b1 と書く。下のような感じ。a1 a2 a3 a1b1 b2 b3 b1で、ここから c1,c2,c3 を求めるのだが、まずc1は真ん中の4つの数字を行列だと思って、行列式を計算すればいい。c1 = a2*b3 - a3*b2c2 は右の4つから同様に、c2 = a3*b1 - a1*b3c3 は左の4つから同じく、c3 = a1*b2 - a2*b1で求められる。はっきり言って超簡単。<で、外積って…?>そもそも上の計算手順が、aとbの「外積」の定義である。ただそんだけ。だから外積なんて言葉を覚えなくても、やり方だけ覚えておけばいい。<最後に>例えば大学入試とかだと「法線ベクトル求めておしまい」なんてことはなく、それはほんの序の口。でもそこで躓いてしまうとお話にならない。だから外積でちゃちゃっと求めちゃえばいい。外積は理系大学の1年生では必ず習うので、「ロピタルの定理」みたいな「裏でしか使えない裏技」ではないので正々堂々使えばいい。もし「外積」って言葉を使うのに抵抗があるなら、(所与の)aとbの両ベクトルの双方に直交するベクトルの「ひとつ」はcであるから、と何かたまたま見つけたっぽく書いておけばいい。実際この方法で求めたcとa、cとbの内積がゼロであることは簡単に示せるのだから。