首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QuTiP TypeError:具有张量积的不兼容Qobj形状

QuTiP TypeError:具有张量积的不兼容Qobj形状
EN

Stack Overflow用户
提问于 2018-07-05 03:40:08
回答 1查看 464关注 0票数 1

我正在尝试执行这个简单的操作

代码语言:javascript
复制
tensor(hadamard_transform(1), hadamard_transform(1), identity(2), identity(2)) * basis(16,1)

但我有

代码语言:javascript
复制
Traceback (most recent call last):

  File "<ipython-input-163-ae66af2f799c>", line 1, in <module>
    tensor(hadamard_transform(1), hadamard_transform(1), identity(2), identity(2)) * basis(16,1)

  File "/home/abdallaessam/anaconda2/envs/Quantum/lib/python2.7/site-packages/qutip/qobj.py", line 515, in __mul__
    raise TypeError("Incompatible Qobj shapes")

TypeError: Incompatible Qobj shapes

我正在使用Ubuntu14.04LTS x64中的Anaconda。

代码语言:javascript
复制
~$ conda info

     active environment : Quantum
    active env location : /home/user/anaconda2/envs/Quantum
            shell level : 1
       user config file : /home/user/.condarc
 populated config files : /home/user/.condarc
          conda version : 4.5.4
    conda-build version : 3.10.5
         python version : 2.7.15.final.0
       base environment : /home/user/anaconda2  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/pro/linux-64
                          https://repo.anaconda.com/pkgs/pro/noarch
                          https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /home/user/anaconda2/pkgs
                          /home/user/.conda/pkgs
       envs directories : /home/user/anaconda2/envs
                          /home/user/.conda/envs
               platform : linux-64
             user-agent : conda/4.5.4 requests/2.18.4 CPython/2.7.15 Linux/3.13.0-141-generic ubuntu/14.04 glibc/2.19
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False


>>> from qutip import *
>>> about()

QuTiP: Quantum Toolbox in Python
Copyright (c) 2011 and later.
A. J. Pitchford, P. D. Nation, R. J. Johansson, A. Grimsmo, and C. Granade

QuTiP Version:      4.2.0
Numpy Version:      1.13.3
Scipy Version:      1.1.0
Cython Version:     0.28.3
Matplotlib Version: 2.2.2
Python Version:     2.7.15
Number of CPUs:     2
BLAS Info:          INTEL MKL
OPENMP Installed:   False
INTEL MKL Ext:      True
Platform Info:      Linux (x86_64)
Installation path:  /home/user/anaconda2/envs/Quantum/lib/python2.7/site-packages/qutip

如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2018-07-05 20:31:00

我想我知道你的问题出在哪里了。

让我们从查看您指定的运算符开始。

代码语言:javascript
复制
a = tensor(hadamard_transform(1), hadamard_transform(1), identity(2), identity(2))

这告诉你,你基本上有四个量子门,作用于四个单独的量子比特。前两个门是Hadamard门,作用于前两个量子比特,然后你就有了对第二个量子比特没有任何影响的恒等式。

当你写basis(16,1)时,QuTiP基本上将其解释为一个量子比特,它存在于16维的希尔伯特空间中,而不是四个量子比特的张量积。

要解决您的问题,您应该将ket向量指定为四个量子位的张量积。

代码语言:javascript
复制
b = tensor([basis(2,0), basis(2,0), basis(2,0), basis(2,1)])

然后编写a*b以获得所需的输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51179989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档