Difference between revisions of "DickeState"
(Created page with "{{Function |name=DickeState |desc=Generates a Dicke state |rel=GHZState<br />MaxEntangled<br />WState |cat=List of functions#Special_states,_vectors,_and_operato...") |
|||
| (One intermediate revision by the same user not shown) | |||
| Line 60: | Line 60: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | == | + | ===A very large Dicke state=== |
| − | This | + | This script has no trouble creating Dicke states on very large numbers of qubits. The following code generates a 45-qubit Dicke state: |
| + | <syntaxhighlight> | ||
| + | >> tic; DickeState(45); toc | ||
| + | Elapsed time is 0.101930 seconds. | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | Note that Octave has a size limit of 2^31-1, so <tt>DickeState(30)</tt> is the limit of this function there. <tt>DickeState(31)</tt> and larger will produce an error in Octave (but not MATLAB). | ||
{{SourceCode|name=DickeState}} | {{SourceCode|name=DickeState}} | ||
Latest revision as of 13:32, 13 June 2018
| 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
0A 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.3162A 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.