paddle_quantum.hamiltonian
哈密顿量的功能实现。
- class Hamiltonian(pauli_str, compress=True)
基类:
object
Paddle Quantum 中的 Hamiltonian
class
。用户可以通过一个 Pauli string 来实例化该
class
。- 参数:
pauli_str (list) – 用列表定义的 Hamiltonian,如
[(1, 'Z0, Z1'), (2, 'I')]
。compress (bool, optional) – 是否对输入的 list 进行自动合并(例如
(1, 'Z0, Z1')
和(2, 'Z1, Z0')
这两项将被自动合并),默认为True
。
备注
若
compress
为False
, 则不会检查输入的合法性。- property n_terms
该哈密顿量的项数。
- property pauli_str
该哈密顿量对应的 Pauli string。
- property terms
该哈密顿量中的每一项,i.e.
[['Z0, Z1'], ['I']]
。
- property coefficients
该哈密顿量中每一项的系数,i.e.
[1.0, 2.0]
。
- property pauli_words
该哈密顿量中每一项对应的 Pauli word 构成的列表,i.e.
['ZIZ', 'IIX']
。
- property pauli_words_r
该哈密顿量中每一项对应的简化(不包含 I) Pauli word 组成的列表,i.e.
['ZXZZ', 'Z', 'X']
。
- property pauli_words_matrix
该哈密顿量中每一项对应的简化(不包含 I) Pauli word 对应的 matrix 组成的列表。
- property sites
该哈密顿量中的每一项对应的量子比特编号组成的列表。
- property n_qubits
该哈密顿量对应的量子比特数。
- decompose_with_sites()
将 pauli_str 分解为系数、泡利字符串的简化形式以及它们分别作用的量子比特下标。
- 返回:
包含如下元素的 tuple:
coefficients: 元素为每一项的系数。
pauli_words_r: 元素为每一项的泡利字符串的简化形式,例如 ‘Z0, Z1, X3’ 这一项的泡利字符串为 ‘ZZX’。
sites: 元素为每一项作用的量子比特下标,例如 ‘Z0, Z1, X3’ 这一项的 site 为 [0, 1, 3]。
- 返回类型:
Tuple[list]
- decompose_pauli_words()
将 pauli_str 分解为系数和泡利字符串。
- 返回:
包含如下元素的 tuple:
coefficients: 元素为每一项的系数。
pauli_words: 元素为每一项的泡利字符串,例如 ‘Z0, Z1, X3’ 这一项的泡利字符串为 ‘ZZIX’。
- 返回类型:
Tuple[list]
- construct_h_matrix(qubit_num=None)
构建 Hamiltonian 在 Z 基底下的矩阵。
- 参数:
qubit_num (int, optional) – 量子比特数量,默认值为
1
。- 返回:
Z 基底下的哈密顿量矩阵形式。
- 返回类型:
np.ndarray
- class SpinOps(size, use_sparse=False)
基类:
object
矩阵表示下的自旋算符,可以用来构建哈密顿量矩阵或者自旋可观测量。
- 参数:
size (int) – 系统的大小
use_sparse (bool, optional) – 是否使用 sparse matrix 计算,默认为
False
。
- property sigz_p
\(S^z_i\) 算符组成的列表,其中每一项对应不同的 \(i\)。
- property sigy_p
\(S^y_i\) 算符组成的列表,其中每一项对应不同的 \(i\)。
- property sigx_p
\(S^x_i\) 算符组成的列表,其中每一项对应不同的 \(i\)。