Tech Notes

n次元ベクトルが作る三角形の面積

座標空間上の2点と原点が作る三角形の面積。二次元の場合は
$$\frac{1}{2}|{a_1}{b_2}-{a_2}{b_1}|$$
というたすきがけの形が高校数学Bで有名だが、成分表示の形の式をn次元に拡張してみた。

ベクトル表示の形だと

$$\frac{1}{2}\sqrt{{|\vec{a}|^2}{|\vec{b}|^2}-(\vec{a}\cdot\vec{b})^2}$$

になるのも有名だ。これは

$$S=\frac{1}{2}|\vec{a}||\vec{b}|sin\theta$$

$$sin^2\theta+cos^2\theta=1$$

$$\vec{a}\cdot\vec{b}=|\vec{a}||\vec{b}|cos\theta$$

の3式で単純に代入していけば容易に導出できる。

どうしてこれがたすき掛けの綺麗な形になるのかを考えようと思った。

これを成分表示に直すことを考える。

$$\vec{a}=(a_1,a_2,...a_n),\vec{b}=(b_1,b_2,...b_n)$$

とする。
とりあえずシグマで展開。
$$|\vec{a}|^2 |\vec{b}|^2$$

$$=(\sum_{i=1}^{n}{a_i ^2})(\sum_{i=1}^{n}{b_i ^2})$$

$$=(\sum_{i=1}^{n}a_i ^2(\sum_{j=1}^{n}{b_j ^2}))$$

$$=\sum_{i=1}^{n}\sum_{j=1}^{n}{a_i ^2 b_j ^2}$$

こうなる。

$$(\vec{a}\cdot\vec{b})^2$$

$$=(\sum_{i=1}^{n}{a_i b_i})^2$$

$$=(\sum_{i=1}^{n}{a_i b_i})(\sum_{i=1}^{n}{a_i b_i})$$

$$=(\sum_{i=1}^{n}{a_i b_i}(\sum_{j=1}^{n}{a_j b_j}))$$

$$=\sum_{i=1}^{n}\sum_{j=1}^{n}{a_i b_i a_j b_j}$$

合わせると

$${|\vec{a}|^2}{|\vec{b}|^2}-(\vec{a}\cdot\vec{b})^2$$

$$=\sum_{i=1}^{n}\sum_{j=1}^{n}{a_i ^2 b_j ^2}-\sum_{i=1}^{n}\sum_{j=1}^{n}{a_i b_i a_j b_j}$$

$$=\sum_{i=1}^{n}\sum_{j=1}^{n}{a_i ^2 b_j ^2 - a_i b_i a_j b_j}$$

こう

しかしこれだとまだn=2の時に綺麗な形になることが見えないので、何か面白い変形がしたい。
そこで試金石としてn=2の場合を計算してみると、j=iの時の項が消えて

$$(a_1 ^2 b_2 ^2 - a_1 b_1 a_2 b_2) + (a_2 ^2 b_1 ^2 - a_2 b_2 a_1 b_1)$$

$$= (a_1 b_2) ^2 - 2 a_1 b_1 a_2 b_2 + (a_2 b_1) ^2$$

$$= (a_1 b_2 - a_2 b_1) ^2$$

となり、省略していた外側のルートと打ち消し合うことが分かる。
実際に計算してみると分かるが、iとjを入れ替えた項の和が2乗の形になり、j=iの場合は0になる。

$$(a_i ^2 b_j ^2 - a_i b_i a_j b_j) + (a_j ^2 b_i ^2 - a_j b_j a_i b_i)$$

$$= (a_i b_j) ^2 - 2 a_i b_i a_j b_j + (a_j b_i) ^2$$

$$= (a_i b_j - a_j b_i) ^2$$

$$(a_i ^2 b_i ^2 - a_i b_i a_i b_i) + (a_i ^2 b_i ^2 - a_i b_i a_i b_i) = 0$$

そこで、iとjを入れ替えた項を合わせるために、2重シグマを変形する。

$$\sum_{i=1}^{n}\sum_{j=1}^{n}{(a_i ^2 b_j ^2 - a_i b_i a_j b_j)}$$

$$=\sum_{i=1}^{n}\sum_{j=1}^{i-1}(
(a_i ^2 b_j ^2 - a_i b_i a_j b_j)
+(a_j ^2 b_i ^2 - a_j b_j a_i b_i)
)
+\sum_{i=1}^{n}{(a_i ^2 b_i ^2 - a_i b_i a_i b_i)}$$

$$=\sum_{i=1}^{n}\sum_{j=1}^{i-1}
((a_i ^2 b_j ^2 - a_i b_i a_j b_j)
+(a_j ^2 b_i ^2 - a_j b_j a_i b_i))$$

j<iとなる場合に限定し、その代わりにiとjを入れ替えた項も入れ込む。
そうするとi=jの場合を数え損ねてしまうので別途加えるが、その部分は結局は0になる。

$$\sum_{i=1}^{n}\sum_{j=1}^{i-1}
((a_i ^2 b_j ^2 - a_i b_i a_j b_j)
+(a_j ^2 b_i ^2 - a_j b_j a_i b_i))$$

$$=\sum_{i=1}^{n}\sum_{j=1}^{i-1}
((a_i b_j) ^2 - 2 a_i b_i a_j b_j +(a_j b_i) ^2)$$

$$=\sum_{i=1}^{n}\sum_{j=1}^{i-1}
(a_i b_j - a_j b_i) ^2$$

このようにして非常に分かりやすい式になった。たすき掛けの2乗の総和ということになる。
n=2の時は項が一つだけになり、ルートと打ち消し合うことが非常に分かりやすい。
逆にn>2のときは、ルートの中に複数の二乗が現れ、打ち消し合うことは出来なくなる。
このように書いても良いかもしれない。

$$\sum_{i,j,i>j}(a_i b_j - a_j b_i) ^2$$

最終的にこうなる。

$$S=\frac{1}{2}\sqrt{\sum_{i,j,i>j}(a_i b_j - a_j b_i) ^2}$$