ベクトルの共変性と反変性

多重線型代数やテンソル解析における共変性（英: covariance）と反変性（英: contravariance）とは、ある幾何学的または物理的な対象に基底変換を施した際に、それがどのように変化をするかを表す。物理学では、基底は基準とする座標系の軸としばしば同一視される。 座標系のスケール変換は単位系の変更に関連する。たとえば、メートル m からセンチメートル cm にスケールを変更すると（つまり長さのスケールを 100 で割ると）、速度ベクトルの成分は 100 倍される。このように、座標系のスケール変換をしたとき、それとは逆 にベクトルの成分が変換される振る舞いを示すことを反変性という。結果として、ベクトルは長さや長さと他の次元の積の次元を持つ。対照的にその双対ベクトル（余ベクトルと呼ばれる）の次元は一般に、長さの逆かそれに別の次元を掛けたものになる。 双対ベクトルの例としては勾配が挙げられる。勾配は空間微分によって定義され、長さの逆の次元を持つ。双対ベクトルの成分は座標系のスケールと同様に 変換される。このような振る舞いを共変性という。ベクトルおよび余ベクトルの成分は、一般の基底の変換に対しても同じような規則で変換される。 ベクトルが基底に依存しない不変量であるためには、ベクトルの成分は基底の変化を補うように反対に変換されなければならない。言い換えれば、ベクトルの成分を変換する行列は基底を変換する行列の逆行列になっていなければならない。このようなとき、ベクトルの成分は反変であるという。反変な成分を持つベクトルにはたとえば、観測者に対する物体の相対的な位置や、速度、加速度、躍度など位置の時間微分がある。アインシュタインの縮約を用いると、反変成分は上付き添字を用いて以下のように表される。 v = v i e i {\displaystyle {\boldsymbol {v}}=v^{i}{\boldsymbol {e}}_{i}} 余ベクトルが基底に依存しないためには、余ベクトルの成分は基底の変換に対して、同じ余ベクトルとして表されるように、共に変化しなければならない。つまり、余ベクトルの変換は基底の変換と同じ行列によってなされる必要がある。余ベクトルの成分は共変であるという。共変ベクトルは、関数の勾配としてしばしば現れる。共変成分は下付き添字を用いて以下のように表される。 v = v i e i {\displaystyle {\boldsymbol {v}}=v_{i}{\boldsymbol {e}}^{i}} 物理学や幾何学においては、円筒座標や球座標などの曲線座標系（英語版）がしばしば用いられる。空間の各点でのベクトルに対する基底を自然なものに取ることと、ベクトルの共変性および反変性には深い関わりがあり、ベクトルの座標表示が座標系を移したときどのように変化するかということを理解する上で特に重要である。 covariant（共変）および contravariant（反変）という語はジェームス・ジョセフ・シルベスターによって1853年に代数的な不変式論（英語版）の研究のために導入された。 不変式論の文脈ではたとえば、斉次方程式は変数変換に対して反変である。多重線型代数におけるテンソルは共変でありかつ反変であり得る。多重線型代数における共変性および反変性は、圏論における関手に対する用法の特別な例である。 共変性と反変性は一般に、基底変換の下での座標ベクトル（英語版）の成分がどのように変換されるかによって構成される。 V をスカラー体 S 上の n 次元のベクトル空間とし、f = (X1,..., Xn) および f′ = (Y1,..., Yn) を V の基底とする。また f から f′ への基底変換は、n × n の正則行列 A の成分 aij について、次のように与えられる。 f ↦ f ′ = ( ∑ i a 1 i X i , … , ∑ i a n i X i ) = f A {\displaystyle {\boldsymbol {f}}\mapsto {\boldsymbol {f}}'={\biggl (}\sum _{i}a_{1}^{i}X_{i},\dotsc ,\sum _{i}a_{n}^{i}X_{i}{\biggr )}={\boldsymbol {f}}A} (1) 基底 f′ を構成するベクトル Yj はそれぞれ、基底 f を構成するベクトル Xi の線形結合となる。つまり、 Y j = ∑ i a j i X i {\displaystyle Y_{j}=\sum _{i}a_{j}^{i}X_{i}} V のベクトル v は基底 f を構成する各 Xi の線形結合として一意に表される。 v = ∑ i v i [ f ] X i . {\displaystyle v=\sum _{i}v^{i}[{\boldsymbol {f}}]X_{i}.} (2) ここで vi [f] は S のスカラーであり、ベクトル v の基底を f にとったときの成分 (components, entries ) と呼ばれる。v の成分を列ベクトル v[f] で表すと次のようになる： v [ f ] = [ v 1 [ f ] v 2 [ f ] ⋮ v n [ f ] ] {\displaystyle {\boldsymbol {v}}[{\boldsymbol {f}}]={\begin{bmatrix}v^{1}[{\boldsymbol {f}}]\\v^{2}[{\boldsymbol {f}}]\\\vdots \\v^{n}[{\boldsymbol {f}}]\end{bmatrix}}} これにより (2) は行列の積の形に書き直せる。 v = f v [ f ] {\displaystyle v={\boldsymbol {f}}{\boldsymbol {v}}[{\boldsymbol {f}}]} ベクトル v を f′ を基底として表現すると、次のようになる。 v = f ′ v [ f ′ ] {\displaystyle v={\boldsymbol {f}}'{\boldsymbol {v}}[{\boldsymbol {f}}']} ただし、ベクトル v そのものは基底の選び方によらず不変であるので、二つの表現は互いに等しい。 f v [ f ] = v = f ′ v [ f ′ ] {\displaystyle {\boldsymbol {f}}{\boldsymbol {v}}[{\boldsymbol {f}}]=v={\boldsymbol {f}}'{\boldsymbol {v}}[{\boldsymbol {f}}']} このv の不変性と、 (1) の基底 f と f′ の関係を組み合わせて、 f v [ f ] = f A v [ f A ] {\displaystyle {\boldsymbol {f}}{\boldsymbol {v}}[{\boldsymbol {f}}]={\boldsymbol {f}}A{\boldsymbol {v}}[{\boldsymbol {f}}A]} ここから次の変換規則を得る。 v [ f A ] = A − 1 v [ f ] {\displaystyle {\boldsymbol {v}}[{\boldsymbol {f}}A]=A^{-1}{\boldsymbol {v}}[{\boldsymbol {f}}]} また、成分表示では次のように書ける。 v i [ f ′ ] = ∑ j a ~ j i v j [ f ] {\displaystyle v^{i}[{\boldsymbol {f}}']=\sum _{j}{\tilde {a}}_{j}^{i}v^{j}[{\boldsymbol {f}}]} ここで係数 ãij は A の逆行列の i, j 成分である。 ベクトル v の成分は基底を変換する行列 A の逆行列によって変換されるため、ベクトルの成分は基底の変換に対して反変である (transform contravariantly) という。 変換 A によって結び付けられる基底とベクトルの組は、矢印を使った図で次のようにラフに表現される。反対向きの矢印は反変変換を示す： f ⟶ f ′ v [ f ] ⟵ v [ f ′ ] {\displaystyle {\begin{array}{ccc}{\boldsymbol {f}}&\longrightarrow &{\boldsymbol {f}}'\\{\boldsymbol {v}}[{\boldsymbol {f}}]&\longleftarrow &{\boldsymbol {v}}[{\boldsymbol {f}}']\end{array}}} ベクトル空間 V 上の線型汎関数 α は基底 f の成分（係数体 S のスカラー）を用いて一意に表すことができる。 α ( X i ) = α i [ f ] , i = 1 , 2 , … , n {\displaystyle \alpha (X_{i})=\alpha _{i}[{\boldsymbol {f}}],\quad i=1,2,\dotsc ,n} これらの成分は 基底 f の元 Xi 上の α の作用である。 f から f′ への基底変換 (1) の下で、α の成分は次のように変換される。 α i [ f ′ ] = α ( Y i ) = α ( ∑ j a j i X j ) = ∑ j a i j α ( X j ) = ∑ j a i j α j [ f ] {\displaystyle {\begin{aligned}\alpha _{i}[{\boldsymbol {f}}']&=\alpha (Y_{i})\\&=\alpha {\biggl (}\sum _{j}{a^{j}}_{i}X_{j}{\biggr )}\\&=\sum _{j}a_{i}^{j}\alpha (X_{j})\\&=\sum _{j}a_{i}^{j}\alpha _{j}[{\boldsymbol {f}}]\end{aligned}}} (3) α の成分は行ベクトル α[f] を用いて次のように書き表せる： α [ f ] = [ α 1 [ f ] , α 2 [ f ] , … , α n [ f ] ] {\displaystyle {\boldsymbol {\alpha }}[{\boldsymbol {f}}]={\bigl [}\alpha _{1}[{\boldsymbol {f}}],\alpha _{2}[{\boldsymbol {f}}],\dotsc ,\alpha _{n}[{\boldsymbol {f}}]{\bigr ]}} これより (3) の関係は行列の積として書き直すことができる。 α [ f A ] = α [ f ] A {\displaystyle \alpha [{\boldsymbol {f}}A]=\alpha [{\boldsymbol {f}}]A} 線型汎関数 α の成分は基底の変換 A に従って変換されるため、α の成分は基底の変換に対して共変である (transform covariantly) という。 変換 A によって結ばれる基底と共変ベクトルの組は矢印を使った図で次のようにラフに表される。共変性は基底の変換と同じ向きの矢印で表現される： f ⟶ f ′ α [ f ] ⟶ α [ f ′ ] {\displaystyle {\begin{array}{ccc}{\boldsymbol {f}}&\longrightarrow &{\boldsymbol {f}}'\\\alpha [{\boldsymbol {f}}]&\longrightarrow &\alpha [{\boldsymbol {f}}']\end{array}}} 行ベクトルの代わりに列ベクトルを用いて表現する場合、変換規則は転置を用いて次のように表される。 α ⊤ [ f A ] = A ⊤ α ⊤ [ f ] {\displaystyle \alpha ^{\top }[{\boldsymbol {f}}A]=A^{\top }\alpha ^{\top }[{\boldsymbol {f}}]} 多重線型代数 テンソル 基底変換 en:Active and passive transformation