Plotar estados quânticos
Versões dos pacotes
O código nesta página foi desenvolvido usando os seguintes requisitos. Recomendamos usar essas versões ou mais recentes.
qiskit[all]~=2.4.0
Em muitas situações — como aprendizado ou depuração — é útil visualizar o estado de um computador quântico. Aqui assumimos que você já possui um estado específico obtido por simulação ou tomografia de estado. Só é possível visualizar os estados de sistemas quânticos pequenos.
Todas as funções nesta página retornam objetos ricos. Quando a última linha de uma célula de código produz esses objetos, os notebooks Jupyter os exibem abaixo da célula. Se você chamar essas funções em outros ambientes ou em scripts, precisará exibir ou salvar as saídas explicitamente.
A maioria das funções retorna imagens, que são objetos matplotlib.Figure. Duas opções são:
- Chame
.show()no objeto retornado para abrir a imagem em uma nova janela (assumindo que o backend matplotlib configurado seja interativo). - Chame
.savefig("out.png")para salvar a figura emout.pngno diretório de trabalho atual. O métodosavefig()aceita um caminho, permitindo que você ajuste o local e o nome do arquivo onde a saída será salva. Por exemplo,plot_state_city(psi).savefig("out.png").
As saídas LaTeX são objetos IPython.display.Latex. A melhor opção em um ambiente fora do Jupyter é evitar essa saída, seja imprimindo o estado para uma representação em texto, ou alternando para o drawer latex_source para retornar uma string com o código-fonte LaTeX.
Um estado quântico é uma matriz de densidade (matriz hermitiana) ou um statevector (vetor complexo). A matriz de densidade está relacionada ao statevector por
e é mais geral, pois pode representar estados mistos (soma positiva de statevectors)
O Qiskit representa estados quânticos por meio das classes Statevector e DensityMatrix e fornece muitas funções de visualização. Veja as seções após a célula de código a seguir para ver como as diferentes funções de visualização do Qiskit plotam o estado quântico abaixo.
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit
from math import pi
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector
# Create a Bell state for demonstration
qc = QuantumCircuit(2)
qc.h(0)
qc.crx(pi / 2, 0, 1)
psi = Statevector(qc)
- LaTeX
- City
- Hinton
- Pauli vector
- Qsphere
- Bloch
Embora tecnicamente não seja um "gráfico", o Qiskit pode renderizar representações LaTeX de objetos Statevector e DensityMatrix que são exibidos de forma elegante em notebooks Jupyter. Eles seguem as convenções matemáticas padrão para representar estados quânticos. Leia mais em Fundamentos de informação quântica: Sistemas únicos.
Statevectors utilizam por padrão a "notação ket", enquanto matrizes de densidade são exibidas como uma matriz 2×2.
Você também pode substituir "latex" por "latex_source" para obter a string LaTeX bruta.
Este gráfico exibe as partes real e imaginária de cada elemento da matriz de densidade em dois gráficos de barras tridimensionais. É chamado de gráfico "city" (cidade) porque as barras lembram arranha-céus em uma cidade. O estado que estamos plotando possui a seguinte matriz de densidade.