Я думаю, я знаю, что является причиной проблемы в вашем случае.
Давайте начнем с просмотра указанного вами оператора.
a = tensor(hadamard_transform(1), hadamard_transform(1), identity(2), identity(2))
Это говорит вам о том, что у вас есть четыре квантовых элемента, которые действуют на четыре отдельных кубита. Первые два входа - это ворота Адамара, которые действуют на первые два кубита, а затем у вас есть идентичность, которая ничего не делает с двумя вторыми кубитами.
когда вы пишете basis(16,1)
QuTiP в основном интерпретирует это как один кубит, который живет в гильбертовом пространстве с 16 измерениями вместо тензорного произведения четырех кубитов.
Чтобы решить вашу проблему, вы должны указать свой кет-вектор как тензорное произведение четырех кубитов.
b = tensor([basis(2,0), basis(2,0), basis(2,0), basis(2,1)])
Затем вы пишете a*b
, чтобы получить желаемый результат.