首页 > 解决方案 > 直接从 Numpy Array Transpose 指定 Bra 时,Qutip 会引发警告

问题描述

我尝试使用 qutip 定义 ket 胸罩。bra 是行向量,ket 是列向量。胸罩可以定义为 ket 共轭转置。但是,如果我在 qutip 中直接使用此定义指定胸罩,则始终会发出警告,并且无法形成胸罩向量。

这是我的代码:

import qutip
from math import sqrt
import numpy as np

#probability amplitude of two dice rolled 12 times
probability_amplitudes = np.array(
    [[1/6],
    [sqrt(2)/6],
    [sqrt(3)/6],
    [2/6],
    [sqrt(5)/6],
    [sqrt(6)/6],
    [sqrt(5)/6],
    [2/6],
    [sqrt(3)/6],
    [sqrt(2)/6],
    [1/6],
    ])

#ket is column vector
ket_psi = qutip.Qobj(probability_amplitudes)

#bra is conjugate transpose of ket so, it's a row vectorA
row_vector = probability_amplitudes.transpose
bra_psi = qutip.Qobj(row_vector).conj()

print(ket_psi)
print(bra_psi)

这是我的输出: 在此处输入图像描述

我的问题是,为什么会发生这种情况?在 qutip 中从指定的 ket 中指定胸罩的最佳做法是什么?

标签: pythonpython-3.xnumpyquantum-computingqutip

解决方案


结果是我忘记将 NumPy 数组转置指定为一种方法。在转置后面添加“()”解决了这个问题。很抱歉发布这样一个烦人的问题,但需要 3 个小时才能意识到这一点。

这是我添加“()”后的结果。

在此处输入图像描述

但是我仍然想学习在 qutip 中指定胸罩的最佳实践,所以这个问题仍然对任何试图回答的人开放。我愿意接受任何导致改进的建议。谢谢你


推荐阅读