高校の数学から理解する量子コンピュータ(2)

高校の数学から理解する量子コンピュータ(1) では、振動と運動方程式の解き方をみました。ここでは、ベクトルと行列を見ることにします。

ベクトルに行列を作用させて複素数を回転させる

複素数 $a+ib$ の実部を虚部を成分にもつベクトルを考えます。

$$
\left(\begin{array}{l}
a \\
b
\end{array}\right)
$$
このベクトルに対する $\theta$ 回転は、行列

$$
\left(\begin{array}{cc}
\cos \theta & -\sin \theta \\
\sin \theta & \cos \theta
\end{array}\right)
$$
を作用させて

$$
\left(\begin{array}{cc}
\cos \theta & -\sin \theta \\
\sin \theta & \cos \theta
\end{array}\right)\left(\begin{array}{l}
a \\
b
\end{array}\right)=\left(\begin{array}{l}
a \cos \theta-b \sin \theta \\
a \sin \theta+b \cos \theta
\end{array}\right)
$$
とすると得られます。
実際、行列の積が複素数の回転に対応しています。
$$
\begin{aligned}
(a+i b)(\cos \theta+i \sin \theta)=& a \cos \theta-b \sin \theta+i(a \sin \theta+b \cos \theta)
\end{aligned}
$$
ベクトルをもちいることの利点は要素の数をいくらでも増やすことができるということです。次の連立方程式を考えます。
$$
3 x_{1}-2 x_{2}+x_{3}=5 \\
x_{1}+x_{2}-2 x_{3}=3 \\
-x_{1}+2 x_{2}+x_{3}=3
$$
これは、次のように書き換えられます。

$$
\left(\begin{array}{ccc}
3 & -2 & 1 \\
1 & 1 & -2 \\
-1 & 2 & 1
\end{array}\right)\left(\begin{array}{l}
x_{1} \\
x_{2} \\
x_{3}
\end{array}\right)=\left(\begin{array}{l}
5 \\
3 \\
3
\end{array}\right)
$$
この行列の逆行列は、以下のようになり、
$$
\left(\begin{array}{lll}
0.3125 & 0.25 & 0.1875 \\
0.0625 & 0.25 & 0.4375 \\
0.1875 & -0.25 & 0.3125
\end{array}\right)
$$
これから連立方程式の解が求まります。

$$
\left(\begin{array}{l}
x_{1} \\
x_{2} \\
x_{3}
\end{array}\right)=\left(\begin{array}{ccc}
0.3125 & 0.25 & 0.1875 \\
0.0625 & 0.25 & 0.4375 \\
0.1875 & -0.25 & 0.3125
\end{array}\right)\left(\begin{array}{l}
5 \\
3 \\
3
\end{array}\right)=\left(\begin{array}{l}
2.875 \\
2.375 \\
1.25
\end{array}\right)
$$

行列の対角化で現象の時間変化を求めることができる

時間が進むことによって物理系が変化する(時間発展といわれる)システムが以下のような微分方程式で与えれれるとします。
$$
\frac{d}{d t} x=a x
$$
この解は、定数 $c$ をもちいて、指数関数
$$x = ce^{at}$$
で与えれれます。$a$ が複素数になる場合hあ、振動する解となります。
多くの変数が入った連立微分方程式を考えます。
$$
\frac{d}{d t} x_{1}=3 x_{1}-2 x_{2}+x_{3} \\
\frac{d}{d t} x_{2}=x_{1}+x_{2}-2 x_{3} \\
\frac{d}{d t} x_{3}=-x_{1}+2 x_{2}+x_{3}
$$
行列を使って書き直すと、
$$
A=\left(\begin{array}{ccc}
3 & -2 & 1 \\
1 & 1 & -2 \\
-1 & 2 & 1
\end{array}\right)
$$として
$$
\frac{d}{d t}\left(\begin{array}{l}
x_{1} \\
x_{2} \\
x_{3}
\end{array}\right)=A\left(\begin{array}{l}
x_{1} \\
x_{2} \\
x_{3}
\end{array}\right)
$$
となります。
このような連立微分方程式を解くには、行列の対角化をもちいます。
対角化というのは、以下の式をみたすように行列を分解することです。
$$
A=P D P^{-1}
$$
$D$ は、対角行列、$P^{-1}$ は$P$ の逆行列です。対角化にはいろんな手法があります。例えば上の例では、以下のようになります。
$$
\begin{aligned}
&D=\left(\begin{array}{ccc}
2.0 & 0 & 0 \\
0 & 1.5+2.398 i & 0 \\
0 & 0 & 1.5-2.398 i
\end{array}\right) \\
&P=\left(\begin{array}{ccc}
-0.8541 & 0.1091+0.5233 i & 0.1091-0.5233 i \\
-0.5071 & 0.6547 & 0.6547 \\
-0.1690 & -0.1690-0.5233 i & -0.1091+0.5233 i
\end{array}\right)
\end{aligned}
$$
対角化ができると、$PP^{-1}$ が単位行列になることを用いて、
$$
A^{k}=\left(P D P^{-1}\right) ^{k}=P D^{k} P^{-1}
$$
行列$A$の累乗を$D$の対角要素の累乗として計算できます。
$$
e^{A t}=P\left(\begin{array}{ccc}
e^{2.0 t} & 0 & 0 \\
0 & e^{(1.5+2.398 i) t} & 0 \\
0 & 0 & e^{(1.5-2.398 i) t}
\end{array}\right) P^{-1}
$$
このようにして、上の連立微分方程式が解けます。

固有値、固有ベクトルと対角化の関係

高校の数学から理解する量子コンピュータ(1) では、固有値と固有ベクトルをもちいて、連立微分方程式をときました。それと、対角化を用いて微分方程式を解くということの関係はどうなっているのでしょうか。

上で、行列$D$や$P$は、行列 $A$ の固有值 $\lambda_{1}, \lambda_{2}$ 、固有值に対応する固有ベクトル $ \mathbf {v}_{1}, \mathbf {v}_{2}$ から、以下のように求められます。つまり、基本的に、同じことをやっているわけです。

$$
\begin{gathered}
P=\left(\begin{array}{ll}
\mathbf {v}_{1} & \mathbf {v}_{2}
\end{array}\right)=\left(\begin{array}{ll}
v_{11} & v_{12} \\
v_{21} & v_{22}
\end{array}\right) \\
D=\left(\begin{array}{cc}
\lambda_{1} & 0 \\
0 & \lambda_{2}
\end{array}\right)
\end{gathered}
$$

参考資料

高校数学でひもとく量子力学 藤井啓祐 Interface 2019年3月号