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) сделать его квантовым объектом.

Другие вопросы по тегам