QuTiP: разрешение несовместимых форм Qobj - PullRequest
0 голосов
/ 12 ноября 2018

Это было ранее исследовано в QuTiP TypeError: Несовместимые формы Qobj с тензорным произведением , но я не уверен насчет ответа там.

Предположим, я определил A = tensor(qeye(2), qeye(2)) и B = qeye(4)Я не могу их умножить, потому что формы объектов противоречивы.

Однако матрицы имеют одинаковое измерение, и я хотел бы "сгладить" A, чтобы позволить его умножить на B.Если у меня есть комбинация разделенных и неразделимых операторов, как я могу использовать их вместе?Другими словами, B нельзя еще больше упростить, так что я должен сделать с A, чтобы их можно было умножить?

РЕДАКТИРОВАТЬ: неуклюжий вид Qobj (A.data.toarray ()) работает, ноЯ оставлю это открытым, если у кого-то есть идея получше или она поймет, почему QuTiP делает это.

1 Ответ

0 голосов
/ 13 ноября 2018

Да, используя Qobj.data, вы получите матрицу, представляющую состояние или оператор.

Следовательно, A.data * B.data позволяет вам умножить их вместе.Как только вы это сделаете, вы можете заключить его в Qobj(A.data * B.data), чтобы сделать его квантовым объектом.

...