Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Represent a discrete quantum measurement operator
ResourceFunction["QuantumMeasurementOperator"][<|b11→e11,b12→e12,…|>,order,QuantumBasis[…]] represents a discrete projection-valued quantum measurement operator with (tensor products of) basis elements bij and associated matrix elements eij, applied to qudits indexed by order, defined with respect to a specified QuantumBasis. | |
ResourceFunction["QuantumMeasurementOperator"][<|b1→o1,b2→o2,…|>,order,QuantumBasis[…]] represents a discrete positive operator-valued quantum measurement operator with basis elements bi and associated matrix operators oi, applied to qudits indexed by order, defined with respect to a specified QuantumBasis. | |
ResourceFunction["QuantumMeasurementOperator"][mat,order,QuantumBasis[…]] represents a discrete projection-valued quantum measurement operator with matrix representation mat, applied to the qudits indexed by order, defined with respect to a specified QuantumBasis. | |
ResourceFunction["QuantumMeasurementOperator"][ops,order,QuantumBasis[…]] represents a discrete positive operator-valued quantum measurement operator with the list of matrix operators ops, applied to the qudits indexed by order, defined with respect to a specified QuantumBasis. | |
ResourceFunction["QuantumMeasurementOperator"][{QuantumBasis[…],eigs},order] represents a discrete projection-valued quantum measurement operator with respect to the specified QuantumBasis, with possible outcomes/eigenvalues given by the list eigs, applied to the qudits indexed by order. | |
ResourceFunction["QuantumMeasurementOperator"]["name",order,pic] represents a named discrete projection-valued quantum measurement operator "name", applied to the qudits indexed by order, with respect to the quantum mechanical picture pic. | |
ResourceFunction["QuantumMeasurementOperator"][{"name",d},order,pic] represents a d-dimensional version of a named discrete projection-valued quantum measurement operator "name", applied to the qudits indexed by order, with respect to the quantum mechanical picture pic. | |
ResourceFunction["QuantumMeasurementOperator"][{"name",d,eigs},order,pic] represents a discrete projection-valued quantum measurement operator with respect to a named basis "name", with possible outcomes/eigenvalues given by the list eigs, applied to the qudits indexed by order, with respect to the quantum mechanical picture pic. | |
ResourceFunction["QuantumMeasurementOperator"][ResourceFunction["QuantumMeasurementOperator"][…],QuantumBasis[…]] transforms a specified ResourceFunction["QuantumMeasurementOperator"] into a new QuantumBasis. | |
ResourceFunction["QuantumMeasurementOperator"][ResourceFunction["QuantumMeasurementOperator"][…],pic] transforms a specified ResourceFunction["QuantumMeasurementOperator"] into the new quantum mechanical picture pic. |
| "Operator" | association <|b11→e11,b12→e12,…|> of tensor products of basis names and matrix elements (for projection-valued measurements), or association <|b1→o1,b2→o2,…|> of basis names and matrix operators (for positive operator-valued measurements) |
| "Basis" | which QuantumBasis the measurement operator is defined with respect to |
| "Picture" | which quantum mechanical picture the measurement operator is defined with respect to |
| "BasisElements" | list of basis elements bi |
| "MatrixRepresentation" | matrix representation mat of the measurement operator (projection-valued measurements only) |
| "POVMElements" | list of operator matrices ops of the measurement operator (positive operator-valued measurements only) |
| "OrderedMatrixRepresentation" | matrix representation adjusted according to the order of the measurement operator, assuming an input state containing Max[order] qudits (subsystems) |
| {"OrderedMatrixRepresentation",n} | matrix representation adjusted according to the order of the measurement operator, assuming an input state containing n qudits (subsystems) |
| "OrderedPOVMElements" | list of operator matrices adjusted according to the order of the measurement operator, assuming an input state containing Max[order] qudits (subsystems) |
| {"OrderedPOVMElements",n} | list of operator matries adjusted according to the order of the measurement operator, assuming an input state containing n qudits (subsystems) |
| "Arity" | arity of the measurement operator |
| "Dimensions" | dimensionality of each qudit (subsystem) in the input state for the measurement operator |
| "Order" | order in which the measurement operator should be applied to qudits (subsystems) in the input state |
| "HermitianQ" | whether the operator is Hermitian (self-adjoint) |
| "UnitaryQ" | whether the operator is unitary (an automorphism of Hilbert space) |
| "Eigenvalues" | eigenvalues of the matrix representation(s) of the measurement operator |
| "Eigenvectors" | eigenvectors of the matrix representation(s) of the measurement operator |
| "ProjectionQ" | whether the measurement operator is projection-valued |
| "POVMQ" | whether the measurement operator is positive operator-valued |
| "Properties" | list of all property names |
| "PauliX" | measurement operator based on the Pauli-X gate for qubits (equivalent to a π rotation around the x-axis of the Bloch sphere) |
| {"PauliX",d} | measurement operator based on the Pauli-X gate for d-dimensional qudits (not Hermitian for general d>2) |
| "PauliY" | measurement operator based on the Pauli-Y gate for qubits (equivalent to a π rotation around the y axis of the Bloch sphere) |
| "PauliZ" | measurement operator based on the Pauli-Z gate for qubits (equivalent to a π rotation around the z axis of the Bloch sphere) |
| {"PauliZ",d} | measurement operator based on the Pauli-Z gate for d-dimensional qudits (not Hermitian for general d>2) |
| "Hadamard" | measurement operator based on the Hadamard gate for qubits (equivalent to a QFT gate on one qubit) |
| "RandomHermitian" | random Hermitian operator on qubits (Gaussian Hermitian ensemble) |
| {"RandomHermitian",d} | random Hermitian operator for d-dimensional qudits |
| "ComputationalBasis" | measurement in the 2-dimensional computational basis |
| {"ComputationalBasis",d} | measurement in the d-dimensional computational basis |
| {"ComputationalBasis",d,eigs} | measurement in the d-dimensional computational basis with eigenvalues (i.e. measurement outcomes) eigs |
| "BellBasis" | measurement in the Bell basis |
| {"BellBasis",eigs} | measurement in the Bell basis with eigenvalues (i.e. measurement outcomes) eigs |
| "PauliBasis" | measurement in the basis of Pauli matrices |
| {"PauliBasis",eigs} | measurement in the basis of Pauli matrices with eigenvalues (i.e. measurement outcomes) eigs |
| "FourierBasis" | measurement in the 2-dimensional basis of the quantum Fourier transform |
| {"FourierBasis",d} | measurement in the d-dimensional basis of the quantum Fourier transform |
| {"FourierBasis",d,eigs} | measurement in the d-dimensional basis of the quantum Fourier transform with eigenvalues (i.e. measurement outcomes) eigs |
Create a projection-valued discrete quantum measurement operator from a matrix representation in the computational basis (default):
| In[1]:= |
| Out[1]= |
Return its operator association:
| In[2]:= |
| Out[2]= |
Apply the measurement operator to the first qubit (default) of a two-qubit discrete quantum state in the computational basis:
| In[3]:= |
| Out[3]= |
| In[4]:= |
| Out[4]= |
Apply the measurement operator instead to the second qubit of the state:
| In[5]:= |
| Out[5]= |
| In[6]:= |
| Out[6]= |
Create a positive operator-valued discrete quantum measurement operator from a list of matrix representations in the computational basis (default):
| In[7]:= | ![]() |
| Out[7]= |
Show that the measurement operator is positive operator-valued:
| In[8]:= |
| Out[8]= |
| In[9]:= |
| Out[9]= |
Return its list of operator matrices:
| In[10]:= |
| Out[10]= | ![]() |
Return the ordered list of operator matrices (assuming a state of size 2):
| In[11]:= |
| Out[11]= | ![]() |
Return the ordered list of operator matrices (assuming a state of size 3):
| In[12]:= |
| Out[12]= | ![]() |
Return its operator association:
| In[13]:= |
| Out[13]= | ![]() |
Apply the measurement operator to the first qubit (default) of a two-qubit discrete quantum state in the computational basis:
| In[14]:= |
| Out[14]= |
Create a projection-valued discrete quantum measurement operator from a matrix representation in a specified basis (Pauli-X) and return its matrix representation:
| In[15]:= | ![]() |
| Out[15]= |
Return its operator association:
| In[16]:= |
| Out[16]= |
Show that the measurement operator is Hermitian, but not unitary:
| In[17]:= |
| Out[17]= |
| In[18]:= |
| Out[18]= |
Return the ordered matrix representation (assuming a state of size 2):
| In[19]:= |
| Out[19]= |
Return the ordered matrix representation (assuming a state of size 3):
| In[20]:= |
| Out[20]= | ![]() |
Return the ordered matrix representation (assuming a state of size 2) assuming that the measurement operator is applied instead to the second qubit of the state:
| In[21]:= | ![]() |
| Out[21]= |
Create a measurement operator based on the Pauli-X gate for qubits:
| In[22]:= |
| Out[22]= |
Create a measurement operator based on the Pauli-X gate for 3-dimensional qudits (non-Hermitian):
| In[23]:= |
| Out[23]= |
Create a measurement operator in the basis of the quantum Fourier transform on 1 qubit:
| In[24]:= |
| Out[24]= |
Create a measurement operator in the basis of the quantum Fourier transform on 2 qubits:
| In[25]:= |
| Out[25]= | ![]() |
Create a measurement operator in the Bell basis, with eigenvalues (i.e. measurement outcomes) x, y, z and w:
| In[26]:= |
| Out[26]= | ![]() |
Return its list of eigenvalues:
| In[27]:= |
| Out[27]= |
Return its list of eigenvectors:
| In[28]:= |
| Out[28]= |
Create a measurement operator directly from a QuantumBasis object:
| In[29]:= | ![]() |
| Out[29]= |
Use eigenvalues (i.e. measurement outcomes) 1, -1, I, -I instead:
| In[30]:= | ![]() |
| Out[30]= | ![]() |
Return the lists of eigenvalues and eigenvectors:
| In[31]:= |
| Out[31]= |
| In[32]:= |
| Out[32]= |
Create a projection-valued discrete quantum measurement operator by explicitly specifying an association of matrix elements in a given (tensor product) basis and return its matrix representation:
| In[33]:= | ![]() |
| Out[33]= |
Return its basis element association:
| In[34]:= |
| Out[34]= |
Return its operator association:
| In[35]:= |
| Out[35]= |
Create a positive operator-valued discrete quantum measurement operator by explicitly specifying an association of matrix operators in a given basis and return its list of elements:
| In[36]:= | ![]() |
| Out[36]= |
Return its basis element association:
| In[37]:= |
| Out[37]= |
Return its operator association:
| In[38]:= |
| Out[38]= |
Discrete quantum measurement operators can be applied to QuantumDiscreteState objects:
| In[39]:= | ![]() |
| Out[39]= |
However, measurement operators can also be applied directly to QuantumMeasurement objects to obtain a joint distribution:
| In[40]:= |
| Out[40]= |
By default, all discrete quantum measurement operators are assumed to apply to tensor products of 2-dimensional subsystems (i.e. qubits):
| In[41]:= |
| Out[41]= |
| In[42]:= |
| Out[42]= | ![]() |
Create a discrete quantum measurement operator with the same matrix representation applying to a single 4-dimensional subsystem (i.e. qudit) instead:
| In[43]:= |
| Out[43]= |
| In[44]:= |
| Out[44]= |
Create a projection-valued discrete quantum measurement operator in the computational basis (default):
| In[45]:= |
| Out[45]= |
| In[46]:= |
| Out[46]= |
| In[47]:= |
| Out[47]= |
Transform the measurement operator to the Fourier basis:
| In[48]:= |
| Out[48]= |
| In[49]:= |
| Out[49]= |
| In[50]:= |
| Out[50]= |
Transform the measurement operator back to the computational basis:
| In[51]:= |
| Out[51]= |
| In[52]:= |
| Out[52]= |
| In[53]:= |
| Out[53]= |
The initial and final operators are the same:
| In[54]:= |
| Out[54]= |
Create a positive operator-valued discrete quantum measurement operator in the computational basis (default):
| In[55]:= |
| Out[55]= |
| In[56]:= |
| Out[56]= |
| In[57]:= |
| Out[57]= |
Transform the measurement operator to the Fourier basis:
| In[58]:= |
| Out[58]= |
| In[59]:= |
| Out[59]= |
| In[60]:= |
| Out[60]= |
Transform the measurement operator back to the computational basis:
| In[61]:= |
| Out[61]= |
| In[62]:= |
| Out[62]= |
| In[63]:= |
| Out[63]= |
The initial and final operators are the same:
| In[64]:= |
| Out[64]= |
Represent the Pauli-Z measurement gate in the Heisenberg picture:
| In[65]:= |
| Out[65]= |
| In[66]:= |
| Out[66]= |
Transform the measurement operator to the interaction picture:
| In[67]:= |
| Out[67]= |
| In[68]:= |
| Out[68]= |
Represent a 2-qubit random Hermitian operator in the computational basis:
| In[69]:= |
| Out[69]= | ![]() |
| In[70]:= |
| Out[70]= |
Represent the same operator in the Pauli-X basis instead:
| In[71]:= | ![]() |
| Out[71]= | ![]() |
| In[72]:= |
| Out[72]= |
Measurement operators in a given quantum-mechanical picture can be applied to QuantumDiscreteState objects that are also in the same picture:
| In[73]:= |
| Out[73]= |
| In[74]:= |
| Out[74]= |
| In[75]:= |
| Out[75]= |
However, they cannot be applied to QuantumDiscreteState objects if the pictures do not match (returns unevaluated):
| In[76]:= |
| Out[76]= |
| In[77]:= |
| Out[77]= | ![]() |
Represent a Pauli-X measurement gate (a π rotation around the x axis of the Bloch sphere) on qubits for qubit number 3:
| In[78]:= |
| Out[78]= |
Represent a Pauli-X measurement gate on 3-dimensional qudits for qudit number 3 (not Hermitian):
| In[79]:= |
| Out[79]= |
Represent a Pauli-Y measurement gate (a π rotation around the y axis of the Bloch sphere) on qubits for qubit number 3:
| In[80]:= |
| Out[80]= |
Represent a Pauli-Z measurement gate (a π rotation around the z-axis of the Bloch sphere) on qubits for qubit number 3:
| In[81]:= |
| Out[81]= |
Represent a Pauli-Z measurement gate on 3-dimensional qudits for qudit number 3 (not Hermitian):
| In[82]:= |
| Out[82]= | ![]() |
Represent a Hadamard measurement gate (a single-qubit quantum Fourier transform) for qubit number 1:
| In[83]:= |
| Out[83]= |
Represent a single-qubit random Hermitian operator (selected from a Gaussian Hermitian ensemble) for qubit 2:
| In[84]:= |
| Out[84]= |
Represent a two-qubit random Hermitian operator (selected from a Gaussian Hermitian ensemble) for qubits 2 and 3:
| In[85]:= |
| Out[85]= | ![]() |
Represent a single-qudit random Hermitian operator (selected from a Gaussian Hermitian ensemble) on 3-dimensional qudits for qudit 2:
| In[86]:= |
| Out[86]= | ![]() |
Represent a two-qudit random Hermitian operator (selected from a Gaussian Hermitian ensemble) on 3-dimensional qudits for qudits 2 and 3:
| In[87]:= |
| Out[87]= | ![]() |
Represent a single-qubit computational basis measurement (with default eigenvalues) for qubit number 3:
| In[88]:= |
| Out[88]= |
Represent a two-qubit computational basis measurement (with default eigenvalues) for qubits 3 and 4:
| In[89]:= |
| Out[89]= | ![]() |
Represent a two-qubit computational basis measurement (with eigenvalues x, y, z, w) for qubits 3 and 4:
| In[90]:= |
| Out[90]= | ![]() |
Represent a single-qudit computational basis measurement (with default eigenvalues) on 3-dimensional qudits for qudit number 3:
| In[91]:= |
| Out[91]= |
Represent a two-qudit computational basis measurement (with default eigenvalues) on 3-dimensional qudits for qudits 3 and 4:
| In[92]:= |
| Out[92]= | ![]() |
Represent a single-qudit computational basis measurement (with eigenvalues x, y, z) on 3-dimensional qudits for qudit number 3:
| In[93]:= |
| Out[93]= |
Represent a single-qudit Bell basis measurement (with default eigenvalues) for qudit number 3:
| In[94]:= |
| Out[94]= |
Represent a single-qudit Bell basis measurement (with eigenvalues x, y, z, w) for qudit number 3:
| In[95]:= |
| Out[95]= | ![]() |
Represent a single-qubit Pauli basis measurement (with default eigenvalues) for qubit number 3:
| In[96]:= |
| Out[96]= |
Represent a two-qubit Pauli basis measurement (with default eigenvalues) for qubits 3 and 4:
| In[97]:= |
| Out[97]= | ![]() |
Represent a two-qubit Pauli basis measurement (with eigenvalues x, y, z, w) for qubits 3 and 4:
| In[98]:= |
| Out[98]= | ![]() |
Represent a single-qubit Fourier basis measurement (with default eigenvalues) for qubit number 3:
| In[99]:= |
| Out[99]= |
Represent a two-qubit Fourier basis measurement (with default eigenvalues) for qubits 3 and 4:
| In[100]:= |
| Out[100]= | ![]() |
Represent a two-qubit Fourier basis measurement (with eigenvalues x, y, z, w) for qubits 3 and 4:
| In[101]:= |
| Out[101]= | ![]() |
Represent a single-qudit Fourier basis measurement (with default eigenvalues) on 3-dimensional qudits for qudit number 3:
| In[102]:= |
| Out[102]= | ![]() |
Represent a two-qudit Fourier basis measurement (with default eigenvalues) on 3-dimensional qudits for qudits 3 and 4:
| In[103]:= |
| Out[103]= | ![]() |
Represent a single-qudit Fourier basis measurement (with eigenvalues x, y, z) on 3-dimensional qudits for qudit number 3:
| In[104]:= |
| Out[104]= | ![]() |
QuantumMeasurementOperator objects can be constructed purely symbolically (without explicit matrix elements):
| In[105]:= |
| Out[105]= |
View the measurement operator association:
| In[106]:= |
| Out[106]= |
Standard operations can still be performed on purely symbolic measurement operators:
| In[107]:= |
| Out[107]= |
| In[108]:= |
| Out[108]= | ![]() |
View a list of properties that can be extracted from a QuantumMeasurementOperator object:
| In[109]:= |
| Out[109]= |
| In[110]:= |
| Out[110]= | ![]() |
Return the operator association:
| In[111]:= |
| Out[111]= | ![]() |
Return which QuantumBasis the measurement operator is defined with respect to:
| In[112]:= |
| Out[112]= |
Return which quantum mechanical picture the measurement operator is defined with respect to:
| In[113]:= |
| Out[113]= |
Return the association of names and basis elements:
| In[114]:= |
| Out[114]= |
Return the matrix representation:
| In[115]:= |
| Out[115]= | ![]() |
Return the ordered matrix representation (when applied to qubits 2 and 3) assuming a state consisting of 3 qubits:
| In[116]:= |
| Out[116]= | ![]() |
Return the ordered matrix representation (when applied to qubits 2 and 3) assuming a state consisting of 4 qubits:
| In[117]:= |
| Out[117]= | ![]() |
Return arity (number of input subsystems):
| In[118]:= |
| Out[118]= |
Return the number of dimensions:
| In[119]:= |
| Out[119]= |
Return the order in which the measurement operator is applied to subsystems:
| In[120]:= |
| Out[120]= |
Determine whether the measurement operator is Hermitian:
| In[121]:= |
| Out[121]= |
Determine whether the measurement operator is unitary:
| In[122]:= |
| Out[122]= |
Return the list of eigenvalues:
| In[123]:= |
| Out[123]= |
Return the list of eigenvectors:
| In[124]:= |
| Out[124]= | ![]() |
Determine whether the measurement operator is projection-valued:
| In[125]:= |
| Out[125]= |
Determine whether the measurement operator is positive operator-valued:
| In[126]:= |
| Out[126]= |
Define a positive operator-valued measurement operator instead:
| In[127]:= |
| Out[127]= |
Return the list of operator matrices:
| In[128]:= |
| Out[128]= |
Return the ordered list of operator matrices (when applied to qubit 2) assuming a state consisting of 2 qubits:
| In[129]:= |
| Out[129]= |
Return the ordered list of operator matrices (when applied to qubit 2) assuming a state consisting of 3 qubits:
| In[130]:= |
| Out[130]= | ![]() |
Return the list of eigenvalues for each operator:
| In[131]:= |
| Out[131]= |
Return the list of eigenvectors for each operator:
| In[132]:= |
| Out[132]= |
This work is licensed under a Creative Commons Attribution 4.0 International License