Skip to main content
IBM Quantum Platform

double_commutator

double_commutator(op_a, op_b, op_c, sign)

Calcule le double commutateur de trois opérateurs.

Le double commutateur est défini comme suit (voir également le chapitre « 13.6 », «* Méthodes des équations du mouvement* », page 479 de [1]; il s'agit sign=False ici du double commutateur symétrique [A,B,C][A, B, C] figurant dans l'équation (2) de [ 2] ) :

Si est sign False, elle renvoie

[[A,B],C]/2+[A,[B,C]]/2=(2ABC+2CBABACCABACBBCA)/2.[[A, B], C]/2 + [A, [B, C]]/2 = (2ABC + 2CBA - BAC - CAB - ACB - BCA)/2.

Si est sign True, elle renvoie

{[A,B],C}/2+{A,[B,C]}/2=(2ABC2CBABAC+CABACB+BCA)/2.\{[A, B], C\}/2 + \{A, [B, C]\}/2 = (2ABC - 2CBA - BAC + CAB - ACB + BCA)/2.

Les opérateurs prenant en charge cette méthode doivent implémenter le protocole SupportsCommutators .

Remarque

Les trois entrées doivent être du même type d'opérateur. Cela déterminera également le type de sortie.

>>> from qiskit_fermions.operators import FermionOperator
>>> from qiskit_fermions.operators.library import double_commutator
>>> op1 = FermionOperator.from_dict({((True, 0), (False, 0)): 1})
>>> op2 = FermionOperator.from_dict({((False, 0), (True, 0)): 2})
>>> op3 = FermionOperator.from_dict(
...     {((True, 0), (False, 0)): 1, ((False, 0), (True, 0)): 2 + 0.5j}
... )
>>> comm = double_commutator(op1, op2, op3, False)
>>> comm = comm.normal_ordered()
>>> canon = comm.simplify()
>>> assert canon == FermionOperator.zero()

[ 1 ]

R. McWeeny. Méthodes de mécanique quantique moléculaire. 2e édition, Academic Press, 1992. ISBN 0-12-486552-6.

[ 2 ]

P. J. Ollitrault, A. Miessen, I. Tavernelli. Dynamique quantique moléculaire : une perspective de l'informatique quantique. Acc. Chim. Rés. 54, 4229-4238 (2021). https://doi.org/10.1021/acs.accounts.1c00514

Paramètres

  • op_a (T) – l'opérateur AA ci-dessus.
  • op_b (T) – l'opérateur BB ci-dessus.
  • op_c (T) – l'opérateur CC ci-dessus.
  • sign (bool) – la nature de l'anti-commutateur externe, conformément à la définition ci-dessus.

Retours

Le double commutateur, tel que défini ci-dessus.

Type de retour

T

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.