I have the following code:
The first part is just defining the matrices, the error is at the end of the code.
Id = SparseArray[{{1, 0}, {0 , 1}}];
Z = SparseArray[{{1, 0}, {0, -1}}];
X = SparseArray[{{0, 1}, {1, 0}}];
(* Check Operator Z1 for qubits 1, 2, 4 and 16 *)
Z1 = SparseArray[{KroneckerProduct[Id, Id, Z, Id, Id, Id, Id, Id, Id,
Id, Id, Id, Id, Id, Z, Id, Z, Z]}] ;
(* Check Operator Z2 for qubits 4,7,8 and 10 *)
Z2 = SparseArray[{KroneckerProduct[Id, Id, Id, Id, Id, Id, Id, Id, Z,
Id, Z, Z, Id, Id, Z, Id, Id, Id]}] ;
(* Check Operator Z3 for qubits 10,13,14 and 16 *)
Z3 = SparseArray[{KroneckerProduct[Id, Id, Z, Id, Z, Z, Id, Id, Z, Id,
Id, Id, Id, Id, Id, Id, Id, Id]}] ;
(* Check Operator Z4 for qubits 2,3,5 and 17 *)
Z4 = SparseArray[{KroneckerProduct[Id, Z, Id, Id, Id, Id, Id, Id, Id,
Id, Id, Id, Id, Z, Id, Z, Z, Id]}] ;
(* Check Operator Z5 for qubits 5,8,9 and 11 *)
Z5 = SparseArray[{KroneckerProduct[Id, Id, Id, Id, Id, Id, Id, Z, Id,
Z, Z, Id, Id, Z, Id, Id, Id, Id]}] ;
(* Check Operator Z6 for qubits 11,14,15 and 17 *)
Z6 = SparseArray[{KroneckerProduct[Id, Z, Id, Z, Z, Id, Id, Z, Id, Id,
Id, Id, Id, Id, Id, Id, Id, Id]}] ;
(* Check Operator Z7 for qubits 1,3,6 and 18 *)
Z7 = SparseArray[{KroneckerProduct[Z, Id, Id, Id, Id, Id, Id, Id, Id,
Id, Id, Id, Z, Id, Id, Z, Id, Z]}] ;
(* Check Operator Z8 for qubits 6,7,9 and 12 *)
Z8 = SparseArray[{KroneckerProduct[Id, Id, Id, Id, Id, Id, Z, Id, Id,
Z, Id, Z, Z, Id, Id, Id, Id, Id]}] ;
(* Check Operator Z9 for qubits 12,13,15 and 18 *)
Z9 = SparseArray[{KroneckerProduct[Z, Id, Id, Z, Id, Z, Z, Id, Id, Id,
Id, Id, Id, Id, Id, Id, Id, Id]}] ;
(* Check Operator X1 for qubits 1, 2, 4 and 16 *)
X1 = SparseArray[{KroneckerProduct[Id, Id, Id, Id, Id, Id, Id, Id, Id,
Id, Id, X, X, Id, X, Id, Id, X]}] ;
(* Check Operator X2 for qubits 4,7,8 and 10 *)
X2 = SparseArray[{KroneckerProduct[Id, Id, Id, Id, Id, X, X, Id, X,
Id, Id, X, Id, Id, Id, Id, Id, Id]}] ;
(* Check Operator Z3 for qubits 10,13,14 and 16 *)
X3 = SparseArray[{KroneckerProduct[X, Id, X, Id, Id, X, Id, Id, Id,
Id, Id, Id, Id, Id, Id, Id, Id, X]}] ;
(* Check Operator Z4 for qubits 2,3,5 and 17 *)
X4 = SparseArray[{KroneckerProduct[Id, Id, Id, Id, Id, Id, Id, Id, Id,
Id, X, Id, Id, X, X, Id, X, Id]}] ;
(* Check Operator Z5 for qubits 5,8,9 and 11 *)
X5 = SparseArray[{KroneckerProduct[Id, Id, Id, Id, X, Id, Id, X, X,
Id, X, Id, Id, Id, Id, Id, Id, Id]}] ;
(* Check Operator Z6 for qubits 11,14,15 and 17 *)
X6 = SparseArray[{KroneckerProduct[Id, X, Id, X, X, Id, Id, Id, Id,
Id, Id, Id, Id, Id, Id, Id, X, Id]}] ;
(* Check Operator Z7 for qubits 1,3,6 and 18 *)
X7 = SparseArray[{KroneckerProduct[Id, Id, Id, Id, Id, Id, Id, Id, Id,
X, Id, Id, X, X, Id, X, Id, Id]}] ;
(* Check Operator Z8 for qubits 6,7,9 and 12 *)
X8 = SparseArray[{KroneckerProduct[Id, Id, Id, X, Id, Id, X, X, Id, X,
Id, Id, Id, Id, Id, Id, Id, Id]}] ;
(* Check Operator Z9 for qubits 12,13,15 and 18 *)
X9 = SparseArray[{KroneckerProduct[X, X, Id, X, Id, Id, Id, Id, Id,
Id, Id, Id, Id, Id, Id, X, Id, Id]}] ;
H = -(Z1 + Z2 + Z3 + Z4 + Z5 + Z6 + Z7 + Z8 + Z9) - (X1 + X2 + X3 +
X4 + X5 + X6 + X7 + X8 + X9);
Hvectors =
Eigenvectors[H, 1, Method -> {"Arnoldi", "Criteria" -> "RealPart"}]
But it gives me the following responde and I don't understand why:
Eigenvectors::arm: Method -> Arnoldi can only be used for matrices of machine- or arbitrary-precision real numbers.
Could somone explain me why this error is occuring?