Ficheiro:One dimensional quantum random walk.svg
Dimensões desta antevisão em PNG do ficheiro SVG: 576 × 432 píxeis Outras resoluções: 320 × 240 píxeis | 640 × 480 píxeis | 1 024 × 768 píxeis | 1 280 × 960 píxeis | 2 560 × 1 920 píxeis.
Imagem numa resolução maior (ficheiro SVG, de 576 × 432 píxeis, tamanho: 29 kB)
Esta imagem provém do Wikimedia Commons, um acervo de conteúdo livre da Wikimedia Foundation que pode ser utilizado por outros projetos.
|
Descrição do ficheiro
DescriçãoOne dimensional quantum random walk.svg |
English: Probability distribution resulting from one dimensional discrete time random walks. The quantum walk created using the Hadamard coin is plotted (orange) vs a classical walk (blue) after 50 time steps. The average is marked with a vertical line in the same color. Starting conditions were (1*|↑⟩+0*|↓⟩)*|0⟩. |
Data | |
Origem | File:One_dimensional_quantum_random_walk.png |
Autor | shoyer |
- Code, python3.7:
import numpy as np import math import matplotlib.pyplot as plt import time import colorsys import cmath size=1000 def run_classical_randwalk(itersteps,initsim_mat): simmat=initsim_mat for iterstep in range(itersteps): newsimmat=np.zeros((2*size+1,2), dtype=complex) for matindex in range(2*size+1): to_right=0.5*simmat[matindex][0] to_left=0.5*simmat[matindex][0] if(matindex-1>=0): newsimmat[matindex-1][0]+=to_left if(matindex+1<=2*size): newsimmat[matindex+1][0]+=to_right simmat=newsimmat psisquared=np.zeros(2*size+1) for matindex in range(2*size+1): psisquared[matindex]+=abs(newsimmat[matindex][0]) average_x=0 min_x=0 max_x=0 datastartflag=0 for matindex in range(2*size+1): if(datastartflag==0): min_x=matindex if(psisquared[matindex]>0): datastartflag=1 max_x=matindex average_x+=psisquared[matindex]*(matindex-(size+1)) print(f"validdatarange {max_x-min_x}") return(range(min_x-(size+1),max_x-size,2),psisquared[min_x:max_x+1:2],average_x) def run_quantum_randwalk(itersteps,initsim_mat): simmat=initsim_mat for iterstep in range(itersteps): newsimmat=np.zeros((2*size+1,2), dtype=complex) for matindex in range(2*size+1): hadamard_spinup=1/math.sqrt(2)*(simmat[matindex][0]+simmat[matindex][1]) hadamard_spindown=1/math.sqrt(2)*(simmat[matindex][0]-simmat[matindex][1]) if(matindex-1>=0): newsimmat[matindex-1][1]+=hadamard_spindown if(matindex+1<=2*size): newsimmat[matindex+1][0]+=hadamard_spinup simmat=newsimmat psisquared=np.zeros(2*size+1) for matindex in range(2*size+1): psisquared[matindex]+=abs(newsimmat[matindex][0])**2+abs(newsimmat[matindex][1])**2 average_x=0 min_x=0 max_x=0 datastartflag=0 for matindex in range(2*size+1): if(datastartflag==0): min_x=matindex if(psisquared[matindex]>0): datastartflag=1 max_x=matindex average_x+=psisquared[matindex]*(matindex-(size+1)) print(f"validdatarange {max_x-min_x}") return(range(min_x-(size+1),max_x-size,2),psisquared[min_x:max_x+1:2],average_x) simmat=np.zeros((2*size+1,2), dtype=complex) #(-size, ....,-1,0,1, size) #first index spin up, second index spin down simmat[size+1][0]=1.0 simmat[size+1][1]=0.0#1.0#1.0j fig=plt.figure() plt.xlabel("position") plt.ylabel("probability of occurence") q_list_return_50=run_quantum_randwalk(50,simmat) c_list_return_50=run_classical_randwalk(50,simmat) plt.plot(q_list_return_50[0],q_list_return_50[1],color="#e67300") plt.plot(c_list_return_50[0],c_list_return_50[1],color="#0000a0") xlim=plt.gca().get_xlim() ylim=plt.gca().get_ylim() plt.vlines(q_list_return_50[2],*ylim,color="#e67300",alpha=.7) plt.vlines(c_list_return_50[2],*ylim,color="#0000a0",alpha=.7) print(fig.axes) plt.gca().spines['top'].set_visible(False) plt.gca().spines['right'].set_visible(False) plt.gca().grid(color='grey', linestyle='-', linewidth=0.25, alpha=0.5) plt.show() fig.savefig("One_dimensional_quantum_random_walk.svg")
Licenciamento
A utilização deste ficheiro é regulada nos termos da licença Creative Commons - Atribuição-CompartilhaIgual 3.0 Não Adaptada.
- Pode:
- partilhar – copiar, distribuir e transmitir a obra
- recombinar – criar obras derivadas
- De acordo com as seguintes condições:
- atribuição – Tem de fazer a devida atribuição da autoria, fornecer uma hiperligação para a licença e indicar se foram feitas alterações. Pode fazê-lo de qualquer forma razoável, mas não de forma a sugerir que o licenciador o apoia ou subscreve o seu uso da obra.
- partilha nos termos da mesma licença – Se remisturar, transformar ou ampliar o conteúdo, tem de distribuir as suas contribuições com a mesma licença ou uma licença compatível com a original.
Elementos retratados neste ficheiro
retrata
28 novembro 2008
image/svg+xml
29 877 byte
98b5dec5f7a2f6c2515941cc0a9528646fd541ee
Histórico do ficheiro
Clique uma data e hora para ver o ficheiro tal como ele se encontrava nessa altura.
Data e hora | Miniatura | Dimensões | Utilizador | Comentário | |
---|---|---|---|---|---|
atual | 18h23min de 12 de setembro de 2020 | 576 × 432 (29 kB) | Benjamin Renz | Uploaded a work by shoyer from https://commons.wikimedia.org/wiki/File:One_dimensional_quantum_random_walk.png with UploadWizard |
Utilização local do ficheiro
A seguinte página usa este ficheiro:
Utilização global do ficheiro
As seguintes wikis usam este ficheiro:
- ca.wiki.x.io
- de.wiki.x.io
- en.wiki.x.io
Metadados
Este ficheiro contém informação adicional, provavelmente adicionada a partir da câmara digital ou scanner utilizada para criar ou digitalizar a imagem. Caso o ficheiro tenha sido modificado a partir do seu estado original, alguns detalhes poderão não refletir completamente as mudanças efetuadas.
Largura | 460.8pt |
---|---|
Altura | 345.6pt |