量子計算学習ノート - オペレータ関数1


この記事は「量子コンピュータと量子通信 (オーム社)」の読書ノートです。


ここからはオペレータに作用する関数について議論しよう。

まずは正規オペレータを変数にとって正規オペレータを返す関数を考える。このために正規オペレータのべき乗を議論しよう。

正規オペレータ$${A}$$がCONS$${\{|e_i\rang\}}$$によって$${\sum_i a_i |e_i\rang\lang e_i|}$$とスペクトル分解されているとすると、正規オペレータの$${k}$$乗は次にように計算される。

$$
A^k = \left(\sum_i a_i |e_i\rang\lang e_i|\right)^k = \sum_i a_i^k |e_i \rang \lang e_i |
$$

これに対して$${n}$$次複素多項式 $${f}$$が$${f(x) = \sum_{i=0}^n c_i x^i}$$と与えられていたとする。このとき、$${f(A)}$$を次のように定義する。

$$
f(A) \equiv \sum_{i=0}^n c_i A^i
$$

正規行列に対するこの定義は巧妙で、実際にこれを計算すると次のようになる。

$$
\begin{array}{l}
f(A) \\
= c_0 I + c_1 A + \cdots + c_n A^n \\
= \sum_i c_0|e_i\rang \lang e_i| + \sum_i c_1 a_i|e_i\rang \lang e_i| + \cdots + \sum_i c_n a_i^n |e_i\rang \lang e_i| \\
= \sum_i (\sum_{j=0}^n c_j a_i^j)|e_i\rang \lang e_i| \\
= \sum_i f(a_i) |e_i \rang \lang e_i|
\end{array}
$$

このように、固有値に関数を適用した正規行列が得られることがわかる。

これを応用して、級数展開(マクローリン展開など)が可能な複素関数$${f(x) = \sum_{i=0}^\infty c_i x^i}$$が与えられたとき、正規行列に対してそれを自然に適用できる。実際、以下のように定義される。この計算において線形オペレータの収束は$${(A, B) \equiv {\rm tr} (A^*B)}$$によって定義されるヒルベルト・シュミット内積による収束とする。

$$
\begin{array}{l}
f(A) \\
= \lim_{n\to\infty} \sum_{j = 0}^n c_j A^j \\
= \lim_{n\to\infty} \sum_i (\sum_{j=0}^n c_j a_i^j) |e_i\rang\lang e_i| \\
= \sum_i (\sum_{j=0}^\infty c_j a_i^j) |e_i\rang\lang e_i| \\
= \sum_i f(a_i) |e_i \rang \lang e_i |
\end{array}
$$

次のようなネイピア数に対する累乗が量子論においてはよく使われる。

$$
e^{At} = \sum_i e^{a_it} |e_i \rang \lang e_i|
$$

ところでトレースも重要な線形オペレータに対する関数であるから、ここで性質を議論しておく。まず行列$${A = (a_{ij})}$$に対するトレース$${\rm tr(A)}$$は次のように対角成分の和で定義される。

$$
{\rm tr}(A) \equiv \sum_i a_{ii} 
$$

行列に対するトレースは次の性質を持つ。

  1. 巡回不変性: $${{\rm tr}(AB) = {\rm tr}(BA)}$$

  2. 線型性: $${{\rm tr}(A + B) = {\rm tr}(A) + {\rm tr}(B),\ {\rm tr}(\lambda A) = \lambda \cdot {\rm tr}(A)}$$

行列に対するトレースを上記の通り定義すると、線形オペレータに対するトレースもよく定義することができる。線形オペレータに対して、2つのCONS$${\{|e_i\rang\}, \{|f_i\rang\}}$$に対する表現行列$${M_A, M'_A}$$が与えられたとき、$${\{|e_i\rang\}}$$から$${\{|f_i\rang\}}$$への基底変換行列(これはユニタリ行列である!)を$${U}$$とおくと

$$
{\rm tr}(M_A) = {\rm tr}(M_A I) = {\rm tr}(M_A U^*U) = {\rm tr}(U M_A U^*) = {\rm tr}(M'_A)
$$

となる。このことからトレースは線形オペレータの行列表現によらないことがわかる。したがって、線形オペレータのトレースはその何らかの行列表現によるトレースとして、無矛盾に定義できる。

よく使うトレースの計算例を述べよう。任意の線形オペレータ$${A}$$とベクトル$${|\psi\rang}$$が与えられたときに、$${{\rm tr}(A |\psi\rang \lang \psi|)}$$を計算してみよう。CONS$${\{|e_i\rang\}}$$による$${A |\psi\rang \lang \psi|}$$の行列表現は$${(\lang e_i | (A |\psi\rang\lang \psi |) |e_j\rang)}$$で与えられるから、

$$
\begin{array}{l}
{{\rm tr}(A |\psi\rang \lang \psi|)}\\
= \sum_i \lang e_i | (A |\psi\rang\lang \psi |) |e_i\rang\\
= \sum_i \lang\psi |e_i\rang \lang e_i| A |\psi\rang\\
= \lang\psi | \left(\sum_i |e_i\rang \lang e_i \right|)A |\psi\rang\\
= \lang\psi | I A |\psi\rang\\
= \lang\psi | A |\psi\rang
\end{array}
$$

となる。この結果はトレースを計算するときに有用なので覚えておこう。


この記事が気に入ったらサポートをしてみませんか?