量子系の計算で「十分に時間がたった後」を知りたいとき、QuTiPのsteadystateは便利な入口です。時間発展を長く追わずに、変化しない密度行列を求められます。ただし、返ってきた一つの行列だけでは、どの初期状態からもそこへ落ち着くことや、手元の計算時間で十分に近づいたことまでは分かりません。
見分けたいのは、定常解があること、定常解が一つであること、その解へ十分に近づいたことです。QuTiP 5.1の公式資料と、版を固定した5.1.1の実装を手掛かりに、二準位の小さな例で確認の順序を整理します。[1][2]
簡単にまとめると?
- 定常状態は、その状態から出発すると変化しない状態です。初期状態の情報が残り、複数の定常解が存在する場合もあります。
- 位相だけを失う二準位では占有確率が残ります。上下の遷移を入れた今回の例では占有確率が一つに定まりますが、近づく速さは成分によって違います。
- 密度行列の正規化と正値性、定常方程式の残差、零空間、異なる初期状態からの時間発展を、役割を分けて確かめます。
「動かない状態を求める」と「そこへ到達する」は別の計算
密度行列ρは、各状態にいる確率と、状態間の位相の関係をまとめたものです。時間に依存しないLindblad方程式を、dρ/dt=L(ρ)と書きます。Lはリウヴィリアンと呼ばれ、ハミルトニアンによる変化と、環境に由来する変化をまとめた作用です。定常状態ρssでは、その変化がゼロになります。[1][3]
L(ρss)=0、tr(ρss)=1
前の式は「今から変わらない」、後の式は「確率の合計が1」という条件です。物理的な密度行列であるためには、エルミート性に加え、固有値が負にならない正値性も必要です。
QuTiPの通常のdirect法は、定常方程式へトレースを1にする条件を加えて線形方程式を解きます。この計算には、時間発展の出発点となる初期状態を指定しません。一方、時間発展を計算するmesolveなどでは初期状態が入力です。前者は「変化しない解」を探し、後者は「この出発点からどこへ進むか」を追っています。[1][2]
位相だけを失うと、最初の占有確率が残る
基底状態を|0⟩、励起状態を|1⟩とする二準位を考えます。占有確率とは、その状態にいる確率のことです。ここでは励起状態の占有確率p1=ρ11を使います。ハミルトニアンをH=0とし、位相の関係だけを弱める純粋位相緩和を入れます。
Cφ=√(γφ/2) Z、Z=|0⟩⟨0|−|1⟩⟨1|、γφ>0
Cは環境の作用を表す崩壊演算子です。この設定をLindblad項へ代入すると、対角成分である占有確率は変わらず、非対角成分はρ01(t)=ρ01(0)e−γφtで減少します。つまり、位相の関係は薄れても、|0⟩と|1⟩の間で占有確率を移す仕組みがありません。[3]
そのため、0≦p≦1を満たすどのρ=diag(1−p, p)も定常解です。|0⟩から始めればp=0、|1⟩から始めればp=1のままです。両者とも残差L(ρ)はゼロですが、同じ状態にはなりません。|+⟩=(|0⟩+|1⟩)/√2から始めた場合は、占有確率1/2を保ったまま位相の成分が消え、diag(1/2, 1/2)へ近づきます。
この例では、トレース1の条件を加えても占有確率を一つに決められません。定常方程式の解空間に自由度が残るためです。ソルバーが特異性を知らせたり、手法によって解の一つが得られたりしても、それを特定の初期状態からの長時間後の答えと同一視しないことが大切です。
上下の遷移がある例では、収束先と速さを分けて見る
次に、H=0のまま、|1⟩から|0⟩へ下がる過程と、逆向きに上がる過程を入れます。ここからは純粋位相緩和だけのモデルを置き換えた、別の設定です。
C↓=√γ↓ |0⟩⟨1|、C↑=√γ↑ |1⟩⟨0|、γ↓, γ↑>0
占有確率の変化は、入ってくる分と出ていく分の差になります。
dp1/dt=γ↑(1−p1)−γ↓p1
変化がゼロになる占有確率は、p1,ss=γ↑/(γ↑+γ↓)です。このモデルでは非対角成分も減衰するので、密度行列全体の定常解が一つに定まります。状態間を遷移する経路ができたことで、最初の占有確率を保持する自由度がなくなりました。
具体例としてγ↓=3 s−1、γ↑=1 s−1を仮定すると、定常占有確率は1/4です。τ=(γ↓+γ↑)t=(4 s−1)tを無次元の経過時間とすると、
p1(t)=1/4+[p1(0)−1/4]e−τ、ρ01(t)=ρ01(0)e−τ/2
となります。下の表はこの仮定モデルから計算した値です。演算子の式から別に組み立てた4×4のリウヴィリアンと行列指数でも照合しました。実験値やQuTiP本体の実行結果ではありません。
| 無次元時間τ 実時間t |
初期|0⟩のp1 | 初期|1⟩のp1 | 初期|+⟩の |ρ01| |
|---|---|---|---|
| 0 0 s |
0 | 1 | 0.5 |
| 1 0.25 s |
0.1580 | 0.5259 | 0.3033 |
| 5 1.25 s |
0.2483 | 0.2551 | 0.0410 |
| 十分長い時間の極限 | 0.25 | 0.25 | 0 |
τ=5では、二つの初期状態の占有確率はすでに1/4へかなり近づいています。それでも、初期|+⟩に残る位相の成分は約0.0410です。この成分は占有確率のずれより遅い指数で減衰します。励起確率だけを見て止めてよいか、密度行列全体の誤差を小さくしたいのかで、必要な計算時間は変わります。
計算結果は、四つの問いで点検する
最初は、物理的な状態になっているか。トレース、エルミート性、固有値を確認します。丸め誤差に由来する微小な負値と、大きな負値を同じ扱いにせず、許容誤差を記録します。正規化し直しただけで、不適切な解や一意性の問題が解消するわけではありません。
次は、その状態が定常方程式を満たしているか。L(ρ)のノルムで残差を見ます。残差はモデル内の変化率なので、時間の単位やLのスケールをそろえて比較します。すべての速度を小さくしただけでも生の残差は小さくなります。小さな残差は有用な確認ですが、先ほどの純粋位相緩和の例のように、一意性は別に調べる必要があります。
三つ目は、解を一つに決めるだけの条件があるか。小さなモデルなら、Lの零空間、つまりLがゼロへ写す行列の集合を調べられます。今回の独立計算では、その次元は純粋位相緩和で2、上下遷移で1でした。トレース1という条件を加えた後に自由度が残るかが違います。数値上ゼロとみなすしきい値を変えても結果が安定しているかを確認し、大規模・悪条件の行列へ小例の精度をそのまま持ち込みません。
最後は、必要な精度まで近づいたか。異なる占有確率から出発させ、位相も重要なら重ね合わせ状態も加えて、時間を延ばした結果を比較します。この例ではLの零でない固有値は−4 s−1と−2 s−1で、位相の成分のほうが遅く減衰します。一般のモデルでも遅い成分の時間尺度は手掛かりになりますが、いくつかの初期状態で一致したというだけで、すべての初期状態についての証明にはしません。
QuTiPの停止条件を、物理的な一意性と混同しない
固定した5.1.1の実装には、method='propagator'もあります。初期密度行列rhoへ時間発展を繰り返し作用させ、反復前後の状態の距離がpropagator_tol以下になると返す方法です。rhoを省略した場合はランダムな密度行列から始め、収束しない場合は反復上限で例外を返します。[2]
ここで判定しているのは、選んだ出発点からの反復がどれだけ変化したかです。純粋位相緩和のように定常解が複数ある系では、到達する占有確率は初期状態に依存します。また、モデルの変化がとても遅ければ、短い間隔での変化が小さいことと、最終状態に近いことは別になります。初期状態、時間間隔、許容誤差を変えて確かめる理由はここにあります。
一意な定常状態が欲しいのか、保存される初期情報を調べたいのかで、計算結果の読み方は変わります。まず環境との相互作用が何を変え、何を残すモデルなのかを確認し、その上でソルバーの出力と時間発展を照合すると、定常状態の計算を目的に結び付けやすくなります。
参考資料
- QuTiP 5.1 Documentation, Solving for Steady-State Solutions。定常方程式、計算法、時間発展との比較例。
- QuTiP, steadystate API、5.1.1の固定実装。トレース条件、各手法、propagatorの初期状態と停止条件。参照版を固定しており、現在の最新版という意味ではありません。
- QuTiP, 5.1.1のliouvillian / lindblad_dissipator実装。本文の二準位モデル、解の導出と表の数値は、このLindblad形式を用いた独自の説明・計算例です。

