DickeState
DickeState | |
Generates a Dicke state | |
Other toolboxes required | none |
---|---|
Related functions | GHZState MaxEntangled WState |
Function category | Special states, vectors, and operators |
DickeState is a function that returns a Dicke state on a given number of qubits. For example, the usual $3$-qubit Dicke state is: \[\frac{1}{\sqrt{3}}(|001\rangle + |010\rangle + |100\rangle).\] More generally, the Dicke state on $N$ qubits with $k$ excitations is \[\frac{1}{\sqrt{\binom{N}{k}}}\sum_{j} P_j \big(|0\rangle^{\otimes (N-k)} \otimes|1\rangle^{\otimes k} \big),\] where $P_j$ ranges over all operators that permute the $N$ qubits in the $\binom{N}{k}$ possible distinct ways. The output of this function is a sparse vector.
Syntax
- DICKE_STATE = DickeState(N)
- DICKE_STATE = DickeState(N,K)
- DICKE_STATE = DickeState(N,K,NRML)
Argument descriptions
- N: The number of qubits.
- K (optional, default 1): The number of excitations (i.e., the number of "1" qubits in each term of the superposition; must be between 0 and N, inclusive.
- NRML (optional, default 1): A flag (either 1 or 0) indicating that DICKE_STATE should or should not be scaled to have Euclidean norm 1. If NRML=0 then each entry of DICKE_STATE is 0 or 1, so it has norm $\sqrt{\binom{N}{k}}$.
Examples
3-qubit Dicke state
The following code generates the 3-qubit Dicke state (with 1 excitation):
>> full(DickeState(3))
ans =
0
0.5774
0.5774
0
0.5774
0
0
0
A 5-qubit Dicke state
The following code generates the 5-qubit 2-excitation Dicke state \[\frac{1}{\sqrt{10}}\big( |00011\rangle + |00101\rangle + |00110\rangle + |01001\rangle + |01010\rangle + |01100\rangle + |10001\rangle + |10010\rangle + |10100\rangle + |11000\rangle \big).\]
>> DickeState(5,2)
ans =
(4,1) 0.3162
(6,1) 0.3162
(7,1) 0.3162
(10,1) 0.3162
(11,1) 0.3162
(13,1) 0.3162
(18,1) 0.3162
(19,1) 0.3162
(21,1) 0.3162
(25,1) 0.3162
A very large Dicke state
This script has no trouble creating Dicke states on very large numbers of qubits. The following code generates a 45-qubit Dicke state:
>> tic; DickeState(45); toc
Elapsed time is 0.101930 seconds.
Note that Octave has a size limit of 2^31-1, so DickeState(30) is the limit of this function there. DickeState(31) and larger will produce an error in Octave (but not MATLAB).
Source code
Click here to view this function's source code on github.