非直交基底の成分分解†
n 次元数ベクトル空間 Kn に、
必ずしも直交せず、正規化もされていない基底 {bi} を取る。
基底であるから任意のベクトル x を成分分解して、
x=i=1∑nxibi(∗)
と表せるのであるが、この係数 {xi} をどうやって求めたらよいかというのがここでの問題。
もしも {bi} が正規直交基底であったなら、xi=(bi,x) として簡単に求まるのであるが、これは、
(bi,x)=j=1∑nxj(bi,bj)=j=1∑nxjδij=xi
すなわち、
(bi,bj)=δij
となることをうまく使っているのだった(他の項がゼロになり、求めたい項の係数が1になる)。
{bi} が必ずしも正規直交でない場合にはこれが成り立たないため困るののだけれど、もし任意の j に対して
(βi,bj)=δij
を満たす βi を発見できれば、やはり (βi,x)=xi とするだけで求められる! というのが以下の道筋となる。
逆基底†
基底 {bi} の「逆基底(仮)」をここでは {βi} と書くことにする。任意の i,j に対して
(βj,bi)=δij
を満たすことが逆基底(仮)の定義である。下で解説する通り、数学的には βj† が本来の逆基底であるが、ここでは分かりやすさを優先して「逆基底(仮)」を定義しておく。
つまり、βj は
- (βj,bj)=1
- bj 以外と直交
つまり、bj 以外で張られる空間の直交補空間の元で、その bj 方向の成分が 1/∥bj∥ であるようなベクトルである。そして、
- 一般に bj と平行ではない
- bj が bj 以外の基底と直交しないのだから当然
- {bi} が正規直交なら βj=bj と取れる。
- 一般には、βj=kbj ただし ∣k∣=1 である。
たとえば n=3 のとき、β1 は b2,b3 が張る空間 V2,3 の直交補空間 V2,3⊥ のベクトルで、その b1 方向成分の長さが 1/∥b1∥ であるようなものだ。
成分を求めるには†
上述のとおり、逆基底(仮)が求まりさえすれば、
(βj,x)=xj
のように簡単に成分を求められる。
逆基底の求め方(逆行列を使う)†
(βi,bj)=βi†bi=δij
であるから、βi† を並べた行列 B† と、
bi を並べた行列 B とを掛け合わせれば、
B†B=β1†β2†β3†⋮b1b2b3⋯=(β1,b1)(β2,b1)⋮(β1,b2)(β2,b2)⋯⋱=δ11δ21⋮δ12δ22⋯⋱=E
のように単位行列となる。すなわち、
B†=B−1つまりβ1†β2†β3†⋮=b1b2b3⋯−1
の関係がある。
つまり、基底ベクトルを列ベクトルに持つ行列の逆行列を求め、
その列ベクトルのエルミート共役を取れば逆基底ベクトルを求められる。
(基底ベクトルは一次独立であるから B には必ず逆行列が存在し、逆基底ベクトルも必ず存在する)
次の4つのベクトルは R4 の基底となる。
1234,22−1−1,1111,0110
これらを列ベクトルとする行列を作り、その逆行列を求めよう。
( B E )=123422−1−1111101101000010000100001∼10002−2−7−91−1−2−301101−2−3−4010000100001∼10002−2−14−21−1−4−1012−11−2−6−10100002−10001∼10000−2000−13011−5−2−1−28111−7−1002−10001∼20000−6000−33023−5−2−2−68123−7−1002−10001∼20000−60000602−2−10−2−221612−4−14−1024−10001∼20000−6000060000−2−111111−3−9−1−139−11−1−51∼( E B† )
ここから、
β1=21−11−11, β2=61−13−31, β3=6111−99−5, β4=21−111−1
を得る。
例えば、x=−1−4714 と置くと、
x===i=1∑4(βi,x)bi21−11−11⋅−1−47141234+61−13−31⋅−1−471422−1−1+6111−99−5⋅−1−47141111+21−111−1⋅−1−47140110成分分解21234−322−1−1+31111−50110=−1−4714
が成り立ち、正しく成分分解されることを確認できる。
逆基底の求め方(外積を使う)†
{bi} を順に横に並べ、j 番目だけ x
に置き換えた行列式を作り、これを Kn→K の写像 Tj とみなす。
Tj(x)=b1 b2 … j∧x … bn
この Tj は線形なので、
その表現行列である 1×n 行列(n 次元横ベクトル)を tj† と書けば
Tj(x)=tj†x=(tj,x)
のように標準内積で表せる。(行列式を展開すればこの形になるということ)
実はこの tj から、
βj=Tj(bj)1tj
とすることで βj を求められる。
- i/=j のとき (tj,bi)=Tj(bi)=0 ← 行列式の内に同じ行ベクトルが2回現れるから
- i=j のときは (tj,bi)=Tj(bi)=Tj(bj)
に注意せよ(βj は内積の左側に入れるので複素共役の 1/Tj(bj) になっている)。
どこに外積が出てきた?†
n−1 個の n 次元ベクトル a1,a2,…,an−1 のベクトル積(外積) a1×a2×⋯×an−1 は、
x a1 a2 … an−1=(a1×a2×⋯×an−1,x)
を満たすベクトルとして定義される。
この定義を用いると、
tj=(−1)j−1b1×b2×…(j番目欠)⋯×bn
βj= b1 b2 … bn (−1)j−1b1×b2×…(j番目欠)⋯×bn
と表せる。
- n 次元のベクトル積は n−1 個のベクトルの積のみが定義される。n−1 個以外は定義されない。
- 符号の (−1)j−1 は、行列式内で x の列を一番左に持ってくるのに必要な互換の回数に対応する。
上の例の b1,b2,b3,b4 に対して、
T1(b1)=T2(b2)=T3(b3)=T4(b4)=123422−1−111110110=6← 分母は共通になる
T1(b1)T1(x)=61xyzw22−1−111110110=21(−x+y−z+w)=21(1−11−1)xyzw より
β1=21−11−11
T2(b2)T2(x)=611234xyzw11110110=61(−x+3y−3z+w)=61(−13−31)xyzw より
β2=61−13−31
T3(b3)T3(x)=61123422−1−1xyzw0110=61(11x−9y+9z−5w)=61(11−99−5)xyzw より
β3=6111−99−5
T4(b4)T4(x)=61123422−1−1xyzw0110=21(−x+y+z−w)=21(−111−1)xyzw より
β4=21−111−1
このように、上記と同じ結果が得られる。
ここでは省いたが実は行列式を求めるところは手計算でまじめにやるとかなり大変なので、
いっぺんにすべてを求めるのであれば逆行列を使う方がずっといい。
直交しない空間への成分分解†
全体空間が Kn=V+˙W のように必ずしも直交しない2つの部分空間の直和で書けるとき、
V の基底を b1,b2,…,bm
W の基底を bm+1,bm+2,…,bn
とすれば、両者を合わせた b1,b2,…,bn は Kn の基底となる。
対応する逆基底を β1,β2,…,βn とすると、
任意の x∈Kn は
x=i=1∑n(βi,x)bi=∈Vi=1∑m(βi,x)bi +∈Wi=m+1∑n(βi,x)bi=xV+xW
のように V 成分と W 成分とに一意に分解できる。
さらに、
xV=i=1∑m(βi,x)bi=i=1∑mbi(βi,x)=PVi=1∑mbiβi† x=PVx
として V への射影演算子が得られる。
PV=i=1∑mbiβi†
正規直交基底の時には βi=bi と取れるため、
以前に見た通り
PV=i=1∑mbibi†
に戻って、つじつまが合ってる。
この式を、「逆基底 βi を掛けて bi の係数を求めてから bi を掛ければ成分そのものが得られるから、必要な成分を全部集めれば射影が求まる」と読めるようになっていればOKだ。
逆格子の基本ベクトル†
固体物理において3次元空間の「逆格子の基本ベクトル」を求めるための公式として、
β1′=2π⋅b1⋅(b2×b3)b2×b3= 2π (b1を除いた外積とb1の内積) (b1を除いた外積)
のようなものを学ぶが、これは係数 2π を除けば上記の逆基底そのものである。
波数ベクトル k が基本逆格子ベクトルの整数倍の和であり、
k=lβ1′+mβ1′+nβ1′
実ベクトル x が基本格子ベクトルの整数倍の和であるとき、
x=l′b1+m′b2+n′b3
両者の積は、
k⋅x=(lβ1′+mβ2′+nβ3′)⋅(l′b1+m′b2+n′b3)=2π(lβ1+mβ2+nβ3)⋅(l′b1+m′b2+n′b3)=2π(ll′β1⋅b1+mm′β2⋅b2+nn′β3⋅b3他は消える+ 0)=2π(ll′+mm′+nn′)
となって、
eik⋅x=1
を得る。
すなわち、波数空間に於いて逆格子ベクトルの格子点に来る波数の平面波は
実空間の格子点上で位相がぴったり揃うことになり、
これが固体物理のいろんなところで役に立つことになる。
本来の逆基底†
上では「直交するベクトル」という感覚や逆格子ベクトルとの整合性を重視して、
縦ベクトルである逆基底(仮) βi を考えたが、
数学的には逆基底はそのエルミート共役、すなわち横ベクトルとして定義される。
すなわち、
bi=βi†
このとき、(βi,x)=βi†x=bix であるから、
逆格子の定義は
bibj=δij
逆行列や外積を用いた定義は、
bi=i番目だけが1(0 0 … 1 …0)(b1 b2 … bn)−1=b1 b2 … bn(−1)i−1b1×b2×…(i番目欠)⋯×bn
となる。このように定義された逆基底は「双対基底」とも呼ばれる。