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