同じ周期で駆動する二つの量子系を、一周期ごとの同じタイミングで比べると、結果が一致する。では、その途中も同じように動いているのでしょうか。周期に同期した記録は便利ですが、周期内だけに現れる違いを見落とすことがあります。
Floquet(フロケ)法は、繰り返す駆動の下での量子状態を、「一周期ごとに積み重なる変化」と「周期内で繰り返す変化」に分けて扱います。QuTiP 5.1.1の公開実装と小さな可解モデルから、準エネルギーの値だけでは何が分からず、どの時刻の状態を比較すればよいのかを見ていきます。[1][2]
簡単にまとめると?
- 準エネルギーは、一周期の時間発展に含まれる位相の進みを表します。その瞬間のハミルトニアンのエネルギーとは別です。
- 一周期後の時間発展が同じ二つのモデルでも、周期内の観測値は違い得ます。周期ごとの記録だけで、途中の状態まで一致したとは言えません。
- 駆動の周期、時間の原点、初期状態、観測量と観測時刻を揃えます。QuTiPでは周期的なモードと、位相を含む実際の状態を区別して読みます。
準エネルギーは、一周期で進む位相から求める
外からの駆動が周期Tで繰り返すなら、量子状態の変化を定めるハミルトニアンもH(t+T)=H(t)となります。本稿では、環境への散逸を含めない閉じた系を扱います。Floquet法では、その状態の基本的な解を、一定の速さで進む位相と、周期Tで繰り返す部分に分けられます。後者をFloquetモード、位相の進みを定める量を準エネルギーと呼びます。[1]
一周期の時間発展をまとめた演算子をU(T,0)と書きます。これは、時刻0の状態を時刻Tの状態へ移す働きです。その固有値は、閉じた系では大きさ1の複素数になり、角度が一周期の位相の進みを表します。QuTiPのFloquetBasisも、一周期の伝播を計算して対角化し、固有値の角度からe_quasiを求めます。ここでいう伝播は、位置の移動に限らず、量子状態の時間発展です。[2]
一周して2πだけ余分に回った位相は、一周期後の複素数としては区別できません。そのため、準エネルギーにはℏΩの整数倍を加えても同じ表現になる自由度があります。Ωは駆動の角周波数でΩ=2π/T、ℏはエネルギーと位相の進みを結ぶ定数です。準エネルギーをずらしたときは、周期モード側の位相も合わせて変えます。物理的な状態そのものが変わるわけではありません。[1][2]
したがって、準エネルギーを、その瞬間にH(t)を対角化して得るエネルギーと同じものとして読むことはできません。駆動条件を変えたグラフで値が折り返して見える場合も、選んだ表示範囲を確認する必要があります。固定版の実装は複素数の角度の主値を使い、一つの範囲へ折り返した値を返します。
一周期後が同じになる、二つの駆動を比べる
違いを具体的に見るため、状態0と1を持つ二準位系を用意します。最初は両者を同じ重みで重ねた|+⟩=(|0⟩+|1⟩)/√2とします。観測するのは、同じ|+⟩として得られる確率です。0・1それぞれの確率だけではなく、二つの成分の位相の関係に応じて変わる量を選びます。
説明用のハミルトニアンはH(t)/ℏ=[ω₀+A cos(Ωt)]Z/2です。Zは0の成分に+1、1の成分に−1を掛ける演算子、ω₀は一定の成分、Aは周期的に加える成分の振幅です。ω₀、A、Ωは同じ角周波数の単位で揃え、Ωは正とします。ここではω₀=Ω/4とし、周期成分を加えないA=0と、加えるA=Ωを比較します。実機のパルスや測定値を指定したものではありません。
このモデルでは、二成分の間に積み重なる位相差はΔ(t)=ω₀t+(A/Ω)sin(Ωt)です。従って、調べたい確率はP₊(t)=[1+cosΔ(t)]/2となります。一周期の整数倍ではsinの項が0になるので、両モデルの時間発展は一致します。一方、その間ではsinの項が残り、確率が変わります。
| 観測する時刻 | 周期成分なし A=0 | 周期成分あり A=Ω |
|---|---|---|
| 0 | 1.0000 | 1.0000 |
| T/4 | 0.9619 | 0.5886 |
| T/2 | 0.8536 | 0.8536 |
| 3T/4 | 0.6913 | 0.9921 |
| T | 0.5000 | 0.5000 |
| 2T | 0.0000 | 0.0000 |
狭い画面では表を横にスクロールできます。閉じた形の式とは別に、Schrödinger方程式を数値積分して照合しました。QuTiP本体や量子装置を実行した結果ではなく、指定した二準位モデルの独立検算です。
この二つのモデルでは、一周期の演算子自体が同じで、準エネルギーの代表値も±ℏΩ/8で一致します。それでも、T/4の確率は約0.96と約0.59、3T/4では約0.69と約0.99に分かれます。なお、一般には準エネルギーの値だけが一致しても、対応する固有状態が違えば、一周期の演算子まで同じとは限りません。ここでは演算子の一致も別に確かめています。
また、駆動が周期Tで繰り返すからといって、状態も毎回同じ状態へ戻るわけではありません。表でも確率は0、T、2Tで1、0.5、0と変わっています。周期モードが繰り返すことと、その上に積み重なる位相を含む状態が繰り返すことは別です。
周期モードから、観測する状態へ戻す
QuTiP 5.1.1では、FloquetBasis.mode(t)は時刻を周期Tで折り返して、周期的なモードを返します。一方、state(t)はそこへ準エネルギーに対応する位相の進みを掛けます。関数名が似ていても、返すものの役割は異なります。[2][3]
任意の初期状態を扱うときは、初期状態をFloquetの基底へ分解し、必要な時刻の状態を元の基底へ戻してから観測量を計算します。同版にはto_floquet_basisとfrom_floquet_basisがあり、fsesolveもこの流れを使っています。係数や準エネルギーだけを取り出して、周期内で変わるモードを落とすと、先ほどのT/4のような違いを再現できません。[2]
渡すTは、見たい計算時間の長さではなく、ハミルトニアンが繰り返す周期です。確認したfsesolveはTを省略した場合、最後の出力時刻を周期として使うため、長い時間区間を計算するなら実際の周期を明示することが大切です。出力時刻も、一周期ごとだけが必要なのか、周期内の特定のタイミングが必要なのかを、読みたい現象に合わせて選びます。[2]
「平均すればよい」と広げないための条件
今回の例は、異なる時刻のハミルトニアンがすべて同じZに比例する、特別に解きやすいモデルです。時間発展の順序を入れ替えても結果が変わらないので、周期成分の一周期の積分が0になることを、そのまま使えました。異なる方向の作用を組み合わせ、順序で結果が変わる一般の駆動では、ハミルトニアンを単純に時間平均して同じ結果になるとは限りません。
比較するときは、周期と駆動の開始位相、初期状態、観測量、観測時刻を揃えます。毎周期の状態を知りたいなら一周期の演算子が出発点になりますが、途中で操作や測定を行うなら、その時刻のモードと状態も必要です。準エネルギーの図だけで結論を出さず、実際に使うタイミングで何が観測されるかまで戻して比べます。
さらに、本稿は閉じた系の話です。環境による緩和まで含めるには、駆動下での環境との結合や近似を別に確認する必要があります。QuTiPにはFloquet-Markovの機能もありますが、この二準位の比較だけで、その近似や実機の損失まで検証したことにはなりません。[1][2]
参考資料
QuTiP 5.1.1の固定コミット7accc77a70a08f965a29fdd13515f79cdcab9703と5.1系公式文書を2026年10月14日に確認しました。最新版一般の評価ではありません。本文の式と表はQuantum Seaによる独立計算で、速度向上や実機性能の実証ではありません。QuTiPへハミルトニアンを渡す際のℏ=1の表記では、準エネルギーに対応する値は角周波数の単位になります。
- QuTiP 5.1 Documentation, Floquet Formalism。周期モード、準エネルギー、一周期の伝播演算子と、閉じた系・散逸系の区別。
- QuTiP 5.1.1, floquet.py。FloquetBasisの初期化、mode/state、基底変換、fsesolveの周期指定を参照。コードの利用条件はBSD 3-Clause。
- QuTiP 5.1 API, FloquetBasis。一周期の伝播、準エネルギー、時刻を指定する基底変換の入出力。
