エルミート共役(Hermitian conjugate)とは何か――定義・性質・応用を深掘り

はじめに:エルミート共役とは

エルミート共役(Hermitian conjugate、しばしばダガー記号で A† と表記)は、線形代数や関数解析、量子力学などで極めて重要な概念です。行列や線形作用素に対して「共役転置」を取る操作であり、複素内積空間における双対性(内積と作用素の相互関係)を記述します。本稿では定義から基本的性質、無限次元での注意点、具体例、数値計算上の実装上の留意点、代表的な応用までを深掘りします。

定義と基本的表現

有限次元複素ベクトル空間における行列 A のエルミート共役 A† は、要素ごとに複素共役を取りつつ転置した行列です。成分表示では

(A†)_{ij} = conj(A_{ji})

と表されます。別の言い方をすると A† = (Ā)^T = (A^T)̄ です。

作用素の観点では、内積を <·,·> としたときに A† は次を満たす唯一の作用素です(存在する場合):

<Ax, y> = <x, A†y> (内積の線型性の慣習により表記は文献で異なることがあります)

注意:物理学(Dirac のブラ・ケット表記)では <φ|ψ> を第二引数について線型とする慣習を用いることが多く、その場合は「<φ|Aψ> = < A†φ | ψ >」という形で表現されます。数学系の文献では第一引数が線型という慣習のこともあります。議論を行う際は慣習を明確にすることが重要です。

主要な代数的性質

  • (A†)† = A — 二重適用で元に戻る。

  • (AB)† = B† A† — 共役転置は積の順序を逆にする。

  • (λA)† = λ̄ A† — スカラー λ の共役が外に出る(複素共役)。

  • (A + B)† = A† + B† — 線型性。

  • tr(A†) = conj(tr(A)), det(A†) = conj(det(A)) などトレース・行列式は複素共役の関係を持つ。

  • 行列のノルム(演算子ノルムやフロベニウスノルム)は A と A† で同じ。

特別なクラス:エルミート行列・ユニタリ行列・正規行列

  • エルミート(Hermitian)行列:A† = A。実固有値を持ち、直交(ユニタリ)基底で対角化可能(有限次元の場合、対称行列の複素版)。量子力学では観測量は自己共役(self-adjoint -> 後述)として表され、実数の測定値を持つために重要。

  • ユニタリ(Unitary)行列:U† = U^{-1}。複素直交に相当し、長さ(内積)を保存する変換。

  • 正規(Normal)行列:A†A = AA†。正規行列はユニタリ変換で対角化可能(スペクトル定理)。エルミート行列とユニタリ行列はいずれも正規行列の例。

成分例と数値的な計算

2×2 行列の例:

A = [[1+2i, 3-4i],[5+0i, -i]] とすると

A† = [[1-2i, 5-0i],[3+4i, i]]

プログラミング実装の注意点:

  • Python / NumPy: A.conj().T または A.T.conj()。NumPy の最近のバージョンでは .H (Hermitian transpose のショートカット)も使えることがある。

  • MATLAB: A' は共役転置、A.' は(複素共役を取らない)単なる転置。

  • Julia: A' は共役転置(adjoint)を返す。転置のみは transpose(A)。

  • 疎行列ライブラリでも .H や getH() などのメソッドが提供されることが多い。

内積と随伴作用素(adjoint)の一般定義

行列に限定せず、ヒルベルト空間 H 上の有界線形作用素 A: H → H に対して A† は有界作用素で、全ての x,y ∈ H について

<Ax, y> = <x, A†y>

を満たすものとして定義されます。こうした随伴作用素は存在すれば一意ですが、無限次元・非有界な場合には定義域や閉性(closedness)などの条件により存在や自己随伴性が問題になります(次節参照)。

無限次元での注意点:対称(symmetric)と自己共役(self-adjoint)の違い

有限次元では「エルミート(Hermitian)」と「自己共役」は同義で問題ありませんが、無限次元の(特に微分作用素のような)非有界作用素では区別が必要です。

  • 対称(symmetric)作用素 A : D(A)→H は D(A) 上で <Ax,y> = <x,Ay> が成り立つものを指します(しかし必ずしも A† の定義域と等しくはならない)。

  • 自己共役(self-adjoint)作用素は A = A† として定義域も含めて一致するもの。スペクトルが実数で、物理的観測量として必須な性質を満たす。

  • 多くの微分作用素(例:微分 d/dx)は自然な定義域だと対称だが自己共役ではないことがあり、境界条件を付加して自己共役延長を選ぶ必要がある。例:区間上の一階微分作用素やラプラシアンなど。

微分作用素の随伴:具体例(運動量演算子)

量子力学に登場する1次元運動量演算子 p = -iħ d/dx を L2(R) 上で考える場合、形式的には自身の共役となる(p† = p)。しかし、これはドメインとして無限遠での適切な減衰条件や自己共役性を満たす函数空間を仮定した上での話です。具体的には部分積分により境界項が 0 になることが必要で、境界条件によっては対称だが自己共役でないことがあります。

スペクトル定理と応用(対角化・量子力学・SVD)

スペクトル定理は正規作用素(特に自己共役作用素)に対して成り立ち、ユニタリ変換で直交的に対角化できるため、固有値分解や測定理論の基礎を成します。実用的応用は多岐にわたります:

  • 量子力学:観測量は自己共役作用素で、その固有値が測定可能な実数値。

  • 線形代数・数値線形代数:特異値分解(SVD)は A†A の固有値問題を解くことで得られ、低ランク近似や正則化に重要。

  • 最小二乗法:複素係数の場合、正規方程式は A†A x = A† b となる。

モア=ペンローズ擬似逆(Moore-Penrose inverse)とエルミート共役

擬似逆 A+ は特に A が長方行列のときに重要で、フルランクの列空間がある場合は A+ = (A†A)^{-1} A† によって与えられます。ここでも共役転置が中心的役割を果たします。

コンピュータ実装上の落とし穴・チェックポイント

  • 数値丸めによる非厳密性:理論上 A がエルミートでも数値計算では小さな反対称成分(数値誤差)が生じる。実際の判定は ||A - A†|| < ε のような閾値で行う。

  • 言語・ライブラリの違い:前述のように MATLAB と NumPy の ' の意味の違いに注意。ユニタリ判定は U†U ≈ I を評価する。

  • 境界条件:微分作用素の自己共役性を扱うときは定義域の扱いを怠らない。暗黙の境界条件があると計算結果が変わる。

よくある誤解と注意点のまとめ

  • "Hermitian = real entries" ではない:エルミート行列は主対角要素が実数であるが、非対角要素は複素数でよく、対向要素が互いに複素共役となる。

  • 有限次元と無限次元での用語の違い:行列に対するエルミートと一般作用素に対する自己共役は同じ言葉が使われがちだが、厳密には定義域などの差がある。

  • 内積の慣習:内積がどの引数で線形かによって随伴の記述が変わるため、論文や教科書の慣習を確認する。

実務・開発者向けの短いガイド

  • 複素行列を扱うときの転置は常に "共役転置" の意味で書く(特に数学的記述では dagger / * を明示)。

  • Numpy や MATLAB を使う場合、A.conj().T や A' の違いを把握しておく。

  • 数値的にエルミート性を確認する場合は残差ノルム ||A - A†|| / ||A|| をチェックする。

  • 微分作用素など理論的に取り扱う場合は必ず定義域や境界条件を明記する。

まとめ

エルミート共役は単なる行列の操作以上の意味を持ち、内積空間と線形作用素の関係性を規定する中心的概念です。有限次元では行列の複素共役転置として取り扱えば十分ですが、無限次元や非有界作用素を扱う際には定義域・自己共役性・閉性などの解析的な注意点が必須です。アルゴリズム実装や物理的解釈においてもエルミート共役は頻出するため、概念と実装の両面で確実に理解しておくことが重要です。

参考文献