基底ベクトルの変換

物理でもよく使う話。

[前の記事へ]  [物理数学の目次へ]  [次の記事へ]


基本ベクトル

 前回は、\( n \)個の線形独立なベクトルは\( n \)次元空間を表現することができるという話だった。今回はそれを使った話をしよう。

 線形代数はこの辺りで「ベクトル解析」と呼ばれる分野との間に接点を持ち始める。まぁ、ベクトルのイメージで話をしているのだから当然だ。それぞれの分野で説明を押し付けあっていても仕方が無いので、ここで簡単なことだけ説明を入れてしまおう。線形代数の教科書では軽い扱いになることが多いのだが、物理では割りと使う機会の多い内容だから無駄足にはなるまい。

 さて、我々が通常使う座標軸というのは、互いに直交していて、目盛りの間隔も全ての軸で共通になっているだろう。まぁ違うこともあるが、大抵はそうだ。\( n \)次元空間の中での位置を表したいなら、直交する\( n \)本の直線で座標軸を引いてやり、それに従って位置の各成分を表示することになる。そういうのを「直交直線座標」あるいは「デカルト座標」と呼ぶ。

豆知識: ここで単に「直交座標」ではなくわざわざ「直交直線座標」と書いたのは、 「直交曲線座標」というものもあるからである。  それは、それぞれの軸は曲線から出来ているのにどこを見ても互いに直交しているという、 初めて聞くと「そんなもの本当にあるの?」と思えるようなものだ。  いや、そんなに珍しくもない。  楕円座標や双曲座標というものがその例である。  極座標も一つの軸は直線で出来てはいるがその一種だとも言えるかな。  そういう区別はあるものの、 何について話し合っているかが相手と分かり合えていれば単に「直交座標」と呼ぶことも多い。  それくらいの融通は利いてもいいだろう。
 例えば 3 次元内での位置をベクトルの表記を使って\( ( 3, 5, 4 ) \)などと表すという具合である。この\( ( 3, 5, 4 ) \)というベクトルを仮に\( \Vec{A} \)としておこう。このベクトル\( \Vec{A} \)は次のように表すことができる。
\[ \begin{align*} \Vec{A} \ =\ 3\,\Vec{e}_x \ +\ 5\,\Vec{e}_y \ +\ 4\,\Vec{e}_z \tag{1} \end{align*} \]
 ここで使った\( \Vec{e}_x \)\( \Vec{e}_y \)\( \Vec{e}_z \)というのは、座標軸に沿った 3 つの単位ベクトルである。
\[ \begin{align*} \Vec{e}_x \ &=\ (1, 0, 0 ) \\ \Vec{e}_y \ &=\ (0, 1, 0 ) \\ \Vec{e}_z \ &=\ (0, 0, 1 ) \end{align*} \]
 これまでも自然に使ってきた用語ではあるが改めて説明しておくと、このような、座標軸に沿った単位ベクトルの組のことを「基本ベクトル」と呼ぶ。
: しかしながらこの基本ベクトルという用語はあまり一般の学術用語としては通用しないかも知れない。  教科書によって意味合いが少しずつ違っていたりするし、それほど重要な概念でもない。  使うのをわざと避けているように見える教科書にもよく出会う。  そういう教科書ではその場しのぎで「単位ベクトル」という用語で代用しているようだ。  これから話そうとしている「基底ベクトル」と混同するのを避けようという意図があるのかも知れない。  実際、混同されてしまって誤用されていることも多いのである。
 念の為に用語の意味をまとめておこう。

単位ベクトル長さが 1 のベクトル。
基本ベクトル各座標軸に沿った単位ベクトル。
基本単位ベクトル基本ベクトルの別称。たまに見かける。
基底ベクトルこれから説明する。

 基本ベクトルというのは互いに直交しているとは限らない。考えている空間に引かれた座標軸に沿っているということがポイントである。ある一つの成分だけが 1 で、残りの成分はすべて 0 というベクトルの集まりである。

 しかししばらくの間はデカルト座標が常に背景に存在するものとして話を進めたい。だから今回の私の話に限っては、基本ベクトルはデカルト座標に沿っていて、それぞれが直交しているというイメージで固定していてくれると助かる。まぁ、このように、それぞれの教科書の都合に合わせて結構 いい加減に 柔軟に使われる傾向があるのが基本ベクトルである。

 これは個人的な印象に過ぎないが、専門家は基本ベクトルという用語が嫌いな人が多いんじゃないかなぁ、と思うことがある。


基底ベクトル

 さて、元々直交するように引いてあった座標軸は、線形変換によって方向を変えるようになる。向きだけでなく、目盛りの間隔も伸びたり縮んだりするだろう。これは主要な軸だけに起きることではなく、全空間に引かれていた方眼が同じように形を変えて、空間を覆い尽くすことになるのである。

 ということは、この傾いた座標「斜交座標」を使っても位置を表すことができるのではないだろうか。直交する座標軸に頼ることは必ずしも必要ではないということだ。

 2 次元では少し物足りないので 3 次元で話をしよう。3 つの基本ベクトルが線形変換によってそれぞれ\( \Vec{e}'_x \)\( \Vec{e}'_y \)\( \Vec{e}'_z \)へと移動した後のことを考える。これらを使って先ほどと同じ 3 次元ベクトル\( \Vec{A} \)を次のような形で表し直す事ができるだろう。

\[ \begin{align*} \Vec{A} \ =\ c\sub{1}\,\Vec{e}'_x \ +\ c\sub{2}\,\Vec{e}'_y \ +\ c\sub{3}\,\Vec{e}'_z \tag{2} \end{align*} \]
 ここで注意しておきたいのは、今は座標軸だけを変換することを考えているということだ。空間内の他の色んなものはそのままである。ベクトル\( \Vec{A} \)の位置もそのままである。軸の引き方だけを変えてみるのである。今回は、前回までの線形変換とは少し違う話をしていると思ってほしい。

 この時、(2) 式に出てくる 3 つの係数\( c\sub{1} \)\( c\sub{2} \)\( c\sub{3} \)は先ほどの (1) 式での 3 つの値\( ( 3, 5, 4 ) \)とは当然違った値になるだろう。しかしこれらの新しい係数の部分だけを抜き出して\( ( c\sub{1} , c\sub{2} , c\sub{3} ) \)のように並べて位置を表わしてもいいわけだ。どちらも同じ位置を表している。

 ただしこういうことが出来るためには、平行六面体の体積が 0 に潰れるようなことになっていてはいけない。言い方を変えれば、ベクトル\( \Vec{e}'_x \)\( \Vec{e}'_y \)\( \Vec{e}'_z \)の 3 つの組は線形独立でないといけないということだ。逆の言い方もできるだろう。これらのベクトルが線形独立なら (2) 式の形に表現できるということである。ベクトル\( \Vec{A} \)の代わりにどんなベクトルを考えても同じことが言える。

 任意のベクトルを (2) 式のような形に表すことのできるベクトル\( \Vec{e}'_x \)\( \Vec{e}'_y \)\( \Vec{e}'_z \)の組を「基底ベクトル」または単に「基底」と呼ぶ。要するに、線形独立なベクトルはどんなものでも基底ベクトルとして使えるのである。

 以上のことから、基本ベクトルも基底ベクトルの一種であると言えるだろう。これが基本ベクトルと基底ベクトルがよく混同されて誤用される理由でもある。名前も似ているしね。


座標変換

 空間内にあるものの場所を変えずに、座標の線だけを引き直してやる。するとその前後で、位置を表すための値が変化する。同じ場所であってもその位置を表現する仕方が変わってしまうわけだ。

 座標をデタラメに引き直したのでない限りはその前後を結びつける法則がきっとあるはずで、その法則に従って旧座標から新座標の値を求める作業のことを「座標変換」と呼ぶ。学問的な表現ではないが、分かりやすかろう。

 先ほど考えたように線形変換を使って座標軸を引き直すというのは、座標変換の中でも最も単純な部類の話である。それでもかなり広範囲に応用の効く話であるからバカにしないで真面目に取り組むべきだ。例えば特殊相対性理論というのはまさにこれで、4 次元の中で座標の線形変換をするのである。

 基底ベクトルを好きなように選んで、それに従って座標を引き直すのは座標の線形変換である。今回のタイトルである「基底ベクトルの変換」というのはそのことを表している。同じことを「線形座標変換」とか「基底変換」と呼んだりもする。


計算方法

 では具体的にどんな方法で座標変換の計算をしたらいいのかを考えてみよう。そのためにここまでに使った記号をリセットしてやり直すことにする。

 3 次元で考えよう。まず、ベクトル\( \Vec{A} \)をデカルト座標で表現したものを\( ( x, y, z ) \)だとする。この同じベクトル\( \Vec{A} \)が新座標のもとではどのように表されることになるかを知りたいのである。それを\( ( x', y', z' ) \)と表すことにする。

 新座標を作るためには 3 つの基底を決める必要があるが、それを次のように表現しておこう。

\[ \begin{align*} \Vec{p} \ &=\ (p_x,\ p_y,\ p_z ) \\ \Vec{q} \ &=\ (q_x,\ q_y,\ q_z ) \\ \Vec{r} \ &=\ (r_x,\ r_y,\ r_z ) \end{align*} \]
 ベクトル\( \Vec{A} \)は、新しい座標を使って次のように表されることになる。
\[ \begin{align*} \Vec{A} \ =\ x' \Vec{p} \ +\ y' \Vec{q} \ +\ z' \Vec{r} \end{align*} \]
 しかしこの\( \Vec{A} \)はデカルト座標を使った場合には次のように表される。
\[ \begin{align*} \Vec{A} \ =\ x\, \Vec{e}_x \ +\ y\, \Vec{e}_y \ +\ z\, \Vec{e}_z \end{align*} \]
 どちらも同じものを表しているので、次のように書けるだろう。
\[ \begin{align*} x' \Vec{p} \ +\ y' \Vec{q} \ +\ z' \Vec{r} \ =\ x\, \Vec{e}_x \ +\ y\, \Vec{e}_y \ +\ z\, \Vec{e}_z \end{align*} \]
 これはこういうことではなかろうか。
\[ \begin{align*} x' \left(\begin{array}{l} p_x \\[4pt] p_y \\[4pt] p_z \end{array} \right) \ +\ y' \left(\begin{array}{l} q_x \\[4pt] q_y \\[4pt] q_z \end{array} \right) \ +\ z' \left(\begin{array}{l} r_x \\[4pt] r_y \\[4pt] r_z \end{array} \right) \ =\ x \left(\begin{array}{l} 1 \\[4pt] 0 \\[4pt] 0 \end{array} \right) \ +\ y \left(\begin{array}{l} 0 \\[4pt] 1 \\[4pt] 0 \end{array} \right) \ +\ z \left(\begin{array}{l} 0 \\[4pt] 0 \\[4pt] 1 \end{array} \right) \end{align*} \]
 行列の計算方法でまとめ直すと、こういうことなのである。
\[ \begin{align*} \left( \begin{array}{lll} p_x & q_x & r_x \\[4pt] p_y & q_y & r_y \\[4pt] p_z & q_z & r_z \end{array} \right) \left(\begin{array}{l} x' \\[4pt] y' \\[4pt] z' \end{array} \right) \ =\ \left( \begin{array}{lll} 1 & 0 & 0 \\[4pt] 0 & 1 & 0 \\[4pt] 0 & 0 & 1 \end{array} \right) \left(\begin{array}{l} x \\[4pt] y \\[4pt] z \end{array} \right) \end{align*} \]
 右辺の単位行列は消してしまってもいい。また左辺をすっきりさせるためには、左辺にある正方行列の逆行列を作って両辺に左から掛けてやればいいだろう。
\[ \begin{align*} \left(\begin{array}{l} x' \\[4pt] y' \\[4pt] z' \end{array} \right) \ =\ \left( \begin{array}{lll} p_x & q_x & r_x \\[4pt] p_y & q_y & r_y \\[4pt] p_z & q_z & r_z \end{array} \right)^{\!\!\!-1} \left(\begin{array}{l} x \\[4pt] y \\[4pt] z \end{array} \right) \end{align*} \]
 これが知りたかったことの答えだ。もともとデカルト座標で\( (x, y, z ) \)で表されていたものが新しい基底のもとでどのように表されるかを知りたければ、基底を縦のベクトルとして行列の中に放りこんでやったものを作り、その逆行列を元の座標に掛ければ終わりである。

 これはどういう意味なのだろうか。ここに出てきた逆行列の意味を考えると、新しい基底ベクトル\( \Vec{p} \)\( \Vec{q} \)\( \Vec{r} \)を、それぞれにデカルト座標の基本ベクトル\( \Vec{e}_x \)\( \Vec{e}_y \)\( \Vec{e}_z \)の位置へと戻すような線形変換である。そういうものを使ってベクトル\( \Vec{A} \)を線形変換してみたのと同じ意味になっているとは・・・?

 これについては読者が暇つぶしに考えてみればいいだろう。私の下手な解釈を書けばかえって誤解を招きそうだ。たまたまそういう計算方法になっているのだとして受け入れるのも一つの手であるし、自分なりのイメージを工夫してみてもいいだろう。


もう少し一般的にならないか

 たった今考えた計算方法は、もともとデカルト座標で表現されていた座標を変換する方法だった。これをもう少し拡張できないだろうか。

 元々、デカルト座標ではなく\( \Vec{s} \)\( \Vec{t} \)\( \Vec{u} \)という 3 つの基底による座標系での値を持っていたとしよう。そこから直接、別の基底で表された新座標へ変換する方法は導けるだろうか?

 考える内容は先ほどとほとんど変らないのである。途中を省略しても大丈夫だと思うが、次のような関係式が作られるだろう。

\[ \begin{align*} \left( \begin{array}{lll} p_x & q_x & r_x \\[4pt] p_y & q_y & r_y \\[4pt] p_z & q_z & r_z \end{array} \right) \left(\begin{array}{l} x' \\[4pt] y' \\[4pt] z' \end{array} \right) \ =\ \left( \begin{array}{lll} s_x & t_x & u_x \\[4pt] s_y & t_y & u_y \\[4pt] s_z & t_z & u_z \end{array} \right) \left(\begin{array}{l} x \\[4pt] y \\[4pt] z \end{array} \right) \end{align*} \]
 これを少し変形して出来上がりである。
\[ \begin{align*} \left(\begin{array}{l} x' \\[4pt] y' \\[4pt] z' \end{array} \right) \ =\ \left( \begin{array}{lll} p_x & q_x & r_x \\[4pt] p_y & q_y & r_y \\[4pt] p_z & q_z & r_z \end{array} \right)^{\!\!\!-1} \left( \begin{array}{lll} s_x & t_x & u_x \\[4pt] s_y & t_y & u_y \\[4pt] s_z & t_z & u_z \end{array} \right) \left(\begin{array}{l} x \\[4pt] y \\[4pt] z \end{array} \right) \end{align*} \]
 つまりこういうことだ。まず、基底である\( \Vec{s} \)\( \Vec{t} \)\( \Vec{u} \)を列ベクトルとして含む行列を作り、そのまま掛ける。これは元の座標の値を、もしデカルト座標に変換したならばどう表されるか、という変換をしたことになる。そこを経由して、あとは先ほどと同じことをしたわけである。なるほど、理にかなっている。

 今回はこれで終わり。単純な内容を長々と書いてきたわけだが、座標変換なんて実は大したことはないんだと感じてもらえれば私としては成功である。