Я пытаюсь умножить матрицу на константы, которые я определил следующим образом:
E1 = "E1"
E2 = "E2"
J = "J"
Однако тогда, когда я пытаюсь умножить их на матрицы, определенные ниже, я получаю ошибку:
# Defining the sigma functions and Identity matrices:
sigx = np.array([[0,1],[1,0]])
sigy = np.array([[0,-1j],[1j,0]])
sigz = np.array([[1,0],[0,-1]])
I1 = np.array([[1,0],[0,1]])
I2 = I1
![enter image description here](https://i.stack.imgur.com/wQitq.png)
# Trying to structure a Hamiltonian
H1 = np.kron(((E1)*(sigz)),I2)
H2 = np.kron((E2*(I1)),(sigz))
H3 = J*((np.kron((sigx),(sigx)))+(np.kron((sigy),(sigy))))
print(H1)
print(H2)
print(H3)
# Overall Hamiltonian Matrix
Hs = H1 + H2 + H3
print(Hs)
![enter image description here](https://i.stack.imgur.com/yK9q8.png)
Сценарий работает, если я не определяю E1, E2 или J заранее, как показано выше, но он работает только потому, что python автоматически присваивает им значение 1,2,3. Как получить, чтобы E1, E2 и J появлялись на выходах матричной операции?