QuTiP: разрешение несовместимых форм Qobj
Ранее это было исследовано в QuTiP TypeError: Несовместимые формы Qobj с тензорным произведением, но я не уверен насчет ответа там.
Предположим, я определил A = tensor(qeye(2), qeye(2))
а также B = qeye(4)
Я не могу их умножить, потому что формы объектов противоречивы.
Тем не менее, матрицы имеют одинаковое измерение, и я хотел бы "сплющить" A
чтобы позволить это быть умножено на B
, Если у меня есть комбинация разделенных и неразделимых операторов, как мне использовать их вместе? Другими словами, B
не может быть упрощено дальше, так что я должен сделать, чтобы A
позволить им быть умноженными?
РЕДАКТИРОВАТЬ: неуклюжий вид Qobj(A.data.toarray()) работает, но я оставлю это открытым, если у кого-то есть идея получше или понимает, почему QuTiP делает это.
1 ответ
Да, используя Qobj.data
Вы получаете матрицу, представляющую состояние или оператора.
следовательно A.data * B.data
позволяет вам умножить их вместе. Как только вы это сделаете, вы можете заключить его в Qobj(A.data * B.data)
сделать его квантовым объектом.