Загружаем научный разбор
Подготавливаем текст, источники и редакционные примечания без изменения разметки страницы.
Подготавливаем текст, источники и редакционные примечания без изменения разметки страницы.
Автор: Казачкин Даниил Михайлович · Обновлено
Как представить чётное состояние кота конечным массивом, проверить нормировку и обнаружить слишком маленький базис. Самостоятельный пример на стандартном Python.
# Симуляция состояния кота: чётность и усечение
Математическая модель оптической моды допускает неограниченное число фотонов. Программа располагает конечной памятью и хранит только первые D компонент. Это не просто техническая деталь: слишком маленький базис способен изменить результат так, что нормированный массив будет выглядеть совершенно корректным.
Статья показывает собственный расчёт распределения для идеального чётного состояния кота без потерь и сжатия. Он нужен для понимания численной проверки. В нём нет моделирования реальной экспериментальной установки, а выводы об оптимальном антисжатии из такого кода получать нельзя.
В фотонном базисе компонентам соответствуют 0, 1, 2 и далее фотонов. У чётной суперпозиции когерентных состояний с амплитудами alpha и −alpha нечётные компоненты взаимно сокращаются. Для вещественного alpha вероятность чётного n имеет вид alpha^(2n) / (n! × cosh(alpha²)); для нечётного n она равна нулю.
QuTiP предоставляет представления состояний, операторов и преобразований с явно указанной размерностью. Документация состояний. Наш пример ниже обходится стандартной библиотекой Python и независимо вычисляет только фотонные вероятности. Для динамики открытой системы потребуются более общие объекты и решатели, например описанные в работе QuTiP 2.
Если сохранить только первые десять компонент и разделить их на сумму, итоговая сумма станет единицей при любом размере ошибки. Мы потеряем признак того, сколько вероятности оставили за границей. Поэтому сначала полезно использовать известную аналитическую нормировку и посчитать захваченную массу.
from math import cosh, factorial
def even_cat_probabilities(alpha, dimension):
if dimension < 1:
raise ValueError("dimension must be positive")
return [
alpha ** (2 * n) / (factorial(n) * cosh(alpha * alpha))
if n % 2 == 0 else 0.0
for n in range(dimension)
]
for dimension in (4, 12, 24):
probabilities = even_cat_probabilities(2.0, dimension)
captured_mass = sum(probabilities)
print(dimension, round(captured_mass, 6))
assert all(p == 0 for p in probabilities[1::2])
p = even_cat_probabilities(2.0, 24)
assert abs(sum(p) - 1.0) < 1e-9Для D = 4 захвачено лишь около 0,330. При D = 12 — около 0,999. При D = 24 сумма с указанным округлением равна 1,0. Изменение размерности здесь важнее количества знаков, которые программа печатает для отдельной вероятности. Значения получены на искусственном идеальном состоянии с alpha = 2.
Прямое вычисление степени и факториала подходит для этого маленького примера. При больших параметрах понадобится рекуррентная формула или логарифмическое представление. Замена реализации тоже требует контрольного расчёта: устойчивый код с неправильным индексом даст аккуратный, но неверный ответ.
Совпадение фотонных вероятностей не означает совпадения произвольных квантовых состояний. Распределение одного измерения не содержит всю информацию о фазах и когерентности. Поэтому для полноценной симуляции работают с вектором состояния или матрицей плотности, а не только с диагональным набором вероятностей. Здесь мы намеренно проверяем узкую часть модели.
Если добавить потери, состояние в общем случае станет смешанным. Простое уменьшение alpha и повторный расчёт чистого кота не является общей заменой канала потерь. Если добавить сжатие, изменится распределение по числу фотонов и прежней размерности может уже не хватить. Контроль нужно повторять для самого сложного режима во всём переборе параметров.
Сначала проверяют аналитически известный предел: при alpha = 0 должен остаться вакуум. Затем проверяют отсутствие нечётных компонент в рассматриваемой идеальной модели. После этого увеличивают D и сравнивают целевую величину, например вероятность ошибки конкретного решения. Малый хвост вероятности полезен, но не заменяет проверки сходимости самого результата.
Для воспроизводимого отчёта запишите параметры, размерность и допуск. Полезно сохранить таблицу D и результата, а не только окончательную картинку. Если изменение D меняет вывод о преимуществе метода, публикационный график ещё рано считать проверенным.
Связь с основной темой проста: [исследование APS](/research/antisqueezed-cat-states-phase-detection) использует численные расчёты, а любая такая работа нуждается в контроле приближений. Далее можно изучить [правило решения по отсчётам](/research/photon-counts-likelihood-decisions) или перейти к другой цели применения состояний кота — [квантовой памяти](/research/cat-qubits-stabilization-and-noise).
Авторский русскоязычный разбор ЯдроКода с первичными источниками. Учебные примеры и инженерные предположения отделены от результатов исследований. Не перевод и не перепечатка.
Таблицы, код и синтетические данные созданы для этого материала. Иллюстрации, код и экспериментальные данные авторов исследований не переносятся.