groups_are_hermitian
groups_are_hermitian(op, *, atol=1e-08)
各グループについて、そのグループの項から構成される演算子がエルミート演算子であるかどうかを返す。
群はそれ自体に意味を規定しない。これにより、各群が個別にエルミート群であるという一般的な慣習が成立する。 これは、ランダム化された生成式がグループ全体をサンプリングする際に依拠する性質であり、ユニタリな時間発展を持つのはエルミート群のみだからである。 オペレーターが追跡しているグループがない場合、これは を返します None。
空の群は、ゼロ演算子がエルミート演算子であるため、エルミート群とみなされる。
注
これは、以下の片側保証を継承しています is_hermitian()。すなわち、a エントリ True は常に信頼できるのに対し、a エントリ False は、その正規形が真の標準形である演算子型についてのみ信頼できます。 その他の場合、この検証は保守的であり、実際にはハーミティアンである群 False について、そうではないと報告してしまう可能性がある。
注
これは(……)によって示唆されているわけではなく、(……)もまたそれを示唆するものではない groups_have_uniform_coeffs()。 係数が一様であるからといって、その群がエルミート群になるとは限らず、また、エルミート群であっても絶対値が混在する場合がある。
>>> from qiskit_fermions.operators import FermionOperator
>>> from qiskit_fermions.operators.terms.grouping import groups_are_hermitian
>>> # built from the sparse arrays rather than a dictionary, because only the former
>>> # fixes the term order that the group indices are paired with
>>> op = FermionOperator(
... [1.0, 1.0, 1.0],
... [True, False, True, False, True, False],
... [0, 1, 1, 0, 2, 3],
... [0, 2, 4, 6],
... )
>>> op.groups = [0, 0, 1] # the leading conjugate pair, then one unpaired term
>>> groups_are_hermitian(op)
[True, False]
パラメーター
- op – チェック対象のグループを持つオペレーター。
- atol – 係数が等しいとみなされる数値的精度の上限。 この値のデフォルトは
1e-8. です。
戻り値
グループインデックスごとに1つのフラグ、または演算子がグループを追跡しない None 場合は。
昇給
TypeError – がサポートされていない演算子タイプ op である場合(を参照 OperatorTrait)。
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。