General Functions
In Hilbert Space, nobody can hear you scream...
The primary mathematical object in quantum theory is the Hilbert space. We consider only finite-dimensional Hilbert spaces, denoted by
. Although we will be considering finite-dimensional spaces exclusively, we note here that many of the statements and claims extend directly to the case of separable, infinite-dimensional Hilbert spaces, especially for operationally-defined tasks and information quantities.
A
-dimensional Hilbert space
is defined to be a complex vector space equipped with an inner product. We use the notation
to denote a vector in
. More generally, a Hilbert space is a "complete inner product" space.
Completeness is an issue that pops up only in infinite-dimensional spaces, so all finite-dimensional inner-product spaces are Hilbert spaces.
A ket is of the form
. Mathematically it denotes a vector,
, in an abstract (complex) vector space
, and physically it represents a state of some quantum system. An example of a Ket can be
represents a vector
.
A bra is of the form
. Mathematically it denotes a linear form
, i.e. a linear map that maps each vector in
to a number in the complex plane
. Letting the linear functional
act on a vector
is written as
. The bra is similar to the ket, but the values are in a row, and each element is the complex conjugate of the ket's elements.
In the simple case where we consider the vector space
, a ket can be identified with a column vector, and a bra as a row vector.
&
, for two dimensional Hilbert Space ,
Defining a basis state
, we can use the
ket
module like this:from qutipy.general_functions import ket
# Defining a ket 0 in a 2Dimensional Hilbert space,
# The first argument takes a dimension of the Hilbert space,
# while the secind argument takes the ket value.
v = ket(2,0)
Here we have defined the ket v for
. In numpy, defining the same would need one to define the matrix manually, just as shown in the Overview section.
The Partial Transpose plays an important role in quantum information theory due to its connection with entanglement. In fact, it leads to a sufficient condition for a bipartite state to be entangled.
Given quantum systems
and
, the partial transpose on
is denoted by
, and it is defined as,
partial_transpose(...)
is a function that computes the partial transpose of a matrix. The transposition may be taken on any subset of the subsystems on which the matrix acts. Defining a state
X
with [ ... ]import numpy as np
X = np.array(
[
[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]
]
)
Now we can apply the
partial_transpose
function over our state X
: from qutipy.general_functions import partial_transpose
pt = partial_transpose(X, [1], X.shape)
Last modified 7mo ago